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