]> granicus.if.org Git - apache/blobdiff - NWGNUmakefile
provide links back to ap_expr-aware directives/modules
[apache] / NWGNUmakefile
index af16d38da9a48dd173ded34faf19690ac3ed146c..2a9623e7839c6cc8bd815287e8de96eaa28002ac 100644 (file)
@@ -1,13 +1,44 @@
+#
+# Define our required macro's if not already done.
+#
+
+ifndef AP_WORK
+export AP_WORK = $(CURDIR)
+endif
+
+ifndef APR_WORK
+ifeq "$(wildcard $(AP_WORK)/srclib/apr)" "$(AP_WORK)/srclib/apr"
+export APR_WORK = $(AP_WORK)/srclib/apr
+endif
+endif
+ifneq "$(wildcard $(APR_WORK)/include/apr_version.h)" "$(APR_WORK)/include/apr_version.h"
+$(error APR_WORK does not point to a valid APR source tree) 
+endif
+
+ifndef APU_WORK
+ifeq "$(wildcard $(AP_WORK)/srclib/apr-util)" "$(AP_WORK)/srclib/apr-util"
+export APU_WORK = $(AP_WORK)/srclib/apr-util
+endif
+endif
+ifndef APU_WORK
+ifeq "$(wildcard $(APR_WORK)/include/apu_version.h)" "$(APR_WORK)/include/apu_version.h"
+export APU_WORK = $(APR_WORK)
+endif
+endif
+ifneq "$(wildcard $(APU_WORK)/include/apu_version.h)" "$(APU_WORK)/include/apu_version.h"
+$(error APU_WORK does not point to a valid APU source tree) 
+endif
+
 #
 # Declare the sub-directories to be built here
 #
 
 SUBDIRS = \
-       srclib\apr \
+       $(APR_WORK) \
        build \
        support \
        modules \
-       $(EOLIST) 
+       $(EOLIST)
 
 #
 # Get the 'head' of the build environment.  This includes default targets and
@@ -28,19 +59,21 @@ include $(AP_WORK)\build\NWGNUhead.inc
 # INCDIRS
 #
 XINCDIRS       += \
-                       $(AP_WORK)/srclib/apr/include \
-                       $(AP_WORK)/srclib/include/arch/NetWare \
-                       $(AP_WORK)/srclib/apr-util/include \
+                       $(APR)/include \
+                       $(APRUTIL)/include \
                        $(AP_WORK)/include \
-                       $(AP_WORK)/modules/filters/ \
-                       $(AP_WORK)/modules/generators/ \
-                       $(AP_WORK)/modules/http/ \
-                       $(AP_WORK)/modules/loggers/ \
-                       $(AP_WORK)/modules/mappers/ \
-                       $(AP_WORK)/modules/proxy/ \
-                       $(AP_WORK)/os/NetWare \
-                       $(AP_WORK)/server/mpm/NetWare \
-                       $(AP_WORK)/srclib/pcre \
+                       $(STDMOD)/aaa \
+                       $(STDMOD)/core \
+                       $(STDMOD)/filters \
+                       $(STDMOD)/generators \
+                       $(STDMOD)/http \
+                       $(STDMOD)/loggers \
+                       $(STDMOD)/mappers \
+                       $(STDMOD)/proxy \
+                       $(STDMOD)/ssl \
+                       $(AP_WORK)/server \
+                       $(AP_WORK)/server/mpm/netware \
+                       $(PCRE) \
                        $(NWOS) \
                        $(EOLIST)
 
@@ -48,6 +81,7 @@ XINCDIRS      += \
 # These flags will come after CFLAGS
 #
 XCFLAGS                += \
+                       -DHAVE_CONFIG_H \
                        $(EOLIST)
 
 #
@@ -77,7 +111,7 @@ XDEFINES     += \
                        $(EOLIST)
 
 XLFLAGS                += \
-                       $(EOLIST)
+                       $(EOLIST)
 endif
 
 ifeq "$(RELEASE)" "noopt"
@@ -91,7 +125,7 @@ XDEFINES     += \
                        $(EOLIST)
 
 XLFLAGS                += \
-                       $(EOLIST)
+                       $(EOLIST)
 endif
 
 ifeq "$(RELEASE)" "release"
