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