ax_isc_bind10.m4 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. dnl @synopsis AX_BIND10
  2. dnl
  3. dnl @summary figure out how to build C++ programs using ISC BIND 10 libraries
  4. dnl
  5. dnl If no path to the installed BIND 10 header files or libraries is given
  6. dnl via the --with-bind10-include or --with-bind10-lib option, the macro
  7. dnl searchs under /usr/local/{include, lib}, /usr/pkg/{include, lib},
  8. dnl /opt/{include, lib}, /opt/local/{include, lib} directories, respectively.
  9. dnl
  10. dnl This macro calls:
  11. dnl
  12. dnl AC_SUBST(BIND10_CPPFLAGS)
  13. dnl AC_SUBST(BIND10_LDFLAGS)
  14. dnl AC_SUBST(BIND10_DNS_LIB)
  15. dnl
  16. AC_DEFUN([AX_ISC_BIND10], [
  17. AC_REQUIRE([AX_BOOST_INCLUDE])
  18. AC_LANG_SAVE
  19. AC_LANG([C++])
  20. AX_BOOST_INCLUDE
  21. # Check for BIND10 libdns++ headers
  22. AC_ARG_WITH(bind10-include,
  23. AS_HELP_STRING([--with-bind10-include=PATH],
  24. [specify a path to BIND 10 header files]),
  25. bind10_inc_path="$withval", bind10_inc_path="no")
  26. # If not specified, try some common paths.
  27. if test "$bind10_inc_path" = "no"; then
  28. for d in /usr/local /usr/pkg /opt /opt/local
  29. do
  30. if test -f $d/include/dns/rrtype.h; then
  31. bind10_inc_path=$d
  32. break
  33. fi
  34. done
  35. fi
  36. CPPFLAGS_SAVES="$CPPFLAGS"
  37. if test "${bind10_inc_path}" ; then
  38. BIND10_CPPFLAGS="-I${bind10_inc_path}"
  39. CPPFLAGS="$CPPFLAGS $BIND10_CPPFLAGS"
  40. fi
  41. AC_CHECK_HEADERS([dns/rrtype.h],,
  42. AC_MSG_ERROR([Missing required BIND 10 header files.]))
  43. CPPFLAGS="$CPPFLAGS_SAVES"
  44. AC_SUBST(BIND10_CPPFLAGS)
  45. # Check for BIND10 libraries
  46. CPPFLAGS_SAVED="$CPPFLAGS"
  47. CPPFLAGS="$CPPFLAGS $BIND10_CPPFLAGS"
  48. AC_ARG_WITH(bind10-lib,
  49. AS_HELP_STRING([--with-bind10-lib=PATH],
  50. [specify a path to BIND 10 library files]),
  51. bind10_lib_path="$withval", bind10_lib_path="no")
  52. if test $bind10_lib_path != "no"; then
  53. bind10_lib_dirs=$bind10_lib_path
  54. else
  55. # If not specified, try some common paths.
  56. bind10_lib_dirs="/usr/local/lib /usr/pkg/lib /opt/lib /opt/local/lib"
  57. fi
  58. # make sure we have buildable libraries
  59. AC_MSG_CHECKING([BIND 10 libraries])
  60. BIND10_DNS_LIB="-lb10-dns++ -lb10-util -lb10-exceptions"
  61. LDFLAGS="$LDFLAGS $BIND10_LDFLAGS"
  62. LIBS="$LIBS $BIND10_DNS_LIB"
  63. for d in $bind10_lib_dirs
  64. do
  65. LDFLAGS_SAVED="$LDFLAGS"
  66. LDFLAGS="$LDFLAGS -L$d"
  67. AC_TRY_LINK([
  68. #include <dns/rrtype.h>
  69. ],[
  70. isc::dns::RRType rrtype(1);
  71. ], [BIND10_LDFLAGS="-L${d}"])
  72. if test "x$BIND10_LDFLAGS" != "x"; then
  73. break
  74. fi
  75. LDFLAGS="$LDFLAGS_SAVED"
  76. done
  77. if test "x$BIND10_LDFLAGS" != "x"; then
  78. AC_MSG_RESULT(yes)
  79. else
  80. AC_MSG_RESULT(no)
  81. AC_MSG_ERROR(unable to find required BIND 10 libraries)
  82. fi
  83. CPPFLAGS="$CPPFLAGS_SAVED"
  84. LDFLAGS="$LDFLAGS_SAVES"
  85. LIBS="$LIBS_SAVES"
  86. AC_SUBST(BIND10_LDFLAGS)
  87. AC_SUBST(BIND10_DNS_LIB)
  88. AC_LANG_RESTORE
  89. ])dnl AX_ISC_BIND10