1# $FreeBSD$
2
3.include <bsd.own.mk>
4.include <bsd.endian.mk>
5
6# BIND version number
7.if defined(BIND_DIR) && exists(${BIND_DIR}/version)
8.include	"${BIND_DIR}/version"
9BIND_VERSION=	${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}
10CFLAGS+=	-DVERSION='"${BIND_VERSION}"'
11.endif
12
13CFLAGS+=	-DHAVE_CONFIG_H
14CFLAGS+=	-D_REENTRANT -D_THREAD_SAFE
15
16# Get version numbers (for libraries)
17.if defined(SRCDIR) && exists(${SRCDIR}/api)
18.include	"${SRCDIR}/api"
19CFLAGS+=	-DLIBINTERFACE=${LIBINTERFACE}
20CFLAGS+=	-DLIBREVISION=${LIBREVISION}
21CFLAGS+=	-DLIBAGE=${LIBAGE}
22.if ${MK_BIND_LIBS} != "no"
23SHLIB_MAJOR=	${LIBINTERFACE}
24SHLIB_MINOR=	${LIBINTERFACE}
25.else
26INTERNALLIB=
27.endif
28.endif
29
30# GSSAPI support is incomplete in 9.3.0
31#.if ${MK_KERBEROS} != "no"
32#CFLAGS+=	-DGSSAPI
33#.endif
34
35# Enable IPv6 support if available
36.if ${MK_INET6_SUPPORT} != "no"
37CFLAGS+=	-DWANT_IPV6
38.endif
39
40# Enable crypto if available
41.if ${MK_OPENSSL} != "no"
42CFLAGS+=	-DOPENSSL
43.endif
44
45# Enable MD5 - BIND has its own implementation
46CFLAGS+=	-DUSE_MD5
47
48# Endianness
49.if ${TARGET_ENDIANNESS} == 4321
50CFLAGS+=	-DWORDS_BIGENDIAN
51.endif
52
53# Default file locations
54LOCALSTATEDIR=	/var
55SYSCONFDIR=	/etc/namedb
56CFLAGS+=	-DNS_LOCALSTATEDIR='"${LOCALSTATEDIR}"'
57CFLAGS+=	-DNS_SYSCONFDIR='"${SYSCONFDIR}"'
58CFLAGS+=	-DNAMED_CONFFILE='"${SYSCONFDIR}/named.conf"'
59CFLAGS+=	-DRNDC_CONFFILE='"${SYSCONFDIR}/rndc.conf"'
60CFLAGS+=	-DRNDC_KEYFILE='"${SYSCONFDIR}/rndc.key"'
61
62# Add correct include path for config.h
63.if defined(LIB_BIND_DIR) && exists(${LIB_BIND_DIR}/config.h)
64CFLAGS+=	-I${LIB_BIND_DIR}
65.endif
66
67# Use the right version of the atomic.h file from lib/isc
68.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
69ISC_ATOMIC_ARCH=	x86_32
70.elif ${MACHINE_ARCH} == "ia64"
71ISC_ATOMIC_ARCH=	ia64
72.else
73ISC_ATOMIC_ARCH=	noatomic
74.endif
75
76# Optional features
77.if ${MK_BIND_LARGE_FILE} == "yes"
78CFLAGS+=	-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
79.endif
80.if ${MK_BIND_SIGCHASE} == "yes"
81CFLAGS+=	-DDIG_SIGCHASE
82.endif
83
84# Link against BIND libraries
85.if ${MK_BIND_LIBS} == "no"
86LIBBIND9=	${LIB_BIND_REL}/bind9/libbind9.a
87CFLAGS+=	-I${BIND_DIR}/lib/bind9/include
88LIBDNS=		${LIB_BIND_REL}/dns/libdns.a
89CFLAGS+=	-I${BIND_DIR}/lib/dns/include/dst \
90		-I${BIND_DIR}/lib/dns/include \
91		-I${LIB_BIND_DIR}/dns
92LIBISCCC=	${LIB_BIND_REL}/isccc/libisccc.a
93CFLAGS+=	-I${BIND_DIR}/lib/isccc/include
94LIBISCCFG=	${LIB_BIND_REL}/isccfg/libisccfg.a
95CFLAGS+=	-I${BIND_DIR}/lib/isccfg/include
96LIBISC=		${LIB_BIND_REL}/isc/libisc.a
97CFLAGS+=	-I${BIND_DIR}/lib/isc/unix/include \
98		-I${BIND_DIR}/lib/isc/pthreads/include \
99		-I${BIND_DIR}/lib/isc/include \
100		-I${LIB_BIND_DIR}/isc
101LIBLWRES=	${LIB_BIND_REL}/lwres/liblwres.a
102CFLAGS+=	-I${BIND_DIR}/lib/lwres/unix/include \
103		-I${BIND_DIR}/lib/lwres/include \
104		-I${LIB_BIND_DIR}/lwres
105.endif
106BIND_DPADD=	${LIBBIND9} ${LIBDNS} ${LIBISCCC} ${LIBISCCFG} \
107		${LIBISC} ${LIBLWRES}
108.if ${MK_BIND_LIBS} != "no"
109BIND_LDADD=	-lbind9 -ldns -lisccc -lisccfg -lisc -llwres
110CFLAGS+=	-I${BIND_DIR}/lib/isc/include
111CFLAGS+=	-I${BIND_DIR}/lib/isc/unix/include
112CFLAGS+=	-I${BIND_DIR}/lib/isc/pthreads/include
113CFLAGS+=	-I${.CURDIR}/../dns
114CFLAGS+=	-I${BIND_DIR}/lib/dns/include
115CFLAGS+=	-I${BIND_DIR}/lib/isccfg/include
116CFLAGS+=	-I${.CURDIR}/../isc
117.else
118BIND_LDADD=	${BIND_DPADD}
119.endif
120
121# Link against crypto library
122.if ${MK_OPENSSL} != "no"
123CRYPTO_DPADD=	${LIBCRYPTO}
124CRYPTO_LDADD=	-lcrypto
125.endif
126
127.if ${MK_BIND_XML} == "yes"
128CFLAGS+=	-DHAVE_LIBXML2
129CFLAGS+=	-I/usr/local/include -I/usr/local/include/libxml2
130.if ${MK_BIND_LIBS} != "no"
131BIND_LDADD+=	-L/usr/local/lib -lxml2 -lz -liconv -lm
132.else
133BIND_DPADD+=	/usr/local/lib/libxml2.a ${LIBZ} 
134BIND_DPADD+=	/usr/local/lib/libiconv.a ${LIBM}
135.endif
136.endif
137
138PTHREAD_DPADD=	${LIBPTHREAD}
139PTHREAD_LDADD=	-lpthread
140