@@ -113,19 +147,19 @@ endif
 # This is used by the link 'name' directive to name the nlm.  If left blank
 # TARGET_nlm (see below) will be used.
 #
-NLM_NAME               = Apache2
+NLM_NAME       = Apache2
 
 #
-# This is used by the link '-desc ' directive. 
+# This is used by the link '-desc ' directive.
 # If left blank, NLM_NAME will be used.
 #
-NLM_DESCRIPTION        = Apache Web Server $(VERSION_STR)
+NLM_DESCRIPTION        = Apache Web Server $(VERSION_STR) $(VERSION_SKT)
 
 #
 # This is used by the '-threadname' directive.  If left blank,
 # NLM_NAME Thread will be used.
 #
-NLM_THREAD_NAME        = Apache
+NLM_THREAD_NAME        = $(NLM_NAME)
 
 #
 # This is used by the '-screenname' directive.  If left blank,
@@ -135,16 +169,16 @@ NLM_SCREEN_NAME = Apache $(VERSION_STR) for NetWare
 
 
 #
-# If this is specified, it will override VERSION value in 
+# If this is specified, it will override VERSION value in
 # $(AP_WORK)\build\NWGNUenvironment.inc
 #
-NLM_VERSION            =
+NLM_VERSION    =
 
 #
 # If this is specified, it will override the default of 64K
 #
 NLM_STACK_SIZE = 65536
+
 
 #
 # If this is specified it will be used by the link '-entry' directive
@@ -164,26 +198,27 @@ NLM_CHECK_SYM     = _LibCCheckUnload
 #
 # If these are specified it will be used by the link '-flags' directive
 #
-NLM_FLAGS              =  PSEUDOPREEMPTION
+NLM_FLAGS      = PSEUDOPREEMPTION
 
 #
-# If this is specified it will be linked in with the XDCData option in the def 
+# If this is specified it will be linked in with the XDCData option in the def
 # file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
 # by setting APACHE_UNIPROC in the environment
 #
-XDCDATA         
+XDCDATA                =
 
 #
 # If there is an NLM target, put it here
 #
 TARGET_nlm = \
-       $(OBJDIR)/Apache2.nlm \
+       $(OBJDIR)/$(NLM_NAME).nlm \
        $(EOLIST)
 
 #
 # If there is an LIB target, put it here
 #
 TARGET_lib = \
+       $(OBJDIR)/pcre.lib \
        $(EOLIST)
 
 #
@@ -195,37 +230,37 @@ FILES_nlm_objs = \
        $(OBJDIR)/config.o \
        $(OBJDIR)/connection.o \
        $(OBJDIR)/core.o \
+       $(OBJDIR)/core_filters.o \
        $(OBJDIR)/eoc_bucket.o \
+       $(OBJDIR)/eor_bucket.o \
        $(OBJDIR)/error_bucket.o \
        $(OBJDIR)/http_core.o \
        $(OBJDIR)/http_protocol.o \
        $(OBJDIR)/http_request.o \
+       $(OBJDIR)/byterange_filter.o \
+       $(OBJDIR)/chunk_filter.o \
+       $(OBJDIR)/http_etag.o \
+       $(OBJDIR)/http_filters.o \
        $(OBJDIR)/listen.o \
        $(OBJDIR)/log.o \
        $(OBJDIR)/main.o \
+       $(OBJDIR)/mod_authn_core.o \
+       $(OBJDIR)/mod_authz_core.o \
        $(OBJDIR)/mod_authz_host.o \
-       $(OBJDIR)/mod_actions.o \
        $(OBJDIR)/mod_alias.o \
-       $(OBJDIR)/mod_asis.o \
-       $(OBJDIR)/mod_autoindex.o \
-       $(OBJDIR)/mod_cgi.o \
        $(OBJDIR)/mod_dir.o \
        $(OBJDIR)/mod_env.o \
-       $(OBJDIR)/mod_imap.o \
        $(OBJDIR)/mod_include.o \
        $(OBJDIR)/mod_log_config.o \
        $(OBJDIR)/mod_mime.o \
        $(OBJDIR)/mod_negotiation.o \
        $(OBJDIR)/mod_netware.o \
