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

PANDOC = @PANDOC@
W3M = @W3M@

VERSION=@BIND9_VERSION@

SUBDIRS =	make lib fuzz bin doc
TARGETS =
PREREQS =	bind.keys.h

MANOBJS =	README HISTORY OPTIONS CONTRIBUTING CODE_OF_CONDUCT

@BIND9_MAKE_RULES@

newrr:
	cd lib/dns; ${MAKE} newrr

bind.keys.h: ${top_srcdir}/bind.keys ${srcdir}/util/bindkeys.pl
	${PERL} ${srcdir}/util/bindkeys.pl < ${top_srcdir}/bind.keys > $@

distclean::
	rm -f config.cache config.h config.log config.status TAGS
	rm -f libtool configure.lineno
	rm -f util/conf.sh docutil/docbook2man-wrapper.sh

# XXX we should clean libtool stuff too.  Only do this after we add rules
# to make it.
maintainer-clean::
	rm -f configure
	rm -f bind.keys.h

docclean manclean maintainer-clean::
	rm -f ${MANOBJS}

doc man:: ${MANOBJS}

installdirs:
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${sysconfdir}

install:: installdirs
	${INSTALL_DATA} ${top_srcdir}/bind.keys ${DESTDIR}${sysconfdir}

uninstall::
	rm -f ${DESTDIR}${sysconfdir}/bind.keys

test check:
	@if test -n "`${PERL} ${top_srcdir}/bin/tests/system/testsock.pl 2>/dev/null || echo fail`"; then \
	echo I: NOTE: The tests were not run because they require that; \
	echo I:	the IP addresses 10.53.0.1 through 10.53.0.8 are configured; \
	echo I:	as alias addresses on the loopback interface.  Please run; \
	echo I:	\'bin/tests/system/ifconfig.sh up\' as root to configure; \
	echo I:	them, then rerun the tests. Run make force-test to run the; \
	echo I:	tests anyway.; \
	exit 1; \
	fi
	${MAKE} test-force

force-test: test-force

test-force:
	status=0; \
	(cd fuzz && ${MAKE} check) || status=1; \
	(cd bin/tests && ${MAKE} ${MAKEDEFS} test) || status=1; \
	(test -f ${top_builddir}/unit/unittest.sh && \
		$(SHELL) ${top_builddir}/unit/unittest.sh) || status=1; \
	exit $$status

README: README.md
	${PANDOC} --email-obfuscation=none -s --metadata title="README" -f markdown-smart -t html README.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html | \
		sed -e '$${/^$$/d;}' > $@

HISTORY: HISTORY.md
	${PANDOC} --email-obfuscation=none -s --metadata title="HISTORY" -f markdown-smart -t html HISTORY.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html | \
		sed -e '$${/^$$/d;}' > $@

OPTIONS: OPTIONS.md
	${PANDOC} --email-obfuscation=none -s --metadata title="OPTIONS" -f markdown-smart -t html OPTIONS.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html | \
		sed -e '$${/^$$/d;}' > $@

CONTRIBUTING: CONTRIBUTING.md
	${PANDOC} --email-obfuscation=none -s --metadata title="CONTRIBUTING" -f markdown-smart -t html CONTRIBUTING.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html | \
		sed -e '$${/^$$/d;}' > $@

CODE_OF_CONDUCT: CODE_OF_CONDUCT.md
	${PANDOC} --email-obfuscation=none -s --metadata title="CODE OF CONDUCT" -f markdown-smart -t html CODE_OF_CONDUCT.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html | \
		sed -e '$${/^$$/d;}' > $@

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

clean::
