# Copyright (C) 2011-2014  Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.

# $Id$

srcdir =	@srcdir@
VPATH =		@srcdir@
top_srcdir =	@top_srcdir@

# Attempt to disable parallel processing.
.NOTPARALLEL:
.NO_PARALLEL:

@BIND9_VERSION@

@BIND9_MAKE_INCLUDES@

CINCLUDES =	-I. -Iinclude ${DNS_INCLUDES} ${ISC_INCLUDES} \
		@DST_OPENSSL_INC@
CDEFINES =	@CRYPTO@ -DTESTS="\"${top_builddir}/lib/dns/tests/\""

ISCLIBS =	../../isc/libisc.@A@
ISCDEPLIBS =	../../isc/libisc.@A@
DNSLIBS =	../libdns.@A@ @DNS_CRYPTO_LIBS@
DNSDEPLIBS =	../libdns.@A@

LIBS =		@LIBS@ @ATFLIBS@

OBJS =		dnstest.@O@
SRCS =		db_test.c \
		dbdiff_test.c \
		dbiterator_test.c \
		dispatch_test.c \
		dnstest.c \
		geoip_test.c \
		gost_test.c \
		keytable_test.c \
		master_test.c \
		nsec3_test.c \
		peer_test.c \
		private_test.c \
		rbt_test.c \
		rbt_serialize_test.c \
		rdata_test.c \
		rdataset_test.c \
		rdatasetstats_test.c \
		time_test.c \
		update_test.c \
		zonemgr_test.c \
		zt_test.c 

SUBDIRS =
TARGETS =	db_test@EXEEXT@ \
		dbdiff_test@EXEEXT@ \
		dbiterator_test@EXEEXT@ \
		dbversion_test@EXEEXT@ \
		dispatch_test@EXEEXT@ \
		geoip_test@EXEEXT@ \
		gost_test@EXEEXT@ \
		keytable_test@EXEEXT@ \
		master_test@EXEEXT@ \
		nsec3_test@EXEEXT@ \
		peer_test@EXEEXT@ \
		private_test@EXEEXT@ \
		rbt_test@EXEEXT@ \
		rbt_serialize_test@EXEEXT@ \
		rdata_test@EXEEXT@ \
		rdataset_test@EXEEXT@ \
		rdatasetstats_test@EXEEXT@ \
		time_test@EXEEXT@ \
		update_test@EXEEXT@ \
		zonemgr_test@EXEEXT@ \
		zt_test@EXEEXT@

@BIND9_MAKE_RULES@

master_test@EXEEXT@: master_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	test -d testdata || mkdir testdata
	test -d testdata/master || mkdir testdata/master
	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master12.data.in \
		> testdata/master/master12.data
	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master13.data.in \
		> testdata/master/master13.data
	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master14.data.in \
		> testdata/master/master14.data
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			master_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

keytable_test@EXEEXT@: keytable_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			keytable_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

time_test@EXEEXT@: time_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			time_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

peer_test@EXEEXT@: peer_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			peer_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

private_test@EXEEXT@: private_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			private_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

update_test@EXEEXT@: update_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			update_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

zonemgr_test@EXEEXT@: zonemgr_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			zonemgr_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

dbiterator_test@EXEEXT@: dbiterator_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			dbiterator_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

dbdiff_test@EXEEXT@: dbdiff_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			dbdiff_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

dbversion_test@EXEEXT@: dbversion_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			dbversion_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

zt_test@EXEEXT@: zt_test.@O@ dnstest.@O@ \
		${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			zt_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

nsec3_test@EXEEXT@: nsec3_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			nsec3_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

rdataset_test@EXEEXT@: rdataset_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			rdataset_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

dispatch_test@EXEEXT@: dispatch_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			dispatch_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

rdatasetstats_test@EXEEXT@: rdatasetstats_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			rdatasetstats_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

rbt_test@EXEEXT@: rbt_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			rbt_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

rbt_serialize_test@EXEEXT@: rbt_serialize_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			rbt_serialize_test.@O@ dnstest.@O@ ${DNSLIBS} \
				${ISCLIBS} ${LIBS}

rdata_test@EXEEXT@: rdata_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			rdata_test.@O@ ${DNSLIBS} \
			${ISCLIBS} ${LIBS}

geoip_test@EXEEXT@: geoip_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			geoip_test.@O@ dnstest.@O@ ${DNSLIBS} \
			${ISCLIBS} ${LIBS}

db_test@EXEEXT@: db_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			db_test.@O@ ${DNSLIBS} \
			${ISCLIBS} ${LIBS}

gost_test@EXEEXT@: gost_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
			gost_test.@O@ dnstest.@O@ ${DNSLIBS} \
			${ISCLIBS} ${LIBS}

unit::
	sh ${top_srcdir}/unit/unittest.sh

clean distclean::
	rm -f ${TARGETS}
	rm -f atf.out
	rm -f testdata/master/master12.data testdata/master/master13.data \
		testdata/master/master14.data 
	rm -f zone.bin
