aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--acinclude.m471
-rw-r--r--configure.in109
2 files changed, 107 insertions, 73 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 6b089c4ea4..eab3ab5887 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -734,6 +734,76 @@ AC_DEFUN([AC_ETHEREAL_LIBPCRE_CHECK],
])
#
+# AC_ETHEREAL_NETSNMP_CHECK
+#
+AC_DEFUN([AC_ETHEREAL_NETSNMP_CHECK],
+[
+ dnl get the net-snmp-config binary
+ if test "x$netsnmpconfig" = "x" ; then
+ #
+ # The user didn't specify where net-snmp-config is
+ # located; search for it.
+ #
+ AC_PATH_PROG(NETSNMPCONFIG, net-snmp-config)
+ else
+ NETSNMPCONFIG=$netsnmpconfig
+ if test ! -x $NETSNMPCONFIG -o ! -f $NETSNMPCONFIG ; then
+ NETSNMPCONFIG=$netsnmpconfig/bin/net-snmp-config
+ if test ! -x $NETSNMPCONFIG -o ! -f $NETSNMPCONFIG ; then
+ AC_MSG_ERROR(Invalid net-snmp-config: $netsnmpconfig)
+ fi
+ fi
+ fi
+
+ #
+ # XXX - check whether $NETSNMPCONFIG is executable?
+ # if test "x$NETSNMPCONFIG" != "xno" -a "x$NETSNMPCONFIG" != "x" -a -x "$NETSNMPCONFIG" ; then
+ # We already did that if it was set; presumably AC_PATH_PROG
+ # will fail if it doesn't find an executable version.
+ #
+
+ dnl other choices for flags to use here: could also use
+ dnl --prefix or --exec-prefix if you don't want the full list.
+
+ #
+ # Save the current settings of CFLAGS and CPPFLAGS, and add
+ # the output of "$NETSNMPCONFIG --cflags" to it, so that when
+ # searching for the Net-SNMP headers, we look in whatever
+ # directory that output specifies.
+ #
+ ethereal_save_CFLAGS="$CFLAGS"
+ ethereal_save_CPPFLAGS="$CPPFLAGS"
+ CFLAGS="$CFLAGS `$NETSNMPCONFIG --cflags`"
+ CPPFLAGS="$CPPFLAGS `$NETSNMPCONFIG --cflags`"
+
+ AC_CHECK_HEADERS(net-snmp/net-snmp-config.h net-snmp/library/default_store.h)
+ if test "x$ac_cv_header_net_snmp_net_snmp_config_h" = "xyes" -a "x$ac_cv_header_net_snmp_library_default_store_h" = "xyes" ; then
+ SNMP_LIBS=`$NETSNMPCONFIG --libs`
+ if echo "$SNMP_LIBS" | grep crypto >/dev/null && test "x$SSL_LIBS" = "x"; then
+ if test "x$want_netsnmp" = "xyes" ; then
+ AC_MSG_ERROR(Net-SNMP requires openssl but ssl not enabled)
+ else
+ AC_MSG_RESULT(Net-SNMP requires openssl but ssl not enabled - disabling Net-SNMP)
+ fi
+ CFLAGS="$ethereal_save_CFLAGS"
+ CPPFLAGS="$ethereal_save_CPPFLAGS"
+ SNMP_LIBS=
+ else
+ AC_DEFINE(HAVE_NET_SNMP, 1, [Define to enable support for Net-SNMP])
+ have_net_snmp="yes"
+ fi
+ else
+ #
+ # Restore the versions of CFLAGS and CPPFLAGS before
+ # we added the output of '$NETSNMPCONFIG --cflags",
+ # as we didn't actually find Net-SNMP there.
+ #
+ CFLAGS="$ethereal_save_CFLAGS"
+ CPPFLAGS="$ethereal_save_CPPFLAGS"
+ fi
+])
+
+#
# AC_ETHEREAL_UCDSNMP_CHECK
#
AC_DEFUN([AC_ETHEREAL_UCDSNMP_CHECK],
@@ -1179,4 +1249,3 @@ AC_DEFUN([AC_ETHEREAL_KRB5_CHECK],
fi
AC_SUBST(KRB5_LIBS)
])
-
diff --git a/configure.in b/configure.in
index ca6dec09e6..dabc7e611d 100644
--- a/configure.in
+++ b/configure.in
@@ -798,15 +798,31 @@ else
fi
AC_SUBST(SSL_LIBS)
-dnl UCD SNMP/NET-SNMP Check
+dnl UCD SNMP/Net-SNMP Check
SNMP_LIBS=''
AC_ARG_WITH(net-snmp,
changequote(<<, >>)dnl
-<< --with-net-snmp=PATH use NET-SNMP library, with PATH as the location of the net-snmp-config shell script that comes with the net-snmp package.>>,
+<< --with-net-snmp[=PATH] use Net-SNMP library (with PATH as the location of the net-snmp-config shell script that comes with the net-snmp package, if supplied) [default=yes, if present]>>,
changequote([, ])dnl
-[netsnmpconfig=$withval]
-)
+[
+ if test $withval = no
+ then
+ want_netsnmp=no
+ elif test $withval = yes
+ then
+ want_netsnmp=yes
+ else
+ want_netsnmp=yes
+ netsnmpconfig="$withval"
+ fi
+],[
+ #
+ # Set "want_netsnmp" to "ifpresent" to make the default "use it
+ # if you find it, otherwise don't".
+ #
+ want_netsnmp=ifpresent
+])
AC_ARG_WITH(ucd-snmp,
changequote(<<, >>)dnl
@@ -832,72 +848,21 @@ changequote([, ])dnl
ucdsnmp_dir=
])
-dnl try net-snmp first
-AC_MSG_CHECKING(whether to use NET-SNMP library if available)
-if test "x$netsnmpconfig" != "xno" ; then
- AC_MSG_RESULT(yes)
- dnl get the net-snmp-config binary
- if test "x$netsnmpconfig" = "xyes" -o "x$netsnmpconfig" = "x" ; then
- dnl search for it
- AC_PATH_PROG(NETSNMPCONFIG,net-snmp-config)
- else
- NETSNMPCONFIG=$netsnmpconfig
- if test ! -x $NETSNMPCONFIG -o ! -f $NETSNMPCONFIG ; then
- NETSNMPCONFIG=$netsnmpconfig/bin/net-snmp-config
- if test ! -x $NETSNMPCONFIG -o ! -f $NETSNMPCONFIG ; then
- AC_MSG_ERROR(Invalid net-snmp-config: $netsnmpconfig)
- fi
- fi
- fi
-else
+#
+# Try Net-SNMP first.
+#
+AC_MSG_CHECKING(whether to use Net-SNMP library if available)
+if test "x$want_netsnmp" = "xno" ; then
AC_MSG_RESULT(no)
+else
+ AC_MSG_RESULT(yes)
+ AC_ETHEREAL_NETSNMP_CHECK
fi
-if test "x$NETSNMPCONFIG" != "xno" -a "x$NETSNMPCONFIG" != "x" -a -x "$NETSNMPCONFIG" ; then
- dnl other choices for flags to use here: could also use
- dnl --prefix or --exec-prefix if you don't want the full list.
-
- #
- # Save the current settings of CFLAGS and CPPFLAGS, and add
- # the output of "$NETSNMPCONFIG --cflags" to it, so that when
- # searching for the Net-SNMP headers, we look in whatever
- # directory that output specifies.
- #
- ethereal_save_CFLAGS="$CFLAGS"
- ethereal_save_CPPFLAGS="$CPPFLAGS"
- CFLAGS="$CFLAGS `$NETSNMPCONFIG --cflags`"
- CPPFLAGS="$CPPFLAGS `$NETSNMPCONFIG --cflags`"
-
- AC_CHECK_HEADERS(net-snmp/net-snmp-config.h net-snmp/library/default_store.h)
- if test "x$ac_cv_header_net_snmp_net_snmp_config_h" = "xyes" -a "x$ac_cv_header_net_snmp_library_default_store_h" = "xyes" ; then
- SNMP_LIBS=`$NETSNMPCONFIG --libs`
- if echo "$SNMP_LIBS" | grep crypto >/dev/null && test "x$SSL_LIBS" = "x"; then
- AC_MSG_RESULT(Net-SNMP requires openssl but ssl not enabled - disabling Net-SNMP)
- CFLAGS="$ethereal_save_CFLAGS"
- CPPFLAGS="$ethereal_save_CPPFLAGS"
- SNMP_LIBS=
- NETSNMPCONFIG="no"
- else
- AC_DEFINE(HAVE_NET_SNMP, 1, [Define to enable support for NET-SNMP])
- have_net_snmp="yes"
- fi
- else
- # technically, we should retry ucd-snmp but it's
- # unlikely they have installed net-snmp-config and not
- # the net-snmp headers but do have the ucd-snmp
- # headers. This would likely be a broken system to
- # try and use anyway.
- NETSNMPCONFIG="no"
-
- #
- # Restore the versions of CFLAGS and CPPFLAGS before
- # we added the output of '$NETSNMPCONFIG --cflags",
- # as we didn't actually find Net-SNMP there.
- #
- CFLAGS="$ethereal_save_CFLAGS"
- CPPFLAGS="$ethereal_save_CPPFLAGS"
- fi
-else
+#
+# If that didn't find Net-SNMP, try UCD SNMP.
+#
+if test "x$have_net_snmp" != "xyes" ; then
AC_MSG_CHECKING(whether to use UCD SNMP library if available)
if test "x$want_ucdsnmp" = "xno" ; then
AC_MSG_RESULT(no)
@@ -1316,12 +1281,12 @@ else
adns_message="no"
fi
-if test "x$NETSNMPCONFIG" != "xno" -a "x$NETSNMPCONFIG" != "x" -a -x "$NETSNMPCONFIG" ; then
+if test "x$have_net_snmp" = "xyes" ; then
snmp_libs_message="yes (net-snmp)"
-elif test "x$SNMP_LIBS" = "x" ; then
- snmp_libs_message="no"
-else
+elif test "x$have_ucdsnmp" = "xyes" ; then
snmp_libs_message="yes (ucd-snmp)"
+else
+ snmp_libs_message="no"
fi
echo ""
@@ -1350,4 +1315,4 @@ echo " Use kerberos library : $krb5_message"
echo " Use GNU ADNS library : $adns_message"
echo " Use SSL crypto library : $ssl_message"
echo " Use IPv6 name resolution : $enable_ipv6"
-echo " Use UCD SNMP/NET-SNMP library : $snmp_libs_message"
+echo " Use UCD SNMP/Net-SNMP library : $snmp_libs_message"