INSTALL = $(srcdir)/install-sh
LIBLOBJS = $(LIBOBJS:.o=.lo)
-LDNS_LOBJS = buffer.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo linktest.lo net.lo packet.lo parse.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo
+LDNS_LOBJS = buffer.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo
+LDNS_LOBJS_EX = ^linktest\.c$$
LDNS_ALL_LOBJS = $(LDNS_LOBJS) $(LIBLOBJS)
-LDNS_HEADERS = buffer.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h
+LDNS_HEADERS = buffer.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h
+LDNS_HEADERS_EX = ^config\.h|common\.h|util\.h|net\.h$$
LDNS_HEADERS_GEN= common.h util.h net.h
PYLDNS_I_FILES = $(pywrapdir)/file_py3.i $(pywrapdir)/ldns_buffer.i $(pywrapdir)/ldns_dname.i $(pywrapdir)/ldns_dnssec.i $(pywrapdir)/ldns.i $(pywrapdir)/ldns_key.i $(pywrapdir)/ldns_packet.i $(pywrapdir)/ldns_rdf.i $(pywrapdir)/ldns_resolver.i $(pywrapdir)/ldns_rr.i $(pywrapdir)/ldns_zone.i
DRILL_LOBJS = drill/chasetrace.lo drill/dnssec.lo drill/drill.lo drill/drill_util.lo drill/error.lo drill/root.lo drill/securetrace.lo drill/work.lo
EXAMPLE_LOBJS = examples/ldns-chaos.lo examples/ldns-compare-zones.lo examples/ldnsd.lo examples/ldns-dpa.lo examples/ldns-gen-zone.lo examples/ldns-key2ds.lo examples/ldns-keyfetcher.lo examples/ldns-keygen.lo examples/ldns-mx.lo examples/ldns-notify.lo examples/ldns-nsec3-hash.lo examples/ldns-read-zone.lo examples/ldns-resolver.lo examples/ldns-revoke.lo examples/ldns-rrsig.lo examples/ldns-signzone.lo examples/ldns-test-edns.lo examples/ldns-testns.lo examples/ldns-testpkts.lo examples/ldns-update.lo examples/ldns-verify-zone.lo examples/ldns-version.lo examples/ldns-walk.lo examples/ldns-zcat.lo examples/ldns-zsplit.lo
+EXAMPLE_PROGS = examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-dpa examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-nsec3-hash examples/ldns-read-zone examples/ldns-resolver examples/ldns-revoke examples/ldns-rrsig examples/ldns-signzone examples/ldns-test-edns examples/ldns-update examples/ldns-verify-zone examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit
+EX_PROGS_BASENM = ldns-chaos ldns-compare-zones ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit
+EXAMPLE_PROGS_EX= ^examples/ldns-testpkts\.c|examples/ldns-testns\.c$$
+TESTNS = examples/ldns-testns
+TESTNS_LOBJS = examples/ldns-testns.lo examples/ldns-testpkts.lo
COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS)
COMP_LIB = $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS)
LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) \
$(LIBS) -version-number $(version_info) -no-undefined
-LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CPPFLAGS) $(LIBSSL_CPPFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CPPFLAGS) \
+ $(LIBSSL_CPPFLAGS) $(CFLAGS) $(LDFLAGS)
.PHONY: clean realclean docclean manpages doc lint all lib pyldns test
.PHONY: install uninstall install-doc uninstall-doc uninstall-pyldns
.PHONY: install-h uninstall-h install-lib uninstall-lib install-pyldns
-all: setup-builddir lib linktest manpages @PYLDNS@
+all: setup-builddir lib linktest manpages @PYLDNS@ @DRILL@ @EXAMPLES@
.SUFFIXES: .c .o .a .lo .h .i
@if [ ! -d include/ldns ] ; then ln -s ../ldns include/ldns || echo "include/ldns exists"; fi
drill: drill/drill
-drill/drill: $(DRILL_LOBJS) libldns.la
+drill/drill: $(DRILL_LOBJS) $(LIB)
$(LINK_EXE) $(DRILL_LOBJS) $(LIBS) -lldns -o drill/drill
-examples: $(EXAMPLE_LOBJS)
+install-drill: drill/drill
+ $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+ $(LIBTOOL) --mode=install cp drill/drill $(DESTDIR)$(bindir)
+ $(INSTALL) -m 644 $(srcdir)/drill/drill.1 $(DESTDIR)$(mandir)/man1/drill.1
+
+uninstall-drill:
+ rm -f $(DESTDIR)$(bindir)/drill $(DESTDIR)$(mandir)/man1/drill.1
+ [ ! -d $(DESTDIR)$(mandir) ] || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+ [ ! -d $(DESTDIR)$(bindir) ] || rmdir -p $(DESTDIR)$(bindir) || : ;
+
+clean-drill:
+ rm -f $(DRILL_LOBJS) $(DRILL_LOBJS:.lo=.o) drill/drill
+
+examples: $(EXAMPLE_PROGS) $(TESTNS)
+$(EXAMPLE_PROGS): $(EXAMPLE_LOBJS) $(LIB)
+ $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@
+
+$(TESTNS): $(TESTNS_LOBJS) $(LIB)
+ $(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -lldns -o $(TESTNS)
+
+install-examples: $(EXAMPLE_PROGS) $(TESTNS)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+ for p in $(EXAMPLE_PROGS) $(TESTNS) ; do \
+ $(LIBTOOL) --mode=install cp $$p $(DESTDIR)$(bindir) ; \
+ $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(mandir)/man1 ; \
+ done
+
+uninstall-examples:
+ for p in $(EX_PROGS_BASENM) ldns-testns ; do \
+ rm -f $(DESTDIR)$(bindir)/$$p $(DESTDIR)$(mandir)/man1/$$p.1 ;\
+ done
+ [ ! -d $(DESTDIR)$(mandir) ] || rmdir -p $(DESTDIR)$(mandir)/man1 || :;
+ [ ! -d $(DESTDIR)$(bindir) ] || rmdir -p $(DESTDIR)$(bindir) || : ;
+
+clean-examples:
+ rm -f $(EXAMPLE_PROGS) $(TESTNS) \
+ $(EXAMPLE_LOBJS) $(EXAMPLE_LOBJS:.lo=.o)
linktest: $(srcdir)/linktest.c libldns.la
$(LIBTOOL) --mode=link $(CC) $(srcdir)/linktest.c $(CPPFLAGS) $(LIBSSL_CPPFLAGS) $(CFLAGS) -lldns $(LIBS) -o linktest
_ldns.la: ldns_wrapper.lo libldns.la
$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-number $(version_info) -no-undefined -o $@ $< -rpath $(python_site) -L. -L.libs -lldns $(LIBS)
-install: install-h install-lib install-config install-manpages $(pyldns_inst) $(pyldnsx_inst)
+install: install-h install-lib install-config install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_DRILL@ @INSTALL_EXAMPLES@
-uninstall: uninstall-manpages uninstall-config uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst)
+uninstall: uninstall-manpages uninstall-config uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
destclean: uninstall
uninstall-pyldnsx:
rm -f $(DESTDIR)$(python_site)/ldnsx.py
-clean:
+clean: @CLEAN_DRILL@ @CLEAN_EXAMPLES@
rm -f *.o *.d *.lo
+ rm -f $(LIBOBJS) $(LOBLOBJS)
rm -f *~
rm -rf autom4te.cache/
rm -f tags
nm -g lib/libldns.so | cut -d " " -f 3 | grep ldns | sort > $(srcdir)/ldns_symbols.def
TMP_FILE=temporary.tmp
-make:
+sources:
for mf in $(srcdir)/Makefile.in Makefile ; do \
if [ -e $$mf ] ; then \
cp $$mf $$mf.bak ;\
- sed -e 's/^LDNS_LOBJS[ ]*=.*$$/LDNS_LOBJS = '"`(cd $(srcdir); echo *.c | sed 's/\.c/\.lo/g')`"'/g' \
- -e 's/^LDNS_HEADERS[ ]*=.*$$/LDNS_HEADERS = '"`(cd $(srcdir)/ldns; echo *.h)`"'/g' \
+ sed -e 's/^LDNS_LOBJS[ ]*=.*$$/LDNS_LOBJS = '"`(cd $(srcdir); ls -1 *.c | egrep -v '$(LDNS_LOBJS_EX)' | sed 's/\.c/\.lo/g' | tr '\n' ' ')`"'/g' \
+ -e 's/^LDNS_HEADERS[ ]*=.*$$/LDNS_HEADERS = '"`(cd $(srcdir)/ldns; ls -1 *.h | egrep -v '$(LDNS_HEADERS_EX)' | tr '\n' ' ')`"'/g' \
-e 's?^PYLDNS_I_FILES[ ]*=.*$$?PYLDNS_I_FILES = '"`(cd $(srcdir)/contrib; echo python/*.i | sed 's/python/\$$(pywrapdir)/g')`"'?g' \
-e 's?^DRILL_LOBJS[ ]*=.*$$?DRILL_LOBJS = '"`(cd $(srcdir); echo drill/*.c | sed 's/\.c/\.lo/g')`"'?g' \
-e 's?^EXAMPLE_LOBJS[ ]*=.*$$?EXAMPLE_LOBJS = '"`(cd $(srcdir); echo examples/*.c | sed 's/\.c/\.lo/g')`"'?g' \
+ -e 's?^EXAMPLE_PROGS[ ]*=.*$$?EXAMPLE_PROGS = '"`(cd $(srcdir); ls -1 examples/*.c | egrep -v '$(EXAMPLE_PROGS_EX)' | sed 's/\.c//g' | tr '\n' ' ')`"'?g' \
+ -e 's?^EX_PROGS_BASENM[ ]*=.*$$?EX_PROGS_BASENM = '"`(cd $(srcdir); ls -1 examples/*.c | egrep -v '$(EXAMPLE_PROGS_EX)' | sed -e 's/\.c//g' -e 's?examples/??g' | tr '\n' ' ')`"'?g' \
$$mf > $(TMP_FILE) ;\
mv $(TMP_FILE) $$mf ;\
fi;\
ACX_CHECK_COMPILER_FLAG(W, [CFLAGS="-W $CFLAGS"])
ACX_CHECK_COMPILER_FLAG(Wwrite-strings, [CFLAGS="-Wwrite-strings $CFLAGS"])
+
AC_CHECK_HEADERS([getopt.h time.h],,, [AC_INCLUDES_DEFAULT])
# MinGW32 tests
AC_SEARCH_LIBS([socket], [socket])
AC_SEARCH_LIBS([inet_pton], [nsl])
+
+AC_ARG_WITH(drill, AC_HELP_STRING([--with-drill],
+ [Also build drill.]),
+ [],[with_drill="no"])
+if test x_$with_drill != x_no; then
+ AC_SUBST(DRILL,[drill])
+ AC_SUBST(INSTALL_DRILL,[install-drill])
+ AC_SUBST(UNINSTALL_DRILL,[uninstall-drill])
+ AC_SUBST(CLEAN_DRILL,[clean-drill])
+else
+ AC_SUBST(DRILL,[""])
+ AC_SUBST(INSTALL_DRILL,[""])
+ AC_SUBST(UNINSTALL_DRILL,[""])
+ AC_SUBST(CLEAN_DRILL,[""])
+fi
+
+
+AC_ARG_WITH(examples, AC_HELP_STRING([--with-examples],
+ [Also build examples.]),
+ [],[with_examples="no"])
+if test x_$with_examples != x_no; then
+ AC_SUBST(EXAMPLES,[examples])
+ AC_SUBST(INSTALL_EXAMPLES,[install-examples])
+ AC_SUBST(UNINSTALL_EXAMPLES,[uninstall-examples])
+ AC_SUBST(CLEAN_EXAMPLES,[clean-examples])
+else
+ AC_SUBST(EXAMPLES,[""])
+ AC_SUBST(INSTALL_EXAMPLES,[""])
+ AC_SUBST(UNINSTALL_EXAMPLES,[""])
+ AC_SUBST(CLEAN_EXAMPLES,[""])
+fi
+
# check for python
PYTHON_X_CFLAGS=""
ldns_with_pyldns=no
LIBS=$tmp_LIBS
# add option to disable installation of ldns-config script
-AC_ARG_ENABLE(ldns-config, [ --disable-ldns-config disable installation of ldns-config (default=enabled)],
+AC_ARG_ENABLE(ldns-config, [ --disable-ldns-config disable installation of ldns-config (default=enabled)],
enable_ldns_config=$enableval, enable_ldns_config=yes)
if test "x$enable_ldns_config" = xyes; then
INSTALL_LDNS_CONFIG="yes"
AC_OUTPUT
COPY_HEADER_FILES(ldns/, ldns/)
-AC_CONFIG_SUBDIRS([drill])
+dnl AC_CONFIG_SUBDIRS([drill])
+
+