# Copyright (C) 1998-2001  Internet Software Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
# INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

# $Id: Makefile.in,v 1.117.4.1 2001/01/09 22:43:19 bwelling Exp $

srcdir =	@srcdir@
VPATH =		@srcdir@
top_srcdir =	@top_srcdir@

@BIND9_VERSION@

@LIBDNS_API@

@BIND9_INCLUDES@

CINCLUDES =	-I. ${DNS_INCLUDES} ${ISC_INCLUDES}

CDEFINES =
CWARNINGS =

LIBS =		@LIBS@


# Alphabetically

CONFOBJS =	config/confacl.@O@ config/confcache.@O@ config/confcommon.@O@ \
		config/confctl.@O@ config/confctx.@O@ \
		config/confip.@O@ config/confkeys.@O@ \
		config/conflog.@O@ config/conflsn.@O@ \
		config/conflwres.@O@ \
		config/confndc.@O@ config/confparser.@O@ \
		config/confresolv.@O@ config/confrrset.@O@ \
		config/confview.@O@ config/confzone.@O@

DSTOBJS =	sec/dst/dst_api.@O@ \
		sec/dst/dst_lib.@O@ sec/dst/dst_parse.@O@ \
		sec/dst/dst_result.@O@ sec/dst/gssapi_link.@O@ \
		sec/dst/hmac_link.@O@ sec/dst/openssl_link.@O@ \
		sec/dst/gssapictx.@O@ \
		sec/dst/openssldh_link.@O@ sec/dst/opensslrsa_link.@O@

OPENSSLOBJS =	sec/openssl/a_bitstr.@O@ sec/openssl/a_bytes.@O@ \
		sec/openssl/a_enum.@O@ sec/openssl/a_gentm.@O@ \
		sec/openssl/a_int.@O@ sec/openssl/a_object.@O@ \
		sec/openssl/a_octet.@O@ sec/openssl/a_print.@O@ \
		sec/openssl/a_set.@O@ sec/openssl/a_type.@O@ \
		sec/openssl/a_utctm.@O@ sec/openssl/a_utf8.@O@ \
		sec/openssl/a_vis.@O@ sec/openssl/asn1_lib.@O@ \
		sec/openssl/bn_add.@O@ sec/openssl/bn_asm.@O@ \
		sec/openssl/bn_blind.@O@ \
		sec/openssl/bn_ctx.@O@ sec/openssl/bn_div.@O@ \
		sec/openssl/bn_err.@O@ sec/openssl/bn_exp.@O@ \
		sec/openssl/bn_exp2.@O@ sec/openssl/bn_gcd.@O@ \
		sec/openssl/bn_lib.@O@ sec/openssl/bn_mont.@O@ \
		sec/openssl/bn_mul.@O@ sec/openssl/bn_prime.@O@ \
		sec/openssl/bn_print.@O@ sec/openssl/bn_rand.@O@ \
		sec/openssl/bn_recp.@O@ sec/openssl/bn_shift.@O@ \
		sec/openssl/bn_sqr.@O@ sec/openssl/bn_word.@O@ \
		sec/openssl/buffer.@O@ sec/openssl/cryptlib.@O@ \
		sec/openssl/dh_err.@O@ sec/openssl/dh_gen.@O@ \
		sec/openssl/dh_key.@O@  sec/openssl/dh_lib.@O@ \
		sec/openssl/dsa_asn1.@O@ sec/openssl/dsa_err.@O@ \
		sec/openssl/dsa_gen.@O@ sec/openssl/dsa_key.@O@ \
		sec/openssl/dsa_lib.@O@  sec/openssl/dsa_ossl.@O@ \
		sec/openssl/dsa_sign.@O@ sec/openssl/dsa_vrf.@O@ \
		sec/openssl/err.@O@ sec/openssl/ex_data.@O@ \
		sec/openssl/lhash.@O@ sec/openssl/mem_dbg.@O@ \
		sec/openssl/mem.@O@ sec/openssl/obj_dat.@O@ \
		sec/openssl/obj_lib.@O@ sec/openssl/rand_lib.@O@ \
                sec/openssl/rsa_chk.@O@ sec/openssl/rsa_eay.@O@ \
                sec/openssl/rsa_gen.@O@ sec/openssl/rsa_lib.@O@ \
		sec/openssl/rsa_none.@O@ sec/openssl/rsa_oaep.@O@ \
		sec/openssl/rsa_pk1.@O@ \
		sec/openssl/rsa_sign.@O@ sec/openssl/rsa_ssl.@O@ \
		sec/openssl/sha1_one.@O@ sec/openssl/sha1dgst.@O@ \
		sec/openssl/stack.@O@ \
		sec/openssl/x_sig.@O@ sec/openssl/x_algor.@O@

