]> granicus.if.org Git - apache/blobdiff - NWGNUmakefile
Vote, promote.
[apache] / NWGNUmakefile
index b0082d98835d42cbf3f3c9da1509754b47a8faa7..904430d2c4532602ce54792b38b8ab9509501400 100644 (file)
@@ -1,20 +1,51 @@
+#
+# 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
 # paths to tools
 #
 
-include $(AP_WORK)\build\NWGNUhead.inc
+include $(AP_WORK)/build/NWGNUhead.inc
 
 #
 # build this level's files
@@ -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 \
-                       $(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 \
+                       $(APR)/include \
+                       $(APRUTIL)/include \
+                       $(SRC)/include \
+                       $(STDMOD)/aaa \
+                       $(STDMOD)/core \
+                       $(STDMOD)/filters \
+                       $(STDMOD)/generators \
+                       $(STDMOD)/http \
+                       $(STDMOD)/loggers \
+                       $(STDMOD)/mappers \
+                       $(STDMOD)/proxy \
+                       $(STDMOD)/ssl \
+                       $(SERVER) \
+                       $(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,26 +169,26 @@ NLM_SCREEN_NAME = Apache $(VERSION_STR) for NetWare
 
 
 #
-# If this is specified, it will override VERSION value in 
-# $(AP_WORK)\build\NWGNUenvironment.inc
+# 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
 #
-NLM_ENTRY_SYM  = _LibCPrelude
+NLM_ENTRY_SYM  =
 
 #
 # If this is specified it will be used by the link '-exit' directive
 #
-NLM_EXIT_SYM   = _LibCPostlude
+NLM_EXIT_SYM   =
 
 #
 # If this is specified it will be used by the link '-check' 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 = \
+       $(PCRELIB) \
        $(EOLIST)
 
 #
@@ -195,36 +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 \
@@ -232,22 +268,37 @@ 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_fcgi.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) \
+       $(PRELUDE) \
        $(EOLIST)
 
 #
@@ -263,7 +314,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
 #
@@ -278,26 +329,54 @@ FILE_nlm_copyright =
 # Any additional imports go here
 #
 FILES_nlm_Ximports = \
-       @netware.imp \
-       @$(APR)/aprlib.imp \
+       @aprlib.imp \
        @libc.imp \
-       @ws2nlm.imp \
+       @netware.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 \
+       @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 = \
+       $(OBJDIR)/pcre.o \
+       $(EOLIST)
+
+else
+
 FILES_lib_objs = \
-               $(EOLIST)
+       $(OBJDIR)/chartables.o \
+       $(OBJDIR)/pcre_compile.o \
+       $(OBJDIR)/pcre_exec.o \
+       $(OBJDIR)/pcre_fullinfo.o \
+       $(OBJDIR)/pcre_globals.o \
+       $(OBJDIR)/pcre_newline.o \
+       $(OBJDIR)/pcre_tables.o \
+       $(OBJDIR)/pcre_version.o \
+       $(EOLIST)
+ifeq "$(wildcard $(PCRE)/pcre_try_flipped.c)" "$(PCRE)/pcre_try_flipped.c"
+FILES_lib_objs += \
+       $(OBJDIR)/pcre_try_flipped.o \
+       $(EOLIST)
+endif 
+
+endif
 
 #
 # implement targets and dependancies (leave this section alone)
@@ -308,99 +387,95 @@ libs :: $(OBJDIR) $(TARGET_lib)
 nlms :: libs $(TARGET_nlm)
 
 #
-# 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\cgi-examples\printenv $(INSTALL)\Apache2\cgi-bin\printenv.pl
-       @echo rem copying the docs directories > xc.bat
-       @echo xcopy docs\error $(INSTALL)\Apache2\error /E /Y >> xc.bat
-       @echo xcopy docs\docroot $(INSTALL)\Apache2\htdocs /E /Y >> xc.bat
-       @echo xcopy docs\icons $(INSTALL)\Apache2\icons /E /Y >> xc.bat
-       @echo xcopy docs\man $(INSTALL)\Apache2\man /E /Y >> xc.bat
-       @echo xcopy docs\manual $(INSTALL)\Apache2\manual /E /Y >> xc.bat
-       $(CMD) xc.bat
-
-
-    
+# Updated this target to create necessary directories and copy files to the
+# correct place.  (See $(AP_WORK)/build/NWGNUhead.inc for examples)
+#
+MKCNF  = $(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -v SSLPORT=$(SSLPORT) -v MODSSL=$(WITH_SSL) -v BSDSKT=$(USE_STDSOCKETS) -f build/mkconfNW.awk $1 > $2
+
+install :: nlms instscripts FORCE
+       $(call COPY,$(OBJDIR)/$(NLM_NAME).nlm,                         $(INSTALLBASE)/)
+       $(call COPY,ABOUT_APACHE,                                      $(INSTALLBASE)/)
+       $(call COPY,CHANGES,                                           $(INSTALLBASE)/)
+       $(call COPY,LICENSE,                                           $(INSTALLBASE)/)
+       $(call COPY,README,                                            $(INSTALLBASE)/)
+       $(call COPY,VERSIONING,                                        $(INSTALLBASE)/)
+       $(call COPY,STATUS,                                            $(INSTALLBASE)/)
+       $(call COPY,support/dbmmanage.in,                              $(INSTALLBASE)/bin/dbmmanage.pl)
+       $(call COPY,support/logresolve.pl.in,                          $(INSTALLBASE)/bin/logresolve.pl)
+       $(call COPY,support/split-logfile.in,                          $(INSTALLBASE)/bin/split-logfile.pl)
+       $(call COPY,support/check_forensic,                            $(INSTALLBASE)/bin/check_forensic.sh)
+       $(call COPY,docs/conf/magic,                                   $(INSTALLBASE)/conf/)
+       $(call COPY,docs/conf/mime.types,                              $(INSTALLBASE)/conf/)
+       $(call COPY,docs/conf/charset.conv,                            $(INSTALLBASE)/conf/)
+       $(call COPY,docs/cgi-examples/printenv,                        $(INSTALLBASE)/cgi-bin/printenv.pl)
+       $(call MKCNF,docs/conf/httpd.conf.in,                          $(INSTALLBASE)/conf/httpd.conf)
+       $(call MKCNF,docs/conf/extra/httpd-autoindex.conf.in,          $(INSTALLBASE)/conf/extra/httpd-autoindex.conf)
+       $(call MKCNF,docs/conf/extra/httpd-dav.conf.in,                $(INSTALLBASE)/conf/extra/httpd-dav.conf)
+       $(call MKCNF,docs/conf/extra/httpd-default.conf.in,            $(INSTALLBASE)/conf/extra/httpd-default.conf)
+       $(call MKCNF,docs/conf/extra/httpd-info.conf.in,               $(INSTALLBASE)/conf/extra/httpd-info.conf)
+       $(call MKCNF,docs/conf/extra/httpd-languages.conf.in,          $(INSTALLBASE)/conf/extra/httpd-languages.conf)
+       $(call MKCNF,docs/conf/extra/httpd-manual.conf.in,             $(INSTALLBASE)/conf/extra/httpd-manual.conf)
+       $(call MKCNF,docs/conf/extra/httpd-mpm.conf.in,                $(INSTALLBASE)/conf/extra/httpd-mpm.conf)
+       $(call MKCNF,docs/conf/extra/httpd-multilang-errordoc.conf.in, $(INSTALLBASE)/conf/extra/httpd-multilang-errordoc.conf)
+       $(call MKCNF,docs/conf/extra/httpd-userdir.conf.in,            $(INSTALLBASE)/conf/extra/httpd-userdir.conf)
+       $(call MKCNF,docs/conf/extra/httpd-vhosts.conf.in,             $(INSTALLBASE)/conf/extra/httpd-vhosts.conf)
+       $(call MKCNF,docs/conf/extra/httpd-ssl.conf.in,                $(INSTALLBASE)/conf/extra/httpd-ssl.conf)
+       $(call MKCNF,docs/conf/extra/proxy-html.conf.in,               $(INSTALLBASE)/conf/extra/proxy-html.conf)
+       $(call COPYR,docs/docroot,                                     $(INSTALLBASE)/htdocs)
+       $(call COPYR,docs/error,                                       $(INSTALLBASE)/error)
+       $(call COPYR,docs/icons,                                       $(INSTALLBASE)/icons)
+       $(call COPYR,docs/man,                                         $(INSTALLBASE)/man)
+       $(call COPYR,docs/manual,                                      $(INSTALLBASE)/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))\include\*.h              $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(NWOS))\*.imp                    $(INSTALL)\Apache2\lib\*.*
-       -copy $(subst /,\,$(APR))\include\*.h               $(INSTALL)\Apache2\include\*.*
-       -copy $(subst /,\,$(APR))\arch\netware\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\*.*
-    
+       $(call COPY,$(SRC)/include/*.h,                                $(INSTALLBASE)/include/)
+       $(call COPY,$(NWOS)/*.h,                                       $(INSTALLBASE)/include/)
+       $(call COPY,$(APR)/include/*.h,                                $(INSTALLBASE)/include/)
+       $(call COPY,$(APRUTIL)/include/*.h,                            $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/core/mod_so.h,                           $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/core/mod_watchdog.h,                     $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/cache/mod_cache.h,                       $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/cache/cache_common.h,                    $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/database/mod_dbd.h,                      $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/dav/main/mod_dav.h,                      $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/filters/mod_include.h,                   $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/generators/mod_cgi.h,                    $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/generators/mod_status.h,                 $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/loggers/mod_log_config.h,                $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/mappers/mod_rewrite.h,                   $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/proxy/mod_proxy.h,                       $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/session/mod_session.h,                   $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/ssl/mod_ssl.h,                           $(INSTALLBASE)/include/)
+       $(call COPY,$(STDMOD)/ssl/mod_ssl_openssl.h,                   $(INSTALLBASE)/include/)
+       $(call COPY,$(APR)/*.imp,                                      $(INSTALLBASE)/lib/)
+       $(call COPY,$(NWOS)/*.imp,                                     $(INSTALLBASE)/lib/)
+       $(call COPY,$(NWOS)/*.xdc,                                     $(INSTALLBASE)/lib/)
+       $(call COPY,$(APBUILD)/NWGNU*.inc,                             $(INSTALLBASE)/build/)
+
+prebuild :: FORCE
+       $(MAKE) -C $(SERVER) -f NWGNUmakefile
+       $(MAKE) -C $(PCRE) -f NWGNUmakefile
+       $(call MKDIR,$(PREBUILD_INST))
+       $(call COPY,$(SERVER)/$(OBJDIR)/*.nlm,                         $(PREBUILD_INST)/)
+       $(call COPY,$(PCRE)/$(OBJDIR)/*.nlm,                           $(PREBUILD_INST)/)
+
 #
 # Any specialized rules here
 #
 
-$(OBJDIR)/%.o: server/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/arch/netware/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/http/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/aaa/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/mappers/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/generators/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
+vpath %.c server:modules/arch/netware:modules/http:modules/aaa:modules/mappers
+vpath %.c modules/generators:modules/metadata:modules/filters:modules/loggers
+vpath %.c modules/core:os/netware:server/mpm/netware:$(PCRE)
 
-$(OBJDIR)/%.o: modules/metadata/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/filters/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: modules/loggers/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: os/netware/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: server/mpm/netware/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
-
-$(OBJDIR)/%.o: srclib/pcre/%.c $(OBJDIR)\cc.opt
-       @echo compiling $<
-       $(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
+$(OBJDIR)/chartables.o: os/netware/chartables.c
 
 #
 # Include the 'tail' makefile that has targets that depend on variables defined
 # in this makefile
 #
 
-include $(AP_WORK)\build\NWGNUtail.inc
+include $(APBUILD)/NWGNUtail.inc
+
+include $(APBUILD)/NWGNUscripts.inc
+