1251875Speter# 2251875Speter# Define our macros with defaults if we dont got them already. 3251875Speter# 4251875Speterifndef APR_WORK 5251875Speterexport APR_WORK = $(CURDIR) 6251875Speterendif 7251875Speterifneq "$(wildcard $(APR_WORK)/include/apr_version.h)" "$(APR_WORK)/include/apr_version.h" 8251875Speter$(error APR_WORK does not point to a valid APR source tree) 9251875Speterendif 10251875Speterifndef APU_WORK 11251875Speterexport APU_WORK = $(CURDIR)/../apr-util 12251875Speterendif 13251875Speterifneq "$(wildcard $(APU_WORK)/include/apu_version.h)" "$(APU_WORK)/include/apu_version.h" 14251875Speter$(error APU_WORK does not point to a valid APU source tree) 15251875Speterendif 16251875Speter 17251875Speter# 18251875Speter# Declare the sub-directories to be built here 19251875Speter# 20251875Speter 21251875SpeterSUBDIRS = \ 22251875Speter build \ 23251875Speter $(APU_WORK) \ 24251875Speter $(EOLIST) 25251875Speter 26251875Speterifeq "$(TEST)" "1" 27251875SpeterSUBDIRS += \ 28251875Speter test \ 29251875Speter $(APU_WORK)/test \ 30251875Speter $(EOLIST) 31251875Speterendif 32251875Speter 33251875Speter# 34251875Speter# Get the 'head' of the build environment. This includes default targets and 35251875Speter# paths to tools 36251875Speter# 37251875Speter 38251875Speterinclude $(APR_WORK)/build/NWGNUhead.inc 39251875Speter 40251875Speter# 41251875Speter# build this level's files 42251875Speter 43251875Speter# 44251875Speter# Make sure all needed macro's are defined 45251875Speter# 46251875Speter 47251875Speter# 48251875Speter# These directories will be at the beginning of the include list, followed by 49251875Speter# INCDIRS 50251875Speter# 51251875SpeterXINCDIRS += \ 52251875Speter $(APR)/include \ 53251875Speter $(APR)/include/arch/NetWare \ 54251875Speter $(APR)/include/arch/unix \ 55251875Speter $(APR)/memory/unix \ 56251875Speter $(APR)/random/unix \ 57251875Speter $(APU)/include \ 58251875Speter $(APU)/xml \ 59251875Speter $(LDAPSDK)/inc \ 60251875Speter $(EOLIST) 61251875Speter 62251875Speter# 63251875Speter# These flags will come after CFLAGS 64251875Speter# 65251875SpeterXCFLAGS += \ 66251875Speter $(EOLIST) 67251875Speter 68251875Speter# 69251875Speter# These defines will come after DEFINES 70251875Speter# 71251875SpeterXDEFINES += \ 72251875Speter $(EOLIST) 73251875Speter 74251875Speter# 75251875Speter# These flags will be added to the link.opt file 76251875Speter# 77251875SpeterXLFLAGS += \ 78251875Speter $(EOLIST) 79251875Speter 80251875Speter# 81251875Speter# These values will be appended to the correct variables based on the value of 82251875Speter# RELEASE 83251875Speter# 84251875Speterifeq "$(RELEASE)" "debug" 85251875SpeterXINCDIRS += \ 86251875Speter $(EOLIST) 87251875Speter 88251875SpeterXCFLAGS += \ 89251875Speter $(EOLIST) 90251875Speter 91251875SpeterXDEFINES += \ 92251875Speter $(EOLIST) 93251875Speter 94251875SpeterXLFLAGS += \ 95251875Speter $(EOLIST) 96251875Speterendif 97251875Speter 98251875Speterifeq "$(RELEASE)" "noopt" 99251875SpeterXINCDIRS += \ 100251875Speter $(EOLIST) 101251875Speter 102251875SpeterXCFLAGS += \ 103251875Speter $(EOLIST) 104251875Speter 105251875SpeterXDEFINES += \ 106251875Speter $(EOLIST) 107251875Speter 108251875SpeterXLFLAGS += \ 109251875Speter $(EOLIST) 110251875Speterendif 111251875Speter 112251875Speterifeq "$(RELEASE)" "release" 113251875SpeterXINCDIRS += \ 114251875Speter $(EOLIST) 115251875Speter 116251875SpeterXCFLAGS += \ 117251875Speter $(EOLIST) 118251875Speter 119251875SpeterXDEFINES += \ 120251875Speter $(EOLIST) 121251875Speter 122251875SpeterXLFLAGS += \ 123251875Speter $(EOLIST) 124251875Speterendif 125251875Speter 126251875Speter# 127251875Speter# These are used by the link target if an NLM is being generated 128251875Speter# This is used by the link 'name' directive to name the nlm. If left blank 129251875Speter# TARGET_nlm (see below) will be used. 130251875Speter# 131251875SpeterNLM_NAME = aprlib 132251875Speter 133251875Speter# 134251875Speter# This is used by the link '-desc ' directive. 135251875Speter# If left blank, NLM_NAME will be used. 136251875Speter# 137251875SpeterNLM_DESCRIPTION = Apache Portability Runtime Library $(VERSION_STR) $(VERSION_SKT) 138251875Speter 139251875Speter# 140251875Speter# This is used by the '-threadname' directive. If left blank, 141251875Speter# NLM_NAME Thread will be used. 142251875Speter# 143251875SpeterNLM_THREAD_NAME = 144251875Speter# 145251875Speter# If this is specified, it will override VERSION value in 146251875Speter# $(APR_WORK)/build/NWGNUenvironment.inc 147251875Speter# 148251875SpeterNLM_VERSION = 149251875Speter 150251875Speter# 151251875Speter# If this is specified, it will override the default of 64K 152251875Speter# 153251875SpeterNLM_STACK_SIZE = 154251875Speter 155251875Speter# 156251875Speter# If this is specified it will be used by the link '-entry' directive 157251875Speter# 158251875SpeterNLM_ENTRY_SYM = 159251875Speter 160251875Speter# 161251875Speter# If this is specified it will be used by the link '-exit' directive 162251875Speter# 163251875SpeterNLM_EXIT_SYM = 164251875Speter 165251875Speter# 166251875Speter# If this is specified it will be used by the link '-check' directive 167251875Speter# 168251875SpeterNLM_CHECK_SYM = 169251875Speter 170251875Speter# 171251875Speter# If this is specified it will be used by the link '-flags' directive 172251875Speter# 173251875SpeterNLM_FLAGS = 174251875Speter 175251875Speter# 176251875Speter# If this is specified it will be linked in with the XDCData option in the def 177251875Speter# file instead of the default of $(APR)/misc/netware/apache.xdc. XDCData can 178251875Speter# be disabled by setting APACHE_UNIPROC in the environment 179251875Speter# 180251875SpeterXDCDATA = 181251875Speter 182251875Speter# 183251875Speter# Declare all target files (you must add your files here) 184251875Speter# 185251875Speter 186251875Speter# 187251875Speter# If there is an NLM target, put it here 188251875Speter# 189251875SpeterTARGET_nlm = \ 190251875Speter $(OBJDIR)/aprlib.nlm \ 191251875Speter $(EOLIST) 192251875Speter 193251875Speter# 194251875Speter# If there is an LIB target, put it here 195251875Speter# 196251875SpeterTARGET_lib = \ 197251875Speter $(OBJDIR)/aprlib.lib \ 198251875Speter $(EOLIST) 199251875Speter 200251875Speter# 201251875Speter# These are the OBJ files needed to create the NLM target above. 202251875Speter# Paths must all use the '/' character 203251875Speter# 204251875SpeterFILES_nlm_objs = \ 205251875Speter $(OBJDIR)/libprews.o \ 206251875Speter $(EOLIST) 207251875Speter 208251875Speter# 209251875Speter# These are the LIB files needed to create the NLM target above. 210251875Speter# These will be added as a library command in the link.opt file. 211251875Speter# 212251875SpeterFILES_nlm_libs = \ 213251875Speter $(PRELUDE) \ 214251875Speter $(APRLIB) \ 215251875Speter $(APULIB) \ 216251875Speter $(APULDAPLIB) \ 217251875Speter $(APUXMLLIB) \ 218251875Speter $(EOLIST) 219251875Speter 220251875Speter# 221251875Speter# These are the modules that the above NLM target depends on to load. 222251875Speter# These will be added as a module command in the link.opt file. 223251875Speter# 224251875SpeterFILES_nlm_modules = \ 225251875Speter Libc \ 226251875Speter $(EOLIST) 227251875Speter 228251875Speter# Include the Winsock libraries if Winsock is being used 229251875Speterifndef USE_STDSOCKETS 230251875SpeterFILES_nlm_modules += ws2_32 \ 231251875Speter $(EOLIST) 232251875Speterendif 233251875Speter 234251875Speter#If the LDAP support is defined then add the auto-load modules 235251875Speterifneq "$(LDAPSDK)" "" 236251875SpeterFILES_nlm_modules += \ 237251875Speter lldapsdk \ 238251875Speter lldapssl \ 239251875Speter $(EOLIST) 240251875Speterendif 241251875Speter 242251875Speter# 243251875Speter# If the nlm has a msg file, put it's path here 244251875Speter# 245251875SpeterFILE_nlm_msg = 246251875Speter 247251875Speter# 248251875Speter# If the nlm has a hlp file put it's path here 249251875Speter# 250251875SpeterFILE_nlm_hlp = 251251875Speter 252251875Speter# 253251875Speter# If this is specified, it will override $(NWOS)\copyright.txt. 254251875Speter# 255251875SpeterFILE_nlm_copyright = 256251875Speter 257251875Speter# 258251875Speter# Any additional imports go here 259251875Speter# 260251875SpeterFILES_nlm_Ximports = \ 261251875Speter @libc.imp \ 262251875Speter @netware.imp \ 263251875Speter $(EOLIST) 264251875Speter 265251875Speter# Include the Winsock imports if Winsock is being used 266251875Speterifndef USE_STDSOCKETS 267251875SpeterFILES_nlm_Ximports += \ 268251875Speter @ws2nlm.imp \ 269251875Speter WSAStartupRTags \ 270251875Speter WSACleanupRTag \ 271251875Speter $(EOLIST) 272251875Speterendif 273251875Speter 274251875Speter#If the LDAP support is defined then add the imports 275251875Speterifneq "$(LDAPSDK)" "" 276251875SpeterFILES_nlm_Ximports += \ 277251875Speter @lldapsdk.imp \ 278251875Speter @lldapssl.imp \ 279251875Speter $(EOLIST) 280251875Speterendif 281251875Speter 282251875Speter# 283251875Speter# Any symbols exported to here 284251875Speter# 285251875SpeterFILES_nlm_exports = \ 286251875Speter @aprlib.imp \ 287251875Speter $(EOLIST) 288251875Speter 289251875Speter# 290251875Speter# These are the OBJ files needed to create the LIB target above. 291251875Speter# Paths must all use the '/' character 292251875Speter# 293251875SpeterFILES_lib_objs = \ 294251875Speter $(OBJDIR)/apr_atomic.o \ 295251875Speter $(OBJDIR)/apr_cpystrn.o \ 296251875Speter $(OBJDIR)/apr_fnmatch.o \ 297251875Speter $(OBJDIR)/apr_getpass.o \ 298251875Speter $(OBJDIR)/apr_hash.o \ 299251875Speter $(OBJDIR)/apr_pools.o \ 300251875Speter $(OBJDIR)/apr_random.o \ 301251875Speter $(OBJDIR)/apr_snprintf.o \ 302251875Speter $(OBJDIR)/apr_strings.o \ 303251875Speter $(OBJDIR)/apr_strnatcmp.o \ 304251875Speter $(OBJDIR)/apr_strtok.o \ 305251875Speter $(OBJDIR)/apr_tables.o \ 306251875Speter $(OBJDIR)/buffer.o \ 307251875Speter $(OBJDIR)/charset.o \ 308251875Speter $(OBJDIR)/copy.o \ 309251875Speter $(OBJDIR)/common.o \ 310251875Speter $(OBJDIR)/dir.o \ 311251875Speter $(OBJDIR)/dso.o \ 312251875Speter $(OBJDIR)/errorcodes.o \ 313251875Speter $(OBJDIR)/env.o \ 314251875Speter $(OBJDIR)/fileacc.o \ 315251875Speter $(OBJDIR)/filedup.o \ 316251875Speter $(OBJDIR)/filepath.o \ 317251875Speter $(OBJDIR)/filepath_util.o \ 318251875Speter $(OBJDIR)/filestat.o \ 319251875Speter $(OBJDIR)/filesys.o \ 320251875Speter $(OBJDIR)/flock.o \ 321251875Speter $(OBJDIR)/fullrw.o \ 322251875Speter $(OBJDIR)/getopt.o \ 323251875Speter $(OBJDIR)/groupinfo.o \ 324251875Speter $(OBJDIR)/inet_pton.o \ 325251875Speter $(OBJDIR)/inet_ntop.o \ 326251875Speter $(OBJDIR)/mktemp.o \ 327251875Speter $(OBJDIR)/mmap.o \ 328251875Speter $(OBJDIR)/multicast.o \ 329251875Speter $(OBJDIR)/open.o \ 330251875Speter $(OBJDIR)/pipe.o \ 331251875Speter $(OBJDIR)/otherchild.o \ 332251875Speter $(OBJDIR)/proc.o \ 333251875Speter $(OBJDIR)/procsup.o \ 334251875Speter $(OBJDIR)/proc_mutex.o \ 335251875Speter $(OBJDIR)/rand.o \ 336251875Speter $(OBJDIR)/readwrite.o \ 337251875Speter $(OBJDIR)/seek.o \ 338251875Speter $(OBJDIR)/pollcb.o \ 339251875Speter $(OBJDIR)/pollset.o \ 340251875Speter $(OBJDIR)/select.o \ 341251875Speter $(OBJDIR)/sendrecv.o \ 342251875Speter $(OBJDIR)/sha2.o \ 343251875Speter $(OBJDIR)/sha2_glue.o \ 344251875Speter $(OBJDIR)/shm.o \ 345251875Speter $(OBJDIR)/signals.o \ 346251875Speter $(OBJDIR)/sockaddr.o \ 347251875Speter $(OBJDIR)/socket_util.o \ 348251875Speter $(OBJDIR)/sockets.o \ 349251875Speter $(OBJDIR)/sockopt.o \ 350251875Speter $(OBJDIR)/start.o \ 351251875Speter $(OBJDIR)/tempdir.o \ 352251875Speter $(OBJDIR)/thread.o \ 353251875Speter $(OBJDIR)/thread_cond.o \ 354251875Speter $(OBJDIR)/thread_mutex.o \ 355251875Speter $(OBJDIR)/thread_rwlock.o \ 356251875Speter $(OBJDIR)/threadpriv.o \ 357251875Speter $(OBJDIR)/time.o \ 358251875Speter $(OBJDIR)/timestr.o \ 359251875Speter $(OBJDIR)/userinfo.o \ 360251875Speter $(OBJDIR)/version.o \ 361251875Speter $(OBJDIR)/waitio.o \ 362251875Speter $(EOLIST) 363251875Speter 364251875Speter 365251875Speter# 366251875Speter# implement targets and dependancies (leave this section alone) 367251875Speter# 368251875Speter 369251875Speterlibs :: $(OBJDIR) $(TARGET_lib) 370251875Speter 371251875Speternlms :: libs $(TARGET_nlm) 372251875Speter 373251875Speter# 374251875Speter# Updated this target to create necessary directories and copy files to the 375251875Speter# correct place. (See $(APR_WORK)/build/NWGNUhead.inc for examples) 376251875Speter# 377251875Speterinstall :: nlms $(INSTDIRS) FORCE 378251875Speter $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/) 379251875Speterifndef DEST 380251875Speter -$(call COPY,$(APR)/LICENSE,$(INSTALLBASE)/) 381251875Speter -$(call COPY,$(APR)/STATUS,$(INSTALLBASE)/STATUS.apr) 382251875Speter -$(call COPY,$(APR)/CHANGES,$(INSTALLBASE)/CHANGES.apr) 383251875Speter -$(call COPY,$(APU)/STATUS,$(INSTALLBASE)/STATUS.apu) 384251875Speter -$(call COPY,$(APU)/CHANGES,$(INSTALLBASE)/CHANGES.apu) 385251875Speter -$(call COPYR,$(APR)/docs,$(INSTALLBASE)/docs/) 386251875Speterendif 387251875Speter 388251875Speterifndef DEST 389251875Speterinstalldev :: $(INSTDEVDIRS) FORCE 390251875Speter $(call COPY,$(APR)/include/*.h,$(INSTALLBASE)/include/) 391251875Speter $(call COPY,$(APR)/*.imp,$(INSTALLBASE)/lib/) 392251875Speter $(call COPY,$(APR)/misc/netware/*.xdc,$(INSTALLBASE)/lib/) 393251875Speter $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/bin/) 394251875Speter $(call COPY,$(APRLIB),$(INSTALLBASE)/lib/) 395251875Speter $(call COPY,$(APULIB),$(INSTALLBASE)/lib/) 396251875Speter $(call COPY,$(APULDAPLIB),$(INSTALLBASE)/lib/) 397251875Speter $(call COPY,$(APUXMLLIB),$(INSTALLBASE)/lib/) 398251875Speter 399251875Speter$(INSTDEVDIRS) :: 400251875Speter $(call MKDIR,$@) 401251875Speterendif 402251875Speter 403251875Speter# 404251875Speter# Any specialized rules here 405251875Speter# 406251875Speter 407251875Spetervpath %.c atomic/netware:strings:tables:passwd:lib:time/unix 408251875Spetervpath %.c file_io/unix:locks/netware:misc/netware:misc/unix:threadproc/netware 409251875Spetervpath %.c poll/unix:shmem/unix:support/unix:random/unix 410251875Spetervpath %.c dso/netware:memory/unix:mmap/unix:user/netware 411251875Speter 412251875Speter# Use the win32 network_io if Winsock is being used 413251875Speterifndef USE_STDSOCKETS 414251875Spetervpath %.c network_io/win32 415251875Speterendif 416251875Spetervpath %.c network_io/unix 417251875Speter 418251875Speter$(OBJDIR)/%.o: file_io/netware/%.c $(OBJDIR)/$(NLM_NAME)_cc.opt 419251875Speter# @echo Compiling $< 420251875Speter @echo $(DL)CC $<$(DL) 421251875Speter $(CC) $< -cwd source -o=$@ @$(OBJDIR)/$(NLM_NAME)_cc.opt 422251875Speter 423251875Speter# 424251875Speter# Include the 'tail' makefile that has targets that depend on variables defined 425251875Speter# in this makefile 426251875Speter# 427251875Speter 428251875Speterinclude $(APRBUILD)/NWGNUtail.inc 429251875Speter 430251875Speter 431