|  | # | 
|  | # Make sure all needed macro's are defined | 
|  | # | 
|  |  | 
|  | OSSLINC = $(OSSLSDK)/outinc_nw_libc | 
|  | OSSLLIB = $(OSSLSDK)/out_nw_libc | 
|  | OSSLAPP = $(OSSLSDK)/apps | 
|  |  | 
|  | # | 
|  | # Get the 'head' of the build environment if necessary.  This includes default | 
|  | # targets and paths to tools | 
|  | # | 
|  |  | 
|  | ifndef EnvironmentDefined | 
|  | include $(AP_WORK)/build/NWGNUhead.inc | 
|  | endif | 
|  |  | 
|  | V_PATH = \ | 
|  | $(SERFSRC) \ | 
|  | $(SERFSRC)/buckets \ | 
|  | $(ZLIBSDK) \ | 
|  | $(EOLIST) | 
|  |  | 
|  | ifeq "$(wildcard $(SERFSRC)/incoming.c)" "$(SERFSRC)/incoming.c" | 
|  | V_PATH += \ | 
|  | $(SERFSRC)/auth \ | 
|  | $(EOLIST) | 
|  | endif | 
|  |  | 
|  | # | 
|  | # These directories will be at the beginning of the include list, followed by | 
|  | # INCDIRS | 
|  | # | 
|  | XINCDIRS	+= \ | 
|  | $(V_PATH) \ | 
|  | $(OSSLINC) \ | 
|  | $(OSSLINC)/openssl \ | 
|  | $(APR)/include \ | 
|  | $(APRUTIL)/include \ | 
|  | $(SRC)/include \ | 
|  | $(NWOS) \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These flags will come after CFLAGS | 
|  | # | 
|  | XCFLAGS		+= \ | 
|  | -relax_pointers \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These defines will come after DEFINES | 
|  | # | 
|  | XDEFINES	+= \ | 
|  | -DHAVE_SERF_H \ | 
|  | -DHAVE_OPENSSL \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These flags will be added to the link.opt file | 
|  | # | 
|  | XLFLAGS		+= \ | 
|  | -l $(OSSLLIB) \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These values will be appended to the correct variables based on the value of | 
|  | # RELEASE | 
|  | # | 
|  | ifeq "$(RELEASE)" "debug" | 
|  | XINCDIRS	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XCFLAGS		+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XDEFINES	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XLFLAGS		+= \ | 
|  | $(EOLIST) | 
|  | endif | 
|  |  | 
|  | ifeq "$(RELEASE)" "noopt" | 
|  | XINCDIRS	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XCFLAGS		+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XDEFINES	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XLFLAGS		+= \ | 
|  | $(EOLIST) | 
|  | endif | 
|  |  | 
|  | ifeq "$(RELEASE)" "release" | 
|  | XINCDIRS	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XCFLAGS		+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XDEFINES	+= \ | 
|  | $(EOLIST) | 
|  |  | 
|  | XLFLAGS		+= \ | 
|  | $(EOLIST) | 
|  | endif | 
|  |  | 
|  | # | 
|  | # These are used by the link target if an NLM is being generated | 
|  | # This is used by the link 'name' directive to name the nlm.  If left blank | 
|  | # TARGET_nlm (see below) will be used. | 
|  | # | 
|  | NLM_NAME	= serf | 
|  |  | 
|  | # | 
|  | # This is used by the link '-desc ' directive. | 
|  | # If left blank, NLM_NAME will be used. | 
|  | # | 
|  | NLM_DESCRIPTION	= Apache $(VERSION_STR) Serf Module | 
|  |  | 
|  | # | 
|  | # This is used by the '-threadname' directive.  If left blank, | 
|  | # NLM_NAME Thread will be used. | 
|  | # | 
|  | NLM_THREAD_NAME	= Serf Module | 
|  |  | 
|  | # | 
|  | # If this is specified, it will override VERSION value in | 
|  | # $(AP_WORK)/build/NWGNUenvironment.inc | 
|  | # | 
|  | NLM_VERSION	= | 
|  |  | 
|  | # | 
|  | # If this is specified, it will override the default of 64K | 
|  | # | 
|  | NLM_STACK_SIZE	= 8192 | 
|  |  | 
|  |  | 
|  | # | 
|  | # If this is specified it will be used by the link '-entry' directive | 
|  | # | 
|  | NLM_ENTRY_SYM	= | 
|  |  | 
|  | # | 
|  | # If this is specified it will be used by the link '-exit' directive | 
|  | # | 
|  | NLM_EXIT_SYM	= | 
|  |  | 
|  | # | 
|  | # If this is specified it will be used by the link '-check' directive | 
|  | # | 
|  | NLM_CHECK_SYM	= | 
|  |  | 
|  | # | 
|  | # If these are specified it will be used by the link '-flags' directive | 
|  | # | 
|  | NLM_FLAGS	= | 
|  |  | 
|  | # | 
|  | # 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		= | 
|  |  | 
|  | # | 
|  | # If there is an NLM target, put it here | 
|  | # | 
|  | TARGET_nlm = \ | 
|  | $(OBJDIR)/$(NLM_NAME).nlm \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # If there is an LIB target, put it here | 
|  | # | 
|  | TARGET_lib = \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These are the OBJ files needed to create the NLM target above. | 
|  | # Paths must all use the '/' character | 
|  | # | 
|  | FILES_nlm_objs = \ | 
|  | $(OBJDIR)/mod_serf.o \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # Build serf from source | 
|  | FILES_nlm_objs += \ | 
|  | $(OBJDIR)/context.o \ | 
|  | $(OBJDIR)/aggregate_buckets.o \ | 
|  | $(OBJDIR)/allocator.o \ | 
|  | $(OBJDIR)/barrier_buckets.o \ | 
|  | $(OBJDIR)/buckets.o \ | 
|  | $(OBJDIR)/chunk_buckets.o \ | 
|  | $(OBJDIR)/dechunk_buckets.o \ | 
|  | $(OBJDIR)/deflate_buckets.o \ | 
|  | $(OBJDIR)/file_buckets.o \ | 
|  | $(OBJDIR)/headers_buckets.o \ | 
|  | $(OBJDIR)/limit_buckets.o \ | 
|  | $(OBJDIR)/request_buckets.o \ | 
|  | $(OBJDIR)/response_buckets.o \ | 
|  | $(OBJDIR)/simple_buckets.o \ | 
|  | $(OBJDIR)/socket_buckets.o \ | 
|  | $(OBJDIR)/ssl_buckets.o \ | 
|  | $(EOLIST) | 
|  |  | 
|  | ifeq "$(wildcard $(SERFSRC)/incoming.c)" "$(SERFSRC)/incoming.c" | 
|  | ifeq "$(wildcard $(SERFSRC)/buckets/iovec_buckets.c)" "$(SERFSRC)/buckets/iovec_buckets.c" | 
|  | FILES_nlm_objs += \ | 
|  | $(OBJDIR)/auth.o \ | 
|  | $(OBJDIR)/auth_basic.o \ | 
|  | $(OBJDIR)/auth_digest.o \ | 
|  | $(OBJDIR)/bwtp_buckets.o \ | 
|  | $(OBJDIR)/incoming.o \ | 
|  | $(OBJDIR)/iovec_buckets.o \ | 
|  | $(OBJDIR)/outgoing.o \ | 
|  | $(OBJDIR)/ssltunnel.o \ | 
|  | $(EOLIST) | 
|  | ifeq "$(wildcard $(SERFSRC)/buckets/response_body_buckets.c)" "$(SERFSRC)/buckets/response_body_buckets.c" | 
|  | FILES_nlm_objs += \ | 
|  | $(OBJDIR)/response_body_buckets.o \ | 
|  | $(EOLIST) | 
|  | endif | 
|  | else | 
|  | $(error This libserf version is broken for NetWare platform!) | 
|  | endif | 
|  | endif | 
|  |  | 
|  | # Build zlib from source | 
|  | FILES_nlm_objs += \ | 
|  | $(OBJDIR)/adler32.o \ | 
|  | $(OBJDIR)/crc32.o \ | 
|  | $(OBJDIR)/deflate.o \ | 
|  | $(OBJDIR)/inflate.o \ | 
|  | $(OBJDIR)/inffast.o \ | 
|  | $(OBJDIR)/inftrees.o \ | 
|  | $(OBJDIR)/trees.o \ | 
|  | $(OBJDIR)/zutil.o \ | 
|  | $(EOLIST) | 
|  |  | 
|  | ifeq "$(wildcard $(ZLIBSDK)/infblock.c)" "$(ZLIBSDK)/infblock.c" | 
|  | FILES_nlm_objs += \ | 
|  | $(OBJDIR)/infblock.o \ | 
|  | $(OBJDIR)/infcodes.o \ | 
|  | $(OBJDIR)/infutil.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 = \ | 
|  | $(OSSLLIB)/crypto.lib \ | 
|  | $(OSSLLIB)/ssl.lib \ | 
|  | $(PRELUDE) \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These are the modules that the above NLM target depends on to load. | 
|  | # These will be added as a module command in the link.opt file. | 
|  | # | 
|  | FILES_nlm_modules = \ | 
|  | aprlib \ | 
|  | libc \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # 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 | 
|  | # | 
|  | FILE_nlm_hlp = | 
|  |  | 
|  | # | 
|  | # If this is specified, it will override $(NWOS)\copyright.txt. | 
|  | # | 
|  | FILE_nlm_copyright = | 
|  |  | 
|  | # | 
|  | # Any additional imports go here | 
|  | # | 
|  | FILES_nlm_Ximports = \ | 
|  | @aprlib.imp \ | 
|  | @httpd.imp \ | 
|  | @libc.imp \ | 
|  | GetProcessSwitchCount \ | 
|  | RunningProcess \ | 
|  | GetSuperHighResolutionTimer \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # Link with Winsock if standard sockets are NOT being used. | 
|  | ifndef USE_STDSOCKETS | 
|  | FILES_nlm_Ximports += @ws2nlm.imp \ | 
|  | $(EOLIST) | 
|  | endif | 
|  |  | 
|  | # | 
|  | # Any symbols exported to here | 
|  | # | 
|  | FILES_nlm_exports = \ | 
|  | serf_module \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # These are the OBJ files needed to create the LIB target above. | 
|  | # Paths must all use the '/' character | 
|  | # | 
|  | FILES_lib_objs = \ | 
|  | $(EOLIST) | 
|  |  | 
|  | # | 
|  | # implement targets and dependancies (leave this section alone) | 
|  | # | 
|  |  | 
|  | 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 | 
|  |  | 
|  | # | 
|  | # Any specialized rules here | 
|  | # | 
|  |  | 
|  | vpath %.c $(V_PATH) | 
|  |  | 
|  | # | 
|  | # Include the 'tail' makefile that has targets that depend on variables defined | 
|  | # in this makefile | 
|  | # | 
|  |  | 
|  | include $(APBUILD)/NWGNUtail.inc |