-       $(OBJDIR)/mod_nw_ssl.o \
        $(OBJDIR)/mod_setenvif.o \
        $(OBJDIR)/mod_so.o \
-       $(OBJDIR)/mod_userdir.o \
+       $(OBJDIR)/mod_watchdog.o \
        $(OBJDIR)/modules.o \
        $(OBJDIR)/mpm_common.o \
        $(OBJDIR)/mpm_netware.o \
-       $(OBJDIR)/pcre.o \
-       $(OBJDIR)/pcreposix.o \
        $(OBJDIR)/protocol.o \
        $(OBJDIR)/provider.o \
        $(OBJDIR)/request.o \
@@ -233,22 +268,36 @@ FILES_nlm_objs = \
        $(OBJDIR)/util.o \
        $(OBJDIR)/util_cfgtree.o \
        $(OBJDIR)/util_charset.o \
+       $(OBJDIR)/util_cookies.o \
        $(OBJDIR)/util_debug.o \
+       $(OBJDIR)/util_expr_eval.o \
+       $(OBJDIR)/util_expr_parse.o \
+       $(OBJDIR)/util_expr_scan.o \
        $(OBJDIR)/util_filter.o \
        $(OBJDIR)/util_md5.o \
+       $(OBJDIR)/util_mutex.o \
        $(OBJDIR)/util_nw.o \
+       $(OBJDIR)/util_pcre.o \
+       $(OBJDIR)/util_regex.o \
        $(OBJDIR)/util_script.o \
        $(OBJDIR)/util_time.o \
        $(OBJDIR)/util_xml.o \
        $(OBJDIR)/vhost.o \
        $(EOLIST)
 
+# Build in mod_nw_ssl if Winsock is being used
+ifndef USE_STDSOCKETS
+FILES_nlm_objs += $(OBJDIR)/mod_nw_ssl.o \
+       $(EOLIST)
+endif
+
 #
 # These are the LIB files needed to create the NLM target above.
 # These will be added as a library command in the link.opt file.
 #
 FILES_nlm_libs = \
-       libcpre.o \
+       $(PCRELIB) \
+       libcpre.o \
        $(EOLIST)
 
 #
@@ -264,7 +313,7 @@ FILES_nlm_modules = \
 # If the nlm has a msg file, put it's path here
 #
 FILE_nlm_msg =
+
 #
 # If the nlm has a hlp file put it's path here
 #
@@ -282,23 +331,51 @@ FILES_nlm_Ximports = \
        @netware.imp \
        @$(APR)/aprlib.imp \
        @libc.imp \
-       @ws2nlm.imp \
        GetCurrentAddressSpace \
        $(EOLIST)
-#   
+
+# Don't link with Winsock if standard sockets are being used
+ifndef USE_STDSOCKETS
+FILES_nlm_Ximports += @ws2nlm.imp \
+       $(EOLIST)
+endif
+
+#
 # Any symbols exported to here
 #
 FILES_nlm_exports = \
        @$(NWOS)/httpd.imp \
        $(EOLIST)
-       
-#   
+
+#
 # These are the OBJ files needed to create the LIB target above.
 # Paths must all use the '/' character
 #
+ifeq "$(wildcard $(PCRE)/pcre.c)" "$(PCRE)/pcre.c"
+
 FILES_lib_objs = \
-               $(EOLIST)
+       $(OBJDIR)/pcre.o \
+       $(EOLIST)
+
+else
+
+FILES_lib_objs = \
+       $(OBJDIR)/pcre_compile.o \
+       $(OBJDIR)/pcre_exec.o \
+       $(OBJDIR)/pcre_fullinfo.o \
+       $(OBJDIR)/pcre_globals.o \
+       $(OBJDIR)/pcre_info.o \
+       $(OBJDIR)/pcre_newline.o \
+       $(OBJDIR)/pcre_tables.o \
+       $(OBJDIR)/pcre_try_flipped.o \
+       $(OBJDIR)/pcre_version.o \
+       $(EOLIST)
+
+endif
+
+FILES_lib_objs += \
+       $(OBJDIR)/chartables.o \
+       $(EOLIST)
 
 #
 # implement targets and dependancies (leave this section alone)
