backout 29799f914cab, Bug 917642 - [Helix] Please update the helix blobs
[gecko.git] / nsprpub / pr / tests / Makefile.in
blob50e87762f0a6d93f92a36bbff551ef53a5ccaae6
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/.
7 #! gmake
9 MOD_DEPTH = ../..
10 topsrcdir = @top_srcdir@
11 srcdir = @srcdir@
12 VPATH = @srcdir@
14 include $(MOD_DEPTH)/config/autoconf.mk
16 include $(topsrcdir)/config/config.mk
18 DIRS = dll
20 CSRCS = \
21 accept.c \
22 acceptread.c \
23 acceptreademu.c \
24 addrstr.c \
25 affinity.c \
26 alarm.c \
27 anonfm.c \
28 append.c \
29 atomic.c \
30 attach.c \
31 bigfile.c \
32 bigfile2.c \
33 bigfile3.c \
34 cleanup.c \
35 cltsrv.c \
36 concur.c \
37 cvar.c \
38 cvar2.c \
39 dceemu.c \
40 dlltest.c \
41 dtoa.c \
42 env.c \
43 errcodes.c \
44 errset.c \
45 exit.c \
46 fdcach.c \
47 fileio.c \
48 foreign.c \
49 forktest.c \
50 formattm.c \
51 fsync.c \
52 getai.c \
53 gethost.c \
54 getproto.c \
55 i2l.c \
56 initclk.c \
57 inrval.c \
58 instrumt.c \
59 intrio.c \
60 intrupt.c \
61 io_timeout.c \
62 ioconthr.c \
63 ipv6.c \
64 join.c \
65 joinkk.c \
66 joinku.c \
67 joinuk.c \
68 joinuu.c \
69 layer.c \
70 lazyinit.c \
71 libfilename.c \
72 lltest.c \
73 lock.c \
74 lockfile.c \
75 logfile.c \
76 logger.c \
77 makedir.c \
78 mbcs.c \
79 multiacc.c \
80 multiwait.c \
81 many_cv.c \
82 nameshm1.c \
83 nbconn.c \
84 nblayer.c \
85 nonblock.c \
86 ntioto.c \
87 ntoh.c \
88 obsints.c \
89 op_2long.c \
90 op_excl.c \
91 op_filnf.c \
92 op_filok.c \
93 op_noacc.c \
94 op_nofil.c \
95 openfile.c \
96 parent.c \
97 parsetm.c \
98 peek.c \
99 perf.c \
100 pipeping.c \
101 pipeping2.c \
102 pipepong.c \
103 pipepong2.c \
104 pipeself.c \
105 poll_er.c \
106 poll_nm.c \
107 poll_to.c \
108 pollable.c \
109 prftest.c \
110 prftest1.c \
111 prftest2.c \
112 primblok.c \
113 priotest.c \
114 provider.c \
115 prpoll.c \
116 prpollml.c \
117 pushtop.c \
118 ranfile.c \
119 randseed.c \
120 reinit.c \
121 rmdir.c \
122 rwlocktest.c \
123 sel_spd.c \
124 selct_er.c \
125 selct_nm.c \
126 selct_to.c \
127 select2.c \
128 selintr.c \
129 sem.c \
130 sema.c \
131 semaerr.c \
132 semaerr1.c \
133 semaping.c \
134 semapong.c \
135 sendzlf.c \
136 server_test.c \
137 servr_kk.c \
138 servr_ku.c \
139 servr_uk.c \
140 servr_uu.c \
141 short_thread.c \
142 sigpipe.c \
143 socket.c \
144 sockopt.c \
145 sockping.c \
146 sockpong.c \
147 sprintf.c \
148 sproc_ch.c \
149 sproc_p.c \
150 stack.c \
151 stdio.c \
152 str2addr.c \
153 strod.c \
154 suspend.c \
155 switch.c \
156 system.c \
157 testbit.c \
158 testfile.c \
159 thrpool_server.c \
160 thrpool_client.c \
161 threads.c \
162 thruput.c \
163 timemac.c \
164 timetest.c \
165 tmoacc.c \
166 tmocon.c \
167 tpd.c \
168 vercheck.c \
169 version.c \
170 udpsrv.c \
171 writev.c \
172 xnotify.c \
173 y2k.c \
174 y2ktmo.c \
175 zerolen.c \
176 $(NULL)
178 ifeq ($(OS_ARCH),WINCE)
179 CFLAGS += -FImozce_shunt.h -Zi -UDEBUG -DNDEBUG
180 LDOPTS += -link $(DIST)/lib/mozce_shunt.lib ws2.lib -DEBUG -DEBUGTYPE:CV -INCREMENTAL:NO -PDB:$(@:.exe=.pdb)
181 endif
183 ifeq ($(OS_TARGET),OS2)
184 CSRCS += \
185 sleep.c \
186 stat.c \
187 yield.c \
188 $(NULL)
189 endif
191 ifeq (,$(filter-out WINCE WINNT OS2,$(OS_ARCH)))
192 PROG_SUFFIX = .exe
193 DLL_SUFFIX = .dll
194 else
195 PROG_SUFFIX =
196 DLL_SUFFIX =
197 endif
199 PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=$(PROG_SUFFIX)))
201 TARGETS = $(PROGS)
203 INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
205 ifeq ($(OS_ARCH), WINNT)
206 ifdef NS_USE_GCC
207 EXTRA_LIBS += -lwsock32
208 else
209 EXTRA_LIBS += wsock32.lib
210 LDOPTS = -NOLOGO -DEBUG -DEBUGTYPE:CV -INCREMENTAL:NO
211 ifdef PROFILE
212 LDOPTS += -PROFILE -MAP
213 endif # profile
214 endif # NS_USE_GCC
215 endif
217 ifeq ($(OS_ARCH),OS2)
218 EXTRA_LIBS = $(OS_LIBS)
219 LDOPTS = -Zomf -Zlinker /PM:VIO -Zlinker /ST:0x64000
220 endif
222 ifneq ($(OS_ARCH), WINNT)
223 # Use an absolute pathname as the runtime library path (for the -R
224 # or -rpath linker option or the LD_RUN_PATH environment variable).
225 ifeq (,$(patsubst /%,,$(DIST)))
226 # $(DIST) is already an absolute pathname.
227 ABSOLUTE_LIB_DIR = $(dist_libdir)
228 else
229 # $(DIST) is a relative pathname: prepend the current directory.
230 PWD = $(shell pwd)
231 ABSOLUTE_LIB_DIR = $(PWD)/$(dist_libdir)
232 endif
233 endif
235 ifeq ($(OS_ARCH), IRIX)
236 ifeq ($(USE_CPLUS), 1)
237 CC = CC
238 endif
239 LDOPTS += -rpath $(ABSOLUTE_LIB_DIR)
240 ifdef NS_USE_GCC
241 LDOPTS += -Wl,-rdata_shared
242 else
243 LDOPTS += -rdata_shared
244 endif
245 # For 6.x machines, include this flag
246 ifeq ($(basename $(OS_RELEASE)),6)
247 ifndef NS_USE_GCC
248 ifeq ($(USE_N32),1)
249 LDOPTS += -n32
250 else
251 LDOPTS += -32
252 endif
254 ifeq ($(USE_PTHREADS), 1)
255 ifeq ($(OS_RELEASE), 6.2)
256 LDOPTS += -Wl,-woff,85
257 endif
258 endif
259 endif
260 endif
261 endif
263 ifeq ($(OS_ARCH), OSF1)
264 ifeq ($(USE_CPLUS), 1)
265 CC = cxx
266 endif
267 # I haven't figured out how to pass -rpath to cc on OSF1 V3.2, so
268 # we do static linking.
269 ifeq (,$(filter-out V2.0 V3.2,$(OS_RELEASE)))
270 LIBNSPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
271 LIBPLC = $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).a
272 EXTRA_LIBS = -lc_r
273 else
274 LDOPTS += -rpath $(ABSOLUTE_LIB_DIR)
275 endif
276 endif
278 ifeq ($(OS_ARCH), HP-UX)
279 LDOPTS += -z -Wl,+s,+b,$(ABSOLUTE_LIB_DIR)
280 ifeq ($(USE_64),1)
281 LDOPTS += +DD64
282 endif
283 ifeq ($(USE_PTHREADS),1)
284 EXTRA_LIBS = $(LIBPTHREAD)
285 endif
286 endif
288 # AIX
289 ifeq ($(OS_ARCH),AIX)
290 LDOPTS += -blibpath:$(ABSOLUTE_LIB_DIR):/usr/lib:/lib
291 ifneq ($(OS_ARCH)$(OS_RELEASE),AIX4.1)
292 LDOPTS += -brtl
293 EXTRA_LIBS = -ldl
294 endif
295 endif
297 # Solaris
298 ifeq ($(OS_ARCH), SunOS)
299 ifdef NS_USE_GCC
300 LDOPTS += -Xlinker -R -Xlinker $(ABSOLUTE_LIB_DIR)
301 else
302 ifeq ($(USE_CPLUS), 1)
303 CC = CC
304 endif
305 LDOPTS += -R $(ABSOLUTE_LIB_DIR)
306 endif
308 ifdef USE_PTHREADS
309 EXTRA_LIBS = -lpthread
310 endif
311 endif # SunOS
313 ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
314 LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
315 ifeq ($(USE_PTHREADS),1)
316 EXTRA_LIBS = -lpthread
317 endif
318 endif
320 ifeq ($(OS_ARCH), SCOOS)
321 # SCO Unix needs to link against -lsocket again even though we
322 # already linked with these system libraries when we built libnspr.so.
323 EXTRA_LIBS = -lsocket
324 # This hardcodes in the executable programs the directory to find
325 # libnspr.so etc. at program startup. Equivalent to the -R or -rpath
326 # option for ld on other platforms.
327 export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
328 endif
330 ifeq ($(OS_ARCH),OpenUNIX)
331 export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
332 ifeq ($(USE_PTHREADS),1)
333 LDOPTS += -pthread
334 endif
335 endif
337 ifeq ($(OS_ARCH), UNIXWARE)
338 export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
339 endif
341 ifeq ($(OS_ARCH),FreeBSD)
342 ifeq ($(USE_PTHREADS),1)
343 LDOPTS += -pthread
344 endif
345 LDOPTS += -Xlinker -R $(ABSOLUTE_LIB_DIR)
346 endif
348 ifeq ($(OS_ARCH),OpenBSD)
349 ifeq ($(USE_PTHREADS),1)
350 LDOPTS += -pthread
351 endif
352 endif
354 ifeq ($(OS_ARCH),BSD_OS)
355 ifneq ($(OS_RELEASE),1.1)
356 EXTRA_LIBS = -ldl
357 endif
358 endif
360 ifeq ($(OS_ARCH),RISCOS)
361 EXTRA_LIBS = -ldl
362 endif
364 ifeq ($(USE_PTHREADS),1)
365 LIBPTHREAD = -lpthread
366 ifeq ($(OS_ARCH),AIX)
367 LIBPTHREAD = -lpthreads
368 endif
369 ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
370 LIBPTHREAD =
371 endif
372 ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)
373 LIBPTHREAD = -ldce
374 endif
375 endif
377 ifeq ($(OS_TARGET),Android)
378 LIBPTHREAD =
379 XCFLAGS = $(OS_CFLAGS)
380 endif
382 #####################################################
384 # The rules
386 #####################################################
388 include $(topsrcdir)/config/rules.mk
390 AIX_PRE_4_2 = 0
391 ifeq ($(OS_ARCH),AIX)
392 ifeq ($(OS_RELEASE),4.1)
393 ifneq ($(USE_PTHREADS), 1)
394 #AIX_PRE_4_2 = 1
395 endif
396 endif
397 endif
399 ifeq ($(AIX_PRE_4_2),1)
401 # AIX releases prior to 4.2 need a special two-step linking hack
402 # in order to both override the system select() and be able to
403 # get at the original system select().
405 # We use a pattern rule in ns/nspr20/config/rules.mk to generate
406 # the .$(OBJ_SUFFIX) file from the .c source file, then do the
407 # two-step linking hack below.
409 $(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX)
410 @$(MAKE_OBJDIR)
411 rm -f $@ $(AIX_TMP)
412 $(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
413 $(CC) -o $@ $(AIX_TMP) $(AIX_WRAP)
414 rm -f $(AIX_TMP)
416 else
418 # All platforms that are not AIX pre-4.2.
420 $(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX)
421 @$(MAKE_OBJDIR)
422 ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT)
423 link $(LDOPTS) $(EXTRA_LDOPTS) $< $(LIBPLC) $(LIBNSPR) $(EXTRA_LIBS) -out:$@
424 ifdef MT
425 @if test -f $@.manifest; then \
426 $(MT) -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
427 rm -f $@.manifest; \
429 endif
430 else
431 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(EXTRA_LIBS) -o $@
432 endif # WINNT
433 endif # AIX_PRE_4_2
435 export:: $(TARGETS)
436 clean::
437 rm -f $(TARGETS)
439 # The following tests call BSD socket functions, so they need to link
440 # with -lsocket on some platforms.
441 ifeq ($(OS_ARCH),SunOS)
442 ifeq ($(USE_IPV6),1)
443 $(OBJDIR)/gethost: $(OBJDIR)/gethost.o
444 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
445 endif
446 $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
447 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
448 endif
450 ifeq ($(USE_PTHREADS), 1)
451 $(OBJDIR)/attach: $(OBJDIR)/attach.o
452 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
453 $(OBJDIR)/foreign: $(OBJDIR)/foreign.o
454 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
455 $(OBJDIR)/provider: $(OBJDIR)/provider.o
456 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
457 $(OBJDIR)/socket: $(OBJDIR)/socket.o
458 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
459 $(OBJDIR)/testfile: $(OBJDIR)/testfile.o
460 $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
461 endif
464 # Run the test programs with no arguments
466 # Test output goes to the file pointed to by the environment variable
467 # NSPR_TEST_LOGFILE, if set, else to /dev/null
469 ECHO = echo
470 PROGRAMS = $(notdir $(PROGS))
471 ifdef NSPR_TEST_LOGFILE
472 LOGFILE = $(NSPR_TEST_LOGFILE)
473 else
474 ifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))
475 LOGFILE = nul
476 else
477 LOGFILE = /dev/null
478 endif
479 endif
481 ifeq ($(OS_TARGET),Linux)
482 ECHO = /bin/echo
483 endif
485 ALWAYS:
487 runtests:: $(PROGS) ALWAYS
488 @$(ECHO) "\nNSPR Test Results - $(OBJDIR)\n"
489 @$(ECHO) "BEGIN\t\t\t`date`"
490 @$(ECHO) "NSPR_TEST_LOGFILE\t$(LOGFILE)\n"
491 @$(ECHO) "Test\t\t\tResult\n"
492 @cd $(OBJDIR); for i in $(PROGRAMS); do \
493 $(ECHO) "$$i\c"; \
494 ./$$i >> $(LOGFILE) 2>&1 ; \
495 if [ 0 = $$? ] ; then \
496 $(ECHO) "\t\t\tPassed"; \
497 else \
498 $(ECHO) "\t\t\tFAILED"; \
499 fi; \
500 done
501 @$(ECHO) "\nEND\t\t`date`\n"