From e7cc8eb1501de81b8779c8e09c3379ebf8a272ec Mon Sep 17 00:00:00 2001 From: Glen Wiley Date: Sun, 3 Nov 2013 16:40:24 -0500 Subject: [PATCH] separated libunbound test in configure.ac to give better diag msg --- AUTHORS | 2 ++ NEWS | 1 + README.md | 27 ++++++++++++++++----------- configure.ac | 13 +++++++++++-- src/Doxyfile | 2 +- 5 files changed, 31 insertions(+), 14 deletions(-) diff --git a/AUTHORS b/AUTHORS index bf28fea3..af46c8be 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,4 +1,6 @@ Neel Goyal Allison Mankin Melinda Shore +Willem Toorop +W.C.A. Wijngaards Glen Wiley diff --git a/NEWS b/NEWS index e69de29b..ed4e60d2 100644 --- a/NEWS +++ b/NEWS @@ -0,0 +1 @@ +this page intentionally left blank diff --git a/README.md b/README.md index 9225f50d..228bf5fe 100644 --- a/README.md +++ b/README.md @@ -43,22 +43,27 @@ Tickets and bug reports from external contacts are received via a mailing list a TBD: mailing list address + External Dependencies ===================== External dependencies are linked outside the getdns API build tree (we rely on configure to find them). We would like to keep the dependency tree short. -The project relies on [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) for parsing and constructing DNS packets. Version 1.6.16 (note that building ldns may require openssl headers and libraries) - -The project also relies on [libunbound from NL](http://www.nlnetlabs.nl/projects/unbound/). Currently it relies on svn revision 2985. The unbound.2985.patch must be applied to the source tree as well. The ./configure must be run with the --with-libevent option (recommended to also use --with-libunbound-only) - -Although [libevent](http://libevent.org) is used initially to implement the asynchronous model, future work may include a move to other mechanisms (epoll based etc.). Version 2.0.21 stable - -Doxygen is used to generate documentation, while this is not technically necessary for the build it makes things a lot more pleasant. - -GNU autoconf is used to generate the configure script (and consequently the Makefiles) - -Automake 1.12 is required if you are building the distribution tarball. +* [libevent](http://libevent.org) version 2.0.21 stable +* [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) version 1.6.16 (ldns may require openssl headers and libraries) +* [libunbound from NL](http://www.nlnetlabs.nl/projects/unbound/) svn revision 2985, configure must be run with the --with-libevent option (recommended to also use --with-libunbound-only). The unbound.2985.patch included with getdns must be applied to the source tree prior to building libunbound. +* Doxygen is used to generate documentation, while this is not technically necessary for the build it makes things a lot more pleasant. +Assuming that the getdns sources are in a diretory named getdns in your home directory, to build libunbound (note that the svn checkout may take a while): +``` +# mkdir unbound +# cd unbound +# svn checkout -r 2985 http://unbound.nlnetlabs.nl/svn +# cd svn/trunk +# patch -p0 < ~/getdns/unbound.2985.patch +# ./configure --with-libevent --with-libunbound-only +# make +# make install +``` #Supported Platforms diff --git a/configure.ac b/configure.ac index 822ba2be..b47e47eb 100644 --- a/configure.ac +++ b/configure.ac @@ -26,15 +26,24 @@ AC_PROG_CPP # Checks for libraries. found_all_libs=1 -AC_MSG_NOTICE([Checking for dependencies libevent, ldns and unbound]) +AC_MSG_NOTICE([Checking for dependencies libevent, ldns]) AC_CHECK_LIB([event_core], [event_base_new], [], [found_all_libs=0]) AC_CHECK_LIB([ldns], [ldns_dname_new_frm_str], [], [found_all_libs=0]) -AC_CHECK_LIB([unbound], [ub_ctx_set_event], [], [found_all_libs=0]) if test $found_all_libs == 0 then AC_MSG_ERROR([One more dependencies is missing]) fi +# break out libunbound from other libraries since we are currently using a +# patch to the sources +found_libunbound=1 +AC_MSG_NOTICE([Checking for dependency libunbound]) +AC_CHECK_LIB([unbound], [ub_ctx_set_event], [], [found_libunbound=0]) +if test $found_libunbound == 0 +then + AC_MSG_ERROR([libunbound is missing or does not incude event code, you may need to patch your libunbound sources and rebuild. See the getdns build instructions]) +fi + AC_CHECK_PROGS([DOXYGEN], [doxygen]) if test -z "$DOXYGEN"; then AC_MSG_WARN([Doxygen not found, continuing without]) diff --git a/src/Doxyfile b/src/Doxyfile index 9271ddcb..1614ab60 100644 --- a/src/Doxyfile +++ b/src/Doxyfile @@ -52,7 +52,7 @@ PROJECT_LOGO = # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = ./doc +OUTPUT_DIRECTORY = ../doc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output