-dnl #######################################################################
-dnl #
-dnl # Look for SNMP in a variety of places.
-dnl #
-AC_DEFUN([SNMP_CHECKS], [
- AC_SUBST(SNMP_LIBS)
- AC_SUBST(SNMP_INCLUDE)
-
-AC_MSG_CHECKING([for asn1.h,snmp.h,snmp_impl.h])
-
-dnl #
-dnl # First, see if we can build it WITHOUT using any special includes and in ucd-snmp
-dnl #
-AC_TRY_COMPILE([
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <ucd-snmp/ucd-snmp-config.h>
-#include <ucd-snmp/asn1.h>
-#include <ucd-snmp/snmp.h>
-#include <ucd-snmp/snmp_impl.h>],
- [ int a = 1;],
- SNMP_INCLUDE="";ucdsnmp=yes,
- ucdsnmp=)
-
-dnl #
-dnl # If not, look for it in a number of directories and in ucd-snmp.
-dnl #
-if test "x$ucdsnmp" = "x"; then
- old_CFLAGS="$CFLAGS"
- for try in /usr/include /usr/local/include $snmp_include_dir; do
- CFLAGS="$old_CFLAGS -I$try"
- AC_TRY_COMPILE([
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <ucd-snmp/ucd-snmp-config.h>
-#include <ucd-snmp/asn1.h>
-#include <ucd-snmp/snmp.h>
-#include <ucd-snmp/snmp_impl.h>],
- [ int a = 1;],
- SNMP_INCLUDE="-I$try";ucdsnmp=yes,
- ucdsnmp=)
- if test "x$ucdsnmp" != "x"; then
- break;
- fi
- done
- CFLAGS="$old_CFLAGS"
-fi
-
-if test "x$ucdsnmp" = "x"; then
- old_CFLAGS="$CFLAGS"
- for try in /usr/include/ucd-snmp /usr/local/include/ucd-snmp $snmp_include_dir; do
- CFLAGS="$old_CFLAGS -I$try"
-dnl #
-dnl # First, see if we can build it WITHOUT using any special includes and without ucd-snmp
-dnl #
-AC_TRY_COMPILE([
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <asn1.h>
-#include <snmp.h>
-#include <snmp_impl.h>],
- [ int a = 1;],
- SNMP_INCLUDE="";ucdsnmp=no,
- ucdsnmp=)
- if test "x$ucdsnmp" != "x"; then
- break;
- fi
- done
- CFLAGS="$old_CFLAGS"
-fi
-
-dnl #
-dnl # If not, look for it in a number of directories and without ucd-snmp
-dnl #
-if test "x$ucdsnmp" = "x"; then
- old_CFLAGS="$CFLAGS"
- for try in /usr/include/ucd-snmp /usr/local/include/ucd-snmp $snmp_include_dir; do
- CFLAGS="$old_CFLAGS -I$try"
- AC_TRY_COMPILE([
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <asn1.h>
-#include <snmp.h>
-#include <snmp_impl.h>],
- [ int a = 1;],
- SNMP_INCLUDE="-I$try";ucdsnmp=no,
- ucdsnmp=)
- if test "x$ucdsnmp" != "x"; then
- break;
- fi
- done
- CFLAGS="$old_CFLAGS"
-fi
-
-if test "x$ucdsnmp" = "x"; then
- AC_MSG_RESULT(no)
-else
- if test "x$ucdsnmp" = "xyes"; then
- AC_MSG_RESULT((ucd-snmp)yes)
- AC_DEFINE(HAVE_UCD_SNMP_ASN1_SNMP_SNMPIMPL_H, [], [Define if you have the <ucd-snmp/asn1.h>, <ucd-snmp/snmp_impl.h> and <ucd-snmp/snmp.h> header file.])
- else
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_ASN1_SNMP_SNMPIMPL_H, [], [Define if you have the <asn1.h>, <snmp_impl.h> and <snmp.h> header file.])
- fi
-dnl #
-dnl # Now do the same thing, looking for the SNMP library directory
-dnl #
- AC_MSG_CHECKING([for snmp_build_var_op in -lsnmp])
-
-dnl #
-dnl # First, see if we can build it WITHOUT using any special includes
-dnl #
- old_LIBS="$LIBS"
- LIBS="$old_LIBS -lsnmp"
- AC_TRY_LINK([extern char snmp_build_var_op();],
- [ snmp_build_var_op()],
- SNMP_LIBS="-lsnmp",
- SNMP_LIBS=)
-
- if test "x$SNMP_LIBS" = "x"; then
- for try in /usr/lib /usr/local/lib /usr/local/snmp/lib $with_snmp_lib_dir; do
- LIBS="$old_LIBS -L$try -lsnmp"
- AC_TRY_LINK([extern char snmp_build_var_op();],
- [ snmp_build_var_op()],
- SNMP_LIBS="-L$try -lsnmp",
- SNMP_LIBS=)
- if test "x$SNMP_LIBS" != "x"; then
- break;
- fi
-dnl #
-dnl # That didn't work. Try adding the '-lcrypto' line.
-dnl # Some SNMP libraries are linked against SSL...
-dnl #
- LIBS="$old_LIBS -L$try -lsnmp -lcrypto"
- AC_TRY_LINK([extern char snmp_build_var_op();],
- [ snmp_build_var_op()],
- SNMP_LIBS="-L$try -lsnmp -lcrypto",
- SNMP_LIBS=)
- if test "x$SNMP_LIBS" != "x"; then
- break;
- fi
-dnl #
-dnl # That didn't work. Try adding the '-lkstat' line.
-dnl # Some SNMP libraries are linked against Kernel Statistics,
-dnl # in particular, Solaris 9...
-dnl #
- LIBS="$old_LIBS -L$try -lsnmp -lcrypto -lkstat"
- AC_TRY_LINK([extern char snmp_build_var_op();],
- [ snmp_build_var_op()],
- SNMP_LIBS="-L$try -lsnmp -lcrypto -lkstat",
- SNMP_LIBS=)
- if test "x$SNMP_LIBS" != "x"; then
- break;
- fi
- done
- fi
- LIBS="$old_LIBS"
-
- dnl #
- dnl # If one or the other isn't found, disable them both..
- dnl # If both are found, enable them both.
- dnl #
- CFLAGS="$old_CFLAGS"
- if test "x$SNMP_LIBS" = "x"; then
- AC_MSG_RESULT(no)
- SNMP_INCLUDE=
- else
- AC_MSG_RESULT(yes)
- AC_DEFINE(WITH_SNMP, [], [Include SNMP subagent])
- AC_DEFINE(HAVE_LIBSNMP, [], [Define if you have the snmp library (-lsnmp).])
- fi
-fi
-])
-
-