1 # Copyright (C) 2009-2013, 2015, 2016 Internet Systems Consortium, Inc. ("ISC")
3 # Permission to use, copy, modify, and/or distribute this software for any
4 # purpose with or without fee is hereby granted, provided that the above
5 # copyright notice and this permission notice appear in all copies.
7 # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8 # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9 # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
10 # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11 # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
12 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13 # PERFORMANCE OF THIS SOFTWARE.
17 top_srcdir = @top_srcdir@
18 srcdir = @top_srcdir@/lib/dns
19 export_srcdir = @top_srcdir@/lib/export
21 # Attempt to disable parallel processing.
25 VERSION=@BIND9_VERSION@
31 CINCLUDES = -I. -Iinclude ${DNS_INCLUDES} -I${export_srcdir}/isc/include \
32 ${ISC_INCLUDES} @DST_OPENSSL_INC@ @DST_GSSAPI_INC@
34 CDEFINES = -DUSE_MD5 @USE_OPENSSL@ @USE_GSSAPI@
38 ISCLIBS = ../isc/libisc.@A@
40 ISCDEPLIBS = ../isc/libisc.@A@
46 OPENSSLGOSTLINKOBJS = opensslgost_link.@O@
47 OPENSSLLINKOBJS = openssl_link.@O@ openssldh_link.@O@ openssldsa_link.@O@ \
48 opensslecdsa_link.@O@ @OPENSSLGOSTLINKOBJS@ opensslrsa_link.@O@
50 DSTOBJS = @OPENSSLLINKOBJS@ \
51 dst_api.@O@ dst_lib.@O@ dst_parse.@O@ dst_result.@O@ \
52 gssapi_link.@O@ gssapictx.@O@ hmac_link.@O@ key.@O@
54 DNSOBJS = acl.@O@ adb.@O@ byaddr.@O@ \
55 cache.@O@ callbacks.@O@ client.@O@ compress.@O@ \
56 db.@O@ dbiterator.@O@ diff.@O@ dispatch.@O@ dlz.@O@ dnssec.@O@ \
58 forward.@O@ iptable.@O@ \
61 master.@O@ masterdump.@O@ message.@O@ \
62 name.@O@ ncache.@O@ nsec.@O@ nsec3.@O@ \
63 peer.@O@ portlist.@O@ \
64 rbt.@O@ rbtdb.@O@ rcode.@O@ rdata.@O@ \
65 rdatalist.@O@ rdataset.@O@ rdatasetiter.@O@ rdataslab.@O@ \
66 request.@O@ resolver.@O@ result.@O@ soa.@O@ stats.@O@ \
67 tcpmsg.@O@ time.@O@ tsec.@O@ tsig.@O@ ttl.@O@ \
68 validator.@O@ version.@O@ view.@O@
69 PORTDNSOBJS = ecdb.@O@
71 OBJS= ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS} ${PORTDNSOBJS}
75 OPENSSLGOSTLINKSRCS = opensslgost_link.c
76 OPENSSLLINKSRCS = openssl_link.c openssldh_link.c openssldsa_link.c \
77 opensslecdsa_link.c @OPENSSLGOSTLINKSRCS@ opensslrsa_link.c
79 DSTSRCS = @OPENSSLLINKSRCS@ \
80 dst_api.c dst_lib.c dst_parse.c \
81 dst_result.c gssapi_link.c gssapictx.c \
84 DNSSRCS = acl.c adb.c byaddr.c \
85 cache.c callbacks.c client.c compress.c \
86 db.c dbiterator.c diff.c dispatch.c dlz.c dnssec.c ds.c \
90 master.c masterdump.c message.c \
91 name.c ncache.c nsec.c nsec3.c \
93 rbt.c rbtdb.c rcode.c rdata.c \
94 rdatalist.c rdataset.c rdatasetiter.c rdataslab.c \
95 request.c res.c resolver.c result.c soa.c stats.c \
96 tcpmsg.c time.c tsec.c tsig.c ttl.c \
97 validator.c version.c view.c
100 SRCS = ${DSTSRCS} ${DNSSRCS} ${PORTDNSSRCS}
103 TARGETS = include/dns/enumtype.h include/dns/enumclass.h \
104 include/dns/rdatastruct.h timestamp
106 DEPENDEXTRA = ./gen -F include/dns/rdatastruct.h \
107 -s ${srcdir} -d >> Makefile ;
111 version.@O@: ${srcdir}/version.c
112 ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
113 -DVERSION=\"${VERSION}\" \
114 -DLIBINTERFACE=${LIBINTERFACE} \
115 -DLIBREVISION=${LIBREVISION} \
117 -c ${srcdir}/version.c
120 ${AR} ${ARFLAGS} $@ ${OBJS}
124 ${LIBTOOL_MODE_LINK} \
125 ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libdns.la \
126 -rpath ${export_libdir} \
127 -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
128 ${OBJS} ${ISCLIBS} @DNS_CRYPTO_LIBS@ ${LIBS}
130 timestamp: libdns.@A@
134 $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${export_libdir}
136 install:: timestamp installdirs
137 ${LIBTOOL_MODE_INSTALL} ${INSTALL_DATA} libdns.@A@ \
138 ${DESTDIR}${export_libdir}/
141 rm -f libdns.@A@ timestamp
142 rm -f gen code.h include/dns/enumtype.h include/dns/enumclass.h
143 rm -f include/dns/rdatastruct.h
146 rm -f code.h include/dns/enumtype.h include/dns/enumclass.h
147 rm -f include/dns/rdatastruct.h
149 include: include/dns/enumtype.h include/dns/enumclass.h \
150 include/dns/rdatastruct.h
154 include/dns/enumtype.h: gen
155 ./gen -s ${srcdir} -t > $@
157 include/dns/enumclass.h: gen
158 ./gen -s ${srcdir} -c > $@
160 include/dns/rdatastruct.h: gen \
161 ${srcdir}/rdata/rdatastructpre.h \
162 ${srcdir}/rdata/rdatastructsuf.h
163 ./gen -s ${srcdir} -i \
164 -P ${srcdir}/rdata/rdatastructpre.h \
165 -S ${srcdir}/rdata/rdatastructsuf.h > $@
168 ./gen -s ${srcdir} > code.h
171 ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \
172 ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c ${BUILD_LIBS}
174 #We don't need rbtdb64 for this library
175 #rbtdb64.@O@: rbtdb.c
177 depend: include/dns/enumtype.h include/dns/enumclass.h \
178 include/dns/rdatastruct.h code.h
179 subdirs: include/dns/enumtype.h include/dns/enumclass.h \
180 include/dns/rdatastruct.h code.h
181 ${OBJS}: include/dns/enumtype.h include/dns/enumclass.h \
182 include/dns/rdatastruct.h