nsprpub/pr/src/Makefile.in

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:968a2bb17f42
1 #
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6 #! gmake
7
8 MOD_DEPTH = ../..
9 topsrcdir = @top_srcdir@
10 srcdir = @srcdir@
11 VPATH = @srcdir@
12
13 include $(MOD_DEPTH)/config/autoconf.mk
14
15 include $(topsrcdir)/config/config.mk
16
17 DIRS = io linking malloc md memory misc threads
18
19 ifeq ($(USE_PTHREADS), 1)
20 DIRS += pthreads
21 endif
22
23 ifeq ($(USE_BTHREADS), 1)
24 DIRS += bthreads
25 endif
26
27 ifeq ($(USE_CPLUS), 1)
28 DIRS += cplus
29 endif
30
31 #
32 # Define platform-dependent OS_LIBS
33 #
34
35 ifeq ($(OS_ARCH),SunOS)
36 MAPFILE = $(OBJDIR)/nsprmap.sun
37 GARBAGE += $(MAPFILE)
38 ifdef NS_USE_GCC
39 ifdef GCC_USE_GNU_LD
40 MKSHLIB += -Wl,--version-script,$(MAPFILE)
41 else
42 MKSHLIB += -Wl,-M,$(MAPFILE)
43 endif
44 else
45 MKSHLIB += -M $(MAPFILE)
46 endif
47 #
48 # In Solaris 2.6 or earlier, -lrt is called -lposix4.
49 #
50 LIBRT_TEST=$(firstword $(sort 5.7 $(OS_RELEASE)))
51 ifeq (5.7, $(LIBRT_TEST))
52 LIBRT=-lrt
53 else
54 LIBRT=-lposix4
55 endif
56
57 ifdef USE_PTHREADS
58 OS_LIBS = -lpthread ${LIBRT} -lsocket -lnsl -ldl -lc
59 else
60 OS_LIBS = -lsocket -lnsl -ldl -lc
61 endif # USE_PTHREADS
62 ifeq ($(CPU_ARCH),sparc)
63 ifndef USE_64
64 DSO_LDOPTS += -Wl,-f,\$$ORIGIN/cpu/\$$ISALIST/lib$(ULTRASPARC_LIBRARY)$(LIBRARY_VERSION).so
65 endif
66 endif # sparc
67 endif # SunOS
68
69 ifeq ($(OS_ARCH), IRIX)
70 ifeq ($(USE_PTHREADS), 1)
71 OS_LIBS = -lpthread
72 endif
73 OS_LIBS += -lc
74 endif
75
76 ifeq ($(OS_ARCH),AIX)
77 DSO_LDOPTS += -binitfini::_PR_Fini
78 OS_LIBS = -lodm -lcfg
79 ifeq ($(CLASSIC_NSPR),1)
80 ifeq ($(OS_RELEASE),4.1)
81 OS_LIBS += -lsvld -lc
82 else
83 OS_LIBS += -ldl -lc
84 endif
85 else
86 ifeq ($(OS_RELEASE),4.1)
87 OS_LIBS += -lpthreads -lsvld -lC_r -lC -lc_r -lm /usr/lib/libc.a
88 else
89 OS_LIBS += -lpthreads -ldl -lC_r -lC -lc_r -lm /usr/lib/libc.a
90 endif
91 endif
92 endif
93
94 # On AIX, we override malloc in non-pthread versions. On AIX 4.2 or
95 # above, this requires that we use the rtl-enabled version of libc.a.
96 ifeq ($(OS_ARCH),AIX)
97 ifneq (,$(filter-out 3.2 4.1,$(OS_RELEASE)))
98 ifneq ($(USE_PTHREADS),1)
99 BUILD_AIX_RTL_LIBC = 1
100 AIX_RTL_LIBC = $(OBJDIR)/libc.a
101 endif
102 endif
103 endif
104
105 ifeq ($(OS_ARCH),OS2)
106 MAPFILE = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).def
107 ADD_TO_DEF_FILE = cat $(srcdir)/os2extra.def >> $(MAPFILE)
108 GARBAGE += $(MAPFILE)
109 MKSHLIB += $(MAPFILE)
110 endif
111
112 ifeq ($(OS_ARCH),OSF1)
113 ifeq ($(USE_PTHREADS), 1)
114 OS_LIBS = -lpthread -lrt
115 endif
116 ifneq ($(OS_RELEASE),V2.0)
117 OS_LIBS += -lc_r
118 endif
119 endif
120
121 # Linux, GNU/Hurd, and GNU/kFreeBSD systems
122 ifneq (,$(filter Linux GNU%,$(OS_ARCH)))
123 ifeq ($(USE_PTHREADS), 1)
124 ifeq ($(OS_TARGET),Android)
125 # Android has no libpthread.so in NDK
126 OS_LIBS = -ldl
127 else
128 OS_LIBS = -lpthread -ldl
129 endif
130 else
131 OS_LIBS = -ldl
132 endif
133 ifneq ($(OS_TARGET),Android)
134 # Android has no librt - realtime functions are in libc
135 OS_LIBS += -lrt
136 endif
137 endif
138
139 ifeq ($(OS_ARCH),HP-UX)
140 ifeq ($(USE_PTHREADS), 1)
141 ifeq (,$(filter-out B.10.10 B.10.20,$(OS_RELEASE)))
142 OS_LIBS = -ldce
143 else
144 OS_LIBS = -lpthread -lrt
145 endif
146 endif
147 ifeq ($(PTHREADS_USER), 1)
148 OS_LIBS = -lpthread
149 endif
150 ifeq ($(basename $(OS_RELEASE)),A.09)
151 OS_LIBS += -ldld -L/lib/pa1.1 -lm
152 else
153 OS_LIBS += -ldld -lm -lc
154 endif
155 ifneq ($(OS_TEST),ia64)
156 ifndef USE_64
157 DSO_LDOPTS += +I PR_HPUX10xInit
158 endif
159 endif
160 endif
161
162 ifeq ($(OS_ARCH),UNIXWARE)
163 OS_LIBS = -lsocket -lc
164 endif
165
166 ifeq ($(OS_ARCH),WINNT)
167 ifdef NS_USE_GCC
168 OS_LIBS = -ladvapi32 -lws2_32 -lwinmm
169 else
170 OS_LIBS = advapi32.lib ws2_32.lib winmm.lib
171 endif
172 endif
173
174 ifeq ($(OS_ARCH),WINCE)
175 OS_LIBS = ws2.lib
176 endif
177
178 ifeq ($(OS_TARGET),Android)
179 OS_LIBS += -llog
180 endif
181
182 ifeq ($(OS_TARGET),MacOSX)
183 OS_LIBS = -framework CoreServices -framework CoreFoundation
184 endif
185
186 EXTRA_LIBS += $(OS_LIBS)
187
188 #
189 # Define platform-dependent OBJS
190 #
191
192 OBJS = \
193 $(OBJDIR)/prvrsion.$(OBJ_SUFFIX) \
194 io/$(OBJDIR)/prfdcach.$(OBJ_SUFFIX) \
195 io/$(OBJDIR)/prmwait.$(OBJ_SUFFIX) \
196 io/$(OBJDIR)/prmapopt.$(OBJ_SUFFIX) \
197 io/$(OBJDIR)/priometh.$(OBJ_SUFFIX) \
198 io/$(OBJDIR)/pripv6.$(OBJ_SUFFIX) \
199 io/$(OBJDIR)/prlayer.$(OBJ_SUFFIX) \
200 io/$(OBJDIR)/prlog.$(OBJ_SUFFIX) \
201 io/$(OBJDIR)/prmmap.$(OBJ_SUFFIX) \
202 io/$(OBJDIR)/prpolevt.$(OBJ_SUFFIX) \
203 io/$(OBJDIR)/prprf.$(OBJ_SUFFIX) \
204 io/$(OBJDIR)/prscanf.$(OBJ_SUFFIX) \
205 io/$(OBJDIR)/prstdio.$(OBJ_SUFFIX) \
206 threads/$(OBJDIR)/prcmon.$(OBJ_SUFFIX) \
207 threads/$(OBJDIR)/prrwlock.$(OBJ_SUFFIX) \
208 threads/$(OBJDIR)/prtpd.$(OBJ_SUFFIX) \
209 linking/$(OBJDIR)/prlink.$(OBJ_SUFFIX) \
210 malloc/$(OBJDIR)/prmalloc.$(OBJ_SUFFIX) \
211 malloc/$(OBJDIR)/prmem.$(OBJ_SUFFIX) \
212 md/$(OBJDIR)/prosdep.$(OBJ_SUFFIX) \
213 memory/$(OBJDIR)/prshm.$(OBJ_SUFFIX) \
214 memory/$(OBJDIR)/prshma.$(OBJ_SUFFIX) \
215 memory/$(OBJDIR)/prseg.$(OBJ_SUFFIX) \
216 misc/$(OBJDIR)/pralarm.$(OBJ_SUFFIX) \
217 misc/$(OBJDIR)/pratom.$(OBJ_SUFFIX) \
218 misc/$(OBJDIR)/prcountr.$(OBJ_SUFFIX) \
219 misc/$(OBJDIR)/prdtoa.$(OBJ_SUFFIX) \
220 misc/$(OBJDIR)/prenv.$(OBJ_SUFFIX) \
221 misc/$(OBJDIR)/prerr.$(OBJ_SUFFIX) \
222 misc/$(OBJDIR)/prerror.$(OBJ_SUFFIX) \
223 misc/$(OBJDIR)/prerrortable.$(OBJ_SUFFIX) \
224 misc/$(OBJDIR)/prinit.$(OBJ_SUFFIX) \
225 misc/$(OBJDIR)/prinrval.$(OBJ_SUFFIX) \
226 misc/$(OBJDIR)/pripc.$(OBJ_SUFFIX) \
227 misc/$(OBJDIR)/prlog2.$(OBJ_SUFFIX) \
228 misc/$(OBJDIR)/prlong.$(OBJ_SUFFIX) \
229 misc/$(OBJDIR)/prnetdb.$(OBJ_SUFFIX) \
230 misc/$(OBJDIR)/praton.$(OBJ_SUFFIX) \
231 misc/$(OBJDIR)/prolock.$(OBJ_SUFFIX) \
232 misc/$(OBJDIR)/prrng.$(OBJ_SUFFIX) \
233 misc/$(OBJDIR)/prsystem.$(OBJ_SUFFIX) \
234 misc/$(OBJDIR)/prthinfo.$(OBJ_SUFFIX) \
235 misc/$(OBJDIR)/prtpool.$(OBJ_SUFFIX) \
236 misc/$(OBJDIR)/prtrace.$(OBJ_SUFFIX) \
237 misc/$(OBJDIR)/prtime.$(OBJ_SUFFIX)
238
239 ifdef USE_PTHREADS
240 OBJS += \
241 pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \
242 pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \
243 pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \
244 pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX)
245 else
246 OBJS += \
247 io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \
248 io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \
249 io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \
250 io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \
251 misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX)
252
253 ifndef USE_BTHREADS
254 OBJS += \
255 threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \
256 threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \
257 threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \
258 threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \
259 threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \
260 threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \
261 threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \
262 threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \
263 threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX)
264 endif
265
266 endif
267
268 ifeq ($(USE_CPLUS), 1)
269 OBJS += \
270 cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \
271 cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \
272 cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \
273 cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \
274 cplus/$(OBJDIR)/rcio.$(OBJ_SUFFIX) \
275 cplus/$(OBJDIR)/rclock.$(OBJ_SUFFIX) \
276 cplus/$(OBJDIR)/rcnetdb.$(OBJ_SUFFIX) \
277 cplus/$(OBJDIR)/rcnetio.$(OBJ_SUFFIX) \
278 cplus/$(OBJDIR)/rcthread.$(OBJ_SUFFIX) \
279 cplus/$(OBJDIR)/rctime.$(OBJ_SUFFIX)
280 endif
281
282 ifeq ($(OS_ARCH), WINNT)
283 RES=$(OBJDIR)/nspr.res
284 RESNAME=nspr.rc
285 endif # WINNT
286
287 include $(srcdir)/md/$(PR_MD_ARCH_DIR)/objs.mk
288 ifdef USE_BTHREADS
289 include $(srcdir)/bthreads/objs.mk
290 endif
291
292 LIBRARY_NAME = nspr
293 LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
294
295 RELEASE_LIBS = $(TARGETS)
296
297 include $(topsrcdir)/config/rules.mk
298
299 ifeq ($(BUILD_AIX_RTL_LIBC),1)
300 TARGETS += $(AIX_RTL_LIBC)
301 # XXX is this a shared library?
302 endif
303
304 #
305 # Version information generation (begin)
306 #
307 ECHO = echo
308 INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
309 TINC = $(OBJDIR)/_pr_bld.h
310
311 ifeq ($(OS_TARGET),OS2)
312 PROD = nspr$(MOD_MAJOR_VERSION).$(DLL_SUFFIX)
313 else
314 PROD = $(notdir $(SHARED_LIBRARY))
315 endif
316
317 NOW = $(MOD_DEPTH)/config/$(OBJDIR)/now
318 SH_DATE = $(shell date "+%Y-%m-%d %T")
319 SH_NOW = $(shell $(NOW))
320
321 ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT)
322 SUF = i64
323 else
324 SUF = LL
325 endif
326
327 DEFINES += -D_NSPR_BUILD_
328
329 GARBAGE += $(TINC)
330
331 $(TINC):
332 @$(MAKE_OBJDIR)
333 @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
334 @if test ! -z "$(SH_NOW)"; then \
335 $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
336 else \
337 true; \
338 fi
339 @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
340
341
342 $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
343 ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT)
344 $(CC) -Fo$@ -c $(CFLAGS) -I$(OBJDIR) $<
345 else
346 $(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $<
347 endif
348 #
349 # Version information generation (end)
350 #
351
352
353 # We use a 'build' target here to ensure that we build $(TARGETS) after
354 # looping over $(DIRS) to create the object files in a parallel build.
355 # Recipe commands are executed sequentially in a parallel build while
356 # target dependencies are executed in parallel.
357 export::
358 $(MAKE) build
359
360 #
361 # The Client build wants the shared libraries in $(dist_bindir)
362 # so we also install them there.
363 #
364
365 build:: $(TARGETS)
366 $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
367 ifdef SHARED_LIBRARY
368 ifeq ($(OS_ARCH),HP-UX)
369 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
370 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
371 else
372 $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
373 endif
374 endif
375
376 ifeq ($(BUILD_AIX_RTL_LIBC),1)
377 $(AIX_RTL_LIBC): /usr/ccs/lib/libc.a
378 rtl_enable -o $@ $<
379 endif

mercurial