]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/apr/NWGNUmakefile
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / apr / NWGNUmakefile
1 #
2 # Define our macros with defaults if we dont got them already.
3 #
4 ifndef APR_WORK
5 export APR_WORK = $(CURDIR)
6 endif
7 ifneq "$(wildcard $(APR_WORK)/include/apr_version.h)" "$(APR_WORK)/include/apr_version.h"
8 $(error APR_WORK does not point to a valid APR source tree) 
9 endif
10 ifndef APU_WORK
11 export APU_WORK = $(CURDIR)/../apr-util
12 endif
13 ifneq "$(wildcard $(APU_WORK)/include/apu_version.h)" "$(APU_WORK)/include/apu_version.h"
14 $(error APU_WORK does not point to a valid APU source tree) 
15 endif
16
17 #
18 # Declare the sub-directories to be built here
19 #
20
21 SUBDIRS = \
22                 build \
23                 $(APU_WORK) \
24                 $(EOLIST)
25
26 ifeq "$(TEST)" "1"
27 SUBDIRS += \
28                 test \
29                 $(APU_WORK)/test \
30                 $(EOLIST)
31 endif
32
33 #
34 # Get the 'head' of the build environment.  This includes default targets and
35 # paths to tools
36 #
37
38 include $(APR_WORK)/build/NWGNUhead.inc
39
40 #
41 # build this level's files
42
43 #
44 # Make sure all needed macro's are defined
45 #
46
47 #
48 # These directories will be at the beginning of the include list, followed by
49 # INCDIRS
50 #
51 XINCDIRS        += \
52                         $(APR)/include \
53                         $(APR)/include/arch/NetWare \
54                         $(APR)/include/arch/unix \
55                         $(APR)/memory/unix \
56                         $(APR)/random/unix \
57                         $(APU)/include \
58                         $(APU)/xml \
59                         $(LDAPSDK)/inc \
60                         $(EOLIST)
61
62 #
63 # These flags will come after CFLAGS
64 #
65 XCFLAGS         += \
66                         $(EOLIST)
67
68 #
69 # These defines will come after DEFINES
70 #
71 XDEFINES        += \
72                         $(EOLIST)
73
74 #
75 # These flags will be added to the link.opt file
76 #
77 XLFLAGS         += \
78                         $(EOLIST)
79
80 #
81 # These values will be appended to the correct variables based on the value of
82 # RELEASE
83 #
84 ifeq "$(RELEASE)" "debug"
85 XINCDIRS        += \
86                         $(EOLIST)
87
88 XCFLAGS         += \
89                         $(EOLIST)
90
91 XDEFINES        += \
92                         $(EOLIST)
93
94 XLFLAGS         += \
95                         $(EOLIST)
96 endif
97
98 ifeq "$(RELEASE)" "noopt"
99 XINCDIRS        += \
100                         $(EOLIST)
101
102 XCFLAGS         += \
103                         $(EOLIST)
104
105 XDEFINES        += \
106                         $(EOLIST)
107
108 XLFLAGS         += \
109                         $(EOLIST)
110 endif
111
112 ifeq "$(RELEASE)" "release"
113 XINCDIRS        += \
114                         $(EOLIST)
115
116 XCFLAGS         += \
117                         $(EOLIST)
118
119 XDEFINES        += \
120                         $(EOLIST)
121
122 XLFLAGS         += \
123                         $(EOLIST)
124 endif
125
126 #
127 # These are used by the link target if an NLM is being generated
128 # This is used by the link 'name' directive to name the nlm.  If left blank
129 # TARGET_nlm (see below) will be used.
130 #
131 NLM_NAME        = aprlib
132
133 #
134 # This is used by the link '-desc ' directive.
135 # If left blank, NLM_NAME will be used.
136 #
137 NLM_DESCRIPTION = Apache Portability Runtime Library $(VERSION_STR) $(VERSION_SKT)
138
139 #
140 # This is used by the '-threadname' directive.  If left blank,
141 # NLM_NAME Thread will be used.
142 #
143 NLM_THREAD_NAME =
144 #
145 # If this is specified, it will override VERSION value in
146 # $(APR_WORK)/build/NWGNUenvironment.inc
147 #
148 NLM_VERSION     =
149
150 #
151 # If this is specified, it will override the default of 64K
152 #
153 NLM_STACK_SIZE  =
154
155 #
156 # If this is specified it will be used by the link '-entry' directive
157 #
158 NLM_ENTRY_SYM   =
159
160 #
161 # If this is specified it will be used by the link '-exit' directive
162 #
163 NLM_EXIT_SYM    =
164
165 #
166 # If this is specified it will be used by the link '-check' directive
167 #
168 NLM_CHECK_SYM   =
169
170 #
171 # If this is specified it will be used by the link '-flags' directive
172 #
173 NLM_FLAGS       =
174
175 #
176 # If this is specified it will be linked in with the XDCData option in the def
177 # file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can
178 # be disabled by setting APACHE_UNIPROC in the environment
179 #
180 XDCDATA         =
181
182 #
183 # Declare all target files (you must add your files here)
184 #
185
186 #
187 # If there is an NLM target, put it here
188 #
189 TARGET_nlm = \
190         $(OBJDIR)/aprlib.nlm \
191         $(EOLIST)
192
193 #
194 # If there is an LIB target, put it here
195 #
196 TARGET_lib = \
197         $(OBJDIR)/aprlib.lib \
198         $(EOLIST)
199
200 #
201 # These are the OBJ files needed to create the NLM target above.
202 # Paths must all use the '/' character
203 #
204 FILES_nlm_objs = \
205         $(OBJDIR)/libprews.o \
206         $(EOLIST)
207
208 #
209 # These are the LIB files needed to create the NLM target above.
210 # These will be added as a library command in the link.opt file.
211 #
212 FILES_nlm_libs = \
213         $(PRELUDE) \
214         $(APRLIB) \
215         $(APULIB) \
216         $(APULDAPLIB) \
217         $(APUXMLLIB) \
218         $(EOLIST)
219
220 #
221 # These are the modules that the above NLM target depends on to load.
222 # These will be added as a module command in the link.opt file.
223 #
224 FILES_nlm_modules = \
225         Libc \
226         $(EOLIST)
227
228 # Include the Winsock libraries if Winsock is being used
229 ifndef USE_STDSOCKETS
230 FILES_nlm_modules += ws2_32 \
231         $(EOLIST)
232 endif
233
234 #If the LDAP support is defined then add the auto-load modules
235 ifneq "$(LDAPSDK)" ""
236 FILES_nlm_modules += \
237         lldapsdk \
238         lldapssl \
239         $(EOLIST)
240 endif
241
242 #
243 # If the nlm has a msg file, put it's path here
244 #
245 FILE_nlm_msg =
246
247 #
248 # If the nlm has a hlp file put it's path here
249 #
250 FILE_nlm_hlp =
251
252 #
253 # If this is specified, it will override $(NWOS)\copyright.txt.
254 #
255 FILE_nlm_copyright =
256
257 #
258 # Any additional imports go here
259 #
260 FILES_nlm_Ximports = \
261         @libc.imp \
262         @netware.imp \
263         $(EOLIST)
264
265 # Include the Winsock imports if Winsock is being used
266 ifndef USE_STDSOCKETS
267 FILES_nlm_Ximports +=  \
268         @ws2nlm.imp \
269         WSAStartupRTags \
270         WSACleanupRTag \
271         $(EOLIST)
272 endif
273
274 #If the LDAP support is defined then add the imports
275 ifneq "$(LDAPSDK)" ""
276 FILES_nlm_Ximports += \
277         @lldapsdk.imp \
278         @lldapssl.imp \
279         $(EOLIST)
280 endif
281
282 #
283 # Any symbols exported to here
284 #
285 FILES_nlm_exports = \
286         @aprlib.imp \
287         $(EOLIST)
288
289 #
290 # These are the OBJ files needed to create the LIB target above.
291 # Paths must all use the '/' character
292 #
293 FILES_lib_objs = \
294         $(OBJDIR)/apr_atomic.o \
295         $(OBJDIR)/apr_cpystrn.o \
296         $(OBJDIR)/apr_fnmatch.o \
297         $(OBJDIR)/apr_getpass.o \
298         $(OBJDIR)/apr_hash.o \
299         $(OBJDIR)/apr_pools.o \
300         $(OBJDIR)/apr_random.o \
301         $(OBJDIR)/apr_snprintf.o \
302         $(OBJDIR)/apr_strings.o \
303         $(OBJDIR)/apr_strnatcmp.o \
304         $(OBJDIR)/apr_strtok.o \
305         $(OBJDIR)/apr_tables.o \
306         $(OBJDIR)/buffer.o \
307         $(OBJDIR)/charset.o \
308         $(OBJDIR)/copy.o \
309         $(OBJDIR)/common.o \
310         $(OBJDIR)/dir.o \
311         $(OBJDIR)/dso.o \
312         $(OBJDIR)/errorcodes.o \
313         $(OBJDIR)/env.o \
314         $(OBJDIR)/fileacc.o \
315         $(OBJDIR)/filedup.o \
316         $(OBJDIR)/filepath.o \
317         $(OBJDIR)/filepath_util.o \
318         $(OBJDIR)/filestat.o \
319         $(OBJDIR)/filesys.o \
320         $(OBJDIR)/flock.o \
321         $(OBJDIR)/fullrw.o \
322         $(OBJDIR)/getopt.o \
323         $(OBJDIR)/groupinfo.o \
324         $(OBJDIR)/inet_pton.o \
325         $(OBJDIR)/inet_ntop.o \
326         $(OBJDIR)/mktemp.o \
327         $(OBJDIR)/mmap.o \
328         $(OBJDIR)/multicast.o \
329         $(OBJDIR)/open.o \
330         $(OBJDIR)/pipe.o \
331         $(OBJDIR)/otherchild.o \
332         $(OBJDIR)/proc.o \
333         $(OBJDIR)/procsup.o \
334         $(OBJDIR)/proc_mutex.o \
335         $(OBJDIR)/rand.o \
336         $(OBJDIR)/readwrite.o \
337         $(OBJDIR)/seek.o \
338         $(OBJDIR)/pollcb.o \
339         $(OBJDIR)/pollset.o \
340         $(OBJDIR)/select.o \
341         $(OBJDIR)/sendrecv.o \
342         $(OBJDIR)/sha2.o \
343         $(OBJDIR)/sha2_glue.o \
344         $(OBJDIR)/shm.o \
345         $(OBJDIR)/signals.o \
346         $(OBJDIR)/sockaddr.o \
347         $(OBJDIR)/socket_util.o \
348         $(OBJDIR)/sockets.o \
349         $(OBJDIR)/sockopt.o \
350         $(OBJDIR)/start.o \
351         $(OBJDIR)/tempdir.o \
352         $(OBJDIR)/thread.o \
353         $(OBJDIR)/thread_cond.o \
354         $(OBJDIR)/thread_mutex.o \
355         $(OBJDIR)/thread_rwlock.o \
356         $(OBJDIR)/threadpriv.o \
357         $(OBJDIR)/time.o \
358         $(OBJDIR)/timestr.o \
359         $(OBJDIR)/userinfo.o \
360         $(OBJDIR)/version.o \
361         $(OBJDIR)/waitio.o \
362         $(EOLIST)
363
364
365 #
366 # implement targets and dependancies (leave this section alone)
367 #
368
369 libs :: $(OBJDIR) $(TARGET_lib)
370
371 nlms :: libs $(TARGET_nlm)
372
373 #
374 # Updated this target to create necessary directories and copy files to the
375 # correct place.  (See $(APR_WORK)/build/NWGNUhead.inc for examples)
376 #
377 install :: nlms $(INSTDIRS) FORCE
378         $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/)
379 ifndef DEST
380         -$(call COPY,$(APR)/LICENSE,$(INSTALLBASE)/)
381         -$(call COPY,$(APR)/STATUS,$(INSTALLBASE)/STATUS.apr)
382         -$(call COPY,$(APR)/CHANGES,$(INSTALLBASE)/CHANGES.apr)
383         -$(call COPY,$(APU)/STATUS,$(INSTALLBASE)/STATUS.apu)
384         -$(call COPY,$(APU)/CHANGES,$(INSTALLBASE)/CHANGES.apu)
385         -$(call COPYR,$(APR)/docs,$(INSTALLBASE)/docs/)
386 endif
387
388 ifndef DEST
389 installdev :: $(INSTDEVDIRS) FORCE
390         $(call COPY,$(APR)/include/*.h,$(INSTALLBASE)/include/)
391         $(call COPY,$(APR)/*.imp,$(INSTALLBASE)/lib/)
392         $(call COPY,$(APR)/misc/netware/*.xdc,$(INSTALLBASE)/lib/)
393         $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/bin/)
394         $(call COPY,$(APRLIB),$(INSTALLBASE)/lib/)
395         $(call COPY,$(APULIB),$(INSTALLBASE)/lib/)
396         $(call COPY,$(APULDAPLIB),$(INSTALLBASE)/lib/)
397         $(call COPY,$(APUXMLLIB),$(INSTALLBASE)/lib/)
398
399 $(INSTDEVDIRS) ::
400         $(call MKDIR,$@)
401 endif
402
403 #
404 # Any specialized rules here
405 #
406
407 vpath %.c atomic/netware:strings:tables:passwd:lib:time/unix
408 vpath %.c file_io/unix:locks/netware:misc/netware:misc/unix:threadproc/netware
409 vpath %.c poll/unix:shmem/unix:support/unix:random/unix
410 vpath %.c dso/netware:memory/unix:mmap/unix:user/netware
411
412 # Use the win32 network_io if Winsock is being used
413 ifndef USE_STDSOCKETS
414 vpath %.c network_io/win32
415 endif
416 vpath %.c network_io/unix
417
418 $(OBJDIR)/%.o: file_io/netware/%.c $(OBJDIR)/$(NLM_NAME)_cc.opt
419 #       @echo Compiling $<
420         @echo $(DL)CC   $<$(DL)
421         $(CC) $< -cwd source -o=$@ @$(OBJDIR)/$(NLM_NAME)_cc.opt
422
423 #
424 # Include the 'tail' makefile that has targets that depend on variables defined
425 # in this makefile
426 #
427
428 include $(APRBUILD)/NWGNUtail.inc
429
430