You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by bn...@apache.org on 2002/03/01 23:25:26 UTC
cvs commit: apr NWGNUmakefile
bnicholes 02/03/01 14:25:26
Added: build NWGNUtail.inc NWGNUmakefile NWGNUhead.inc
NWGNUenvironment.inc
. NWGNUmakefile
Log:
Switching from a project build file to GNU make files
Revision Changes Path
1.1 apr/build/NWGNUtail.inc
Index: NWGNUtail.inc
===================================================================
#
# This contains final targets and should be included at the end of any
# NWGNUmakefile file
#
#
# If we are going to create an nlm, make sure we have assigned variables to
# use during the link.
#
echo NLM_NAME=$(NLM_NAME)
ifndef NLM_NAME
NLM_NAME = $(TARGET_nlm)
endif
ifndef NLM_DESCRIPTION
NLM_DESCRIPTION = $(NLM_NAME)
endif
ifndef NLM_THREAD_NAME
NLM_THREAD_NAME = $(NLM_NAME) Thread
endif
#
# Create dependency lists based on the files available
#
CCOPT_DEPENDS = \
$(APR_WORK)\build\NWGNUhead.inc \
$(APR_WORK)\build\NWGNUenvironment.inc \
$(APR_WORK)\build\NWGNUtail.inc \
NWGNUmakefile \
$(CUSTOM_INI) \
$(EOLIST)
CPPOPT_DEPENDS = \
$(APR_WORK)\build\NWGNUhead.inc \
$(APR_WORK)\build\NWGNUenvironment.inc \
$(APR_WORK)\build\NWGNUtail.inc \
NWGNUmakefile \
$(CUSTOM_INI) \
$(EOLIST)
$(NLM_NAME)_LINKOPT_DEPENDS = \
$(TARGET_lib) \
$(APR_WORK)\build\NWGNUenvironment.inc \
NWGNUmakefile \
$(APR_WORK)\build\NWGNUtail.inc \
$(CUSTOM_INI) \
$(EOLIST)
ifeq "$(words $(strip $(TARGET_lib)))" "1"
LIB_NAME = $(basename $(notdir $(TARGET_lib)))
$(LIB_NAME)_LIBLST_DEPENDS = \
$(FILES_lib_objs) \
$(APR_WORK)\build\NWGNUenvironment.inc \
NWGNUmakefile \
$(APR_WORK)\build\NWGNUtail.inc \
$(CUSTOM_INI) \
$(EOLIST)
endif
ifeq "$(wildcard NWGNU$(LIB_NAME))" "NWGNU$(LIB_NAME)"
$(LIB_NAME)_LIBLST_DEPENDS += NWGNU$(LIB_NAME)
endif
ifeq "$(wildcard NWGNU$(NLM_NAME))" "NWGNU$(NLM_NAME)"
$(NLM_NAME)_LINKOPT_DEPENDS += NWGNU$(NLM_NAME)
CCOPT_DEPENDS += NWGNU$(NLM_NAME)
CPPOPT_DEPENDS += NWGNU$(NLM_NAME)
endif
#
# Generic compiler rules
#
$(OBJDIR)/%.o: %.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)\cc.opt: $(CCOPT_DEPENDS)
@echo CCOPT_DEPENDS=$(CCOPT_DEPENDS)
$(CHK) $@ $(DEL) $@
@echo Generating $@
ifneq "$(strip $(CFLAGS))" ""
@echo $(CFLAGS) >> $@
endif
ifneq "$(strip $(XCFLAGS))" ""
@echo $(XCFLAGS) >> $@
endif
ifneq "$(strip $(XINCDIRS))" ""
@echo $(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir)) >> $@
endif
ifneq "$(strip $(INCDIRS))" ""
@echo $(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir)) >> $@
endif
ifneq "$(strip $(DEFINES))" ""
@echo $(DEFINES) >> $@
endif
ifneq "$(strip $(XDEFINES))" ""
@echo $(XDEFINES) >> $@
endif
$(OBJDIR)/%.o: %.cpp $(OBJDIR)\cpp.opt
@echo Compiling $<
$(CPP) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cpp.opt
$(OBJDIR)\cpp.opt: $(CPPOPT_DEPENDS)
$(CHK) $@ $(DEL) $@
@echo Generating $@
ifneq "$(strip $(CFLAGS))" ""
@echo $(CFLAGS) >> $@
endif
ifneq "$(strip $(XCFLAGS))" ""
@echo $(XCFLAGS) >> $@
endif
ifneq "$(strip $(XINCDIRS))" ""
@echo $(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir)) >> $@
endif
ifneq "$(strip $(INCDIRS))" ""
@echo $(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir)) >> $@
endif
ifneq "$(strip $(DEFINES))" ""
@echo $(DEFINES) >> $@
endif
ifneq "$(strip $(XDEFINES))" ""
@echo $(XDEFINES) >> $@
endif
#
# Rules to build libraries
#
# If we only have one target library then build it
ifeq "$(words $(strip $(TARGET_lib)))" "1"
$(TARGET_lib) : $(OBJDIR)\$(LIB_NAME)_lib.lst
@echo Generating $@
$(CHK) $(OBJDIR)\$(@F) $(DEL) $(OBJDIR)\$(@F)
$(LIB) -o $(OBJDIR)\$(@F) @$?
$(OBJDIR)\$(LIB_NAME)_lib.lst: $($(LIB_NAME)_LIBLST_DEPENDS)
$(CHK) $@ $(DEL) $@
@echo Generating $@
ifneq "$(strip $(FILES_lib_objs))" ""
@echo $(foreach objfile,$(FILES_lib_objs),$(subst /,\,$(objfile)) ) >> $@
endif
else # We must have more than one target library so load the individual makefiles
$(OBJDIR)/%.lib: NWGNU% $(APR_WORK)\build\NWGNUhead.inc $(APR_WORK)\build\NWGNUtail.inc $(APR_WORK)\build\NWGNUenvironment.inc FORCE
@echo Calling $<
$(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
endif
#
# Rules to build nlms.
#
vpath libcpre.o $(NOVELLLIBC)\imports
# If we only have one target NLM then build it
ifeq "$(words $(strip $(TARGET_nlm)))" "1"
$(TARGET_nlm) : $(FILES_nlm_objs) $(FILES_nlm_libs) $(OBJDIR)\$(NLM_NAME)_link.opt
@echo Linking $@
$(LINK) @$(OBJDIR)\$(NLM_NAME)_link.opt
# This will force the link option file to be rebuilt if we change the
# corresponding makefile
$(OBJDIR)\$(NLM_NAME)_link.opt : $($(NLM_NAME)_LINKOPT_DEPENDS)
$(CHK) $(OBJDIR)\$(@F) $(DEL) $(OBJDIR)\$(@F)
$(CHK) $(OBJDIR)\$(NLM_NAME)_link.def $(DEL) $(OBJDIR)\$(NLM_NAME)_link.def
@echo Generating $@
@echo -warnings off >> $@
@echo -zerobss >> $@
@echo -desc "$(NLM_DESCRIPTION)" >> $@
@echo -o $(TARGET_nlm) >> $@
ifneq "$(FILE_nlm_copyright)" ""
@-type $(FILE_nlm_copyright) >> $@
endif
ifeq "$(RELEASE)" "debug"
@echo -g >> $@
@echo -sym internal >> $@
@echo -sym codeview4 >> $@
@echo -osym $(OBJDIR)\$(NLM_NAME).sym >> $@
else
@echo -sym internal >> $@
endif
@echo -screenname "Apache for NetWare" >> $@
ifneq "$(NLM_VERSION)" ""
@echo -nlmversion=$(NLM_VERSION) >> $@
else
@echo -nlmversion=$(VERSION) >> $@
endif
@echo -l $(APR)/$(OBJDIR) >> $@
@echo -l $(APRUTIL)/$(OBJDIR) >> $@
@echo -l $(XML)/$(OBJDIR) >> $@
@echo -l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime" >> $@
@echo -l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++" >> $@
@echo -l $(NOVELLLIBC)/imports >> $@
ifneq "$(LDAPSDK)" ""
@echo -l $(LDAPSDK)/lib/nlm >> $@
endif
@echo -nodefaults >> $@
@echo -map $(OBJDIR)\$(NLM_NAME).map>> $@
@echo -threadname "$(NLM_THREAD_NAME)" >> $@
ifneq "$(NLM_STACK_SIZE)" ""
@echo -stacksize $(subst K,000,$(subst k,K,$(strip $(NLM_STACK_SIZE)))) >> $@
else
@echo -stacksize 64000 >> $@
endif
ifneq "$(NLM_ENTRY_SYM)" ""
@echo -entry $(NLM_ENTRY_SYM) >> $@
endif
ifneq "$(NLM_EXIT_SYM)" ""
@echo -exit $(NLM_EXIT_SYM) >> $@
endif
ifneq "$(NLM_CHECK_SYM)" ""
@echo -check $(NLM_CHECK_SYM) >> $@
endif
ifneq "$(NLM_FLAGS)" ""
@echo -flags $(NLM_FLAGS) >> $@
endif
ifneq "$(strip $(FILES_nlm_objs))" ""
@echo $(foreach objfile,$(strip $(FILES_nlm_objs)),$(subst /,\,$(objfile))) >> $@
endif
ifneq "$(FILES_nlm_libs)" ""
@echo $(foreach libfile, $(notdir $(strip $(FILES_nlm_libs))),-l$(subst /,\,$(libfile))) >> $@
endif
@echo -commandfile $(OBJDIR)\$(NLM_NAME)_link.def >> $@
ifneq "$(FILE_nlm_msg)" ""
@echo Messages $(FILE_nlm_msg) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
ifneq "$(FILE_nlm_hlp)" ""
@echo Help $(FILE_nlm_hlp) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
ifneq "$(FILES_nlm_modules)" ""
@echo module $(foreach module,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_modules))),$(subst /,\,$(module))) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
ifneq "$(FILES_nlm_Ximports)" ""
@echo Import $(foreach import,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_Ximports))),$(subst /,\,$(import))) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
ifneq "$(FILES_nlm_exports)" ""
@echo Export $(foreach export,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_exports))),$(subst /,\,$(export))) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
ifneq "$(strip $(XLFLAGS))" ""
@echo $(XLFLAGS) >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
# if APACHE_UNIPROC is defined, don't include XDCData
ifndef APACHE_UNIPROC
ifneq "$(string $(XDCDATA))" ""
@echo XDCData $(XDCDATA) >> $(OBJDIR)\$(NLM_NAME)_link.def
else
@echo XDCData $(APR)\misc\netware\apr.xdc >> $(OBJDIR)\$(NLM_NAME)_link.def
endif
endif
else # more than one target so look for individual makefiles.
# Only include these if NO_LICENSE_FILE isn't set to prevent excessive
# recursion
ifndef NO_LICENSE_FILE
$(OBJDIR)/%.nlm: NWGNU% $(APR_WORK)\build\NWGNUhead.inc $(APR_WORK)\build\NWGNUtail.inc $(APR_WORK)\build\NWGNUenvironment.inc $(CUSTOM_INI) FORCE
@echo Calling $<
$(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
$(CMD) echo.
else
$(TARGET_nlm):
endif # NO_LICENSE_FILE
endif # multiple targets
1.1 apr/build/NWGNUmakefile
Index: NWGNUmakefile
===================================================================
#
# Declare the sub-directories to be built here
#
SUBDIRS = \
$(EOLIST)
#
# Get the 'head' of the build environment. This includes default targets and
# paths to tools
#
include $(APR_WORK)\build\NWGNUhead.inc
#
# build this level's files
FILES_prebuild_headers = \
$(APR)/include/apr.h \
$(APRUTIL)/include/apu.h \
$(APRUTIL)/include/apr_ldap.h \
$(APRUTIL)/include/private/apu_config.h \
$(APRUTIL)/include/private/apu_select_dbm.h \
$(APRUTIL)/xml/expat/lib/expat.h \
$(APRUTIL)/xml/expat/lib/config.h \
$(EOLIST)
nlms :: $(APR)/aprlib.imp
$(APR)/aprlib.imp : make_nw_export.awk nw_export.i
@echo Generating $(subst /,\,$@)
awk -f make_nw_export.awk nw_export.i | sort >$(APR)/aprlib.imp
nw_export.i : nw_export.inc $(FILES_prebuild_headers) cc.opt
@echo Generating $(subst /,\,$@)
$(CC) $< @cc.opt
cc.opt : NWGNUmakefile $(APR_WORK)\build\NWGNUenvironment.inc $(APR_WORK)\build\NWGNUhead.inc $(APR_WORK)\build\NWGNUtail.inc $(CUSTOM_INI)
$(CHK) $@ $(DEL) $@
@echo -P >> $@
@echo -EP >> $@
@echo -nosyspath >> $@
@echo -w nocmdline >> $@
@echo -DNETWARE >> $@
@echo -I..\include >> $@
@echo -I..\include\arch\netware >> $@
@echo -I..\include\arch\unix >> $@
@echo -I..\..\apr-util\include >> $@
@echo -ir $(NOVELLLIBC) >> $@
$(APR)/include/%.h: $(subst /,\,$(APR))\include\%.hnw
@echo Creating $(subst /,\,$@)
copy $< $(subst /,\,$(APR))\include\$(@F)
$(APRUTIL)/include/%.h: $(subst /,\,$(APRUTIL))\include\%.hnw
@echo Creating $(subst /,\,$@)
copy $< $(subst /,\,$(APRUTIL))\include\$(@F)
$(APRUTIL)/include/private/%.h: $(subst /,\,$(APRUTIL))\include\private\%.hw
@echo Creating $(subst /,\,$@)
copy $< $(subst /,\,$(APRUTIL))\include\private\$(@F)
$(APRUTIL)/xml/expat/lib/%.h: $(subst /,\,$(APRUTIL))\xml\expat\lib\%.hnw
@echo Creating $(subst /,\,$@)
copy $< $(subst /,\,$(APRUTIL))\xml\expat\lib\$(@F)
$(APRUTIL)/xml/expat/lib/%.h: $(subst /,\,$(APRUTIL))\xml\expat\lib\%.h.in
@echo Creating $(subst /,\,$@)
copy $< $(subst /,\,$(APRUTIL))\xml\expat\lib\$(@F)
#
# You can use this target if all that is needed is to copy files to the
# installation area
#
install :: nlms FORCE
clean ::
$(CHK) nw_export.i $(DEL) nw_export.i
$(CHK) cc.opt $(DEL) cc.opt
$(CHK) $(subst /,\,$(APR))\include\apr.h $(DEL) $(subst /,\,$(APR))\include\apr.h
$(CHK) $(subst /,\,$(APRUTIL))\include\apu.h $(DEL) $(subst /,\,$(APRUTIL))\include\apu.h
$(CHK) $(subst /,\,$(APRUTIL))\include\apr_ldap.h $(DEL) $(subst /,\,$(APRUTIL))\include\apr_ldap.h
$(CHK) $(subst /,\,$(APRUTIL))\include\private\apu_config.h $(DEL) $(subst /,\,$(APRUTIL))\include\private\apu_config.h
$(CHK) $(subst /,\,$(APRUTIL))\include\private\apu_select_dbm.h $(DEL) $(subst /,\,$(APRUTIL))\include\private\apu_select_dbm.h
$(CHK) $(subst /,\,$(APRUTIL))\xml\expat\lib\expat.h $(DEL) $(subst /,\,$(APRUTIL))\xml\expat\lib\expat.h
$(CHK) $(subst /,\,$(APRUTIL))\xml\expat\lib\config.h $(DEL) $(subst /,\,$(APRUTIL))\xml\expat\lib\config.h
$(CHK) $(subst /,\,$(APR))\aprlib.imp $(DEL) $(subst /,\,$(APR))\aprlib.imp
1.1 apr/build/NWGNUhead.inc
Index: NWGNUhead.inc
===================================================================
#
# Obtain the global build environment
#
include $(APR_WORK)\build\NWGNUenvironment.inc
#
# Define base targets and rules
#
TARGETS = libs nlms install clobber_libs clobber_nlms clean installdev
.PHONY : $(TARGETS) default all help $(NO_LICENSE_FILE)
# Here is where we will use the NO_LICENSE_FILE variable to see if we need to
# restart the make with it defined
ifdef NO_LICENSE_FILE
default: NO_LICENSE_FILE
all: NO_LICENSE_FILE
install :: NO_LICENSE_FILE
installdev :: NO_LICENSE_FILE
NO_LICENSE_FILE :
$(MAKE) $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(METROWERKS)\license.dat"
else # LM_LICENSE_FILE must be defined so use the real targets
default: $(SUBDIRS) libs nlms
all: $(SUBDIRS) libs nlms install
$(TARGETS) :: $(SUBDIRS)
install :: nlms $(INSTDIRS)
installdev :: $(INSTDEVDIRS)
$(INSTDIRS) ::
$(CHKNOT) $@\NUL mkdir $@
$(INSTDEVDIRS) ::
$(CHKNOT) $@\NUL mkdir $@
endif #NO_LICENSE_FILE check
help :
@echo targets for RELEASE=$(RELEASE):
@echo (default) . . . . libs nlms
@echo all . . . . . . . does everything (libs nlms install)
@echo libs. . . . . . . builds all libs
@echo nlms. . . . . . . builds all nlms
@echo install . . . . . builds libs and nlms and copies install files to
@echo "$(INSTALL)"
@echo clean . . . . . . deletes $(OBJDIR) dirs, *.err, and *.map
@echo clobber_all . . . deletes all possible output from the make
@echo clobber_install . deletes all files in $(INSTALL)
@$(CMD) echo.
@echo Multiple targets can be used on a single nmake command line -
@echo (i.e. $(MAKE) clean all)
@$(CMD) echo.
@echo You can also specify RELEASE=debug, RELEASE=noopt, or RELEASE=optimized
@echo The default is RELEASE=optimized
clobber_all :: clean clobber_install
clobber_install ::
-$(DELTREE) $(INSTALL) 2>NUL
#
# build recursive targets
#
$(SUBDIRS) : FORCE
ifneq "$(MAKECMDGOALS)" "clean"
$(CMD) echo.
@echo Building $(CURDIR)/$@
endif
$(MAKE) -C $@ $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(LM_LICENSE_FILE)"
$(CMD) echo.
FORCE:
#
# Standard targets
#
clean :: $(SUBDIRS)
@echo Cleaning up $(CURDIR)
-$(DELTREE) $(OBJDIR) 2> NUL
$(CHK) *.err $(DEL) *.err
$(CHK) *.map $(DEL) *.map
$(CHK) *.d $(DEL) *.d
$(CHK) *.tmp $(DEL) *.tmp
-$(DELTREE) $(OBJDIR) 2> NUL
$(OBJDIR) ::
$(CHKNOT) $(OBJDIR)\nul mkdir $(OBJDIR)
1.1 apr/build/NWGNUenvironment.inc
Index: NWGNUenvironment.inc
===================================================================
#
# Setup needed Tools and Libraries
#
ifeq "$(wildcard $(APR_WORK)\build\NWGNUcustom.inc)" "$(APR_WORK)\build\NWGNUcustom.inc"
include $(APR_WORK)\build\NWGNUcustom.inc
CUSTOM_INI = $(AP_WORK)\NWGNUcustom.ini
endif
ifndef VERBOSE
.SILENT:
endif
#
# Treat like an include
#
ifndef EnvironmentDefined
#
# simple macros for parsing makefiles
#
EOLIST:=
EMPTY :=
COMMA := ,
SPACE := $(EMPTY) $(EMPTY)
#
# Base environment
#
# Try and handle case issues
ifndef NOVELLLIBC
ifdef NovellLibC
NOVELLLIBC = $(NovellLibC)
endif
endif
ifndef NOVELLLIBC
NOVELLLIBC = C:/novell/ndk/libc
endif
# This is a placeholder
# ifndef LDAPSDK
# LDAPSDK = C:/novell/ndk/cldapsdk
# endif
ifndef METROWERKS
METROWERKS = C:\Program Files\Metrowerks\CodeWarrior
endif
# If LM_LICENSE_FILE isn't defined, define a variable that can be used to
# restart make with it defined
ifndef LM_LICENSE_FILE
NO_LICENSE_FILE = NO_LICENSE_FILE
endif
#
# Set the Release type that you want to build, possible values are:
#
# debug - full debug switches are set
# noopt - normal switches are set (default)
# optimized - optimization switches are set
ifdef reltype
RELEASE=$(reltype)
endif
ifdef RELTYPE
RELEASE=$(RELTYPE)
endif
ifdef debug
RELEASE=debug
endif
ifdef DEBUG
RELEASE=debug
endif
ifdef optimized
RELEASE=optimized
endif
ifdef OPTIMIZED
RELEASE=optimized
endif
ifndef RELEASE
RELEASE = optimized
endif
ifeq "$(RELEASE)" "debug"
OBJDIR = Debug
endif
ifeq "$(RELEASE)" "noopt"
OBJDIR = Noopt
endif
ifeq "$(RELEASE)" "optimized"
OBJDIR = Release
endif
#
# Setup compiler information
#
# MetroWerks NLM tools
CC = mwccnlm
CPP = mwccnlm
LINK = mwldnlm
LIB = mwldnlm -type library -w nocmdline
NOVI = $(NOVELLLIBC)\imports
INCDIRS = $(NOVELLLIBC)\include;$(NOVELLLIBC)\include\nks;$(NOVELLLIBC)\include\winsock;
DEFINES = -DNETWARE
#
# MetroWerks static Libraries
CLIB3S = $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\Runtime\mwcrtl.lib
MATH3S =
PLIB3S = $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\MSL C++\MWCPP.lib
# Base compile flags
# and prefix or precompiled header added here.
# The default flags are as follows:
#
# -c compile only, no link
# -nosyspath treat #include <...> like #include "..."
# -Cpp_exceptions off disable C++ exceptions
# -RTTI off disable C++ run-time typing information
# -align 4 align on 4 byte bounderies
# -w nocmdline disable command-line driver/parser warnings
# -proc PII generate code base on Pentium II instruction set
# -inst mmx use MMX extensions
CFLAGS = -c -nosyspath -Cpp_exceptions off -RTTI off -align 4 -w nocmdline -proc PII -inst mmx
# -g generate debugging information
# -O1 level 1 optimizations
ifeq "$(RELEASE)" "debug"
CFLAGS += -g -O1
endif
# -O4,p level 4 optimizations, optimize for speed
ifeq "$(RELEASE)" "optimized"
CFLAGS += -O4,p
endif
# -prefix pre_nw.h #include pre_nw.h for all files
CFLAGS += -prefix pre_nw.h
PATH:=$(PATH);$(METROWERKS)\bin;$(METROWERKS)\Other Metrowerks Tools\Command Line Tools
#
# Declare major project deliverables output directories here
#
ifdef DEST
INSTALL = $(DEST)
ifeq (\, $(findstring \,$(INSTALL)))
INSTDIRS = $(DEST)
endif
endif
ifdef dest
INSTALL = $(dest)
ifeq (\, $(findstring \,$(INSTALL)))
INSTDIRS = $(dest)
endif
endif
ifndef INSTALL
INSTALL = $(APR_WORK)\..\Dist
INSTDIRS = $(APR_WORK)\..\Dist
endif
INSTDEVDIRS := \
$(INSTDIRS) \
$(INSTALL)\Apache2 \
$(INSTALL)\Apache2\include \
$(INSTALL)\Apache2\lib \
INSTDIRS += \
$(INSTALL)\Apache2 \
#
# Declare Command and tool macros here
#
# Os2LibPath is an extra check to see if we are on NT
ifdef Os2LibPath
OS = Windows_NT
endif
ifeq "$(OS)" "Windows_NT"
CMD=cmd /C
CHK=cmd /C if exist
CHKNOT=cmd /C if not exist
DEL = del /F
DELTREE = cmd /C rd /s/q
WINNT=1
else
CMD=command /C
CHK=command /C if exist
CHKNOT=command /C if not exist
DEL = del
DELTREE = deltree /y
endif
#
# Setup base C compiler flags
#
#
# Common directories
#
APR = $(APR_WORK)
APRTEST = $(APR_WORK)/test
APRUTIL = $(APR_WORK)/../apr-util
XML = $(APRUTIL)/xml
#
# Internal Libraries
#
APRLIB = $(APR)/$(OBJDIR)/aprlib.lib
APRUTLIB = $(APRUTIL)/$(OBJDIR)/aprutil.lib
XMLLIB = $(XML)/$(OBJDIR)/xmllib.lib
#
# Additional general defines
#
VERSION = 2,0,0
EnvironmentDefined = 1
endif # ifndef EnvironmentDefined
# This is always set so that it will show up in lower directories
ifdef Path
Path = $(PATH)
endif
1.1 apr/NWGNUmakefile
Index: NWGNUmakefile
===================================================================
#
# Declare the sub-directories to be built here
#
SUBDIRS = \
build \
..\apr-util \
$(EOLIST)
#
# Get the 'head' of the build environment. This includes default targets and
# paths to tools
#
include $(APR_WORK)\build\NWGNUhead.inc
#
# build this level's files
#
# Make sure all needed macro's are defined
#
#
# These directories will be at the beginning of the include list, followed by
# INCDIRS
#
XINCDIRS += \
$(APR_WORK)/include \
$(APR_WORK)/include/arch/NetWare \
$(APR_WORK)/include/arch/unix \
$(APR_WORK)/memory/unix \
$(APRUTIL)/xml \
$(EOLIST)
#
# These flags will come after CFLAGS
#
XCFLAGS += \
$(EOLIST)
#
# These defines will come after DEFINES
#
XDEFINES += \
$(EOLIST)
#
# These flags will be added to the link.opt file
#
XLFLAGS += \
$(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 = aprlib
#
# This is used by the link '-desc ' directive.
# If left blank, NLM_NAME will be used.
#
NLM_DESCRIPTION = Apache Portability Runtime Library
#
# This is used by the '-threadname' directive. If left blank,
# NLM_NAME Thread will be used.
#
NLM_THREAD_NAME =
#
# If this is specified, it will override VERSION value in
# $(APR_WORK)\build\NWGNUenvironment.inc
#
NLM_VERSION =
#
# If this is specified, it will override the default of 64K
#
NLM_STACK_SIZE =
#
# If this is specified it will be used by the link '-entry' directive
#
NLM_ENTRY_SYM = _LibCPrelude
#
# If this is specified it will be used by the link '-exit' directive
#
NLM_EXIT_SYM = _LibCPostlude
#
# If this is specified it will be used by the link '-check' directive
#
NLM_CHECK_SYM =
#
# If this is specified it will be used by the link '-flags' directive
#
NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
#
# If this is specified it will be linked in with the XDCData option in the def
# file instead of the default of $(APR)/misc/netware/apache.xdc. XDCData can
# be disabled by setting APACHE_UNIPROC in the environment
#
XDCDATA =
#
# Declare all target files (you must add your files here)
#
#
# If there is an NLM target, put it here
#
TARGET_nlm = \
$(OBJDIR)/aprlib.nlm \
$(EOLIST)
#
# If there is an LIB target, put it here
#
TARGET_lib = \
$(OBJDIR)/aprlib.lib \
$(EOLIST)
#
# These are the OBJ files needed to create the NLM target above.
# Paths must all use the '/' character
#
FILES_nlm_objs = \
$(OBJDIR)/libprews.o \
$(EOLIST)
#
# 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 \
$(APRLIB) \
$(APRUTLIB) \
$(XMLLIB) \
$(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 = \
Libc \
ws2_32 \
$(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 = \
@libc.imp \
@ws2nlm.imp \
@netware.imp \
NXGetRandom \
NXGetCtlInfo \
NXSetCtlInfo \
$(EOLIST)
#
# Any symbols exported to here
#
FILES_nlm_exports = \
@aprlib.imp \
$(EOLIST)
#
# These are the OBJ files needed to create the LIB target above.
# Paths must all use the '/' character
#
FILES_lib_objs = \
$(OBJDIR)/apr_cpystrn.o \
$(OBJDIR)/apr_fnmatch.o \
$(OBJDIR)/apr_getpass.o \
$(OBJDIR)/apr_hash.o \
$(OBJDIR)/apr_md5.o \
$(OBJDIR)/apr_pools.o \
$(OBJDIR)/apr_snprintf.o \
$(OBJDIR)/apr_strings.o \
$(OBJDIR)/apr_strnatcmp.o \
$(OBJDIR)/apr_strtok.o \
$(OBJDIR)/apr_tables.o \
$(OBJDIR)/copy.o \
$(OBJDIR)/dir.o \
$(OBJDIR)/dso.o \
$(OBJDIR)/errorcodes.o \
$(OBJDIR)/fileacc.o \
$(OBJDIR)/filedup.o \
$(OBJDIR)/filepath.o \
$(OBJDIR)/filestat.o \
$(OBJDIR)/filesys.o \
$(OBJDIR)/flock.o \
$(OBJDIR)/fullrw.o \
$(OBJDIR)/getopt.o \
$(OBJDIR)/getuuid.o \
$(OBJDIR)/groupinfo.o \
$(OBJDIR)/inet_pton.o \
$(OBJDIR)/inet_ntop.o \
$(OBJDIR)/libprews.o \
$(OBJDIR)/locks.o \
$(OBJDIR)/mktemp.o \
$(OBJDIR)/open.o \
$(OBJDIR)/pipe.o \
$(OBJDIR)/poll.o \
$(OBJDIR)/proc.o \
$(OBJDIR)/procsup.o \
$(OBJDIR)/proc_mutex.o \
$(OBJDIR)/rand.o \
$(OBJDIR)/readwrite.o \
$(OBJDIR)/seek.o \
$(OBJDIR)/sendrecv.o \
$(OBJDIR)/shm.o \
$(OBJDIR)/signals.o \
$(OBJDIR)/sockaddr.o \
$(OBJDIR)/sockets.o \
$(OBJDIR)/sockopt.o \
$(OBJDIR)/start.o \
$(OBJDIR)/thread.o \
$(OBJDIR)/thread_cond.o \
$(OBJDIR)/thread_mutex.o \
$(OBJDIR)/thread_rwlock.o \
$(OBJDIR)/threadpriv.o \
$(OBJDIR)/time.o \
$(OBJDIR)/timestr.o \
$(OBJDIR)/userinfo.o \
$(OBJDIR)/utf8_ucs2.o \
$(OBJDIR)/uuid.o \
$(OBJDIR)/version.o \
$(OBJDIR)/xlate.o \
$(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 $(APR_WORK)\build\NWGNUhead.inc for examples)
#
install :: nlms FORCE
copy $(OBJDIR)\aprlib.nlm $(INSTALL)\Apache2\*.*
#
# Any specialized rules here
#
$(OBJDIR)/%.o: strings/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) strings\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: tables/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) tables\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: passwd/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) passwd\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: lib/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) lib\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: time/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) time\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: file_io/netware/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) file_io\netware\$(<F) -cwd source -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: file_io/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) file_io\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: locks/netware/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) locks\netware\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: misc/netware/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) misc\netware\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: misc/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) misc\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: threadproc/netware/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) threadproc\netware\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: dso/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) dso\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: memory/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) memory\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: user/netware/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) user\netware\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: network_io/win32/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) network_io\win32\$(<F) -cwd source -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: network_io/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) network_io\unix\$(<F) -cwd source -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: i18n/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) i18n\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: file_io/os2/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) file_io\os2\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
$(OBJDIR)/%.o: shmem/unix/%.c $(OBJDIR)\cc.opt
@echo Compiling $<
$(CC) shmem\unix\$(<F) -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cc.opt
#
# Include the 'tail' makefile that has targets that depend on variables defined
# in this makefile
#
include $(APR_WORK)\build\NWGNUtail.inc