]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Perl bindings configure option --with-p5-net-ldns
authorWillem Toorop <willem@nlnetlabs.nl>
Tue, 1 Oct 2013 12:41:51 +0000 (14:41 +0200)
committerWillem Toorop <willem@nlnetlabs.nl>
Tue, 1 Oct 2013 12:41:51 +0000 (14:41 +0200)
Changelog
Makefile.in
configure.ac
ldns/packet.h
makedist.sh
packet.c

index 503aad5c0f7cf7de1070bc22f424113120a21910..8522bf46ccc10c37c070e47e5143b40edf071c84 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -47,6 +47,8 @@
        * bugfix #525: Fix documentation of ldns_resolver_set_retry
        * Remove unused LDNS_RDF_TYPE_TSIG and associated functions.
        * Fix ldns_nsec_covers_name for zones with an apex only. Thanks Miek.
+       * Configure option to build perl bindings: --with-p5-net-ldns
+         (Net::LDNS is a contribution from Erik Ostlyngen)
 
 1.6.16 2012-11-13
        * Fix Makefile to build pyldns with BSD make
index 36f9e67088c604bf6320d4d5956f560616982d66..40e157db9117c8793ff9d7693feece4f9134505e 100644 (file)
@@ -13,8 +13,10 @@ datadir              = @datadir@
 libdir         = @libdir@
 includedir     = @includedir@
 doxygen                = @doxygen@
-pywrapdir       = ${srcdir}/contrib/python
-pyldnsxwrapdir  = ${srcdir}/contrib/ldnsx
+pywrapdir       = $(srcdir)/contrib/python
+pyldnsxwrapdir  = $(srcdir)/contrib/ldnsx
+p5_net_ldns_dir = $(srcdir)/contrib/Net-LDNS
+PERL           = @PERL@
 swig           = @swig@
 swigpy_flags   = -python @SWIGPY3@
 python_site    = @PYTHON_SITE_PKG@
@@ -101,7 +103,7 @@ LINK_EXE    = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBSSL_LDFLAGS)
 .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@ @DRILL@ @EXAMPLES@
+all:   setup-builddir lib linktest manpages @P5_NET_LDNS@ @PYLDNS@ @DRILL@ @EXAMPLES@
 
 .SUFFIXES: .c .o .a .lo .h .i
 
@@ -248,9 +250,29 @@ ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h
 _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 $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS)
 
-install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+$(p5_net_ldns_dir)/Makefile: $(p5_net_ldns_dir)/Makefile.PL
+       BUILDDIR=`pwd`; cd $(p5_net_ldns_dir); $(PERL) Makefile.PL PREFIX="$(prefix)" LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR"
 
-uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
+$(p5_net_ldns_dir)/blib/arch/auto/Net/LDNS/LDNS.so: $(p5_net_ldns_dir)/Makefile
+       cd $(p5_net_ldns_dir); $(MAKE)
+
+p5-net-ldns: $(p5_net_ldns_dir)/blib/arch/auto/Net/LDNS/LDNS.so
+
+install-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+       cd $(p5_net_ldns_dir); $(MAKE) install
+
+uninstall-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+       cd $(p5_net_ldns_dir); $(MAKE) uninstall
+
+clean-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+       cd $(p5_net_ldns_dir); $(MAKE) clean
+
+test-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+       cd $(p5_net_ldns_dir); $(MAKE) test
+
+install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_NET_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+
+uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_NET_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
 
 destclean: uninstall
 
@@ -332,7 +354,7 @@ clean-lib:
        $(LIBTOOL) --mode clean rm -f $(pywrapdir)/ldns_wrapper.c
        $(LIBTOOL) --mode clean rm -f $(pywrapdir)/ldns.py
 
-clean: @CLEAN_DRILL@ @CLEAN_EXAMPLES@ clean-manpages clean-lib  putdown-builddir
+clean: @CLEAN_DRILL@ @CLEAN_EXAMPLES@ @CLEAN_P5_NET_LDNS@ clean-manpages clean-lib  putdown-builddir
 
 realclean: clean docclean
        rm -f config.status
