# Copyright (C) 1998-2002, 2004-2009, 2011-2017  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/.

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

VERSION=@BIND9_VERSION@

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

MANPAGES =	isc-config.sh.1

HTMLPAGES =	isc-config.sh.html

MANOBJS =	README HISTORY OPTIONS ${MANPAGES} ${HTMLPAGES}

@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 isc-config.sh 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}${bindir} \
	${DESTDIR}${localstatedir}/run ${DESTDIR}${sysconfdir}
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man1

install:: isc-config.sh installdirs
	${INSTALL_SCRIPT} isc-config.sh ${DESTDIR}${bindir}
	rm -f ${DESTDIR}${bindir}/bind9-config
	@LN@ ${DESTDIR}${bindir}/isc-config.sh ${DESTDIR}${bindir}/bind9-config
	${INSTALL_DATA} ${top_srcdir}/isc-config.sh.1 ${DESTDIR}${mandir}/man1
	rm -f ${DESTDIR}${mandir}/man1/bind9-config.1
	@LN@ ${DESTDIR}${mandir}/man1/isc-config.sh.1 ${DESTDIR}${mandir}/man1/bind9-config.1
	${INSTALL_DATA} ${top_srcdir}/bind.keys ${DESTDIR}${sysconfdir}

uninstall::
	rm -f ${DESTDIR}${sysconfdir}/bind.keys
	rm -f ${DESTDIR}${mandir}/man1/bind9-config.1
	rm -f ${DESTDIR}${mandir}/man1/isc-config.sh.1
	rm -f ${DESTDIR}${bindir}/bind9-config
	rm -f ${DESTDIR}${bindir}/isc-config.sh

tags:
	rm -f TAGS
	find lib bin -name "*.[ch]" -print | @ETAGS@ -

test check:
	@if test -n "`${PERL} ${top_srcdir}/bin/tests/system/testsock.pl 2>&- || 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 bin/tests && ${MAKE} ${MAKEDEFS} test) || status=1; \
	(test -f unit/unittest.sh && $(SHELL) unit/unittest.sh) || status=1; \
	exit $$status

README: README.md
	${PANDOC} --email-obfuscation=none -s -t html README.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html > $@

HISTORY: HISTORY.md
	${PANDOC} --email-obfuscation=none -s -t html HISTORY.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html > $@

OPTIONS: OPTIONS.md
	${PANDOC} --email-obfuscation=none -s -t html OPTIONS.md | \
		${W3M} -dump -cols 75 -O ascii -T text/html > $@

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

clean::
