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

# Attempt to disable parallel processing.
.NOTPARALLEL:
.NO_PARALLEL:

VERSION=@BIND9_VERSION@

@BIND9_PRODUCT@

@BIND9_DESCRIPTION@

@BIND9_SRCID@

@BIND9_CONFIGARGS@

@BIND9_MAKE_INCLUDES@

#
# Add database drivers here.
#
DBDRIVER_OBJS =
DBDRIVER_SRCS =
DBDRIVER_INCLUDES =
DBDRIVER_LIBS =

DLZ_DRIVER_DIR =	${top_srcdir}/contrib/dlz/drivers

DLZDRIVER_OBJS =	@DLZ_DRIVER_OBJS@
DLZDRIVER_SRCS =	@DLZ_DRIVER_SRCS@
DLZDRIVER_INCLUDES =	@DLZ_DRIVER_INCLUDES@
DLZDRIVER_LIBS =	@DLZ_DRIVER_LIBS@

CINCLUDES =	-I${srcdir}/include -I${srcdir}/unix/include -I. \
		${NS_INCLUDES} ${DNS_INCLUDES} \
		${BIND9_INCLUDES} ${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} \
		${ISC_INCLUDES} ${DLZDRIVER_INCLUDES} \
		${DBDRIVER_INCLUDES} \
		${OPENSSL_CFLAGS} \
		${JSON_C_CFLAGS} \
		${LIBXML2_CFLAGS} \
		${MAXMINDDB_CFLAGS}

CDEFINES =      @CONTRIB_DLZ@

CWARNINGS =

DNSLIBS =	../../lib/dns/libdns.@A@ ${MAXMINDDB_LIBS} @DNS_CRYPTO_LIBS@
ISCCFGLIBS =	../../lib/isccfg/libisccfg.@A@
ISCCCLIBS =	../../lib/isccc/libisccc.@A@
ISCLIBS =	../../lib/isc/libisc.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS}
ISCNOSYMLIBS =	../../lib/isc/libisc-nosymtbl.@A@ ${OPENSSL_LIBS} ${JSON_C_LIBS} ${LIBXML2_LIBS}
BIND9LIBS =	../../lib/bind9/libbind9.@A@
NSLIBS =	../../lib/ns/libns.@A@

DNSDEPLIBS =	../../lib/dns/libdns.@A@
ISCCFGDEPLIBS =	../../lib/isccfg/libisccfg.@A@
ISCCCDEPLIBS =	../../lib/isccc/libisccc.@A@
ISCDEPLIBS =	../../lib/isc/libisc.@A@
BIND9DEPLIBS =	../../lib/bind9/libbind9.@A@
NSDEPLIBS =	../../lib/ns/libns.@A@

DEPLIBS =	${NSDEPLIBS} ${DNSDEPLIBS} ${BIND9DEPLIBS} \
		${ISCCFGDEPLIBS} ${ISCCCDEPLIBS} ${ISCDEPLIBS}

LIBS =		${NSLIBS} ${DNSLIBS} ${BIND9LIBS} \
		${ISCCFGLIBS} ${ISCCCLIBS} ${ISCLIBS} \
		${DLZDRIVER_LIBS} ${DBDRIVER_LIBS} @LIBCAP_LIBS@ \
		@LIBS@

NOSYMLIBS =	${NSLIBS} ${DNSLIBS} ${BIND9LIBS} \
		${ISCCFGLIBS} ${ISCCCLIBS} ${ISCNOSYMLIBS} \
		${DLZDRIVER_LIBS} ${DBDRIVER_LIBS} @LIBCAP_LIBS@ \
		@LIBS@

SUBDIRS =	unix

TARGETS =	named@EXEEXT@

GEOIP2LINKOBJS = geoip.@O@

OBJS =		builtin.@O@ config.@O@ control.@O@ \
		controlconf.@O@ fuzz.@O@ \
		@GEOIP2LINKOBJS@ \
		log.@O@ logconf.@O@ main.@O@ \
		server.@O@ statschannel.@O@ \
		tkeyconf.@O@ tsigconf.@O@ zoneconf.@O@ \
		${DLZDRIVER_OBJS} ${DBDRIVER_OBJS}

UOBJS =		unix/os.@O@ unix/dlz_dlopen_driver.@O@

SYMOBJS =	symtbl.@O@

GEOIP2LINKSRCS = geoip.c

SRCS =		builtin.c config.c control.c \
		controlconf.c fuzz.c \
		@GEOIP2LINKSRCS@ \
		log.c logconf.c main.c \
		server.c statschannel.c \
		tkeyconf.c tsigconf.c zoneconf.c \
		${DLZDRIVER_SRCS} ${DBDRIVER_SRCS}

MANPAGES =	named.8 named.conf.5

HTMLPAGES =	named.html named.conf.html

MANOBJS =	${MANPAGES} ${HTMLPAGES}

@BIND9_MAKE_RULES@

main.@O@: main.c
	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
		-DVERSION=\"${VERSION}\" \
		-DPRODUCT=\"${PRODUCT}\" \
		-DDESCRIPTION=\"${DESCRIPTION}\" \
		-DSRCID=\"${SRCID}\" \
		-DCONFIGARGS="\"${CONFIGARGS}\"" \
		-DBUILDER="\"make\"" \
		-DNAMED_LOCALSTATEDIR=\"${localstatedir}\" \
		-DNAMED_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c

config.@O@: config.c
	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
		-DVERSION=\"${VERSION}\" \
		-DSRCID=\"${SRCID}\" \
		-DDYNDB_LIBDIR=\"@libdir@/bind\" \
		-DNAMED_LOCALSTATEDIR=\"${localstatedir}\" \
		-DNAMED_SYSCONFDIR=\"${sysconfdir}\" \
		-DMAXMINDDB_PREFIX=\"@MAXMINDDB_PREFIX@\" \
		-c ${srcdir}/config.c

server.@O@: server.c
	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
		-DPRODUCT=\"${PRODUCT}\" \
		-DVERSION=\"${VERSION}\" -c ${srcdir}/server.c

named@EXEEXT@: ${OBJS} ${DEPLIBS}
	export MAKE_SYMTABLE="yes"; \
	export BASEOBJS="${OBJS} ${UOBJS}"; \
	${FINALBUILDCMD}

doc man:: ${MANOBJS}

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

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

maintainer-clean::

bind9.xsl.h: bind9.xsl ${srcdir}/convertxsl.pl
	${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.xsl > bind9.xsl.h

depend: bind9.xsl.h
statschannel.@O@: bind9.xsl.h

installdirs:
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${sbindir}
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man5
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8

install:: named@EXEEXT@ installdirs
	${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} named@EXEEXT@ ${DESTDIR}${sbindir}
	${INSTALL_DATA} ${srcdir}/named.8 ${DESTDIR}${mandir}/man8
	${INSTALL_DATA} ${srcdir}/named.conf.5 ${DESTDIR}${mandir}/man5

uninstall::
	rm -f ${DESTDIR}${mandir}/man5/named.conf.5
	rm -f ${DESTDIR}${mandir}/man8/named.8
	${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${sbindir}/named@EXEEXT@

@DLZ_DRIVER_RULES@

named-symtbl.@O@: named-symtbl.c
	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} -c named-symtbl.c