@@ -397,7 +419,7 @@ allclean: test-clean clean
 test-clean:
        tpkg -b test clean
 
-test:
+test: @TEST_P5_NET_LDNS@
        if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi
 
 
index c909306c8cbe7d6b40acb34bfdd1b2bfbce99133..461dbc9af24ee69c01f6ba82bc7cdb77bbdab48d 100644 (file)
@@ -286,6 +286,30 @@ else
   AC_SUBST(PYLDNSXUNINST, "")
 fi
 
+# check for perl
+ldns_with_p5_net_ldns=no
+AC_ARG_WITH(p5-net-ldns, AC_HELP_STRING([--with-p5-net-ldns], 
+ [generate Net::LDNS perl bindings]), 
+ [],[ withval="no" ])
+ldns_have_perl=no
+if test x_$withval != x_no; then
+   AC_PATH_PROG([PERL], [perl])
+   if test -z "$PERL"; then
+      AC_MSG_ERROR([Cannot find perl in your system path])
+   fi
+   AC_SUBST(P5_NET_LDNS, "p5-net-ldns")dnl
+   AC_SUBST(TEST_P5_NET_LDNS, "test-p5-net-ldns")dnl
+   AC_SUBST(INSTALL_P5_NET_LDNS, "install-p5-net-ldns")dnl
+   AC_SUBST(UNINSTALL_P5_NET_LDNS, "uninstall-p5-net-ldns")dnl
+   AC_SUBST(CLEAN_P5_NET_LDNS, "clean-p5-net-ldns")
+else
+   AC_SUBST(P5_NET_LDNS, "")dnl
+   AC_SUBST(TEST_P5_NET_LDNS, "")dnl
+   AC_SUBST(INSTALL_P5_NET_LDNS, "")dnl
+   AC_SUBST(UNINSTALL_P5_NET_LDNS, "")dnl
+   AC_SUBST(CLEAN_P5_NET_LDNS, "")
+fi
+
 # Use libtool
 ACX_LIBTOOL_C_ONLY
 
index eb25040355bc9c243c915182aee342f2631825c1..9dca06f56274935be91c495abd18f6a93683e539 100644 (file)
@@ -410,6 +410,17 @@ uint32_t ldns_pkt_querytime(const ldns_pkt *p);
  */
 size_t ldns_pkt_size(const ldns_pkt *p);
 
+/**
+ * Return the number of RRs in the given section.
+ * Returns the sum of all RRs when LDNS_SECTION_ANY is given.
+ * Returns the sum of all non-question RRs when LDNS_SECTION_ANY_NOQUESTION
+ * is given.
+ * \param[in] p the packet
+ * \param[in] s the section
+ * \return the number of RRs in the given section
+ */
+uint16_t ldns_pkt_section_count(const ldns_pkt *p, ldns_pkt_section s);
+
 /**
  * Return the packet's tsig pseudo rr's
  * \param[in] p the packet
index 4af22cd2ef61a40abf1d0970913c0a51a9bfd631..0c3cd63b6b56b3084f44901cec210c1525c6c84b 100755 (executable)
@@ -120,6 +120,7 @@ info "Exporting source from GIT"
 git clone git://git.nlnetlabs.nl/ldns/ || error_cleanup "git command failed"
 cd ldns || error_cleanup "LDNS not exported correctly from git"
 git checkout "$CHECKOUT" || error_cleanup "Could not checkout $CHECKOUT"
+git submodule update --init || error_cleanup "Could not checkout submodules"
 
 info "Running  Libtoolize script (libtoolize)."
 libtoolize -c --install || libtoolize -c || error_cleanup "Libtoolize failed."
index f51fbb837d2f0bd9eb53c6e3b1d3fff53db72bdb..607c05e1a0ae3db887a0166bd90a3db01c1ccd75 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -379,7 +379,7 @@ ldns_pkt_rr(ldns_pkt *pkt, ldns_pkt_section sec, ldns_rr *rr)
        return result;
 }
 
-static uint16_t
+uint16_t
 ldns_pkt_section_count(const ldns_pkt *packet, ldns_pkt_section s)
 {
        switch(s) {