mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-28 20:41:18 -05:00
Originally, every library and binaries got linked to everything, which creates unnecessary overlinking. This wasn't as straightforward as it should be as we still support configuration without libtool for 9.16. Couple of smaller issues related to include headers and an issue where sanitizer overload dlopen and dlclose symbols, so we were getting false negatives in the autoconf test.
222 lines
6.2 KiB
Makefile
222 lines
6.2 KiB
Makefile
# 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_MAJOR@
|
|
|
|
@LIBDNS_MAPAPI@
|
|
|
|
@LIBDNS_API@
|
|
|
|
@BIND9_MAKE_INCLUDES@
|
|
|
|
USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
|
|
|
|
CINCLUDES = -I. -I${top_srcdir}/lib/dns -Iinclude ${DNS_INCLUDES} \
|
|
${ISC_INCLUDES} \
|
|
${FSTRM_CFLAGS} \
|
|
${OPENSSL_CFLAGS} @DST_GSSAPI_INC@ \
|
|
${PROTOBUF_C_CFLAGS} \
|
|
${JSON_C_CFLAGS} \
|
|
${LIBXML2_CFLAGS} \
|
|
${LMDB_CFLAGS} \
|
|
${MAXMINDDB_CFLAGS}
|
|
|
|
CDEFINES = @USE_GSSAPI@ ${USE_ISC_SPNEGO}
|
|
|
|
CWARNINGS =
|
|
|
|
ISCLIBS = ../../lib/isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
|
|
|
|
ISCDEPLIBS = ../../lib/isc/libisc.@A@
|
|
|
|
LIBS = ${FSTRM_LIBS} ${MAXMINDDB_LIBS} ${LMDB_LIBS} ${PROTOBUF_C_LIBS} @LIBS@
|
|
|
|
# Alphabetically
|
|
|
|
DSTOBJS = @DST_EXTRA_OBJS@ \
|
|
dst_api.@O@ dst_parse.@O@ dst_result.@O@ \
|
|
gssapi_link.@O@ gssapictx.@O@ hmac_link.@O@ \
|
|
openssl_link.@O@ openssldh_link.@O@ \
|
|
opensslecdsa_link.@O@ openssleddsa_link.@O@ opensslrsa_link.@O@ \
|
|
pkcs11rsa_link.@O@ \
|
|
pkcs11ecdsa_link.@O@ pkcs11eddsa_link.@O@ pkcs11.@O@ \
|
|
key.@O@
|
|
|
|
GEOIP2LINKOBJS = geoip2.@O@
|
|
|
|
DNSTAPOBJS = dnstap.@O@ dnstap.pb-c.@O@
|
|
|
|
# Alphabetically
|
|
DNSOBJS = acl.@O@ adb.@O@ badcache.@O@ byaddr.@O@ \
|
|
cache.@O@ callbacks.@O@ catz.@O@ clientinfo.@O@ compress.@O@ \
|
|
db.@O@ dbiterator.@O@ dbtable.@O@ diff.@O@ dispatch.@O@ \
|
|
dlz.@O@ dns64.@O@ dnsrps.@O@ dnssec.@O@ ds.@O@ dyndb.@O@ \
|
|
ecs.@O@ fixedname.@O@ forward.@O@ \
|
|
ipkeylist.@O@ iptable.@O@ journal.@O@ kasp.@O@ keydata.@O@ \
|
|
keymgr.@O@ keytable.@O@ lib.@O@ log.@O@ lookup.@O@ \
|
|
master.@O@ masterdump.@O@ message.@O@ \
|
|
name.@O@ ncache.@O@ nsec.@O@ nsec3.@O@ nta.@O@ \
|
|
order.@O@ peer.@O@ portlist.@O@ private.@O@ \
|
|
rbt.@O@ rbtdb.@O@ rcode.@O@ rdata.@O@ \
|
|
rdatalist.@O@ rdataset.@O@ rdatasetiter.@O@ rdataslab.@O@ \
|
|
request.@O@ resolver.@O@ result.@O@ rootns.@O@ \
|
|
rpz.@O@ rrl.@O@ rriterator.@O@ sdb.@O@ \
|
|
sdlz.@O@ soa.@O@ ssu.@O@ ssu_external.@O@ \
|
|
stats.@O@ tcpmsg.@O@ time.@O@ timer.@O@ tkey.@O@ \
|
|
tsec.@O@ tsig.@O@ ttl.@O@ update.@O@ validator.@O@ \
|
|
version.@O@ view.@O@ xfrin.@O@ zone.@O@ zonekey.@O@ \
|
|
zoneverify.@O@ zt.@O@
|
|
PORTDNSOBJS = client.@O@ ecdb.@O@
|
|
|
|
OBJS= @DNSTAPOBJS@ ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS} \
|
|
${PORTDNSOBJS} @GEOIP2LINKOBJS@
|
|
|
|
DSTSRCS = @DST_EXTRA_SRCS@ \
|
|
dst_api.c dst_parse.c \
|
|
dst_result.c gssapi_link.c gssapictx.c hmac_link.c \
|
|
openssl_link.c openssldh_link.c \
|
|
opensslecdsa_link.c openssleddsa_link.c opensslrsa_link.c \
|
|
pkcs11rsa_link.c \
|
|
pkcs11ecdsa_link.c pkcs11eddsa_link.c pkcs11.c \
|
|
key.c
|
|
|
|
GEOIPL2INKSRCS = geoip2.c
|
|
|
|
DNSTAPSRCS = dnstap.c dnstap.pb-c.c
|
|
|
|
DNSSRCS = acl.c adb.c badcache.c byaddr.c \
|
|
cache.c callbacks.c clientinfo.c compress.c \
|
|
db.c dbiterator.c dbtable.c diff.c dispatch.c \
|
|
dlz.c dns64.c dnsrps.c dnssec.c ds.c dyndb.c \
|
|
ecs.c fixedname.c forward.c ipkeylist.c iptable.c \
|
|
journal.c kasp.c keydata.c keymgr.c keytable.c \
|
|
lib.c log.c lookup.c master.c masterdump.c message.c \
|
|
name.c ncache.c nsec.c nsec3.c nta.c \
|
|
order.c peer.c portlist.c \
|
|
rbt.c rbtdb.c rcode.c rdata.c rdatalist.c \
|
|
rdataset.c rdatasetiter.c rdataslab.c request.c \
|
|
resolver.c result.c rootns.c rpz.c rrl.c rriterator.c \
|
|
sdb.c sdlz.c soa.c ssu.c ssu_external.c \
|
|
stats.c tcpmsg.c time.c timer.c tkey.c \
|
|
tsec.c tsig.c ttl.c update.c validator.c \
|
|
version.c view.c xfrin.c zone.c zoneverify.c \
|
|
zonekey.c zt.c ${OTHERSRCS}
|
|
PORTDNSSRCS = client.c ecdb.c
|
|
|
|
SRCS = ${DSTSRCS} ${DNSSRCS} \
|
|
${PORTDNSSRCS} @DNSTAPSRCS@ @GEOIP2LINKSRCS@
|
|
|
|
SUBDIRS = include
|
|
TARGETS = timestamp
|
|
TESTDIRS = @UNITTESTS@
|
|
|
|
DEPENDEXTRA = ./gen -F include/dns/rdatastruct.h \
|
|
-s ${srcdir} -d >> Makefile ;
|
|
|
|
@BIND9_MAKE_RULES@
|
|
|
|
PROTOC_C = @PROTOC_C@
|
|
|
|
version.@O@: version.c
|
|
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
|
|
-DVERSION=\"${VERSION}\" \
|
|
-DMAJOR=\"${MAJOR}\" \
|
|
-DMAPAPI=\"${MAPAPI}\" \
|
|
-DLIBINTERFACE=${LIBINTERFACE} \
|
|
-DLIBREVISION=${LIBREVISION} \
|
|
-DLIBAGE=${LIBAGE} \
|
|
-c ${srcdir}/version.c
|
|
|
|
libdns.@SA@: ${OBJS}
|
|
${AR} ${ARFLAGS} $@ ${OBJS}
|
|
${RANLIB} $@
|
|
|
|
libdns.la: ${OBJS}
|
|
${LIBTOOL_MODE_LINK} \
|
|
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libdns.la -rpath ${libdir} \
|
|
-version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
|
|
${OBJS} ${ISCLIBS} @DNS_CRYPTO_LIBS@ ${LIBS}
|
|
|
|
include: gen
|
|
${MAKE} include/dns/enumtype.h
|
|
${MAKE} include/dns/enumclass.h
|
|
${MAKE} include/dns/rdatastruct.h
|
|
${MAKE} code.h
|
|
|
|
include/dns/enumtype.h: gen
|
|
./gen -s ${srcdir} -t > $@ || { rm -f $@ ; exit 1; }
|
|
|
|
include/dns/enumclass.h: gen
|
|
./gen -s ${srcdir} -c > $@ || { rm -f $@ ; exit 1; }
|
|
|
|
include/dns/rdatastruct.h: gen \
|
|
${srcdir}/rdata/rdatastructpre.h \
|
|
${srcdir}/rdata/rdatastructsuf.h
|
|
./gen -s ${srcdir} -i \
|
|
-P ${srcdir}/rdata/rdatastructpre.h \
|
|
-S ${srcdir}/rdata/rdatastructsuf.h > $@ || \
|
|
{ rm -f $@ ; exit 1; }
|
|
|
|
code.h: gen
|
|
./gen -s ${srcdir} > code.h || { rm -f $@ ; exit 1; }
|
|
|
|
gen: gen.c
|
|
${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \
|
|
${LFS_CFLAGS} ${LFS_LDFLAGS} \
|
|
${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c \
|
|
${BUILD_LIBS} ${LFS_LIBS}
|
|
|
|
timestamp: include libdns.@A@
|
|
touch timestamp
|
|
|
|
testdirs: libdns.@A@
|
|
|
|
installdirs:
|
|
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}
|
|
|
|
install:: timestamp installdirs
|
|
${LIBTOOL_MODE_INSTALL} ${INSTALL_LIBRARY} libdns.@A@ ${DESTDIR}${libdir}
|
|
|
|
uninstall::
|
|
${LIBTOOL_MODE_UNINSTALL} rm -f ${DESTDIR}${libdir}/libdns.@A@
|
|
|
|
clean distclean::
|
|
rm -f libdns.@A@ timestamp
|
|
rm -f gen code.h include/dns/enumtype.h include/dns/enumclass.h
|
|
rm -f include/dns/rdatastruct.h
|
|
rm -f dnstap.pb-c.c dnstap.pb-c.h
|
|
|
|
newrr::
|
|
rm -f code.h include/dns/enumtype.h include/dns/enumclass.h
|
|
rm -f include/dns/rdatastruct.h
|
|
|
|
rdata.@O@: include
|
|
|
|
depend: include @DNSTAPSRCS@
|
|
subdirs: include
|
|
${OBJS}: include
|
|
|
|
# dnstap
|
|
dnstap.@O@: dnstap.c dnstap.pb-c.c
|
|
|
|
dnstap.pb-c.c dnstap.pb-c.h: dnstap.proto
|
|
$(PROTOC_C) --c_out=. --proto_path ${srcdir} dnstap.proto
|
|
|
|
dnstap.pb-c.@O@: dnstap.pb-c.c
|
|
|
|
spnego.@O@: spnego_asn1.c spnego.h
|