# # Makefile.in -- make file def for websh # nca-073-9 # # (adapted from sampleextension-0.2) # # See the file "license.terms" for information on usage an # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # # @(#) $Id$ # ECHO = echo TOP_DIR = .. lib_BINARIES=$(web_LIB_FILE) BINARIES=$(lib_BINARIES) SCRIPT_SOURCES = ../generic/context.tcl ../generic/script.ws3 ../generic/cookie.ws3 ../generic/sessctx.ws3 web_OBJECTS = args.o \ cfg.o \ checksum.o \ command.o \ conv.o \ crypt.o \ nca_d.o \ dispatch.o \ filecounter.o \ filelock.o \ formdata.o \ hashutl.o \ htmlify.o \ log.o \ logtocmd.o \ logtochannel.o \ logtofile.o \ logtosyslog.o \ logutl.o \ messages.o \ messagesCmd.o \ paramlist.o \ querystring.o \ request.o \ script.o \ uricode.o \ url.o \ web.o \ webout.o \ weboutint.o \ webutl.o \ webutlcmd.o \ varchannel.o \ modwebsh_cgi.o \ request_cgi.o \ response_cgi.o web_OBJECTS_ap = apchannel.o \ interpool.o \ logtoap.o \ mod_websh.o \ modwebsh_ap.o \ request_ap.o \ response_ap.o OBJECTS = $(web_OBJECTS) web_LIB_FILE = @web_LIB_FILE@ $(web_LIB_FILE)_OBJECTS = $(web_OBJECTS) # ============================================================================= # This is a list of header files to be installed # ============================================================================= GENERIC_HDRS= SHELL = @SHELL@ srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ moddir = $(libdir)/httpd/modules sharedir = $(prefix)/share/websh3.6 docdir = $(sharedir)/htdocs cfgdir = $(sharedir)/conf PACKAGE = @PACKAGE@ VERSION = @VERSION@ CC = @CC@ CFLAGS_DEBUG = @CFLAGS_DEBUG@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@ CFLAGS_WARNING = @CFLAGS_WARNING@ CLEANFILES = @CLEANFILES@ EXEEXT = @EXEEXT@ LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ MAKE_LIB = @MAKE_LIB@ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@ OBJEXT = @OBJEXT@ RANLIB = @RANLIB@ SHLIB_CFLAGS = @SHLIB_CFLAGS@ SHLIB_LD = @SHLIB_LD@ Platform=$(shell uname -s) ifeq ($(Platform),Darwin) SHLIB_LD_CURRENT = $(CC) -bundle -bundle_loader $(HTTPD_BIN) $(LDFLAGS) LDLIBPATHVAR = DYLD_LIBRARY_PATH else SHLIB_LD_CURRENT = $(SHLIB_LD) $(TCL_LD_FLAGS) LDLIBPATHVAR = LD_LIBRARY_PATH endif SHLIB_LDFLAGS = @SHLIB_LDFLAGS@ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ STLIB_LD = @STLIB_LD@ APRU_LIBS = @APR_LIB@@APU_LIB@ TCL_BIN_DIR = @TCL_BIN_DIR@ TCL_DEFS = @TCL_DEFS@ TCL_EXTRA_CFLAGS = @TCL_EXTRA_CFLAGS@ TCL_LD_FLAGS = @TCL_LD_FLAGS@ TCL_LIBS = @TCL_LIBS@ TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@ TCL_SRC_DIR = @TCL_SRC_DIR@ TCL_DBGX = @TCL_DBGX@ TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@ TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@ TCL_LIB_SPEC = @TCL_LIB_SPEC@ TCLSH_PROG = @TCLSH_PROG@ TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ # uncomment the following line if you want to enable the # Tcl memory and checkmem commands in mod_websh #MEM_DEBUG_FLAGS = -DTCL_MEM_DEBUG SHARED_LIB_SUFFIX = @SHARED_LIB_SUFFIX@ MODULE_LIB_SUFFIX = $(VERSION).so UNSHARED_LIB_SUFFIX = @UNSHARED_LIB_SUFFIX@ HTTPD_INCLUDES = @HTTPD_INCLUDES@@APR_INCLUDES@@APU_INCLUDES@ # needed for Darwin (OS X) only HTTPD_BIN = @HTTPD_BIN@ AUTOCONF = autoconf LDFLAGS = $(LDFLAGS_DEFAULT) INCLUDES = @TCL_INCLUDES@ $(HTTPD_INCLUDES) # remove PACKAGE stuff: will cause warnings for Apache >2 and Tcl >=8.5 FIXED_TCL_DEFS = $(filter-out -DPACKAGE_NAME=% -DPACKAGE_TARNAME=% -DPACKAGE_VERSION=% -DPACKAGE_STRING=% -DPACKAGE_BUGREPORT=% 8.% 9.%, $(TCL_DEFS)) EXTRA_CFLAGS = $(FIXED_TCL_DEFS) $(PROTO_FLAGS) $(SECURITY_FLAGS) \ $(MEM_DEBUG_FLAGS) $(KEYSYM_FLAGS) $(NO_DEPRECATED_FLAGS) \ $(TCL_EXTRA_CFLAGS) DEFS = -DVERSION=\"@VERSION@\" -D@PLATFORM@=1 -DUSE_TCL_STUBS=@USE_TCL_STUBS@ $(EXTRA_CFLAGS) ACLOCAL_M4 = $(srcdir)/aclocal.m4 CPPFLAGS = @CPPFLAGS@ LIBS = @LIBS@ AR = ar CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ # ============================================================================= # main targets (TEA) # ============================================================================= bin_BINARIES:=websh$(VERSION) all: binaries libraries binaries: $(BINARIES) $(OBJECTS) websh libraries: mod_websh.so install: all install-binaries install-libraries install-doc # ============================================================================= # Dist target - to make the tarball. # ============================================================================= dist: @echo "use ../../makedist to create a tar ball for a specific release" distdoc: ../../doc/quickref.xml ../../doc/quickref.xsl (cd ../../doc/ && make) # ============================================================================= # Testing # ============================================================================= test: websh$(VERSION) $(web_LIB_FILE) $(web_OBJECTS) @$(LDLIBPATHVAR)="$(strip $(TCL_PACKAGE_PATH)):$(TOP_DIR)/unix:$(LD_LIBRARY_PATH)"; \ export $(LDLIBPATHVAR); \ TCL_LIBRARY="$(TCL_SRC_DIR)/library"; export TCL_LIBRARY; \ WEB_LIBRARY=$(TOP_DIR)/unix/$(web_LIB_FILE); export WEB_LIBRARY; \ WEB_BIN=$(TOP_DIR)/unix/websh$(VERSION); export WEB_BIN; \ TCLLIBPATH=$(TCL_PACKAGE_PATH); export TCLLIBPATH; \ cd $(TOP_DIR)/tests; \ umask 0; \ $(TOP_DIR)/unix/websh$(VERSION) webtest.ws3 test.pure: websh$(VERSION).pure $(web_LIB_FILE) $(web_OBJECTS) @$(LDLIBPATHVAR)="$(strip $(TCL_PACKAGE_PATH)):$(TOP_DIR)/unix:$(LD_LIBRARY_PATH)"; \ export $(LDLIBPATHVAR); \ TCL_LIBRARY="$(TCL_SRC_DIR)/library"; export TCL_LIBRARY; \ WEB_LIBRARY=$(TOP_DIR)/unix/$(web_LIB_FILE); export WEB_LIBRARY; \ WEB_BIN=$(TOP_DIR)/unix/websh$(VERSION).pure; export WEB_BIN; \ TCLLIBPATH=$(TCL_PACKAGE_PATH); export TCLLIBPATH; \ cd $(TOP_DIR)/tests; \ umask 0; \ (echo source webtest.ws3) | ../unix/websh$(VERSION).pure test.cov: websh$(VERSION).cov $(web_LIB_FILE) $(web_OBJECTS) @$(LDLIBPATHVAR)="$(strip $(TCL_PACKAGE_PATH)):$(TOP_DIR)/unix:$(LD_LIBRARY_PATH)"; \ export $(LDLIBPATHVAR); \ TCL_LIBRARY="$(TCL_SRC_DIR)/library"; export TCL_LIBRARY; \ WEB_LIBRARY=$(TOP_DIR)/unix/$(web_LIB_FILE); export WEB_LIBRARY; \ WEB_BIN=$(TOP_DIR)/unix/websh$(VERSION).cov; export WEB_BIN; \ TCLLIBPATH=$(TCL_PACKAGE_PATH); export TCLLIBPATH; \ cd $(TOP_DIR)/tests; \ umask 0; \ (echo source webtest.ws3) | ../unix/websh$(VERSION).cov apachetest: mod_websh.so websh @$(LDLIBPATHVAR)="$(strip $(TCL_PACKAGE_PATH)):$(TOP_DIR)/unix:$(LD_LIBRARY_PATH)"; \ export $(LDLIBPATHVAR); \ TCL_LIBRARY="$(TCL_SRC_DIR)/library"; export TCL_LIBRARY; \ WEB_LIBRARY=$(TOP_DIR)/unix/$(web_LIB_FILE); export WEB_LIBRARY; \ WEB_BIN=$(TOP_DIR)/unix/websh$(VERSION); export WEB_BIN; \ MOD_WEBSH=$(TOP_DIR)/unix/mod_websh$(MODULE_LIB_SUFFIX); \ export MOD_WEBSH; \ HTTPD_BIN=$(HTTPD_BIN); export HTTPD_BIN; \ TCLLIBPATH=$(TCL_PACKAGE_PATH); export TCLLIBPATH; \ cd $(TOP_DIR)/apachetests; \ $(TOP_DIR)/unix/websh$(VERSION) runtests.tcl $(HTTPD_INCLUDES) depend: # ============================================================================= # Compile stuff # ============================================================================= $(web_LIB_FILE): $(web_OBJECTS) -rm -f $(web_LIB_FILE) @MAKE_LIB@ $(RANLIB) $(web_LIB_FILE) script.h: ../generic/tcldecmt.tcl $(SCRIPT_SOURCES) $(TCLSH_PROG) ../generic/tcldecmt.tcl $(SCRIPT_SOURCES) > $@ script.o: ../generic/script.c script.h $(COMPILE) -I. -c $< interpool.o: ../generic/interpool.c $(COMPILE) -UUSE_TCL_STUBS -c $< %.o: ../generic/%.c $(COMPILE) -c $< websh: websh$(VERSION) $(web_LIB_FILE) mod_websh.so: mod_websh$(MODULE_LIB_SUFFIX) websh$(VERSION): tclAppInit.$(OBJEXT) $(web_LIB_FILE) $(CC) @LDFLAGS@ tclAppInit.$(OBJEXT) $(web_LIB_FILE) \ $(TCL_LIB_SPEC) $(TCL_STUB_LIB_SPEC) $(TCL_LIBS) $(TCL_LD_FLAGS) \ -o websh$(VERSION) mod_websh$(MODULE_LIB_SUFFIX): $(web_OBJECTS_ap) $(web_LIB_FILE) $(SHLIB_LD_CURRENT) -o mod_websh$(MODULE_LIB_SUFFIX) \ $(web_OBJECTS_ap) $(web_LIB_FILE) $(APRU_LIBS) \ $(TCL_LIB_SPEC) $(TCL_STUB_LIB_SPEC) mod_websh$(UNSHARED_LIB_SUFFIX): $(web_OBJECTS_ap) $(web_OBJECTS) $(STLIB_LD) mod_websh$(UNSHARED_LIB_SUFFIX) \ $(web_OBJECTS_ap) $(web_OBJECTS) pure: websh$(VERSION).pure websh$(VERSION).pure: tclAppInit.$(OBJEXT) $(web_LIB_FILE) purify $(CC) @LDFLAGS@ tclAppInit.$(OBJEXT) $(web_LIB_FILE) \ $(TCL_LIB_SPEC) $(TCL_STUB_LIB_SPEC) $(TCL_LIBS) $(TCL_LD_FLAGS) \ -o websh$(VERSION).pure -rm -f *_pure_*.o cov: websh$(VERSION).cov websh$(VERSION).cov: tclAppInit.$(OBJEXT) $(web_LIB_FILE) purecov $(CC) @LDFLAGS@ tclAppInit.$(OBJEXT) $(web_LIB_FILE) \ $(TCL_LIB_SPEC) $(TCL_STUB_LIB_SPEC) $(TCL_LIBS) $(TCL_LD_FLAGS) \ -o websh$(VERSION).cov -rm -f *_pure_*.o .SUFFIXES: .c .o .obj # ============================================================================= # Cleanup # ============================================================================= clean: -rm -f $(BINARIES) -rm -f $(bin_BINARIES) -rm -f *.o core *.core -rm -f *.$(OBJEXT) -rm -f *pure* .*pure* -rm -f script.h -rm -f *~ ../*~ ../*/*~ -rm -f ../tests/locktest.* -rm -rf ../apachetests/logs ../apachetest/conf/server.conf ../apachetest/conf/websh.conf -rm -f $(web_OBJECTS) $(web_OBJECTS_ap) mod_websh$(SHARED_LIB_SUFFIX) mod_websh$(UNSHARED_LIB_SUFFIX) -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean: clean -rm -f *.tab.c -rm -f config.cache config.log stamp-h stamp-h[0-9]* -rm -f config.status -rm -rf autom4te*.cache -rm -f configure -rm -f Makefile # ============================================================================= # Install # ============================================================================= # websh install-binaries: install-dirs binaries cp -f websh$(VERSION) $(bindir) rm -f $(bindir)/websh ln -s websh$(VERSION) $(bindir)/websh if [ -f libwebsh$(SHARED_LIB_SUFFIX) ]; then \ cp -f libwebsh$(SHARED_LIB_SUFFIX) $(libdir); \ rm -f $(libdir)/libwebsh.so; \ ln -s libwebsh$(SHARED_LIB_SUFFIX) $(libdir)/libwebsh.so; \ fi if [ -f libwebsh$(UNSHARED_LIB_SUFFIX) ]; then \ cp -f libwebsh$(UNSHARED_LIB_SUFFIX) $(libdir); \ rm -f $(libdir)/libwebsh.a; \ ln -s libwebsh$(UNSHARED_LIB_SUFFIX) $(libdir)/libwebsh.a; \ fi cp -f $(TOP_DIR)/../src/unix/pkgIndex.tcl $(libdir) # mod_websh install-libraries: install-dirs libraries cp -f mod_websh$(VERSION).so $(moddir) rm -f $(moddir)/mod_websh.so ln -s mod_websh$(VERSION).so $(moddir)/mod_websh.so # documentation / sample mod_websh setup install-doc: install-dirs cp -f $(TOP_DIR)/../doc/mod_websh/conf/*.* $(cfgdir) cp -f $(TOP_DIR)/../doc/mod_websh/htdocs/*.* $(docdir) cp -f $(TOP_DIR)/../doc/mod_websh/README $(sharedir) # create destination directories install-dirs: mkdir -p $(bindir) mkdir -p $(libdir) mkdir -p $(moddir) mkdir -p $(sharedir) mkdir -p $(docdir) mkdir -p $(cfgdir) # quickref install-quickref: ../../doc/html/index.html mkdir -p $(docdir)/quickref cp -f $(TOP_DIR)/../doc/html/*.html $(docdir)/quickref # create quickref html documentation ../../doc/html/index.html: $(TOP_DIR)/../doc/quickref.xml $(TOP_DIR)/../doc/quickref.xsl cd $(TOP_DIR)/../doc/; make # ============================================================================= # Makefile and configure rules # ============================================================================= Makefile: $(srcdir)/Makefile.in $(srcdir)/config.status cd $(srcdir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) .PHONY: all binaries libraries clean distclean depend install test # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: