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