1135549Sdes# $FreeBSD$
2135549Sdes
3156813Sru.include <bsd.own.mk>
4217071Simp.include <bsd.endian.mk>
5156813Sru
6135569Sdes# BIND version number
7135607Sdes.if defined(BIND_DIR) && exists(${BIND_DIR}/version)
8135607Sdes.include	"${BIND_DIR}/version"
9135607SdesBIND_VERSION=	${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}
10135607SdesCFLAGS+=	-DVERSION='"${BIND_VERSION}"'
11135607Sdes.endif
12135549Sdes
13135569SdesCFLAGS+=	-DHAVE_CONFIG_H
14174189SdougbCFLAGS+=	-D_REENTRANT -D_THREAD_SAFE
15135569Sdes
16135569Sdes# Get version numbers (for libraries)
17135549Sdes.if defined(SRCDIR) && exists(${SRCDIR}/api)
18135549Sdes.include	"${SRCDIR}/api"
19135549SdesCFLAGS+=	-DLIBINTERFACE=${LIBINTERFACE}
20135739SruCFLAGS+=	-DLIBREVISION=${LIBREVISION}
21135739SruCFLAGS+=	-DLIBAGE=${LIBAGE}
22156813Sru.if ${MK_BIND_LIBS} != "no"
23135549SdesSHLIB_MAJOR=	${LIBINTERFACE}
24135549SdesSHLIB_MINOR=	${LIBINTERFACE}
25135739Sru.else
26136911SruINTERNALLIB=
27135549Sdes.endif
28135739Sru.endif
29135549Sdes
30135604Sdes# GSSAPI support is incomplete in 9.3.0
31156813Sru#.if ${MK_KERBEROS} != "no"
32135549Sdes#CFLAGS+=	-DGSSAPI
33135549Sdes#.endif
34135549Sdes
35135569Sdes# Enable IPv6 support if available
36156813Sru.if ${MK_INET6_SUPPORT} != "no"
37135549SdesCFLAGS+=	-DWANT_IPV6
38135549Sdes.endif
39135549Sdes
40135569Sdes# Enable crypto if available
41156813Sru.if ${MK_OPENSSL} != "no"
42135569SdesCFLAGS+=	-DOPENSSL
43135569Sdes.endif
44135569Sdes
45135569Sdes# Enable MD5 - BIND has its own implementation
46135569SdesCFLAGS+=	-DUSE_MD5
47135569Sdes
48135569Sdes# Endianness
49217071Simp.if ${TARGET_ENDIANNESS} == 4321
50135549SdesCFLAGS+=	-DWORDS_BIGENDIAN
51135549Sdes.endif
52135549Sdes
53135569Sdes# Default file locations
54135592SdougbLOCALSTATEDIR=	/var
55135569SdesSYSCONFDIR=	/etc/namedb
56135549SdesCFLAGS+=	-DNS_LOCALSTATEDIR='"${LOCALSTATEDIR}"'
57135549SdesCFLAGS+=	-DNS_SYSCONFDIR='"${SYSCONFDIR}"'
58135549SdesCFLAGS+=	-DNAMED_CONFFILE='"${SYSCONFDIR}/named.conf"'
59135549SdesCFLAGS+=	-DRNDC_CONFFILE='"${SYSCONFDIR}/rndc.conf"'
60135549SdesCFLAGS+=	-DRNDC_KEYFILE='"${SYSCONFDIR}/rndc.key"'
61135549Sdes
62135569Sdes# Add correct include path for config.h
63135569Sdes.if defined(LIB_BIND_DIR) && exists(${LIB_BIND_DIR}/config.h)
64135569SdesCFLAGS+=	-I${LIB_BIND_DIR}
65135569Sdes.endif
66135569Sdes
67170221Sdougb# Use the right version of the atomic.h file from lib/isc
68217213Sdougb.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
69217213SdougbISC_ATOMIC_ARCH=	x86_32
70224093Sdougb.elif ${MACHINE_ARCH} == "ia64"
71224093SdougbISC_ATOMIC_ARCH=	ia64
72217213Sdougb.else
73224093SdougbISC_ATOMIC_ARCH=	noatomic
74217213Sdougb.endif
75170221Sdougb
76193280Sdougb# Optional features
77193280Sdougb.if ${MK_BIND_LARGE_FILE} == "yes"
78193280SdougbCFLAGS+=	-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
79193280Sdougb.endif
80193280Sdougb.if ${MK_BIND_SIGCHASE} == "yes"
81193280SdougbCFLAGS+=	-DDIG_SIGCHASE
82193280Sdougb.endif
83193280Sdougb
84135569Sdes# Link against BIND libraries
85156813Sru.if ${MK_BIND_LIBS} == "no"
86135739SruLIBBIND9=	${LIB_BIND_REL}/bind9/libbind9.a
87135739SruCFLAGS+=	-I${BIND_DIR}/lib/bind9/include
88135739SruLIBDNS=		${LIB_BIND_REL}/dns/libdns.a
89143736SdougbCFLAGS+=	-I${BIND_DIR}/lib/dns/include/dst \
90135739Sru		-I${BIND_DIR}/lib/dns/include \
91135739Sru		-I${LIB_BIND_DIR}/dns
92135739SruLIBISCCC=	${LIB_BIND_REL}/isccc/libisccc.a
93135739SruCFLAGS+=	-I${BIND_DIR}/lib/isccc/include
94135739SruLIBISCCFG=	${LIB_BIND_REL}/isccfg/libisccfg.a
95135739SruCFLAGS+=	-I${BIND_DIR}/lib/isccfg/include
96135739SruLIBISC=		${LIB_BIND_REL}/isc/libisc.a
97135739SruCFLAGS+=	-I${BIND_DIR}/lib/isc/unix/include \
98170221Sdougb		-I${BIND_DIR}/lib/isc/pthreads/include \
99135739Sru		-I${BIND_DIR}/lib/isc/include \
100135739Sru		-I${LIB_BIND_DIR}/isc
101135739SruLIBLWRES=	${LIB_BIND_REL}/lwres/liblwres.a
102135739SruCFLAGS+=	-I${BIND_DIR}/lib/lwres/unix/include \
103135739Sru		-I${BIND_DIR}/lib/lwres/include \
104135739Sru		-I${LIB_BIND_DIR}/lwres
105135739Sru.endif
106135549SdesBIND_DPADD=	${LIBBIND9} ${LIBDNS} ${LIBISCCC} ${LIBISCCFG} \
107135569Sdes		${LIBISC} ${LIBLWRES}
108156813Sru.if ${MK_BIND_LIBS} != "no"
109135569SdesBIND_LDADD=	-lbind9 -ldns -lisccc -lisccfg -lisc -llwres
110224129SdougbCFLAGS+=	-I${BIND_DIR}/lib/isc/include
111224129SdougbCFLAGS+=	-I${BIND_DIR}/lib/isc/unix/include
112224129SdougbCFLAGS+=	-I${BIND_DIR}/lib/isc/pthreads/include
113224129SdougbCFLAGS+=	-I${.CURDIR}/../dns
114224129SdougbCFLAGS+=	-I${BIND_DIR}/lib/dns/include
115224129SdougbCFLAGS+=	-I${BIND_DIR}/lib/isccfg/include
116224129SdougbCFLAGS+=	-I${.CURDIR}/../isc
117135739Sru.else
118135739SruBIND_LDADD=	${BIND_DPADD}
119135739Sru.endif
120135569Sdes
121135569Sdes# Link against crypto library
122156813Sru.if ${MK_OPENSSL} != "no"
123135572SdesCRYPTO_DPADD=	${LIBCRYPTO}
124135572SdesCRYPTO_LDADD=	-lcrypto
125135569Sdes.endif
126170221Sdougb
127224076Sdougb.if ${MK_BIND_XML} == "yes"
128224076SdougbCFLAGS+=	-DHAVE_LIBXML2
129224076SdougbCFLAGS+=	-I/usr/local/include -I/usr/local/include/libxml2
130224076Sdougb.if ${MK_BIND_LIBS} != "no"
131224129SdougbBIND_LDADD+=	-L/usr/local/lib -lxml2 -lz -liconv -lm
132224076Sdougb.else
133224076SdougbBIND_DPADD+=	/usr/local/lib/libxml2.a ${LIBZ} 
134224076SdougbBIND_DPADD+=	/usr/local/lib/libiconv.a ${LIBM}
135224076Sdougb.endif
136224076Sdougb.endif
137224076Sdougb
138170221SdougbPTHREAD_DPADD=	${LIBPTHREAD}
139170221SdougbPTHREAD_LDADD=	-lpthread
140