1# Copyright (C) 2004-2012  Internet Systems Consortium, Inc. ("ISC")
2# Copyright (C) 1998-2003  Internet Software Consortium.
3#
4# Permission to use, copy, modify, and/or distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14# PERFORMANCE OF THIS SOFTWARE.
15
16# Id: Makefile.in,v 1.145 2011/02/03 05:41:53 marka Exp 
17
18srcdir =	@srcdir@
19VPATH =		@srcdir@
20top_srcdir =	@top_srcdir@
21
22@BIND9_MAKE_INCLUDES@
23
24CINCLUDES =	${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES} \
25		${LWRES_INCLUDES} ${OMAPI_INCLUDES}
26
27CDEFINES =
28CWARNINGS =
29
30DNSLIBS =	../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
31ISCLIBS =	../../lib/isc/libisc.@A@ @DNS_CRYPTO_LIBS@
32ISCNOSYMLIBS =	../../lib/isc/libisc-nosymtbl.@A@ @DNS_CRYPTO_LIBS@
33ISCCFGLIBS = 	../../lib/isccfg/libisccfg.@A@
34LWRESLIBS =	../../lib/lwres/liblwres.@A@
35
36DNSDEPLIBS =	../../lib/dns/libdns.@A@
37ISCDEPLIBS =	../../lib/isc/libisc.@A@
38ISCDEPNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@
39ISCCFGDEPLIBS = ../../lib/isccfg/libisccfg.@A@
40LWRESDEPLIBS =	../../lib/lwres/liblwres.@A@
41
42LIBS =		@LIBS@
43
44SUBDIRS =	atomic db dst master mem hashes names net rbt resolver \
45		sockaddr tasks timers system
46
47# Test programs that are built by default:
48# cfg_test is needed for regenerating doc/misc/options
49
50# Alphabetically
51TARGETS =	cfg_test@EXEEXT@
52
53# All the other tests are optional and not built by default.
54
55# Alphabetically
56XTARGETS =	adb_test@EXEEXT@ \
57		byaddr_test@EXEEXT@ \
58		backtrace_test@EXEEXT@ \
59		backtrace_test_nosymtbl@EXEEXT@ \
60		byname_test@EXEEXT@ \
61		compress_test@EXEEXT@ \
62		db_test@EXEEXT@ \
63		entropy_test@EXEEXT@ \
64		entropy2_test@EXEEXT@ \
65		gxba_test@EXEEXT@ \
66		gxbn_test@EXEEXT@ \
67		hash_test@EXEEXT@ \
68		fsaccess_test@EXEEXT@ \
69		inter_test@EXEEXT@ \
70		keyboard_test@EXEEXT@ \
71		lex_test@EXEEXT@ \
72		lfsr_test@EXEEXT@ \
73		log_test@EXEEXT@ \
74		lwres_test@EXEEXT@ \
75		lwresconf_test@EXEEXT@ \
76		master_test@EXEEXT@ \
77		mempool_test@EXEEXT@ \
78		name_test@EXEEXT@ \
79		nsecify@EXEEXT@ \
80		ratelimiter_test@EXEEXT@ \
81		rbt_test@EXEEXT@ \
82		rdata_test@EXEEXT@ \
83		rwlock_test@EXEEXT@ \
84		serial_test@EXEEXT@ \
85		shutdown_test@EXEEXT@ \
86		sig0_test@EXEEXT@ \
87		sock_test@EXEEXT@ \
88		sym_test@EXEEXT@ \
89		task_test@EXEEXT@ \
90		timer_test@EXEEXT@ \
91		wire_test@EXEEXT@ \
92		zone_test@EXEEXT@
93
94# Alphabetically
95SRCS =		cfg_test.c ${XSRCS}
96
97XSRCS =		adb_test.c \
98		byaddr_test.c \
99		backtrace_test.c \
100		byname_test.c \
101		compress_test.c \
102		db_test.c \
103		entropy_test.c \
104		entropy2_test.c \
105		gxba_test.c \
106		gxbn_test.c \
107		hash_test.c \
108		fsaccess_test.c \
109		inter_test.c \
110		keyboard_test.c \
111		lex_test.c \
112		lfsr_test.c \
113		log_test.c \
114		lwres_test.c \
115		lwresconf_test.c \
116		master_test.c \
117		mempool_test.c \
118		name_test.c \
119		nsecify.c \
120		printmsg.c \
121		ratelimiter_test.c \
122		rbt_test.c \
123		rdata_test.c \
124		rwlock_test.c \
125		serial_test.c \
126		shutdown_test.c \
127		sig0_test.c \
128		sock_test.c \
129		sym_test.c \
130		task_test.c \
131		timer_test.c \
132		wire_test.c \
133		zone_test.c
134
135@BIND9_MAKE_RULES@
136
137# disable optimization for backtrace test to get the expected result	
138BTTEST_CFLAGS =	${EXT_CFLAGS} ${ALL_CPPFLAGS} -g ${ALWAYS_WARNINGS} \
139	${STD_CWARNINGS} ${CWARNINGS}
140
141all_tests: ${XTARGETS}
142
143adb_test@EXEEXT@: adb_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
144	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ adb_test.@O@ \
145		${DNSLIBS} ${ISCLIBS} ${LIBS}
146
147backtrace_test_nosymtbl@EXEEXT@: backtrace_test.c ${ISCDEPLIBS}
148	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} -o $@ \
149	backtrace_test.c ${ISCLIBS} ${LIBS}
150
151backtrace_test@EXEEXT@: backtrace_test_nosymtbl@EXEEXT@
152	#first step: create a first symbol table
153	rm -f symtbl.c
154	if test X${MKSYMTBL_PROGRAM} != X; then \
155	${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
156	backtrace_test_nosymtbl@EXEEXT@; else \
157	cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
158	#second step: build a binary with the first symbol table
159	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
160	-o $@0 backtrace_test.c symtbl.c \
161	${ISCNOSYMLIBS} ${LIBS}
162	rm -f symtbl.c
163	#third step: create a second symbol table
164	if test X${MKSYMTBL_PROGRAM} != X; then \
165	${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl $@0; else \
166	cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
167	#fourth step: build the final binary
168	rm -f $@0
169	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
170	-o $@ backtrace_test.c symtbl.c ${ISCNOSYMLIBS} ${LIBS}
171	rm -f symtbl.c
172
173nsecify@EXEEXT@: nsecify.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
174	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ nsecify.@O@ \
175		${DNSLIBS} ${ISCLIBS} ${LIBS}
176
177byaddr_test@EXEEXT@: byaddr_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
178	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ byaddr_test.@O@ \
179		${DNSLIBS} ${ISCLIBS} ${LIBS}
180
181byname_test@EXEEXT@: byname_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
182	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ byname_test.@O@ \
183		${DNSLIBS} ${ISCLIBS} ${LIBS}
184
185lex_test@EXEEXT@: lex_test.@O@ ${ISCDEPLIBS}
186	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lex_test.@O@ \
187		${ISCLIBS} ${LIBS}
188
189lfsr_test@EXEEXT@: lfsr_test.@O@ ${ISCDEPLIBS}
190	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lfsr_test.@O@ \
191		${ISCLIBS} ${LIBS}
192
193log_test@EXEEXT@: log_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
194	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ log_test.@O@ \
195		${DNSLIBS} ${ISCLIBS} ${LIBS}
196
197name_test@EXEEXT@: name_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
198	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ name_test.@O@ \
199		${DNSLIBS} ${ISCLIBS} ${LIBS}
200
201hash_test@EXEEXT@: hash_test.@O@ ${ISCDEPLIBS}
202	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ hash_test.@O@ \
203		${ISCLIBS} ${LIBS}
204
205entropy_test@EXEEXT@: entropy_test.@O@ ${ISCDEPLIBS}
206	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ entropy_test.@O@ \
207		${ISCLIBS} ${LIBS}
208
209entropy2_test@EXEEXT@: entropy2_test.@O@ ${ISCDEPLIBS}
210	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ entropy2_test.@O@ \
211		${ISCLIBS} ${LIBS}
212
213sock_test@EXEEXT@: sock_test.@O@ ${ISCDEPLIBS}
214	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sock_test.@O@ \
215		${ISCLIBS} ${LIBS}
216
217sym_test@EXEEXT@: sym_test.@O@ ${ISCDEPLIBS}
218	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sym_test.@O@ \
219		${ISCLIBS} ${LIBS}
220
221task_test@EXEEXT@: task_test.@O@ ${ISCDEPLIBS}
222	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ task_test.@O@ \
223		${ISCLIBS} ${LIBS}
224
225shutdown_test@EXEEXT@: shutdown_test.@O@ ${ISCDEPLIBS}
226	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ shutdown_test.@O@ \
227		${ISCLIBS} ${LIBS}
228
229timer_test@EXEEXT@: timer_test.@O@ ${ISCDEPLIBS}
230	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ timer_test.@O@ \
231		${ISCLIBS} ${LIBS}
232
233ratelimiter_test@EXEEXT@: ratelimiter_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
234	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ratelimiter_test.@O@ \
235		${DNSLIBS} ${ISCLIBS} ${LIBS}
236
237rbt_test@EXEEXT@: rbt_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
238	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rbt_test.@O@ \
239		${DNSLIBS} ${ISCLIBS} ${LIBS}
240
241rdata_test@EXEEXT@: rdata_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
242	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rdata_test.@O@ \
243		${DNSLIBS} ${ISCLIBS} ${LIBS}
244
245rwlock_test@EXEEXT@: rwlock_test.@O@ ${ISCDEPLIBS}
246	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rwlock_test.@O@ \
247		${ISCLIBS} ${LIBS}
248
249wire_test@EXEEXT@: wire_test.@O@ printmsg.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
250	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ wire_test.@O@ printmsg.@O@ \
251		${DNSLIBS} ${ISCLIBS} ${LIBS}
252
253master_test@EXEEXT@: master_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
254	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ master_test.@O@ \
255		${DNSLIBS} ${ISCLIBS} ${LIBS}
256
257db_test@EXEEXT@: db_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
258	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ db_test.@O@ \
259		${DNSLIBS} ${ISCLIBS} ${LIBS}
260
261compress_test@EXEEXT@: compress_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
262	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ compress_test.@O@ \
263		${DNSLIBS} ${ISCLIBS} ${LIBS}
264
265mempool_test@EXEEXT@: mempool_test.@O@ ${ISCDEPLIBS}
266	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ mempool_test.@O@ \
267		${ISCLIBS} ${LIBS}
268
269serial_test@EXEEXT@: serial_test.@O@ ${ISCDEPLIBS}
270	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ serial_test.@O@ \
271		${ISCLIBS} ${LIBS}
272
273zone_test@EXEEXT@: zone_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
274	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ zone_test.@O@ \
275		${DNSLIBS} ${ISCLIBS} ${LIBS}
276
277fsaccess_test@EXEEXT@: fsaccess_test.@O@ ${ISCDEPLIBS}
278	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ fsaccess_test.@O@ \
279		${ISCLIBS} ${LIBS}
280
281inter_test@EXEEXT@: inter_test.@O@ ${ISCDEPLIBS}
282	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ inter_test.@O@ \
283		${ISCLIBS} ${LIBS}
284
285keyboard_test@EXEEXT@: keyboard_test.@O@ ${ISCDEPLIBS}
286	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ keyboard_test.@O@ \
287		${ISCLIBS} ${LIBS}
288
289lwresconf_test@EXEEXT@: lwresconf_test.@O@ ${ISCDEPLIBS} ${LWRESDEPLIBS}
290	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lwresconf_test.@O@ \
291		${LWRESLIBS} ${ISCLIBS} ${LIBS}
292
293lwres_test@EXEEXT@: lwres_test.@O@ ${ISCDEPLIBS} ${LWRESDEPLIBS}
294	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lwres_test.@O@ \
295		${LWRESLIBS} ${ISCLIBS} ${LIBS}
296
297gxbn_test@EXEEXT@: gxbn_test.@O@ ${LWRESDEPLIBS}
298	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ gxbn_test.@O@ \
299		${LWRESLIBS} ${ISCLIBS} ${LIBS}
300
301gxba_test@EXEEXT@: gxba_test.@O@ ${LWRESDEPLIBS}
302	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ gxba_test.@O@ \
303		${LWRESLIBS} ${ISCLIBS} ${LIBS}
304
305sig0_test@EXEEXT@: sig0_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
306	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sig0_test.@O@ \
307		${DNSLIBS} ${ISCLIBS} ${LIBS}
308
309cfg_test@EXEEXT@: cfg_test.@O@ ${ISCCFGDEPLIBS} ${ISCDEPLIBS}
310	${LIBTOOL_MODE_LINK} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ cfg_test.@O@ \
311		${ISCCFGLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}
312
313distclean::
314	rm -f headerdep_test.sh
315
316clean distclean::
317	rm -f ${TARGETS} ${XTARGETS}
318	rm -f t_journal
319	rm -f backtrace_test_symtbl.c
320
321check: test
322
323test:
324	@for dir in $(SUBDIRS) ;\
325	do \
326		( cd $$dir; $(MAKE) test ) ;\
327	done
328