# 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@

CINCLUDES =	-I. -Iinclude ${ISC_INCLUDES} \
		${OPENSSL_CFLAGS} @CMOCKA_CFLAGS@ \
		${JSON_C_CFLAGS} \
		${LIBUV_CFLAGS} \
		${LIBXML2_CFLAGS}
CDEFINES =	-DTESTS="\"${top_builddir}/lib/isc/tests/\""

ISCLIBS =	../libisc.@A@ @NO_LIBTOOL_ISCLIBS@
ISCDEPLIBS =	../libisc.@A@

LIBS =		@LIBS@ @CMOCKA_LIBS@

OBJS =		isctest.@O@

SRCS =		isctest.c aes_test.c buffer_test.c \
		counter_test.c crc64_test.c errno_test.c file_test.c hash_test.c \
		heap_test.c hmac_test.c ht_test.c lex_test.c \
		mem_test.c md_test.c netaddr_test.c netmgr_test.c \
		parse_test.c pool_test.c \
		quota_test.c radix_test.c random_test.c \
		regex_test.c result_test.c safe_test.c siphash_test.c sockaddr_test.c \
		socket_test.c symtab_test.c task_test.c \
		taskpool_test.c time_test.c timer_test.c

SUBDIRS =
TARGETS =	aes_test@EXEEXT@ buffer_test@EXEEXT@ \
		counter_test@EXEEXT@ crc64_test@EXEEXT@ \
		errno_test@EXEEXT@ file_test@EXEEXT@ \
		hash_test@EXEEXT@ heap_test@EXEEXT@ hmac_test@EXEEXT@ \
		ht_test@EXEEXT@ lex_test@EXEEXT@ \
		mem_test@EXEEXT@ md_test@EXEEXT@ \
		netaddr_test@EXEEXT@ netmgr_test@EXEEXT@ \
		parse_test@EXEEXT@ pool_test@EXEEXT@ \
		quota_test@EXEEXT@ radix_test@EXEEXT@ \
		random_test@EXEEXT@ regex_test@EXEEXT@ result_test@EXEEXT@ \
		safe_test@EXEEXT@ siphash_test@EXEEXT@ sockaddr_test@EXEEXT@ \
		socket_test@EXEEXT@ symtab_test@EXEEXT@ task_test@EXEEXT@ \
		taskpool_test@EXEEXT@ time_test@EXEEXT@ timer_test@EXEEXT@

@BIND9_MAKE_RULES@

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

buffer_test@EXEEXT@: buffer_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ buffer_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

counter_test@EXEEXT@: counter_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ counter_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

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

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

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

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

heap_test@EXEEXT@: heap_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ heap_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

hmac_test@EXEEXT@: hmac_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ hmac_test.@O@ \
		${ISCLIBS} ${OPENSSL_LIBS} ${LIBS}

ht_test@EXEEXT@: ht_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ ht_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

lex_test@EXEEXT@: lex_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ lex_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

md_test@EXEEXT@: md_test.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ md_test.@O@ \
		${ISCLIBS} ${OPENSSL_LIBS} ${LIBS}

mem_test@EXEEXT@: mem_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ mem_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

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

parse_test@EXEEXT@: parse_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ parse_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

pool_test@EXEEXT@: pool_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ pool_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

quota_test@EXEEXT@: quota_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ quota_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

radix_test@EXEEXT@: radix_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ radix_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

random_test@EXEEXT@: random_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ random_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS} -lm

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

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

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

siphash_test@EXEEXT@: siphash_test.@O@ ../siphash.c ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ siphash_test.@O@ \
		${ISCLIBS} ${LIBS}

socket_test@EXEEXT@: socket_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ socket_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

sockaddr_test@EXEEXT@: sockaddr_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ sockaddr_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

symtab_test@EXEEXT@: symtab_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ symtab_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

task_test@EXEEXT@: task_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ task_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

taskpool_test@EXEEXT@: taskpool_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ taskpool_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

netmgr_test@EXEEXT@: netmgr_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ netmgr_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS} ${LIBUV_LIBS}

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

timer_test@EXEEXT@: timer_test.@O@ isctest.@O@ ${ISCDEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
		${LDFLAGS} -o $@ timer_test.@O@ isctest.@O@ \
		${ISCLIBS} ${LIBS}

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

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