@@ -309,50 +386,67 @@ libs :: $(OBJDIR) $(TARGET_lib)
 nlms :: libs $(TARGET_nlm)
 
 #
-# Updated this target to create necessary directories and copy files to the 
+# Updated this target to create necessary directories and copy files to the
 # correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)
 #
-install :: nlms FORCE
-       -copy $(OBJDIR)\Apache2.nlm     $(INSTALL)\Apache2\*.*
-       -copy ABOUT_APACHE              $(INSTALL)\Apache2\*.*
-       -copy README                    $(INSTALL)\Apache2\*.*
-       -copy STATUS                    $(INSTALL)\Apache2\*.*
-       -copy LICENSE                   $(INSTALL)\Apache2\*.*
-       -copy CHANGES                   $(INSTALL)\Apache2\*.*
-       -copy support\dbmmanage.in      $(INSTALL)\Apache2\bin\dbmmanage.pl
-       -copy support\logresolve.pl.in  $(INSTALL)\Apache2\bin\logresolve.pl
-       -awk  -f build\mkconfnw.awk docs\conf\httpd-std.conf.in >$(INSTALL)\Apache2\conf\httpd.conf
-       -copy docs\conf\magic           $(INSTALL)\Apache2\conf\magic
-       -copy docs\conf\mime.types      $(INSTALL)\Apache2\conf\mime.types
-       -copy docs\conf\charset.conv    $(INSTALL)\Apache2\conf\charset.conv
-       -copy docs\cgi-examples\printenv $(INSTALL)\Apache2\cgi-bin\printenv.pl
-       @echo rem copying the docs directories > xc.bat
-       @echo xcopy docs\error $(INSTALL)\Apache2\error $(XCOPYSW) >> xc.bat
-       @echo xcopy docs\docroot $(INSTALL)\Apache2\htdocs $(XCOPYSW) >> xc.bat
-       @echo xcopy docs\icons $(INSTALL)\Apache2\icons $(XCOPYSW) >> xc.bat
-       @echo xcopy docs\man $(INSTALL)\Apache2\man $(XCOPYSW) >> xc.bat
-       @echo xcopy docs\manual $(INSTALL)\Apache2\manual $(XCOPYSW) >> xc.bat
-       $(CMD) xc.bat
-       $(DEL) xc.bat
-
-
-    
+install :: nlms instscripts FORCE
+       -copy $(OBJDIR)\$(NLM_NAME).nlm  $(INSTALL)\$(BASEDIR)\*.*
+       -copy ABOUT_APACHE               $(INSTALL)\$(BASEDIR)\*.*
+       -copy CHANGES                    $(INSTALL)\$(BASEDIR)\*.*
+       -copy LICENSE                    $(INSTALL)\$(BASEDIR)\*.*
+       -copy README                     $(INSTALL)\$(BASEDIR)\*.*
+       -copy VERSIONING                 $(INSTALL)\$(BASEDIR)\*.*
+       -copy STATUS                     $(INSTALL)\$(BASEDIR)\*.*
+       -copy support\dbmmanage.in       $(INSTALL)\$(BASEDIR)\bin\dbmmanage.pl
+       -copy support\logresolve.pl.in   $(INSTALL)\$(BASEDIR)\bin\logresolve.pl
+       -copy support\split-logfile.in   $(INSTALL)\$(BASEDIR)\bin\split-logfile.pl
+       -copy support\check_forensic     $(INSTALL)\$(BASEDIR)\bin\check_forensic.sh
+       -copy docs\conf\magic            $(INSTALL)\$(BASEDIR)\conf\magic
+       -copy docs\conf\mime.types       $(INSTALL)\$(BASEDIR)\conf\mime.types
+       -copy docs\conf\charset.conv     $(INSTALL)\$(BASEDIR)\conf\charset.conv
+       -copy docs\cgi-examples\printenv $(INSTALL)\$(BASEDIR)\cgi-bin\printenv.pl
+       -$(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -v SSLPORT=$(SSLPORT) -v MODSSL=$(WITH_MOD_SSL) -v BSDSKT=$(USE_STDSOCKETS) -f build\mkconfnw.awk docs\conf\httpd.conf.in >$(INSTALL)\$(BASEDIR)\conf\httpd.conf
+       $(CHKNOT) $(INSTALL)\$(BASEDIR)\conf\extra\nul mkdir $(INSTALL)\$(BASEDIR)\conf\extra
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-autoindex.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-autoindex.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-dav.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-dav.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-default.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-default.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-info.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-info.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-languages.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-languages.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-manual.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-manual.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-mpm.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-mpm.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-multilang-errordoc.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-multilang-errordoc.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -f build\mkconfnw.awk docs\conf\extra\httpd-userdir.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-userdir.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -f build\mkconfnw.awk docs\conf\extra\httpd-vhosts.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-vhosts.conf
+       -$(AWK) -v BDIR=$(BASEDIR) -v SSLPORT=$(SSLPORT) -f build\mkconfnw.awk docs\conf\extra\httpd-ssl.conf.in >$(INSTALL)\$(BASEDIR)\conf\extra\httpd-ssl.conf
+       @xcopy $(XCOPYSW) docs\error     $(INSTALL)\$(BASEDIR)\error
+       @xcopy $(XCOPYSW) docs\docroot   $(INSTALL)\$(BASEDIR)\htdocs
+       @xcopy $(XCOPYSW) docs\icons     $(INSTALL)\$(BASEDIR)\icons
+       @xcopy $(XCOPYSW) docs\man       $(INSTALL)\$(BASEDIR)\man
+       @xcopy $(XCOPYSW) docs\manual    $(INSTALL)\$(BASEDIR)\manual
+
 installdev :: FORCE
-       -copy $(subst /,\,$(AP_WORK))\include\*.h           $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(AP_WORK))\os\netware\*.h        $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(NWOS))\*.imp                    $(INSTALL)\Apache2\lib\*.*
-       -copy $(subst /,\,$(APR))\include\*.h               $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(APRUTIL))\include\*.h           $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(APR))\*.imp                     $(INSTALL)\Apache2\lib\*.*
-       -copy $(subst /,\,$(NWOS))\*.xdc                    $(INSTALL)\Apache2\lib\*.*
-    
+       -copy $(subst /,\,$(AP_WORK))\include\*.h  $(INSTALL)\$(BASEDIR)\include\*.*
+       -copy $(subst /,\,$(NWOS))\*.h             $(INSTALL)\$(BASEDIR)\include\*.*
+       -copy $(subst /,\,$(APR))\include\*.h      $(INSTALL)\$(BASEDIR)\include\*.*
+       -copy $(subst /,\,$(APRUTIL))\include\*.h  $(INSTALL)\$(BASEDIR)\include\*.*
+       -copy $(subst /,\,$(APR))\*.imp            $(INSTALL)\$(BASEDIR)\lib\*.*
+       -copy $(subst /,\,$(NWOS))\*.imp           $(INSTALL)\$(BASEDIR)\lib\*.*
+       -copy $(subst /,\,$(NWOS))\*.xdc           $(INSTALL)\$(BASEDIR)\lib\*.*
+
+prebuild :: FORCE
+       $(MAKE) -C $(SERVER) -f NWGNUmakefile
+       $(MAKE) -C $(PCRE) -f NWGNUmakefile
+       $(CHKNOT) $(subst /,\,$(PREBUILD_INST))\nul mkdir $(subst /,\,$(PREBUILD_INST))
+       -copy $(AP_WORK)\server\$(OBJDIR)\*.nlm $(PREBUILD_INST)\*.*
+       -copy $(PCRE)\$(basename $(OBJDIR))\*.nlm $(PREBUILD_INST)\*.*
+
 #
 # Any specialized rules here
 #
 
 vpath %.c server:modules/arch/netware:modules/http:modules/aaa:modules/mappers
 vpath %.c modules/generators:modules/metadata:modules/filters:modules/loggers
-vpath %.c os/netware:server/mpm/netware:srclib/pcre
+vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRE)
 
 #
 # Include the 'tail' makefile that has targets that depend on variables defined
@@ -361,3 +455,6 @@ vpath %.c os/netware:server/mpm/netware:srclib/pcre
 
 include $(AP_WORK)\build\NWGNUtail.inc
 
+include $(AP_WORK)\build\NWGNUscripts.inc
+
+