1# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2#
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6#
7# See the COPYRIGHT file distributed with this work for additional
8# information regarding copyright ownership.
9
10srcdir =	@srcdir@
11VPATH =		@srcdir@
12top_srcdir =	@top_srcdir@
13
14@BIND9_MAKE_INCLUDES@
15
16CINCLUDES =	${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES} \
17		${OPENSSL_CFLAGS} @DST_GSSAPI_INC@
18
19CDEFINES =	@USE_GSSAPI@
20
21CWARNINGS =
22BACKTRACECFLAGS = @BACKTRACECFLAGS@
23PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
24
25DNSLIBS =	../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
26ISCLIBS =	../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
27ISCNOSYMLIBS =	../../../lib/isc/libisc-nosymtbl.@A@ @NO_LIBTOOL_ISCLIBS@
28ISCCFGLIBS = 	../../../lib/isccfg/libisccfg.@A@
29
30DNSDEPLIBS =	../../../lib/dns/libdns.@A@
31ISCDEPLIBS =	../../../lib/isc/libisc.@A@
32ISCDEPNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@
33ISCCFGDEPLIBS = ../../../lib/isccfg/libisccfg.@A@
34
35LIBS =		@LIBS@
36
37SUBDIRS =
38
39# These programs are not built by default, but only when
40# configured with --enable-developer or built explicitly with
41# "make all_tests"
42
43TARGETS =	@XTARGETS@
44XTARGETS =	adb_test@EXEEXT@ \
45		byaddr_test@EXEEXT@ \
46		backtrace_test@EXEEXT@ \
47		backtrace_test_nosymtbl@EXEEXT@ \
48		byname_test@EXEEXT@ \
49		db_test@EXEEXT@ \
50		gsstest@EXEEXT@ \
51		fsaccess_test@EXEEXT@ \
52		inter_test@EXEEXT@ \
53		lex_test@EXEEXT@ \
54		lfsr_test@EXEEXT@ \
55		log_test@EXEEXT@ \
56		master_test@EXEEXT@ \
57		mempool_test@EXEEXT@ \
58		name_test@EXEEXT@ \
59		nsecify@EXEEXT@ \
60		ratelimiter_test@EXEEXT@ \
61		rbt_test@EXEEXT@ \
62		rwlock_test@EXEEXT@ \
63		serial_test@EXEEXT@ \
64		shutdown_test@EXEEXT@ \
65		sig0_test@EXEEXT@ \
66		sock_test@EXEEXT@ \
67		sym_test@EXEEXT@ \
68		task_test@EXEEXT@ \
69		timer_test@EXEEXT@ \
70		zone_test@EXEEXT@
71
72SRCS =		${XSRCS}
73XSRCS =		adb_test.c \
74		byaddr_test.c \
75		backtrace_test.c \
76		byname_test.c \
77		db_test.c \
78		fsaccess_test.c \
79		gsstest.c \
80		inter_test.c \
81		lex_test.c \
82		lfsr_test.c \
83		log_test.c \
84		master_test.c \
85		mempool_test.c \
86		name_test.c \
87		nsecify.c \
88		ratelimiter_test.c \
89		rbt_test.c \
90		rwlock_test.c \
91		serial_test.c \
92		shutdown_test.c \
93		sig0_test.c \
94		sock_test.c \
95		sym_test.c \
96		task_test.c \
97		timer_test.c \
98		zone_test.c
99
100@BIND9_MAKE_RULES@
101
102# disable optimization for backtrace test to get the expected result
103BTTEST_CFLAGS =	${BACKTRACECFLAGS} ${EXT_CFLAGS} ${ALL_CPPFLAGS} -g \
104		${ALWAYS_WARNINGS} ${STD_CWARNINGS} ${CWARNINGS} ${PTHREAD_CFLAGS}
105
106all_tests: ${XTARGETS}
107
108adb_test@EXEEXT@: adb_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
109	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ adb_test.@O@ \
110		${DNSLIBS} ${ISCLIBS} ${LIBS}
111
112backtrace_test_nosymtbl@EXEEXT@: ${srcdir}/backtrace_test.c ${ISCDEPLIBS}
113	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} -o $@ \
114	${srcdir}/backtrace_test.c ${ISCLIBS} ${LIBS}
115
116backtrace_test@EXEEXT@: ${srcdir}/backtrace_test.c backtrace_test_nosymtbl@EXEEXT@
117	#first step: create a first symbol table
118	rm -f symtbl.c
119	if test X${MKSYMTBL_PROGRAM} != X; then \
120	${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl \
121	backtrace_test_nosymtbl@EXEEXT@; else \
122	cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
123	#second step: build a binary with the first symbol table
124	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
125	-o $@0 ${srcdir}/backtrace_test.c symtbl.c \
126	${ISCNOSYMLIBS} ${LIBS}
127	rm -f symtbl.c
128	#third step: create a second symbol table
129	if test X${MKSYMTBL_PROGRAM} != X; then \
130	${MKSYMTBL_PROGRAM} ${top_srcdir}/util/mksymtbl.pl $@0; else \
131	cp ${top_srcdir}/lib/isc/backtrace-emptytbl.c symtbl.c; fi
132	#fourth step: build the final binary
133	rm -f $@0
134	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${BTTEST_CFLAGS} ${LDFLAGS} \
135	-o $@ ${srcdir}/backtrace_test.c symtbl.c ${ISCNOSYMLIBS} ${LIBS}
136	rm -f symtbl.c
137
138nsecify@EXEEXT@: nsecify.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
139	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ nsecify.@O@ \
140		${DNSLIBS} ${ISCLIBS} ${LIBS}
141
142byaddr_test@EXEEXT@: byaddr_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
143	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ byaddr_test.@O@ \
144		${DNSLIBS} ${ISCLIBS} ${LIBS}
145
146byname_test@EXEEXT@: byname_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
147	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ byname_test.@O@ \
148		${DNSLIBS} ${ISCLIBS} ${LIBS}
149
150lex_test@EXEEXT@: lex_test.@O@ ${ISCDEPLIBS}
151	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lex_test.@O@ \
152		${ISCLIBS} ${LIBS}
153
154lfsr_test@EXEEXT@: lfsr_test.@O@ ${ISCDEPLIBS}
155	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ lfsr_test.@O@ \
156		${ISCLIBS} ${LIBS}
157
158log_test@EXEEXT@: log_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
159	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ log_test.@O@ \
160		${DNSLIBS} ${ISCLIBS} ${LIBS}
161
162name_test@EXEEXT@: name_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
163	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ name_test.@O@ \
164		${DNSLIBS} ${ISCLIBS} ${LIBS}
165
166entropy_test@EXEEXT@: entropy_test.@O@ ${ISCDEPLIBS}
167	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ entropy_test.@O@ \
168		${ISCLIBS} ${LIBS}
169
170entropy2_test@EXEEXT@: entropy2_test.@O@ ${ISCDEPLIBS}
171	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ entropy2_test.@O@ \
172		${ISCLIBS} ${LIBS}
173
174sock_test@EXEEXT@: sock_test.@O@ ${ISCDEPLIBS}
175	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sock_test.@O@ \
176		${ISCLIBS} ${LIBS}
177
178sym_test@EXEEXT@: sym_test.@O@ ${ISCDEPLIBS}
179	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sym_test.@O@ \
180		${ISCLIBS} ${LIBS}
181
182task_test@EXEEXT@: task_test.@O@ ${ISCDEPLIBS}
183	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ task_test.@O@ \
184		${ISCLIBS} ${LIBS}
185
186shutdown_test@EXEEXT@: shutdown_test.@O@ ${ISCDEPLIBS}
187	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ shutdown_test.@O@ \
188		${ISCLIBS} ${LIBS}
189
190timer_test@EXEEXT@: timer_test.@O@ ${ISCDEPLIBS}
191	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ timer_test.@O@ \
192		${ISCLIBS} ${LIBS}
193
194ratelimiter_test@EXEEXT@: ratelimiter_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
195	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ratelimiter_test.@O@ \
196		${DNSLIBS} ${ISCLIBS} ${LIBS}
197
198rbt_test@EXEEXT@: rbt_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
199	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rbt_test.@O@ \
200		${DNSLIBS} ${ISCLIBS} ${LIBS}
201
202rwlock_test@EXEEXT@: rwlock_test.@O@ ${ISCDEPLIBS}
203	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rwlock_test.@O@ \
204		${ISCLIBS} ${LIBS}
205
206master_test@EXEEXT@: master_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
207	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ master_test.@O@ \
208		${DNSLIBS} ${ISCLIBS} ${LIBS}
209
210db_test@EXEEXT@: db_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
211	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ db_test.@O@ \
212		${DNSLIBS} ${ISCLIBS} ${LIBS}
213
214mempool_test@EXEEXT@: mempool_test.@O@ ${ISCDEPLIBS}
215	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ mempool_test.@O@ \
216		${ISCLIBS} ${LIBS}
217
218serial_test@EXEEXT@: serial_test.@O@ ${ISCDEPLIBS}
219	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ serial_test.@O@ \
220		${ISCLIBS} ${LIBS}
221
222zone_test@EXEEXT@: zone_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
223	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ zone_test.@O@ \
224		${DNSLIBS} ${ISCLIBS} ${LIBS}
225
226fsaccess_test@EXEEXT@: fsaccess_test.@O@ ${ISCDEPLIBS}
227	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ fsaccess_test.@O@ \
228		${ISCLIBS} ${LIBS}
229
230inter_test@EXEEXT@: inter_test.@O@ ${ISCDEPLIBS}
231	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ inter_test.@O@ \
232		${ISCLIBS} ${LIBS}
233
234sig0_test@EXEEXT@: sig0_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
235	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ sig0_test.@O@ \
236		${DNSLIBS} ${ISCLIBS} ${LIBS}
237
238gsstest@EXEEXT@: gsstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
239	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} \
240		-o $@ gsstest.@O@ ${DNSLIBS} ${ISCLIBS} ${LIBS}
241
242clean distclean::
243	rm -f ${TARGETS} ${XTARGETS}
244	rm -f backtrace_test_symtbl.c
245
246check: test
247
248test:
249	@for dir in $(TESTDIRS) ;\
250	do \
251		( cd $$dir; $(MAKE) test ) ;\
252	done
253