| # |
| # 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: |