# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# 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 https://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@

SUBDIRS =	dlzexternal dyndb pipelined rndc rpz rsabigexponent tkey

CINCLUDES =	${ISC_INCLUDES} \
		${DNS_INCLUDES}	\
		${ISCCFG_INCLUDES} \
		${IRS_INCLUDES}

CDEFINES =	@USE_GSSAPI@ @CONTRIB_DLZ@
CWARNINGS =

ISCLIBS =	../../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
DNSLIBS =	../../../lib/dns/libdns.@A@ @NO_LIBTOOL_DNSLIBS@
ISCCFGLIBS =	../../../lib/isccfg/libisccfg.@A@
IRSLIBS =	../../../lib/irs/libirs.@A@

ISCDEPLIBS =	../../../lib/isc/libisc.@A@
DNSDEPLIBS =	../../../lib/dns/libdns.@A@
ISCCFGDEPLIBS =	../../../lib/isccfg/libisccfg.@A@
IRSDEPLIBS =	../../../lib/irs/libirs.@A@

DEPLIBS =	${IRSDEPLIBS} ${ISCCFGDEPLIBS} ${DNSDEPLIBS} ${ISCDEPLIBS}

LIBS =		${IRSLIBS} ${ISCCFGLIBS} ${DNSLIBS} ${ISCLIBS} @LIBS@

OBJS =		feature-test.@O@ resolve.@O@
SRCS =		feature-test.c resolve.c

TARGETS =	feature-test@EXEEXT@ resolve@EXEEXT@

@BIND9_MAKE_RULES@

subdirs: ${TARGETS}

feature-test@EXEEXT@: feature-test.@O@
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ feature-test.@O@ ${ISCLIBS} ${LIBS}

resolve@EXEEXT@: resolve.@O@ ${DEPLIBS}
	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
	resolve.@O@ ${LIBS}

# Running the scripts below is bypassed when a separate build directory is
# used.

# Produce intermediate makefile that assigns unique port numbers to each
# parallel test.  The start port number of 5,000 is arbitrary - it must just
# be greater than the highest privileged port, 1024.
#
# Test names need to be sanitized because Solaris make does not like
# underscores in target names and requires explicit differentiation
# between a target name and a directory name (.PHONY is not supported).

.PHONY: parallel.mk

parallel.mk:
	$(SHELL) parallel.sh > parallel.mk

# Targets to run the tests.

test: parallel.mk subdirs
	@$(MAKE) -f parallel.mk check
	@$(SHELL) ./runsequential.sh
	@$(SHELL) ./testsummary.sh

check: test

# Other targets:
#
# testclean - delete files generated by running tests.
# clean     - testclean + also delete files built for the tests by "make".
# distclean - clean + also delete test-related files generated by "configure".

testclean clean distclean::
	if test -f ./cleanall.sh; then $(SHELL) ./cleanall.sh; fi
	rm -f systests.output
	rm -f random.data
	rm -f parallel.mk

clean distclean::
	rm -f ${TARGETS}
	rm -f ${OBJS}

distclean::
	rm -f conf.sh

installdirs:

install::

uninstall::
