1254402Serwin# Copyright (C) 2009-2013  Internet Systems Consortium, Inc. ("ISC")
2224090Sdougb#
3224090Sdougb# Permission to use, copy, modify, and/or distribute this software for any
4224090Sdougb# purpose with or without fee is hereby granted, provided that the above
5224090Sdougb# copyright notice and this permission notice appear in all copies.
6224090Sdougb#
7224090Sdougb# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8224090Sdougb# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9224090Sdougb# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
10224090Sdougb# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11224090Sdougb# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
12224090Sdougb# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13224090Sdougb# PERFORMANCE OF THIS SOFTWARE.
14224090Sdougb
15234010Sdougb# $Id$
16224090Sdougb
17224090Sdougbtop_srcdir =	@top_srcdir@
18224090Sdougbsrcdir =	@top_srcdir@/lib/dns
19224090Sdougbexport_srcdir =	@top_srcdir@/lib/export
20224090Sdougb
21224090Sdougb# Attempt to disable parallel processing.
22224090Sdougb.NOTPARALLEL:
23224090Sdougb.NO_PARALLEL:
24224090Sdougb
25224090Sdougb@BIND9_VERSION@
26224090Sdougb
27224090Sdougb@LIBDNS_API@
28224090Sdougb
29224090Sdougb@BIND9_MAKE_INCLUDES@
30224090Sdougb
31224090SdougbCINCLUDES =	-I. -Iinclude ${DNS_INCLUDES} -I${export_srcdir}/isc/include \
32224090Sdougb		${ISC_INCLUDES} @DST_OPENSSL_INC@ @DST_GSSAPI_INC@
33224090Sdougb
34224090SdougbCDEFINES =	-DUSE_MD5 @USE_OPENSSL@ @USE_GSSAPI@
35224090Sdougb
36224090SdougbCWARNINGS =
37224090Sdougb
38224090SdougbISCLIBS =	../isc/libisc.@A@
39224090Sdougb
40224090SdougbISCDEPLIBS =	../isc/libisc.@A@
41224090Sdougb
42224090SdougbLIBS =		@LIBS@
43224090Sdougb
44224090Sdougb# Alphabetically
45224090Sdougb
46254402SerwinOPENSSLGOSTLINKOBJS = opensslgost_link.@O@
47224090SdougbOPENSSLLINKOBJS = openssl_link.@O@ openssldh_link.@O@ openssldsa_link.@O@ \
48254402Serwin		opensslecdsa_link.@O@ @OPENSSLGOSTLINKOBJS@ opensslrsa_link.@O@
49224090Sdougb
50224090SdougbDSTOBJS =	@OPENSSLLINKOBJS@ \
51224090Sdougb		dst_api.@O@ dst_lib.@O@ dst_parse.@O@ dst_result.@O@ \
52224090Sdougb		gssapi_link.@O@ gssapictx.@O@ hmac_link.@O@ key.@O@
53224090Sdougb
54224090SdougbDNSOBJS =	acl.@O@ adb.@O@ byaddr.@O@ \
55224090Sdougb		cache.@O@ callbacks.@O@ client.@O@ compress.@O@ \
56224090Sdougb		db.@O@ dbiterator.@O@ diff.@O@ dispatch.@O@ dlz.@O@ dnssec.@O@ \
57224090Sdougb		ds.@O@ \
58224090Sdougb		forward.@O@ iptable.@O@ \
59224090Sdougb		keytable.@O@ \
60224090Sdougb		lib.@O@ log.@O@ \
61224090Sdougb		master.@O@ masterdump.@O@ message.@O@ \
62224090Sdougb		name.@O@ ncache.@O@ nsec.@O@ nsec3.@O@ \
63224090Sdougb		peer.@O@ portlist.@O@ \
64224090Sdougb		rbt.@O@ rbtdb.@O@ rcode.@O@ rdata.@O@ \
65224090Sdougb		rdatalist.@O@ rdataset.@O@ rdatasetiter.@O@ rdataslab.@O@ \
66224090Sdougb		request.@O@ resolver.@O@ result.@O@ soa.@O@ stats.@O@ \
67224090Sdougb		tcpmsg.@O@ time.@O@ tsec.@O@ tsig.@O@ ttl.@O@ \
68224090Sdougb		validator.@O@ version.@O@ view.@O@
69224090SdougbPORTDNSOBJS =	ecdb.@O@
70224090Sdougb
71224090SdougbOBJS=		${DNSOBJS} ${OTHEROBJS} ${DSTOBJS} ${PORTDNSOBJS}
72224090Sdougb
73224090Sdougb# Alphabetically
74224090Sdougb
75254402SerwinOPENSSLGOSTLINKSRCS = opensslgost_link.c
76224090SdougbOPENSSLLINKSRCS = openssl_link.c openssldh_link.c openssldsa_link.c \
77254402Serwin		opensslecdsa_link.c @OPENSSLGOSTLINKSRCS@ opensslrsa_link.c
78224090Sdougb
79224090SdougbDSTSRCS =	@OPENSSLLINKSRCS@ \
80224090Sdougb		dst_api.c dst_lib.c dst_parse.c \
81224090Sdougb		dst_result.c gssapi_link.c gssapictx.c \
82224090Sdougb		hmac_link.c key.c 
83224090Sdougb
84224090SdougbDNSSRCS =	acl.c adb.c byaddr.c \
85224090Sdougb		cache.c callbacks.c client.c compress.c \
86224090Sdougb		db.c dbiterator.c diff.c dispatch.c dlz.c dnssec.c ds.c \
87224090Sdougb		forward.c iptable.c \
88224090Sdougb		keytable.c \
89224090Sdougb		lib.c log.c \
90224090Sdougb		master.c masterdump.c message.c \
91224090Sdougb		name.c ncache.c nsec.c nsec3.c \
92224090Sdougb		peer.c portlist.c \
93224090Sdougb		rbt.c rbtdb.c rcode.c rdata.c \
94224090Sdougb		rdatalist.c rdataset.c rdatasetiter.c rdataslab.c \
95224090Sdougb		request.c res.c resolver.c result.c soa.c stats.c \
96224090Sdougb		tcpmsg.c time.c tsec.c tsig.c ttl.c \
97224090Sdougb		validator.c version.c view.c
98224090SdougbPORTDNSSRCS =	ecdb.c
99224090Sdougb
100224090SdougbSRCS = ${DSTSRCS} ${DNSSRCS} ${PORTDNSSRCS}
101224090Sdougb
102224090SdougbSUBDIRS =	include
103224090SdougbTARGETS =	include/dns/enumtype.h include/dns/enumclass.h \
104224090Sdougb		include/dns/rdatastruct.h timestamp
105224090Sdougb
106224090SdougbDEPENDEXTRA =	./gen -F include/dns/rdatastruct.h \
107224090Sdougb		-s ${srcdir} -d >> Makefile ;
108224090Sdougb
109224090Sdougb@BIND9_MAKE_RULES@
110224090Sdougb
111224090Sdougbversion.@O@: ${srcdir}/version.c
112224090Sdougb	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
113224090Sdougb		-DVERSION=\"${VERSION}\" \
114224090Sdougb		-DLIBINTERFACE=${LIBINTERFACE} \
115224090Sdougb		-DLIBREVISION=${LIBREVISION} \
116224090Sdougb		-DLIBAGE=${LIBAGE} \
117224090Sdougb		-c ${srcdir}/version.c
118224090Sdougb
119224090Sdougblibdns.@SA@: ${OBJS}
120224090Sdougb	${AR} ${ARFLAGS} $@ ${OBJS}
121224090Sdougb	${RANLIB} $@
122224090Sdougb
123224090Sdougblibdns.la: ${OBJS}
124224090Sdougb	${LIBTOOL_MODE_LINK} \
125224090Sdougb		${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libdns.la \
126224090Sdougb		-rpath ${export_libdir} \
127224090Sdougb		-version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
128224090Sdougb		${OBJS} ${ISCLIBS} @DNS_CRYPTO_LIBS@ ${LIBS}
129224090Sdougb
130224090Sdougbtimestamp: libdns.@A@
131224090Sdougb	touch timestamp
132224090Sdougb
133224090Sdougbinstalldirs:
134224090Sdougb	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${export_libdir}
135224090Sdougb
136224090Sdougbinstall:: timestamp installdirs
137224090Sdougb	${LIBTOOL_MODE_INSTALL} ${INSTALL_DATA} libdns.@A@ \
138225361Sdougb	${DESTDIR}${export_libdir}/
139224090Sdougb
140224090Sdougbclean distclean::
141224090Sdougb	rm -f libdns.@A@ timestamp
142224090Sdougb	rm -f gen code.h include/dns/enumtype.h include/dns/enumclass.h
143224090Sdougb	rm -f include/dns/rdatastruct.h
144224090Sdougb
145224090Sdougbnewrr::
146224090Sdougb	rm -f code.h include/dns/enumtype.h include/dns/enumclass.h
147224090Sdougb	rm -f include/dns/rdatastruct.h
148224090Sdougb
149224090Sdougbinclude: include/dns/enumtype.h include/dns/enumclass.h \
150224090Sdougb	include/dns/rdatastruct.h
151224090Sdougb
152224090Sdougbrdata.@O@: code.h
153224090Sdougb
154224090Sdougbinclude/dns/enumtype.h: gen
155224090Sdougb	./gen -s ${srcdir} -t > $@
156224090Sdougb
157224090Sdougbinclude/dns/enumclass.h: gen
158224090Sdougb	./gen -s ${srcdir} -c > $@
159224090Sdougb
160224090Sdougbinclude/dns/rdatastruct.h: gen \
161224090Sdougb		${srcdir}/rdata/rdatastructpre.h \
162224090Sdougb		${srcdir}/rdata/rdatastructsuf.h
163224090Sdougb	./gen -s ${srcdir} -i \
164224090Sdougb		-P ${srcdir}/rdata/rdatastructpre.h \
165224090Sdougb		-S ${srcdir}/rdata/rdatastructsuf.h > $@
166224090Sdougb
167224090Sdougbcode.h:	gen
168224090Sdougb	./gen -s ${srcdir} > code.h
169224090Sdougb
170224090Sdougbgen: ${srcdir}/gen.c
171224090Sdougb	${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
172224090Sdougb
173224090Sdougb#We don't need rbtdb64 for this library
174224090Sdougb#rbtdb64.@O@: rbtdb.c
175224090Sdougb
176224090Sdougbdepend: include/dns/enumtype.h include/dns/enumclass.h \
177224090Sdougb	include/dns/rdatastruct.h code.h
178224090Sdougbsubdirs: include/dns/enumtype.h include/dns/enumclass.h \
179224090Sdougb	include/dns/rdatastruct.h code.h
180224090Sdougb${OBJS}: include/dns/enumtype.h include/dns/enumclass.h \
181224090Sdougb	include/dns/rdatastruct.h
182