Blame m4/snmp.m4

Packit e9ba0d
#
Packit e9ba0d
# lldp_CHECK_SNMP
Packit e9ba0d
#
Packit e9ba0d
AC_DEFUN([lldp_CHECK_SNMP], [
Packit e9ba0d
  if test x"$with_snmp" != x"no"; then
Packit e9ba0d
   AC_PATH_TOOL([NETSNMP_CONFIG], [net-snmp-config], [no])
Packit e9ba0d
   if test x"$NETSNMP_CONFIG" = x"no"; then
Packit e9ba0d
      dnl No luck
Packit e9ba0d
      if test x"$with_snmp" = x"yes"; then
Packit e9ba0d
         AC_MSG_FAILURE([*** no NetSNMP support found])
Packit e9ba0d
      fi
Packit e9ba0d
      with_snmp=no
Packit e9ba0d
   else
Packit e9ba0d
      dnl Check it is working as expected
Packit e9ba0d
      NETSNMP_LIBS=`${NETSNMP_CONFIG} --agent-libs`
Packit e9ba0d
      NETSNMP_CFLAGS="`${NETSNMP_CONFIG} --base-cflags` -DNETSNMP_NO_INLINE"
Packit e9ba0d
Packit e9ba0d
      _save_flags="$CFLAGS"
Packit e9ba0d
      _save_libs="$LIBS"
Packit e9ba0d
      CFLAGS="$CFLAGS ${NETSNMP_CFLAGS}"
Packit e9ba0d
      LIBS="$LIBS ${NETSNMP_LIBS}"
Packit e9ba0d
      AC_MSG_CHECKING([whether C compiler supports flag "${NETSNMP_CFLAGS} ${NETSNMP_LIBS}" from Net-SNMP])
Packit e9ba0d
      AC_LINK_IFELSE([AC_LANG_PROGRAM([
Packit e9ba0d
int main(void);
Packit e9ba0d
],
Packit e9ba0d
[
Packit e9ba0d
{
Packit e9ba0d
  return 0;
Packit e9ba0d
}
Packit e9ba0d
])],[
Packit e9ba0d
        AC_MSG_RESULT(yes)
Packit e9ba0d
        dnl Is Net-SNMP usable?
Packit e9ba0d
        AC_CHECK_LIB([netsnmp], [snmp_register_callback], [
Packit e9ba0d
          dnl Do we have subagent support?
Packit e9ba0d
          AC_CHECK_FUNCS([netsnmp_enable_subagent], [
Packit e9ba0d
            dnl Yes, we need to check a few more things
Packit e9ba0d
            AC_SUBST([NETSNMP_LIBS])
Packit e9ba0d
            AC_SUBST([NETSNMP_CFLAGS])
Packit e9ba0d
            AC_DEFINE_UNQUOTED([USE_SNMP], 1, [Define to indicate to enable SNMP support])
Packit e9ba0d
            with_snmp=yes
Packit e9ba0d
Packit e9ba0d
            dnl Should we use f_create_from_tstring_new or f_create_from_tstring?
Packit e9ba0d
            AC_CHECK_MEMBERS([netsnmp_tdomain.f_create_from_tstring_new],,,[
Packit e9ba0d
@%:@include <net-snmp/net-snmp-config.h>
Packit e9ba0d
@%:@include <net-snmp/net-snmp-includes.h>
Packit e9ba0d
@%:@include <net-snmp/library/snmp_transport.h>
Packit e9ba0d
            ])
Packit e9ba0d
            dnl Do we have a usable <net-snmp/agent/util_funcs.h> header?
Packit e9ba0d
            AC_CHECK_HEADERS([net-snmp/agent/util_funcs.h],,,[
Packit e9ba0d
@%:@include <net-snmp/net-snmp-config.h>
Packit e9ba0d
@%:@include <net-snmp/net-snmp-includes.h>
Packit e9ba0d
@%:@include <net-snmp/library/snmp_transport.h>
Packit e9ba0d
@%:@include <net-snmp/agent/net-snmp-agent-includes.h>
Packit e9ba0d
@%:@include <net-snmp/agent/snmp_vars.h>
Packit e9ba0d
            ])
Packit e9ba0d
            dnl Can we use snmp_select_info2?
Packit e9ba0d
            AC_CHECK_FUNCS([snmp_select_info2])
Packit e9ba0d
          ],[
Packit e9ba0d
            if test x"$with_snmp" = x"yes"; then
Packit e9ba0d
              AC_MSG_ERROR([*** no subagent support in net-snmp])
Packit e9ba0d
            fi
Packit e9ba0d
            with_snmp=no
Packit e9ba0d
          ])
Packit e9ba0d
        ],[
Packit e9ba0d
          if test x"$with_snmp" = x"yes"; then
Packit e9ba0d
            AC_MSG_ERROR([*** unable to use net-snmp])
Packit e9ba0d
          fi
Packit e9ba0d
          with_snmp=no
Packit e9ba0d
        ])
Packit e9ba0d
      ],[
Packit e9ba0d
        AC_MSG_RESULT(no)
Packit e9ba0d
        if test x"$with_snmp" = x"yes"; then
Packit e9ba0d
          AC_MSG_ERROR([*** incorrect CFLAGS from net-snmp-config])
Packit e9ba0d
        fi
Packit e9ba0d
        with_snmp=no
Packit e9ba0d
      ])
Packit e9ba0d
Packit e9ba0d
      CFLAGS="$_save_flags"
Packit e9ba0d
      LIBS="$_save_libs"
Packit e9ba0d
   fi
Packit e9ba0d
  fi
Packit e9ba0d
])