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