# Alphabetically
OBJS =		a6.@O@ acl.@O@ adb.@O@ byaddr.@O@ \
		cache.@O@ callbacks.@O@ compress.@O@ \
		db.@O@ dbiterator.@O@ dbtable.@O@ diff.@O@ dispatch.@O@ \
		dnssec.@O@ forward.@O@ journal.@O@ keytable.@O@ \
		lib.@O@ log.@O@ lookup.@O@ \
		master.@O@ masterdump.@O@ message.@O@ \
		name.@O@ ncache.@O@ nxt.@O@ peer.@O@ \
		rbt.@O@ rbtdb.@O@ rbtdb64.@O@ rdata.@O@ rdatalist.@O@ \
		rdataset.@O@ rdatasetiter.@O@ rdataslab.@O@ request.@O@ \
		resolver.@O@ result.@O@ rootns.@O@ sdb.@O@ ssu.@O@ \
		stats.@O@ tcpmsg.@O@ time.@O@ timer.@O@ tkey.@O@ \
		tsig.@O@ ttl.@O@ validator.@O@ \
		version.@O@ view.@O@ xfrin.@O@ zone.@O@ zt.@O@ \
		${OTHEROBJS} ${DSTOBJS} @DST_OPENSSL_OBJS@ ${CONFOBJS}

# Alphabetically
SRCS =		a6.c acl.c adb.c byaddr.c \
		cache.c callbacks.c compress.c \
		db.c dbiterator.c dbtable.c diff.c dispatch.c \
		dnssec.c forward.c journal.c keytable.c \
		lib.c log.c lookup.c \
		master.c masterdump.c message.c \
		name.c ncache.c nxt.c peer.c \
		rbt.c rbtdb.c rbtdb64.c rdata.c rdatalist.c \
		rdataset.c rdatasetiter.c rdataslab.c request.c \
		resolver.c result.c rootns.c sdb.c ssu.c \
		stats.c tcpmsg.c time.c timer.c tkey.c \
		tsig.c ttl.c validator.c \
		version.c view.c xfrin.c zone.c zt.c ${OTHERSRCS}

SUBDIRS =	include sec config
TARGETS =	include/dns/enumtype.h include/dns/enumclass.h \
		include/dns/rdatastruct.h timestamp

DEPENDEXTRA =	./gen -F include/dns/rdatastruct.h \
		-s ${srcdir} -d >> Makefile ;

@BIND9_MAKE_RULES@

version.@O@: version.c
	${LIBTOOL} ${CC} ${ALL_CFLAGS} \
		-DVERSION=\"${VERSION}\" \
		-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} -o libdns.la -rpath ${libdir} \
		-version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
		${OBJS} ${LIBS}

timestamp: libdns.@A@
	touch timestamp

installdirs:
	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}

install:: timestamp installdirs
	${LIBTOOL} ${INSTALL_DATA} libdns.@A@ ${DESTDIR}${libdir}

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

newrr::
	rm -f code.h include/dns/enumtype.h include/dns/enumclass.h
	rm -f include/dns/rdatastruct.h

include: include/dns/enumtype.h include/dns/enumclass.h \
	include/dns/rdatastruct.h

rdata.@O@: code.h

include/dns/enumtype.h: gen
	./gen -s ${srcdir} -t > $@

include/dns/enumclass.h: gen
	./gen -s ${srcdir} -c > $@

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 > $@

code.h:	gen
	./gen -s ${srcdir} > code.h

gen: gen.c
	${CC} ${ALL_CFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}

rbtdb64.@O@: rbtdb.c

depend: include/dns/enumtype.h include/dns/enumclass.h \
	include/dns/rdatastruct.h code.h
subdirs: include/dns/enumtype.h include/dns/enumclass.h \
	include/dns/rdatastruct.h code.h
