# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.

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

VERSION=@BIND9_VERSION@

@BIND9_MAKE_INCLUDES@

WRAP_INTERPOSE=	@WRAP_INTERPOSE@
WRAP_OPTIONS =	-Wl,--wrap=isc_nmhandle_unref
WRAP_NAME =	-Wl,-install_name,${top_builddir}/lib/ns/tests/$@
WRAP_RPATH =	-Wl,-rpath,${top_builddir}/lib/ns/tests
WRAP_LIB =	-L${top_builddir}/lib/ns/tests -lwrap

CINCLUDES =	-I. -Iinclude ${NS_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
		${OPENSSL_CFLAGS} \
		@CMOCKA_CFLAGS@
CDEFINES =	-DTESTS="\"${top_builddir}/lib/ns/tests/\"" -DNAMED_PLUGINDIR=\"${plugindir}\"

ISCLIBS =	../../isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS}
ISCDEPLIBS =	../../isc/libisc.@A@
DNSLIBS =	../../dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
DNSDEPLIBS =	../../dns/libdns.@A@
NSLIBS =	../libns.@A@
NSDEPLIBS =	../libns.@A@

LIBS =		@LIBS@ @CMOCKA_LIBS@

SO_CFLAGS =	@CFLAGS@ @SO_CFLAGS@
SO_LDFLAGS =	@LDFLAGS@ @SO_LDFLAGS@

SO_OBJS =	wrap.@O@
SO_SRCS =	wrap.c
SO_TARGETS =	libwrap.@SO@

OBJS =		nstest.@O@
SRCS =		nstest.c \
		listenlist_test.c \
		notify_test.c \
		plugin_test.c \
		query_test.c

SUBDIRS =
TARGETS =	listenlist_test@EXEEXT@ \
		notify_test@EXEEXT@ \
		plugin_test@EXEEXT@ \
		query_test@EXEEXT@ \
		@SO_TARGETS@

LD_WRAP_TESTS=@LD_WRAP_TESTS@

@BIND9_MAKE_RULES@

libwrap.@SO@: wrap.@O@
	${LIBTOOL_MODE_LINK} @SO_LD@ ${SO_LDFLAGS} ${WRAP_INTERPOSE} @WRAP_NAME@ -o $@ wrap.@O@ ${LIBS}

listenlist_test@EXEEXT@: listenlist_test.@O@ nstest.@O@ libwrap.@SO@ ${NSDEPLIBS} ${ISCDEPLIBS} ${DNSDEPLIBS}
	if test "${LD_WRAP_TESTS}" = true -a -z "${LIBTOOL}"; then WRAP="${WRAP_OPTIONS}"; fi; \
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} $${WRAP} ${WRAP_RPATH} -o $@ listenlist_test.@O@ nstest.@O@ \
		${WRAP_LIB} ${NSLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}

notify_test@EXEEXT@: notify_test.@O@ nstest.@O@ libwrap.@SO@ ${NSDEPLIBS} ${ISCDEPLIBS} ${DNSDEPLIBS}
	if test "${LD_WRAP_TESTS}" = true -a -z "${LIBTOOL}"; then WRAP="${WRAP_OPTIONS}"; fi; \
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} $${WRAP} ${WRAP_RPATH} -o $@ notify_test.@O@ nstest.@O@ \
		${WRAP_LIB} ${NSLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}

plugin_test@EXEEXT@: plugin_test.@O@ nstest.@O@ libwrap.@SO@ ${NSDEPLIBS} ${ISCDEPLIBS} ${DNSDEPLIBS}
	if test "${LD_WRAP_TESTS}" = true -a -z "${LIBTOOL}"; then WRAP="${WRAP_OPTIONS}"; fi; \
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} $${WRAP} ${WRAP_RPATH} -o $@ plugin_test.@O@ nstest.@O@ \
		${WRAP_LIB} ${NSLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}

query_test@EXEEXT@: query_test.@O@ nstest.@O@ libwrap.@SO@ ${NSDEPLIBS} ${ISCDEPLIBS} ${DNSDEPLIBS}
	if test "${LD_WRAP_TESTS}" = true -a -z "${LIBTOOL}"; then WRAP="${WRAP_OPTIONS}"; fi; \
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} $${WRAP} ${WRAP_RPATH} -o $@ query_test.@O@ nstest.@O@ \
		${WRAP_LIB} ${NSLIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}

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

clean distclean::
	rm -f ${TARGETS}
	rm -f atf.out
