summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in4799
1 files changed, 4799 insertions, 0 deletions
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..40aeb79
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,4799 @@
+# Portions of this file are subject to the following copyright. See
+# the Net-SNMP's COPYING file for more details and other copyrights
+# that may apply:
+#
+# Portions Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms specified in the COPYING file
+# distributed with the Net-SNMP package.
+#
+
+#
+# Process this file with autoconf to produce a configure script.
+#
+AC_INIT([Net-SNMP], [5.4.3], [net-snmp-coders@lists.sourceforge.net])
+AC_PREREQ([2.59])
+AC_CONFIG_SRCDIR([agent/mibgroup/ucd-snmp/extensible.c])
+AC_REVISION([$Revision: 18816 $])
+
+AC_CONFIG_HEADER(include/net-snmp/net-snmp-config.h)
+
+AC_MSG_CACHE_INIT()
+
+#
+# save the configure arguments
+#
+AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"$ac_configure_args")
+CONFIGURE_OPTIONS="\"$ac_configure_args"\"
+AC_SUBST(CONFIGURE_OPTIONS)
+
+#
+# Compilation setup
+#
+AC_ARG_WITH(cc, [
+Compiler Options:
+ --with-cc=CC use CC to compile (default=gcc).],
+ [CC=$with_cc;export CC])
+
+AC_ARG_WITH(linkcc, [
+ --with-linkcc=CC use CC to link (default=gcc).],
+ [LINKCC=$with_linkcc;export LINKCC])
+
+AC_ARG_WITH(ar,
+[ --with-ar=AR use AR as the archiver.],
+ [AR=$with_ar; export AR])
+
+AC_ARG_WITH(endianness,
+[ --with-endianness=big|little define endianness of target platform when
+ cross-compiling.],
+ [if test $with_endianness != "big" -a $with_endianness != "little" ; then
+ AC_MSG_ERROR([Endianness must be big or little, not "$with_endianness".]);
+ fi
+])
+
+AC_ARG_WITH(cflags,
+[ --with-cflags=CFLAGS use CFLAGS as compile time arguments.],
+ [CFLAGS=$with_cflags; export CFLAGS])
+
+AC_ARG_WITH(ldflags,
+[ --with-ldflags=LDFLAGS use LDFLAGS as link time arguments to ld.],
+ [LDFLAGS=$with_ldflags; export LDFLAGS])
+
+AC_ARG_ENABLE(as-needed,
+[ --enable-as-needed Link libperl against Net-SNMP libraries
+ rather than applications. We recommend to
+ use this option if it works.])
+
+AC_ARG_WITH(libs,
+[ --with-libs=LIBS use LIBS as link time arguments to ld.],
+ [LIBS=$with_libs; export LIBS])
+
+AC_ARG_ENABLE(silent-libtool,
+[ --enable-silent-libtool Pass --silent to libtool.],
+ LIBTOOLFLAGS=--silent)
+AC_SUBST(LIBTOOLFLAGS)
+
+AC_ARG_WITH(install-prefix,
+[ --with-install-prefix=PATH Just for installing, prefix all
+ directories with PATH. This is known not
+ to work on some systems with shared
+ libraries (eg, HPUX)],
+ INSTALL_PREFIX="$withval")
+
+if test "x$INSTALL_PREFIX" = "xyes" ; then
+ AC_MSG_ERROR([--with-install-prefix requires an argument])
+fi
+if test "x$INSTALL_PREFIX" = "xno" ; then
+ INSTALL_PREFIX=""
+fi
+AC_SUBST(INSTALL_PREFIX)
+
+# check for errors in args that run after module processing here, so
+# they fail before module processing...
+AC_ARG_ENABLE(libwrap,,
+ AC_MSG_ERROR([ Invalid option. Use --with-libwrap/--without-libwrap instead ]) )
+ AC_ARG_ENABLE(zlib,,
+ AC_MSG_ERROR([ Invalid option. Use --with-zlib/--without-zlib instead ]) )
+
+AC_ARG_ENABLE(mini_agent,
+[ --enable-mini-agent Build a minimal agent.])
+if test "x$enable_mini_agent" = "xyes"; then
+ mini_agent="yes"
+else
+ mini_agent="no"
+fi
+AC_ARG_WITH(mini_agent,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+AC_ARG_WITH(miniagent,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+AC_ARG_ENABLE(miniagent,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+
+AC_ARG_ENABLE(agent,
+[ --disable-agent Do not build the agent (snmpd).])
+if test "x$enable_agent" != "xno"; then
+ SNMPD='snmpd$(EXEEXT)'
+ MAINSUBS="$MAINSUBS agent"
+ TRAPLIBS='$(TRAPDWITHAGENT)'
+ USETRAPLIBS='$(USEAGENTLIBS)'
+else
+ SNMPD=""
+ # we still need/want the agentlibs (for subagents, e.g. snmptrapd)
+ MAINSUBS="$MAINSUBS agent"
+ # building snmptrapd w/o agentlibs doesn't work atm
+ #TRAPLIBS='$(TRAPDWITHOUTAGENT)'
+ #USETRAPLIBS='$(USELIBS)'
+ TRAPLIBS='$(TRAPDWITHAGENT)'
+ USETRAPLIBS='$(USEAGENTLIBS)'
+fi
+AC_SUBST(SNMPD)
+AC_SUBST(TRAPLIBS)
+AC_SUBST(USETRAPLIBS)
+AC_ARG_WITH(agent,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-agent/--disable-agent instead ]) )
+
+AC_ARG_ENABLE(applications,
+[ --disable-applications Do not build the apps (snmpget, ...).])
+if test "x$enable_applications" != "xno"; then
+ MAINSUBS="$MAINSUBS apps"
+fi
+# Common mistakes
+AC_ARG_WITH(applications,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-applications/--disable-applications instead ]) )
+
+AC_ARG_ENABLE(manuals,
+[ --disable-manuals Do not install the manuals.])
+if test "x$enable_manuals" != "xno"; then
+ MAINSUBS="$MAINSUBS man"
+fi
+AC_ARG_WITH(manuals,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-manuals/--disable-manuals instead ]) )
+
+AC_ARG_ENABLE(scripts,
+[ --disable-scripts Do not install the scripts (mib2c, ...).])
+if test "x$enable_scripts" != "xno"; then
+ MAINSUBS="$MAINSUBS local"
+fi
+AC_ARG_WITH(scripts,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-scripts/--disable-scripts instead ]) )
+
+AC_ARG_ENABLE(mibs,
+[ --disable-mibs Do not install the mib files.])
+if test "x$enable_mibs" != "xno"; then
+ MAINSUBS="$MAINSUBS mibs"
+fi
+# with-mibs is valid too, but means something else
+
+AC_SUBST(MAINSUBS)
+AC_MSG_CHECKING([what to build and install])
+AC_MSG_RESULT([$MAINSUBS])
+
+AC_ARG_ENABLE(mib-loading,
+[ --disable-mib-loading Do not include code that parses and
+ manipulates the mib files.])
+if test "x$enable_mib_loading" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_MIB_LOADING], 1,
+ [Define if mib loading and parsing code should not be included])
+fi
+AC_ARG_WITH(mib-loading,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mib-loading/--disable-mib-loading instead ]) )
+
+#
+SNMP_VERSIONS=""
+AC_ARG_ENABLE(snmpv1,
+[ --disable-snmpv1 Do not include code that implements SNMPv1.])
+if test "x$enable_snmpv1" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_SNMPV1], 1,
+ [Define if SNMPv1 code should not be included])
+else
+ SNMP_VERSIONS="$SNMP_VERSIONS 1"
+fi
+AC_ARG_WITH(snmpv1,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-snmpv1/--disable-snmpv1 instead ]) )
+
+AC_ARG_ENABLE(snmpv2c,
+[ --disable-snmpv2c Do not include code that implements SNMPv2c.])
+if test "x$enable_snmpv2c" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_SNMPV2C], 1,
+ [Define if SNMPv2c code should not be included])
+else
+ SNMP_VERSIONS="$SNMP_VERSIONS 2c"
+fi
+AC_ARG_WITH(snmpv2c,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-snmpv2c/--disable-snmpv2c instead ]) )
+
+SNMP_VERSIONS="$SNMP_VERSIONS 3"
+AC_MSG_CACHE_ADD(SNMP Versions Supported: $SNMP_VERSIONS)
+
+AC_ARG_ENABLE(set-support,
+[ --disable-set-support Do not allow SNMP set requests.])
+if test "x$enable_set_support" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_SET_SUPPORT], 1,
+ [Define if SNMP SET support should be disabled])
+fi
+AC_ARG_WITH(set-support,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-set-support/--disable-set-support instead ]) )
+
+AC_ARG_ENABLE(des,
+[ --disable-des Do not support DES encryption.])
+if test "x$enable_des" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_DES], 1,
+ [Define if DES encryption should not be supported])
+fi
+AC_ARG_WITH(des,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-des/--disable-des instead ]) )
+
+AC_ARG_ENABLE(privacy,
+[ --disable-privacy Don't compile in support for privacy (encryption).])
+if test "x$enable_privacy" != "xno"; then
+ AC_DEFINE(NETSNMP_ENABLE_SCAPI_AUTHPRIV)
+fi
+AC_ARG_WITH(privacy,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-privacy/--disable-privacy instead ]) )
+
+AC_ARG_ENABLE(md5,
+[ --disable-md5 Do not support MD5 authentication.])
+if test "x$enable_md5" = "xno"; then
+ AC_DEFINE([NETSNMP_DISABLE_MD5], 1,
+ [Define if MD5 authentication should not be supported])
+fi
+AC_ARG_WITH(md5,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-md5/--disable-md5 instead ]) )
+
+AC_ARG_ENABLE(internal-md5,
+[ --enable-internal-md5 Use the internal MD5 support.])
+if test "x$enable_internal_md5" = "xyes"; then
+ if test "x$enable_md5" = "xno"; then
+ AC_MSG_ERROR(You can not specify both --enable-internal-md5 and --disable-md5)
+ else
+ AC_DEFINE(NETSNMP_USE_INTERNAL_MD5)
+ fi
+fi
+AC_ARG_WITH(internal-md5,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-internal-md5/--disable-internal-md5 instead ]) )
+
+AC_ARG_ENABLE(ipv6,
+[ --enable-ipv6 Generate IPv6 ready version.],
+ [if test "x$enable_ipv6" = "xyes"; then
+ AC_DEFINE(NETSNMP_ENABLE_IPV6)
+ fi])
+AC_ARG_WITH(ipv6,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-ipv6/--disable-ipv6 instead ]) )
+
+AC_ARG_ENABLE(local-smux,
+[ --enable-local-smux Restrict SMUX connections to localhost (by default).],
+ [if test "x$enable_local_smux" = "xyes"; then
+ AC_DEFINE(NETSNMP_ENABLE_LOCAL_SMUX)
+ fi])
+AC_ARG_WITH(local-smux,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-local-smux/--disable-local-smux instead ]) )
+
+AC_ARG_ENABLE(debugging,
+[ --enable-debugging Outputs extra debugging information at all
+ times. Normally, you should not enable this,
+ but instead use the -D flag of the commands,
+ which toggles debuging output at runtime.
+ --disable-debugging Disallows debugging code to be built in.
+ This might provide some speed benefits.],
+ AC_DEFINE(NETSNMP_ALWAYS_DEBUG))
+AC_ARG_WITH(debugging,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-debugging/--disable-debugging instead ]) )
+
+AC_ARG_ENABLE(developer,
+[ --enable-developer Turns on super-duper-extra-compile-warnings
+ when using gcc.],
+ developer=yes)
+AC_ARG_WITH(developer,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-developer/--disable-developer instead ]) )
+
+if test "x$enable_debugging" = "xno"; then
+ AC_DEFINE(NETSNMP_NO_DEBUGGING)
+fi
+
+AC_ARG_WITH(dmalloc,
+[ --with-dmalloc=PATH Use dmalloc library (www.dmalloc.com)],
+ if test "x$withval" = "xyes"; then
+ LIBS="$LIBS -ldmalloc"
+ AC_DEFINE(HAVE_DMALLOC_H)
+ elif test -d "$withval"; then
+ AC_ADD_SEARCH_PATH($withval)
+ LIBS="$LIBS -ldmalloc"
+ AC_DEFINE(HAVE_DMALLOC_H)
+ fi
+)
+AC_SUBST(HAVE_DMALLOC_H)
+AC_ARG_ENABLE(dmalloc,,
+ AC_MSG_ERROR([ Invalid option. Use --with-dmalloc/--without-dmalloc instead ]) )
+
+AC_ARG_WITH(efence,
+[ --with-efence Look for and use libefence (malloc).],
+ use_efence="$withval")
+AC_ARG_ENABLE(efence,,
+ AC_MSG_ERROR([ Invalid option. Use --with-efence/--without-efence instead ]) )
+
+tryrsaref=no
+AC_ARG_WITH(rsaref,
+[ --with-rsaref=PATH Look for librsaref in PATH/lib.],
+ if test "x$withval" = "xyes"; then
+ tryrsaref=yes
+ elif test "x$withval" = "xno"; then
+ tryrsaref=no
+ elif test -d "$withval"; then
+ AC_ADD_SEARCH_PATH($withval)
+ tryrsaref=yes
+ fi,
+)
+AC_ARG_ENABLE(rsaref,,
+ AC_MSG_ERROR([ Invalid option. Use --with-rsaref/--without-rsaref instead ]) )
+
+tryopenssl=defaultyes
+askedopenssl=no
+AC_ARG_WITH(openssl,
+[ --with-openssl=PATH Look for openssl in PATH/lib.],
+ if test "x$withval" = "xyes"; then
+ tryopenssl=yes
+ askedopenssl=yes
+ elif test "x$withval" = "xno"; then
+ tryopenssl=no
+ elif test -d "$withval"; then
+ AC_ADD_SEARCH_PATH($withval)
+ tryopenssl=yes
+ askedopenssl=yes
+ fi,
+)
+if test "x$tryopenssl" = "xdefaultyes"; then
+ AC_ADD_SEARCH_PATH(/usr/local/ssl)
+ tryopenssl=yes
+fi
+AC_ARG_ENABLE(openssl,,
+ AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+AC_ARG_WITH(ssl,,
+ AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+AC_ARG_ENABLE(ssl,,
+ AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+
+trykrb5=defaultyes
+askedkrb5=no
+AC_ARG_WITH(krb5,
+[ --with-krb5=PATH Look for krb5 in PATH/lib.],
+ if test "x$withval" = "xyes"; then
+ trykrb5=yes
+ askedkrb5=yes
+ krb5path=undef
+ elif test "x$withval" = "xno"; then
+ trykrb5=no
+ krb5path=undef
+ elif test -d "$withval"; then
+ trykrb5=yes
+ askedkrb5=yes
+ krb5path=$withval
+ fi,
+)
+if test "x$trykrb5" = "xdefaultyes"; then
+ trykrb5=yes
+ krb5path=/usr/kerberos
+fi
+AC_ARG_ENABLE(krb5,,
+ AC_MSG_ERROR([ Invalid option. Use --with-krb5/--without-krb5 instead ]) )
+
+AC_ARG_WITH(rpm,
+[ --without-rpm Don't include support for the RPM package
+ management system when building the host MIB
+ module.])
+AC_ARG_ENABLE(rpm,,
+ AC_MSG_ERROR([ Invalid option. Use --with-rpm/--without-rpm instead ]) )
+
+AC_ARG_ENABLE(agentx-dom-sock-only,
+[ --enable-agentx-dom-sock-only Disable UDP/TCP transports for agentx.],
+AC_DEFINE(NETSNMP_AGENTX_DOM_SOCK_ONLY))
+AC_ARG_WITH(agentx-dom-sock-only,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-agentx-dom-sock-only/--disable-agentx-dom-sock-only instead ]) )
+
+AC_ARG_ENABLE(snmptrapd-subagent,
+[ --disable-snmptrapd-subagent Disable agentx subagent code in snmptrapd.])
+if test "x$enable_snmptrapd_subagent" = "xno"; then
+ AC_DEFINE(NETSNMP_SNMPTRAPD_DISABLE_AGENTX)
+fi
+AC_ARG_WITH(snmptrapd-subagent,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-snmptrapd-subagent/--disable-snmptrapd-subagent instead ]) )
+
+AC_ARG_WITH(opaque-special-types,
+[ --without-opaque-special-types Don't use special opaque encodings.
+ SNMP normally cannot handle
+ floating numbers, nor large 64 bit
+ integers well. By default, the
+ net-snmp package compiles in
+ support for these extra datatypes
+ (in a legal way)])
+AC_ARG_ENABLE(opaque-special-types,,
+ AC_MSG_ERROR([ Invalid option. Use --with-opaque-special-types/--without-opaque-special-types instead ]) )
+
+AC_ARG_WITH(mibdirs,
+[ --with-mibdirs="dir1:dir2:" Default directories to look for mibs.
+ (Default: \$HOME/.snmp/mibs:DATADIR/snmp/mibs)],
+ [NETSNMP_DEFAULT_MIBDIRS="$with_mibdirs"
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$with_mibdirs")])
+AC_ARG_ENABLE(mibdirs,,
+ AC_MSG_ERROR([ Invalid option. Use --with-mibdirs/--without-mibdirs instead ]) )
+
+AC_ARG_WITH(mibs,
+[ --with-mibs="item1:item2:" Default mib IDs to read.
+ (The default list is "IP-MIB:IF-MIB:
+ TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB"
+ with the addition of any mibs used
+ by the mib modules the agent is
+ configured with)],
+ NETSNMP_DEFAULT_MIBS="$with_mibs")
+# enable-mibs is valid too, but means something else
+
+AC_ARG_WITH(mibfiles,
+[ --with-mibfiles="file1:file2" Default mib files to load.
+ (Default: none. uses IDs above instead.)],
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBFILES,"$with_mibfiles"))
+AC_ARG_ENABLE(mibfiles,,
+ AC_MSG_ERROR([ Invalid option. Use --with-mibfiles/--without-mibfiles instead ]) )
+
+AC_ARG_ENABLE(mib-config-checking,
+[ --enable-mib-config-checking Turns on extra checks during configuration
+ of mib modules. Any conflicts will cause
+ configure to abort (default is to issue a
+ warning and continue.)],
+ with_mib_cfg_checks="yes",with_mib_cfg_checks="no")
+AC_ARG_WITH(mib-config-checking,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead ]) )
+
+AC_ARG_ENABLE(mib-config-debug,
+[ --enable-mib-config-debug Turns on verbose output during mib module
+ configure processing.)],
+ with_mib_cfg_debug="yes",with_mib_cfg_debug="no")
+AC_ARG_WITH(mib-config-checking,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead ]) )
+
+AC_ARG_ENABLE(mfd-rewrites,
+[ --enable-mfd-rewrites Use new MFD rewrites of mib modules,
+ where available. (default is to use
+ original mib module code).])
+if test "x$enable_mfd_rewrites" = "xyes"; then
+ AC_DEFINE(NETSNMP_ENABLE_MFD_REWRITES)
+fi
+AC_ARG_WITH(mfd-rewrites,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-mfd-rewrites/--disable-mfd-rewrites instead ]) )
+
+askedpkcs=no
+AC_ARG_WITH(pkcs,
+[ --with-pkcs=PATH Look for pkcs11 in PATH/lib.],
+ if test "x$withval" = "xyes"; then
+ askedpkcs=yes
+ elif test "x$withval" = "xno"; then
+ askedpkcs=no
+ elif test -d "$withval"; then
+ AC_ADD_SEARCH_PATH($withval)
+ askedpkcs=yes
+ fi,
+)
+AC_ARG_ENABLE(pkcs,,
+ AC_MSG_ERROR([ Invalid option. Use --with-pkcs/--without-pkcs instead ]) )
+
+AC_ARG_ENABLE(testing-code,
+[ --enable-testing-code Enables some code sections that should
+ only be used for testing of certain
+ SNMP functionalities. This should *not*
+ be turned on for production use. Ever.],
+ AC_DEFINE(NETSNMP_ENABLE_TESTING_CODE))
+AC_ARG_WITH(testing-code,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-testing-code/--disable-testing-code instead ]) )
+
+AC_ARG_ENABLE(reentrant,
+[ --enable-reentrant Enables locking functions that protect
+ library resources in some multi-threading
+ environments. This does not guarantee
+ thread-safe operation.
+ Currently an experimental setting.],
+ with_res_locks="yes",with_res_locks="no")
+AC_ARG_WITH(reentrant,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-reentrant/--disable-reentrant instead ]) )
+
+AC_ARG_WITH(root-access,
+[
+Configuring the agent:
+ --without-root-access The snmpd agent won't require root access to
+ run it. The information it returns in the
+ mib-II tree may not be correct, however.])
+AC_ARG_ENABLE(root-access,,
+ AC_MSG_ERROR([ Invalid option. Use --with-root-access/--without-root-access instead ]) )
+
+AC_ARG_WITH(kmem-usage,
+[ --without-kmem-usage Do not include any code related to the use
+ of kmem.])
+AC_ARG_ENABLE(kmem-usage,,
+ AC_MSG_ERROR([ Invalid option. Use --with-kmem-usage/--without-kmem-usage instead ]) )
+
+AC_ARG_WITH(dummy-values,
+[ --with-dummy-values Provide 'placeholder' dummy values where
+ the necessary information is not available.
+ This is technically not compliant with the
+ SNMP specifications, but was how the agent
+ operated for versions < 4.0.])
+AC_ARG_ENABLE(dummy-values,,
+ AC_MSG_ERROR([ Invalid option. Use --with-dummy-values/--without-dummy-values instead ]) )
+
+AC_ARG_WITH(persistent-directory,
+[ --with-persistent-directory="directory"
+ Default directory for persistent data storage.],ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY="$with_persistent_directory")
+AC_ARG_ENABLE(persistent-directory,,
+ AC_MSG_ERROR([ Invalid option. Use --with-persistent-directory/--without-persistent-directory instead ]) )
+
+default_persistent_mask=077
+AC_ARG_WITH(persistent-mask,
+[ --with-persistent-mask="mask" Default mask for persistent data storage.
+ (Default: 077)],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a mask value ]);
+ fi
+ AC_MSG_RESULT(using default persistent mask $withval)
+ AC_DEFINE_UNQUOTED(NETSNMP_PERSISTENT_MASK,$withval)
+],[
+ AC_MSG_RESULT(using default persistent mask $default_persistent_mask)
+ AC_DEFINE_UNQUOTED(NETSNMP_PERSISTENT_MASK,$default_persistent_mask)
+])
+AC_ARG_ENABLE(persistent-mask,,
+ AC_MSG_ERROR([ Invalid option. Use --with-persistent-mask instead ]) )
+
+AC_ARG_WITH(copy_persistent_files,
+[ --with-copy-persistent-files="no" Don't copy persistent files
+ (or use "yes" to copy them).
+ (Default: yes)],
+ ac_cv_user_prompt_COPY_PERSISTENT_FILES="$with_copy_persistent_files")
+AC_ARG_ENABLE(copy_persistent_files,,
+ AC_MSG_ERROR([ Invalid option. Use --with-copy_persistent_files/--without-copy_persistent_files instead ]) )
+
+default_temp_file_pattern="/tmp/snmpdXXXXXX"
+AC_ARG_WITH(temp-file-pattern,
+[ --with-temp-file-pattern=PATTERN Pattern of temporary files (Default: /tmp/snmpdXXXXXX)],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a pattern ]);
+ fi
+ AC_MSG_RESULT(using temporary file pattern $withval)
+ AC_DEFINE_UNQUOTED(NETSNMP_TEMP_FILE_PATTERN,"$withval",[Pattern of temporary files])
+],[
+ AC_MSG_RESULT(using default temporary file pattern $default_temp_file_pattern)
+ AC_DEFINE_UNQUOTED(NETSNMP_TEMP_FILE_PATTERN,"$default_temp_file_pattern",[Pattern of temporary files])
+])
+AC_ARG_ENABLE(temp-file-pattern,,
+ AC_MSG_ERROR([ Invalid option. Use --with-temp-file-pattern instead ]) )
+
+default_agentx_socket="/var/agentx/master"
+AC_ARG_WITH(agentx-socket,
+[ --with-agentx-socket=FILE AgentX socket (Default: /var/agentx/master as specified in RFC2741)],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a full path ]);
+ fi
+ AC_MSG_RESULT(using AgentX socket $withval)
+ AC_DEFINE_UNQUOTED(NETSNMP_AGENTX_SOCKET,"$withval",[Unix domain socket for AgentX master-subagent communication])
+],[
+ AC_MSG_RESULT(using default AgentX socket $default_agentx_socket)
+ AC_DEFINE_UNQUOTED(NETSNMP_AGENTX_SOCKET,"$default_agentx_socket",[Unix domain socket for AgentX master-subagent communication])
+])
+AC_ARG_ENABLE(agentx-socket,,
+ AC_MSG_ERROR([ Invalid option. Use --with-agentx-socket instead ]) )
+
+AC_ARG_WITH(default-snmp-version,
+[ --with-default-snmp-version="3" Default version of SNMP to use.
+ (Default: 3)
+ Legal values: 1, 2 (for SNMPv2c) or 3.],
+ ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="$with_default_snmp_version")
+AC_ARG_ENABLE(default-snmp-version,,
+ AC_MSG_ERROR([ Invalid option. Use --with-default-snmp-version/--without-default-snmp-version instead ]) )
+
+# we test this now and later as well. we test it now so configure can die
+# early on with an error rather than waiting till the end of the script.
+if test "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "x"; then
+ if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+ ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
+ fi
+ if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+ AC_MSG_ERROR(Illegal version number passed to --with-default-snmp-version)
+ fi
+fi
+
+AC_ARG_WITH(sys_contact,
+[ --with-sys-contact="who@where" Default system contact.
+ (Default: LOGIN@DOMAINNAME)],
+ ac_cv_user_prompt_NETSNMP_SYS_CONTACT="$with_sys_contact")
+AC_ARG_ENABLE(sys_contact,,
+ AC_MSG_ERROR([ Invalid option. Use --with-sys-contact/--without-sys-contact instead ]) )
+
+AC_ARG_WITH(sys_location,
+[ --with-sys-location="location" Default system location.
+ (Default: Unknown)],
+ ac_cv_user_prompt_NETSNMP_SYS_LOC="$with_sys_location")
+AC_ARG_ENABLE(sys_location,,
+ AC_MSG_ERROR([ Invalid option. Use --with-sys-location/--without-sys-location instead ]) )
+
+AC_ARG_WITH(logfile,
+[ --with-logfile="location" Default log file location for snmpd.],
+ ac_cv_user_prompt_NETSNMP_LOGFILE="$with_logfile")
+AC_ARG_ENABLE(logfile,,
+ AC_MSG_ERROR([ Invalid option. Use --with-logfile/--without-logfile instead ]) )
+if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" = "no"; then
+ ac_cv_user_prompt_NETSNMP_LOGFILE="none"
+fi
+
+AC_ARG_WITH(transports,
+[ --with-transports="t1 t2 ..." Compile in the given SNMP transport
+ modules (space separated list).])
+AC_ARG_WITH(out_transports,
+[ --with-out-transports="t1 ..." Exclude listed SNMP transports
+ (space separated list).
+
+ Available SNMP transport modules are:
+
+ UDP support for SNMP over UDP/IP.
+ This transport is always compiled in.
+ UDPIPv6 support for SNMP over UDP/IPv6.
+ This transport is available for Linux, Solaris and
+ FreeBSD at least.
+ It is never compiled in by default.
+ TCPIPv6 support for SNMP over UDP/IPv6.
+ This transport is available for Linux, Solaris and
+ FreeBSD at least.
+ It is never compiled in by default.
+ TCP support for SNMP over TCP/IP.
+ This transport is compiled in by default, but may be omitted.
+ Unix support for SNMP over Unix domain protocols.
+ This transport is compiled in by default except on Win32
+ platforms, and may be omitted.
+ Callback support for SNMP over an internal locally connected pair
+ of snmp_sessions.
+ AAL5PVC support for SNMP over AAL5 PVCs.
+ This transport is presently only available for Linux,
+ is never compiled in by default and may be omitted.
+ IPX support for SNMP over IPX per RFC 1420.
+ This transport is presently only available for Linux,
+ is never compiled in by default and may be omitted.
+])
+
+#
+# Catch common mistakes in transport options
+#
+AC_ARG_WITH(transport,, AC_MSG_ERROR([ Invalid option. Use --with-transports/--without-transports instead ]) )
+AC_ARG_WITH(out-transport,,AC_MSG_ERROR([ Invalid option. Use --with-out-transports/--without-out-transports instead ]) )
+
+#
+# security modules
+#
+
+AC_ARG_WITH(security-modules,
+[ --with-security-modules="s1 s2 ..." Compile in the given SNMP security
+ module services (space separated list).
+
+ Available SNMP security services:
+
+ usm support for user based SNMP security
+ (required and always compiled in)
+ ksm support for kerberos based SNMP security
+])
+AC_ARG_ENABLE(security-modules,,
+ AC_MSG_ERROR([ Invalid option. Use --with-security-modules/--without-security-modules instead ]) )
+
+#
+# mib modules
+#
+
+AC_ARG_WITH(mib_modules,
+[ --with-mib-modules="item1 ..." Compile with additional mib modules
+ (Space separated list).])
+AC_ARG_ENABLE(mib_modules,,
+ AC_MSG_ERROR([ Invalid option. Use --with-mib-modules/--without-mib-modules instead ]) )
+
+AC_ARG_WITH(out_mib_modules,
+[ --with-out-mib-modules="list" Compile without these mib modules.
+
+ Default mib modules compiled into the agent (which can be removed):
+
+ mibII support for the mib-II tree.
+ snmpv3mibs support for the snmpv3 mib modules.
+ ucd_snmp UCD-SNMP-MIB specific extensions.
+ agent_mibs NET-SNMP-AGENT-MIB extensions
+ agentx AgentX support (see below)
+ notification mibs supporting specification of trap destinations.
+ target Support for the SNMP WGs TARGET-MIB.
+ utilities general agent configuration utilities.
+ disman/event support for the DISMAN-EVENT-MIB
+ (supports self monitoring and notification
+ delivery when error conditions are found)
+ disman/schedule support for the DISMAN-SCHEDULE-MIB
+ (trigger SET requests at specified times)
+ host host resources mib support.
+ (only on major supported platforms)
+
+ Optional mib modules that can be built into the agent include:
+ smux smux support to allow subagents to attach to snmpd.
+ mibII/mta_sendmail Sendmail statistics monitoring (MTA-MIB)
+ ucd-snmp/diskio Table of io-devices and how much data they have
+ read/written. (only tested on Solaris, Linux)
+ disman/old-event-mib previous implementation of the DISMAN-EVENT-MIB
+
+ Optional modules for specific platforms
+ Linux
+ ucd-snmp/lmSensors hardware monitoring (LM-SENSORS-MIB)
+ ip-mib/ipv4InterfaceTable (experimental)
+ ip-mib/ipv6InterfaceTable (experimental)
+ tunnel Linux TUNNEL-MIB support (ifTable extension)
+ mibII/interfaces (old ifTable implementation)
+ misc/ipfwacc accounting rules IP firewall information
+ ipfwchains/ipfwchains firewall chains under ipfw
+ (See agent/mibgroup/ipfwchains/README)
+ sctp-mib support for the SCTP-MIB
+
+ Solaris
+ ucd-snmp/lmSensors hardware monitoring (LM-SENSORS-MIB)
+ if-mib IF-MIB rewrite (add --enable-mfd-rewrites)
+ tcp-mib TCP-MIB rewrite (tcpConnectionTable and
+ tcpListenerTable; add --enable-mfd-rewrites)
+ udp-mib UDP-MIB rewrite (udpEndpointTable;
+ add --enable-mfd-rewrites)
+
+ FreeBSD/OpenBSD
+ if-mib IF-MIB rewrite (add --enable-mfd-rewrites)
+
+ AgentX support:
+ agentx/subagent allows the agent to run as either a snmp agent
+ or as an agentX sub-agent.
+ agentx/master makes the agent run as an agentX master agent
+ as well as a normal snmp agent.
+ agentx includes both agentx/master and agentx/client.
+
+ Optional modules for C coders to look at and/or include as extension examples:
+
+ examples/ucdDemoPublic SNMPv3 interoperability testing mib.
+ examples/example example C code extension.])
+AC_ARG_ENABLE(out_mib_modules,,
+ AC_MSG_ERROR([ Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead ]) )
+
+
+#
+AC_ARG_WITH(enterprise-oid,
+[Enterprise OIDs: (warning: this should be used with caution.)
+
+ --with-enterprise-oid The enterprise number assigned to the
+ vendor by IANA. See
+ http://www.iana.org/cgi-bin/enterprise.pl
+ to get one, though using the default is
+ probably the right choice is most cases.
+ (default 8072 = "enterprise.net-snmp")],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a value for the enterprise number ]);
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_OID, $withval)
+ ent_oid="1,3,6,1,4,1,$withval"
+ AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_MIB, $ent_oid)
+ ent_dot_oid="1.3.6.1.4.1.$withval"
+ AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_DOT_MIB, $ent_dot_oid)
+ AC_MSG_RESULT(using enterprise number $withval)
+],[
+ AC_MSG_RESULT(using default "enterprise.net-snmp")
+])
+AC_ARG_ENABLE(enterprise-oid,,
+ AC_MSG_ERROR([ Invalid option. Use --with-enterprise-oid/--without-enterprise-oid instead ]) )
+
+AC_ARG_WITH(enterprise-sysoid,
+[
+ --with-enterprise-sysoid The base OID for the sysObjectID
+ of the system group
+ (default .1.3.6.1.4.1.8072.3.2... =
+ "netSnmpAgentOIDs...")],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a base OID value ]);
+ fi
+ sys_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+ AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_MIB, $sys_oid)
+ sys_dot_oid=`echo "$withval" | sed 's/^\.//'`
+ AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB, $sys_dot_oid)
+ sysoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
+ AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB_LENGTH, $sysoid_len)
+ AC_MSG_RESULT(using enterprise sysOID $withval ....)
+],[
+ AC_MSG_RESULT(using default enterprise sysOID "NET-SNMP-MIB::netSnmpAgentOIDs...")
+])
+AC_ARG_ENABLE(enterprise-sysoid,,
+ AC_MSG_ERROR([ Invalid option. Use --with-enterprise-sysoid/--without-enterprise-sysoid instead ]) )
+
+AC_ARG_WITH(enterprise-notification-oid,
+[
+ --with-enterprise-notification-oid The OID used for the root of
+ enterprise specific notifications.
+ (default .1.3.6.1.4.1.8072.4 =
+ "netSnmpNotificationPrefix")],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a base OID value ]);
+ fi
+ notification_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+ AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_MIB, $notification_oid)
+ notification_dot_oid=`echo "$withval" | sed 's/^\.//'`
+ AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB, $notification_dot_oid)
+ notificationoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
+ AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB_LENGTH, $notificationoid_len)
+ AC_MSG_RESULT(using enterprise notifications $withval)
+],[
+ AC_MSG_RESULT(using default notifications "NET-SNMP-MIB::netSnmpNotifications")
+])
+AC_ARG_ENABLE(enterprise-notification-oid,,
+ AC_MSG_ERROR([ Invalid option. Use --with-enterprise-notification-oid/--without-enterprise-notification-oid instead ]) )
+#
+# Catch common mistakes in configure options
+#
+AC_ARG_WITH(mib-module,, AC_MSG_ERROR([ Invalid option1. Use --with-mib-modules instead ]) )
+AC_ARG_WITH(module,,
+ AC_MSG_ERROR([ Invalid option3. Use --with-mib-modules instead ]) )
+AC_ARG_WITH(modules,,
+ AC_MSG_ERROR([ Invalid option4. Use --with-mib-modules instead ]) )
+
+AC_ARG_WITH(out-mib-module,,AC_MSG_ERROR([ Invalid option5. Use --with-out-mib-modules instead ]) )
+AC_ARG_WITH(out-modules,,
+ AC_MSG_ERROR([ Invalid option7. Use --with-out-mib-modules instead ]) )
+AC_ARG_WITH(out-module,,
+ AC_MSG_ERROR([ Invalid option8. Use --with-out-mib-modules instead ]) )
+
+#
+# Perl specific
+#
+AC_ARG_WITH(perl-modules,
+[
+Perl:
+ --with-perl-modules[=ARGS] Install the Perl modules along with the rest
+ of the net-snmp toolkit. If ARGS is
+ specified, they're passed to the
+ Makefile.PL script.],[
+ if test "$withval" = "no"; then
+ install_perl="no"
+ else
+ install_perl="yes"
+ if test "$withval" != "yes"; then
+ PERLARGS="$withval"
+ fi
+ fi
+], install_perl="try")
+
+AC_ARG_ENABLE(embedded-perl,
+[ --disable-embedded-perl Disable embedded Perl in the SNMP agent and
+ snmptrapd. [enabled by default]],
+ embed_perl="$enableval", embed_perl="try")
+
+AC_ARG_ENABLE(perl-cc-checks,
+[ --disable-perl-cc-checks Disable configure checks for whether Perl's
+ C Compiler is compatible with ours when
+ embedded Perl is enabled.])
+
+# Common perl mistakes
+AC_ARG_ENABLE(perl-modules,,
+ AC_MSG_ERROR([ Invalid option. Use --with-perl-modules/--without-perl-modules instead ]) )
+AC_ARG_WITH(embedded-perl,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-embedded-perl/--disable-embedded-perl instead ]) )
+AC_ARG_WITH(perl-cc-checks,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-perl-cc-checks/--disable-perl-cc-checks instead ]) )
+
+
+#
+# Python specific
+#
+AC_ARG_WITH(python-modules,
+[
+Python:
+ --with-python-modules[=ARGS] Install the python bindings along with the
+ rest of the net-snmp toolkit. If ARGS is
+ specified, they're passed to the
+ setup.py script as arguments.],[
+ install_python="yes"
+ if test "$withval" = "yes"; then
+ PYTHONARGS=""
+ elif test "$withval" = "no"; then
+ PYTHONARGS=""
+ install_python="no"
+ else
+ PYTHONARGS="$withval"
+ fi
+], install_python="no")
+
+# other flags
+
+AC_ARG_WITH(server-send-buf,
+[
+Network Buffers:
+ --with-server-send-buf[=ARG] Use ARG for the default UDP/TCP send buffer instead
+ of the OS buffer for server sockets that are
+ created (snmpd, snmptrapd).
+ This default can be overridden in the runtime
+ configuration files.
+ The ARG should be the size in bytes],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a positive number for the server send buffer ])
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_SEND_BUF, $withval)],
+ AC_MSG_RESULT([using OS default send buffer size for server sockets]) )
+AC_ARG_ENABLE(server-send-buf,,
+ AC_MSG_ERROR([ Invalid option. Use --with-server-send-buf/--without-server-send-buf instead ]) )
+
+AC_ARG_WITH(server-recv-buf,
+[ --with-server-recv-buf[=ARG] Similar as previous option, but for receive buffer],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a positive number for the server recv buffer ])
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_RECV_BUF, $withval)],
+ AC_MSG_RESULT([using OS default recv buffer size for server sockets]) )
+AC_ARG_ENABLE(server-recv-buf,,
+ AC_MSG_ERROR([ Invalid option. Use --with-server-recv-buf/--without-server-recv-buf instead ]) )
+
+AC_ARG_WITH(client-send-buf,
+[ --with-client-send-buf[=ARG] Similar as previous options, but for the
+ receive buffer of client sockets],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a positive number for the client send buffer ])
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_SEND_BUF, $withval)],
+ AC_MSG_RESULT([using OS default send buffer size for client sockets]) )
+AC_ARG_ENABLE(client-send-buf,,
+ AC_MSG_ERROR([ Invalid option. Use --with-client-send-buf/--without-client-send-buf instead ]) )
+
+AC_ARG_WITH(client-recv-buf,
+[ --with-client-recv-buf[=ARG] Similar as previous options, but for the send buffer],[
+ if test "$withval" = yes; then
+ AC_MSG_ERROR([ Please provide a positive number for the client recv buffer ])
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_RECV_BUF, $withval)],
+ AC_MSG_RESULT([using OS default recv buffer size for client sockets]) )
+AC_ARG_ENABLE(client-recv-buf,,
+ AC_MSG_ERROR([ Invalid option. Use --with-client-recv-buf/--without-client-recv-buf instead ]) )
+
+#
+# otherwise prompted information
+#
+AC_ARG_WITH(defaults,
+[
+Miscellaneous:
+ --with-defaults Use defaults for prompted values.],
+ defaults="yes",defaults="no")
+AC_ARG_ENABLE(defaults,,
+ AC_MSG_ERROR([ Invalid option. Use --with-defaults/--without-defaults instead ]) )
+
+AC_ARG_ENABLE(ucd-snmp-compatibility,
+[ --enable-ucd-snmp-compatibility Install ucd-snmp look-alike headers and libs.
+])
+AC_ARG_WITH(ucd-snmp-compatibility,,
+ AC_MSG_ERROR([ Invalid option. Use --enable-ucd-snmp-compatibility/--disable-ucd-snmp-compatibility instead ]) )
+
+#
+# setup install targets
+#
+if test "x$enable_ucd_snmp_compatibility" = "xyes" ; then
+ installucdheaders=installucdheaders
+ installucdlibs=installucdlibs
+ AC_MSG_CACHE_ADD(UCD-SNMP compatability: enabled)
+fi
+AC_SUBST(installucdheaders)
+AC_SUBST(installucdlibs)
+
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_root_access" = "xno"; then
+ AC_DEFINE(NETSNMP_NO_ROOT_ACCESS)
+fi
+
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_kmem_usage" = "xno"; then
+ AC_DEFINE(NETSNMP_NO_KMEM_USAGE)
+fi
+
+# Define unless specifically suppressed (i.e., option defaults to false).
+if test "x$with_dummy_values" != "xyes"; then
+ AC_DEFINE(NETSNMP_NO_DUMMY_VALUES)
+fi
+
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_opaque_special_types" != "xno"; then
+ AC_DEFINE(NETSNMP_WITH_OPAQUE_SPECIAL_TYPES)
+fi
+
+
+# overflow problems with hpux's sh
+# taken from Perl's Configure script
+
+AC_MSG_CHECKING([if I need to feed myself to ksh])
+if test -f /hp-ux -a -f /bin/ksh; then
+ if (PATH=.; alias -x) >/dev/null 2>&1; then
+ AC_MSG_RESULT(no)
+ else
+ AC_MSG_RESULT(yes)
+ if test "x$1" = "x"; then
+ exec /bin/ksh $0
+ else
+ exec /bin/ksh $0 "$@"
+ fi
+ fi
+else
+ AC_MSG_RESULT(no)
+fi
+
+if test "x$developer" != "xno" -a -f $srcdir/remove-files; then
+ # turn on the developer flag when taken from a SVN checkout (not a release)
+ developer="yes"
+fi
+
+AC_LANG([C])
+AC_PROG_CC
+AC_PROG_CPP
+LINKCC=${LINKCC-"$CC"}
+AC_SUBST(LINKCC)
+AC_AIX
+
+# system check
+AC_CANONICAL_TARGET
+changequote(, )
+PARTIALTARGETOS=`echo $target_os | sed 's/[-._].*//'`
+changequote([, ])
+
+# platform-specific compiler flags
+if test "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ CFLAGS="$CFLAGS -Dmingw32"
+fi
+
+# platform-specific linker flags
+case $target_os in
+ aix4.2*|aix4.3*|aix5*|aix6*)
+ AC_MSG_CHECKING([what linker flags to add to enable runtime linking on AIX])
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ netsnmp_aix_runtimelinking_flags_ok=yes
+ break
+ fi
+ done
+ if test "X$netsnmp_aix_runtimelinking_flags_ok" != "Xyes"; then
+ if test "x$GCC" = "xyes"; then
+ netsnmp_aix_ldflags="-Wl,-brtl"
+ else
+ netsnmp_aix_ldflags="-brtl"
+ fi
+ LDFLAGS="$netsnmp_aix_ldflags $LDFLAGS"
+ AC_MSG_RESULT($netsnmp_aix_ldflags)
+ else
+ AC_MSG_RESULT([none])
+ fi
+ ;;
+ darwin8*|darwin9*)
+ AC_MSG_CHECKING([whether darwin ld might need -flat_namespace])
+ if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
+ LDFLAGS="-flat_namespace $LDFLAGS"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
+ ;;
+esac
+
+# libtool stuff for shared/static libraries.
+AC_LIBTOOL_DLOPEN
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
+AC_SUBST(LIBTOOL_DEPS)
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_EGREP
+AC_PATH_PROG([PSPROG],ps)
+AC_PATH_PROG([PERLPROG],perl)
+AC_PATH_PROG([PYTHONPROG],python)
+AC_CHECK_PROGS(WHOAMI, whoami logname, whoami)
+AC_CHECK_PROGS(SED,sed gsed)
+AC_CHECK_PROGS(FIND,find)
+AC_PATH_PROG(AUTOCONF, autoconf)
+AC_PATH_PROG(AUTOHEADER, autoheader)
+if test "x$ac_cv_prog_AUTOCONF" = "x"; then
+ AUTOCONF=":"
+ AC_SUBST(AUTOCONF)
+fi
+if test "x$ac_cv_prog_AUTOHEADER" = "x"; then
+ AUTOHEADER=":"
+ AC_SUBST(AUTOHEADER)
+fi
+
+AC_PATH_PROG([UNAMEPROG],uname)
+AC_DEFINE_UNQUOTED(UNAMEPROG,"$UNAMEPROG")
+
+AC_C_CONST
+AC_C_INLINE
+
+
+# get version number.
+AC_MSG_CHECKING([for net-snmp version number])
+VERSION=`grep NetSnmpVersionInfo.*= $srcdir/snmplib/snmp_version.c | sed 's/";.*//;s/.*"//;'`
+
+# create the release version number.... I'm not sure this is used
+# anywhere any longer.
+_release_version=`echo $VERSION | sed 's/";.*//;s/.*"//;s/pre/0./;'`
+changequote(, )
+RELEASEVERSION=`echo $_release_version | sed 's/^\([0-9]\)\.\([0-9]\)/\1:\2:0/'`
+changequote([, ])
+
+AC_SUBST(VERSION)
+AC_SUBST(RELEASEVERSION)
+AC_MSG_RESULT($VERSION)
+AC_MSG_CACHE_ADD(Net-SNMP Version: $VERSION)
+
+# super type checking
+# WWWXXX
+AC_MSG_CHECKING([for developer gcc flags])
+if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
+ DEVFLAGS="-Wall -Winline -Wstrict-prototypes -Wwrite-strings -Wcast-qual -Wno-char-subscripts"
+else
+ DEVFLAGS=""
+fi
+AC_MSG_RESULT($DEVFLAGS)
+AC_SUBST(DEVFLAGS)
+
+#
+# hacks for building outside of the source directory
+#
+# 1) make sure build include paths are before source
+# 2) check for GNU make to use vpath instead of VPATH
+#
+NON_GNU_VPATH="VPATH ="
+GNU_vpath="#vpath"
+#
+# define include paths relative to top_srcdir
+# tweak includes if we're building outside of the source dir
+if test "x$srcdir" = "x."; then
+TOP_INCLUDES=SRC_TOP_INCLUDES
+SNMPLIB_INCLUDES=SRC_SNMPLIB_INCLUDES
+AGENT_INCLUDES=SRC_AGENT_INCLUDES
+HELPER_INCLUDES=SRC_HELPER_INCLUDES
+MIBGROUP_INCLUDES=SRC_MIBGROUP_INCLUDES
+else
+TOP_INCLUDES=BLD_TOP_INCLUDES
+SNMPLIB_INCLUDES=BLD_SNMPLIB_INCLUDES
+AGENT_INCLUDES=BLD_AGENT_INCLUDES
+HELPER_INCLUDES=BLD_HELPER_INCLUDES
+MIBGROUP_INCLUDES=BLD_MIBGROUP_INCLUDES
+make -v -f /dev/null 2>/dev/null | grep GNU >/dev/null
+have_gnu_make=$?
+if test $have_gnu_make -eq 0 ; then
+ NON_GNU_VPATH="#VPATH ="
+ GNU_vpath="vpath"
+fi
+fi
+AC_SUBST(TOP_INCLUDES)
+AC_SUBST(SNMPLIB_INCLUDES)
+AC_SUBST(AGENT_INCLUDES)
+AC_SUBST(HELPER_INCLUDES)
+AC_SUBST(MIBGROUP_INCLUDES)
+AC_SUBST(GNU_vpath)
+AC_SUBST(NON_GNU_VPATH)
+
+
+#
+# Check whether we can use -Ux -Dx=x with the expected behaviour
+#
+AC_MSG_CHECKING([whether to un-define target system token (before redefining)])
+OLD_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+
+AC_EGREP_CPP(yes,[[
+#ifdef $PARTIALTARGETOS
+yes
+#endif
+]],
+[PARTIALTARGETFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ AC_MSG_RESULT([yes])],
+[PARTIALTARGETFLAGS="-D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ AC_MSG_RESULT([no])])
+CFLAGS="$CFLAGS $PARTIALTARGETFLAGS"
+CPPFLAGS="$OLD_CPPFLAGS"
+AC_MSG_CACHE_ADD(Building for: $PARTIALTARGETOS)
+
+
+#
+# check for special includes and pick one
+#
+
+AC_MSG_CHECKING([for system include file])
+changequote(, )
+filebase=$target_os
+# ignore binary format indication
+filebase=`echo $filebase | sed 's/elf//'`
+filebase=`echo $filebase | sed 's/aout//'`
+filebase=`echo $filebase | sed 's/ecoff//'`
+filebase=`echo $filebase | sed 's/coff//'`
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/system/$filebase.h
+do
+ last=$filebase
+ filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+ if test "x$filebase" = "x$last"; then
+ filebase=`echo $filebase | sed 's/[0-9]*$//'`
+ fi
+done
+
+if test "x$filebase" = "x$last"; then
+ filebase="generic"
+fi
+ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/$filebase.h"
+
+changequote([, ])
+AC_MSG_RESULT($ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE)
+AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_INCLUDE_FILE, "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE")
+
+# second part, the CPU type.
+
+AC_MSG_CHECKING([for machine-type include file])
+changequote(, )
+filebase=$target_cpu
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/machine/$filebase.h
+do
+ last=$filebase
+ filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+done
+
+if test "x$filebase" = "x$last"; then
+ filebase="generic"
+fi
+ac_cv_NETSNMP_MACHINE_INCLUDE_FILE="net-snmp/machine/$filebase.h"
+changequote([, ])
+AC_MSG_RESULT([$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE])
+
+AC_DEFINE_UNQUOTED(NETSNMP_MACHINE_INCLUDE_FILE, "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE")
+
+AC_PATH_PROG([CCPATH],$CC)
+# watch out for /usr/ucb/cc on solaris, it doesn't work with this package.
+case $target_os in
+ bsdi*)
+ if test "x$CCPATH" = "x/usr/ucb/cc" -o "x$CCPATH" = "x/usr/bin/cc"; then
+ AC_MSG_ERROR([
+
+*** The BSDI /usr/ucb/cc compiler does not work with this package.
+*** Please run configure with --with-cc=gcc
+])
+ fi
+ ;;
+ solaris*)
+ if test "x$CCPATH" = "x/usr/ucb/cc"; then
+ AC_MSG_ERROR([
+
+*** The solaris /usr/ucb/cc compiler does not work with this package.
+*** Please put a different compiler in your path first or run
+*** configure with --with-cc=XX, where XX is the compiler you want to use.
+])
+ fi
+ ;;
+esac
+
+AC_MSG_CHECKING([for additional cpp flags])
+# gcc extra CPPFLAGS
+if test "x$GCC" = "xyes" -a "x$CPP" = "x$CC -E"; then
+ # extra cpp flags for gnu c compiler to allow .in file extensions.
+ EXTRACPPFLAGS="-x c"
+else
+ EXTRACPPFLAGS=""
+fi
+
+# Solaris extra cpp flags.
+if test "x$GCC" != "xyes"; then
+ case $target_os in
+ solaris*) EXTRACPPFLAGS="$EXTRACPPFLAGS -Xs" ;;
+ esac
+fi
+
+AC_SUBST(EXTRACPPFLAGS)
+AC_MSG_RESULT($EXTRACPPFLAGS)
+
+# Prefixes must begin with "/" or [A-Z] followed by colon.
+
+if test "x$prefix" = "xNONE"; then
+ prefix=/usr/local
+fi
+
+fch=`echo $prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+ sch=`echo $prefix | sed 's/.\(.\).*/\1/'`
+ if test "x$sch" != "x:" ; then
+ prefix=`pwd`/$prefix
+ echo "adjusting prefix to $prefix"
+ fi
+fi
+
+if test "x$exec_prefix" = "xNONE"; then
+ exec_prefix=$prefix
+fi
+
+fch=`echo $exec_prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+ sch=`echo $exec_prefix | sed 's/.\(.\).*/\1/'`
+ if test "x$sch" != "x:" ; then
+ exec_prefix=`pwd`/$exec_prefix
+ echo "adjusting exec_prefix to $exec_prefix"
+ fi
+fi
+
+# Set SNMPLIBPATH & SNMPSHAREPATH
+
+SNMPLIBPATH=""
+tmpset="$libdir/snmp"
+while test "x$tmpset" != "x$SNMPLIBPATH"; do
+ SNMPLIBPATH="$tmpset"
+ eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPLIBPATH,"$SNMPLIBPATH")
+AC_SUBST(SNMPLIBPATH)
+AC_DEFINE_UNQUOTED(SNMPDLMODPATH,"$SNMPLIBPATH/dlmod")
+
+SNMPSHAREPATH=""
+tmpset="$datadir/snmp"
+while test "x$tmpset" != "x$SNMPSHAREPATH"; do
+ SNMPSHAREPATH="$tmpset"
+ eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPSHAREPATH,"$SNMPSHAREPATH")
+AC_SUBST(SNMPSHAREPATH)
+
+if test "x$NETSNMP_DEFAULT_MIBDIRS" = "x"; then
+ NETSNMP_DEFAULT_MIBDIRS="\$HOME/.snmp/mibs:$SNMPSHAREPATH/mibs"
+ if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+ NETSNMP_DEFAULT_MIBDIRS=`echo "$NETSNMP_DEFAULT_MIBDIRS" | $SED 's/:/;/g'`
+ fi
+ AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$NETSNMP_DEFAULT_MIBDIRS")
+fi
+AC_SUBST(NETSNMP_DEFAULT_MIBDIRS)
+
+SNMPCONFPATH=""
+tmpset="$sysconfdir/snmp"
+while test "x$tmpset" != "x$SNMPCONFPATH"; do
+ SNMPCONFPATH="$tmpset"
+ eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPCONFPATH,"$SNMPCONFPATH")
+AC_SUBST(SNMPCONFPATH)
+
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
+AC_CHECK_SIZEOF(intmax_t)
+AC_CHECK_TYPES([int8_t, uint8_t, u_int8_t])
+AC_CHECK_TYPES([int16_t, uint16_t, u_int16_t])
+AC_CHECK_TYPES([int32_t, uint32_t, u_int32_t])
+AC_CHECK_TYPES([int64_t, uint64_t, u_int64_t])
+AC_CHECK_TYPES([intmax_t, uintmax_t])
+AC_CHECK_TYPES([off64_t])
+AC_CHECK_TYPES([uintptr_t, intptr_t])
+
+# solaris specific type
+AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
+
+# guess IPv6 stack type.
+if test "x$enable_ipv6" = "xyes"; then
+ v6type=unknown
+ v6lib=none
+ v6trylibc=no
+
+ AC_MSG_CHECKING([[ipv6 stack type]])
+ for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 generic; do
+ case $i in
+ v6d)
+ AC_EGREP_CPP(yes, [
+#include </usr/local/v6/include/sys/types.h>
+#ifdef __V6D__
+yes
+#endif],
+ [v6type=$i; v6lib=v6;
+ v6libdir=/usr/local/v6/lib;
+ CFLAGS="-I/usr/local/v6/include $CFLAGS"])
+ ;;
+ toshiba)
+ AC_EGREP_CPP(yes, [
+#include <sys/param.h>
+#ifdef _TOSHIBA_INET6
+yes
+#endif],
+ [v6type=$i; v6lib=inet6;
+ v6libdir=/usr/local/v6/lib;
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+ ;;
+ kame)
+ AC_EGREP_CPP(yes, [
+#include <netinet/in.h>
+#ifdef __KAME__
+yes
+#endif],
+ [v6type=$i; v6lib=inet6;
+ v6libdir=/usr/local/v6/lib;
+ v6trylibc=yes;
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+ ;;
+ inria)
+ AC_EGREP_CPP(yes, [
+#include <netinet/in.h>
+#ifdef IPV6_INRIA_VERSION
+yes
+#endif],
+ [v6type=$i;
+ v6lib=dummy;
+ v6libdir=none;
+ v6trylibc=yes;
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+ ;;
+ zeta)
+ AC_EGREP_CPP(yes, [
+#include <sys/param.h>
+#ifdef _ZETA_MINAMI_INET6
+A
+yes
+#endif],
+ [v6type=$i; v6lib=inet6;
+ v6libdir=/usr/local/v6/lib;
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+ ;;
+ linux-glibc)
+ AC_EGREP_CPP(yes, [
+#include <features.h>
+#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
+yes
+#endif],
+ [v6type=$i;
+ v6lib=dummy;
+ v6libdir=none;
+ v6trylibc=yes;
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+ ;;
+ linux-inet6)
+ if test -d /usr/inet6; then
+ v6type=$i
+ v6lib=inet6
+ v6libdir=/usr/inet6/lib
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+ fi
+ ;;
+ generic)
+ AC_MSG_RESULT([[postponed]])
+ AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+], sockaddr_in6, sin6_addr, no)
+ AC_MSG_CHECKING([[ipv6 stack type]])
+ if test "x$ac_cv_struct_sockaddr_in6_has_sin6_addr" = "xyes"; then
+ v6type=$i
+ v6lib=dummy
+ v6libdir=none
+ v6trylibc=yes
+ CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+ fi
+ ;;
+ esac
+ if test "$v6type" != "unknown"; then
+ break
+ fi
+ done
+
+ if test "$v6lib" != "none"; then
+ if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
+ LIBS="-L$v6libdir -l$v6lib $LIBS"
+ enable_ipv6="yes"
+ AC_MSG_RESULT(["$v6type, $enable_ipv6, using lib$v6lib"])
+ elif test "$v6trylibc" = "yes"; then
+ enable_ipv6="yes"
+ AC_MSG_RESULT(["$v6type, $enable_ipv6, using libc"])
+ else
+ AC_MSG_ERROR(no IPv6 library lib$v6lib.a found.)
+ exit 1
+ fi
+ else
+ enable_ipv6="no"
+ AC_MSG_RESULT(["$v6type, $enable_ipv6"])
+ fi
+fi
+
+#
+# Maybe add library extensions for thread mutex locking.
+#
+
+if test "x$with_res_locks" = "xyes"; then
+ AC_DEFINE(NETSNMP_REENTRANT)
+
+ case $target_os in
+
+ aix*)
+ CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads"
+ ;;
+
+ *)
+ ;;
+
+ esac
+fi
+
+#
+# Add platform-specific source files.
+#
+AC_MSG_CHECKING([for platform-specific source])
+other_src_list=""
+other_objs_list=""
+other_lobjs_list=""
+other_agentobjs=""
+other_lagentobjs=""
+other_trapd_objects=""
+
+# Win32 service code
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ other_src_list="$other_src_list winservice.c winservicerc.rc"
+ other_objs_list="$other_objs_list winservice.o winservicerc.o"
+ other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo"
+ other_agentobjs="../snmplib/winservicerc.o"
+ other_lagentobjs="../snmplib/winservicerc.lo"
+ other_trapd_objects="../snmplib/winservicerc.o"
+fi
+
+# Win32 pipes
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+ other_src_list="$other_src_list winpipe.c"
+ other_objs_list="$other_objs_list winpipe.o"
+ other_lobjs_list="$other_lobjs_list winpipe.lo"
+fi
+
+AC_SUBST(other_src_list)
+AC_SUBST(other_objs_list)
+AC_SUBST(other_lobjs_list)
+AC_SUBST(other_agentobjs)
+AC_SUBST(other_lagentobjs)
+AC_SUBST(other_trapd_objects)
+
+AC_MSG_RESULT([$other_src_list $other_objs_list $other_lobjs_list])
+AC_MSG_RESULT([$other_agentobjs $other_lagentobjs $other_trapd_objects])
+
+#
+# Do transport module processing.
+#
+AC_MSG_CHECKING([for and configuring transport modules to use])
+transport_src_list=""
+transport_hdr_list=""
+transport_def_list=""
+transport_result_list=""
+transport_add_list=""
+transport_callback_disabled=""
+new_with_transport_list=`echo $with_transports | sed 's/,/ /g;'`
+new_with_out_transport_list=`echo $with_out_transports | sed 's/,/ /g;'`
+
+#
+# Add the default transports to the list
+#
+if test "x$PARTIALTARGETOS" = "xcygwin"; then
+ transport_default_list="UDP TCP Callback"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ transport_default_list="UDP TCP Callback"
+else
+ transport_default_list="UDP TCP Unix Callback"
+fi
+if test "x$enable_ipv6" = "xyes"; then
+ transport_default_list="UDPIPv6 TCPIPv6 $transport_default_list"
+fi
+for i in $transport_default_list; do
+ if echo " $new_with_transport_list " | grep " $i " >/dev/null; then
+ :
+ else
+ transport_add_list="$i $transport_add_list"
+ fi
+done
+new_transport_list="$transport_add_list $new_with_transport_list"
+
+for i in $new_transport_list; do
+ if echo " $new_with_out_transport_list " | grep " $i " >/dev/null; then
+ if test "x$i" = "xUDP"; then
+ echo
+ AC_MSG_ERROR(It is not possible to compile without UDP/IP support.)
+ elif test "x$i" = "xCallback"; then
+ echo
+ transport_callback_disabled="yes"
+ fi
+ else
+ if test "x$i" = "xAAL5PVC"; then
+ if test "x$PARTIALTARGETOS" != "xlinux"; then
+ echo
+ AC_MSG_ERROR(AAL5 PVC support unavailable for this platform (Linux only))
+ fi
+ fi
+ if test "x$i" = "xIPX"; then
+ if test "x$PARTIALTARGETOS" != "xlinux"; then
+ echo
+ AC_MSG_ERROR(IPX support unavailable for this platform (Linux only))
+ fi
+ fi
+ if test "x$i" = "xUnix"; then
+ if test "x$PARTIALTARGETOS" = "xcygwin"; then
+ echo
+ AC_MSG_ERROR(Unix domain protocol support unavailable for this platform)
+ elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ echo
+ AC_MSG_ERROR(Unix domain protocol support unavailable for this platform)
+ fi
+ fi
+ if test ! "x$enable_ipv6" = "xyes"; then
+ if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
+ echo
+ AC_MSG_ERROR(IPv6 transports not available if IPv6 support is not enabled)
+ fi
+ fi
+ transport_src="snmp"$i"Domain.c"
+ transport_hdr="snmp"$i"Domain.h"
+ rel_transport_src="snmplib/"$transport_src
+ rel_transport_hdr="include/net-snmp/library/"$transport_hdr
+ if test -f "$srcdir/$rel_transport_src"; then
+ transport_result_list="$transport_result_list $i"
+ transport_src_list="$transport_src $transport_src_list"
+ if test -f "$srcdir/$rel_transport_hdr"; then
+ transport_hdr_list="$transport_hdr $transport_hdr_list"
+ fi
+ transport_def=`echo $i | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ transport_def_list="NETSNMP_TRANSPORT_"$transport_def"_DOMAIN $transport_def_list"
+ else
+ echo
+ AC_MSG_ERROR(Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i.)
+ fi
+ fi
+done
+transport_obj_list=`echo " $transport_src_list " | sed 's/\.c/\.o/g'`
+transport_lobj_list=`echo " $transport_src_list " | sed 's/\.c/\.lo/g'`
+
+## win32 platforms require inet_ntop etc.
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ if echo "$transport_def_list" | grep "IPV6" >/dev/null; then
+ transport_obj_list="$transport_obj_list inet_ntop.o inet_pton.o"
+ transport_lobj_list="$transport_lobj_list inet_ntop.lo inet_pton.lo"
+ fi
+fi
+
+AC_SUBST(transport_hdr_list)
+AC_SUBST(transport_src_list)
+AC_SUBST(transport_obj_list)
+AC_SUBST(transport_lobj_list)
+for i in $transport_def_list; do
+ AC_DEFINE_UNQUOTED($i)
+done
+AC_MSG_RESULT($transport_result_list.)
+AC_MSG_CACHE_ADD(Network transport support: $transport_result_list)
+
+#
+# Security modules to use
+#
+
+AC_MSG_CHECKING([for security modules to use])
+security_def_list="usm"
+security_src_list=""
+security_obj_list=""
+security_lobj_list=""
+security_init_file="snmplib/snmpsm_init.h"
+security_incl_file="include/net-snmp/library/snmpv3-security-includes.h"
+new_with_security=`echo $with_security_modules | sed 's/,/ /g;'`
+new_with_out_security=`echo $with_out_security_modules | sed 's/,/ /g;'`
+
+if test ! -d include; then
+ mkdir include
+fi
+if test ! -d include/net-snmp; then
+ mkdir include/net-snmp
+fi
+if test ! -d include/net-snmp/agent; then
+ mkdir include/net-snmp/agent
+fi
+if test ! -d include/net-snmp/library; then
+ mkdir include/net-snmp/library
+fi
+if test ! -d include/ucd-snmp; then
+ mkdir include/ucd-snmp
+fi
+
+if test ! -d snmplib; then
+ mkdir snmplib
+fi
+echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $security_init_file
+echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $security_incl_file
+
+for i in $security_def_list; do
+ if echo " $new_with_out_security " | grep " $i " > /dev/null; then
+ if test "x$i" = "xusm"; then
+ echo
+ AC_MSG_ERROR(The USM security module is mandatory)
+ fi
+ else
+ new_with_security="$new_with_security $i"
+ fi
+done
+
+for i in $new_with_security; do
+ cfile="snmp"$i".c"
+ hfile="snmp"$i".h"
+
+ # make sure support exists for it
+ if test -f $srcdir"/snmplib/"$cfile -a -f $srcdir"/include/net-snmp/library/"$hfile; then
+ :
+ else
+ echo
+ AC_MSG_ERROR(No such security module: $i / $cfile / $hfile)
+ fi
+
+ # define a bunch of stuff to enable it
+ security_src_list="$security_src_list $cfile"
+ security_hdr_list="$security_hdr_list $hfile"
+ security_obj_list="$security_obj_list snmp"$i".o"
+ security_lobj_list="$security_lobj_list snmp"$i".lo"
+ def_name="NETSNMP_SECMOD_"`echo $i | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ echo "init_"$i"();" >> $security_init_file
+ echo "#include <net-snmp/library/$hfile>" >> $security_incl_file
+ AC_DEFINE_UNQUOTED($def_name)
+done
+
+AC_SUBST(security_src_list)
+AC_SUBST(security_hdr_list)
+AC_SUBST(security_obj_list)
+AC_SUBST(security_lobj_list)
+AC_MSG_RESULT($new_with_security)
+AC_MSG_CACHE_ADD(SNMPv3 Security Modules: $new_with_security)
+
+#
+# Handle the special case of KSM to see which crypto API we support
+#
+
+ac_cv_NETSNMP_USE_KERBEROS_MIT=no
+rebuilt_new_with_security=
+already_checked_krb5=no
+
+for sec in $new_with_security
+do
+ if test "x$sec" = "xksm" -a "xyes" = "x$already_checked_krb5"; then
+ continue
+ fi
+ already_checked_krb5=yes
+
+ if test x$sec != xksm; then
+ rebuilt_new_with_security="$rebuilt_new_with_security $sec"
+ else
+ if test no = $trykrb5; then
+ AC_MSG_NOTICE([configured not to use krb5. disabling ksm])
+ continue
+ fi
+
+ AC_PATH_PROG([krb5_config],krb5-config,[no],$krb5path/bin:$PATH)
+
+ if test no != $krb5_config; then
+ CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`"
+ LIBS="$LIBS `$krb5_config --libs`"
+ elif test $krb5path != no; then
+ AC_ADD_SEARCH_PATH($krb5path)
+ else
+ AC_ADD_SEARCH_PATH(/usr/kerberos)
+ fi
+
+ AC_MSG_CHECKING([for krb5])
+ AC_CACHE_VAL(ac_cv_have_krb5,
+ AC_CHECK_LIB(krb5, krb5_init_context,
+ ac_cv_have_krb5=yes, ac_cv_have_krb5=no
+ )
+ )
+
+ if test $ac_cv_have_krb5 = no; then
+ if test "x$askedkrb5" = "xyes"; then
+ AC_MSG_ERROR(Asked to use krb5 but I couldn't find it.)
+ fi
+ AC_MSG_RESULT(no. disabling ksm)
+ continue
+ fi
+
+ AC_MSG_RESULT(yes)
+ rebuilt_new_with_security="$rebuilt_new_with_security ksm"
+
+ AC_MSG_CHECKING([[for heimdal]])
+ AC_CACHE_VAL(ac_cv_heimdal,
+ [AC_TRY_COMPILE(
+ [#include <krb5.h>],
+ [const char *v = heimdal_version;],
+ ac_cv_heimdal=yes,
+ ac_cv_heimdal=no
+ )])
+ AC_MSG_RESULT($ac_cv_heimdal)
+ if test $ac_cv_heimdal = yes; then
+ AC_DEFINE(NETSNMP_USE_KERBEROS_HEIMDAL)
+ if test no = $krb5_config; then
+ LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken"
+ fi
+ elif test no = $krb5_config; then
+ LIBS="$LIBS -lkrb5 -lcom_err"
+ fi
+
+ AC_MSG_CHECKING([to see which crypto API we need to use])
+ AC_CHECK_FUNC(krb5_c_encrypt,[
+ AC_CACHE_VAL(ac_cv_NETSNMP_USE_KERBEROS_MIT,
+ AC_CHECK_LIB(k5crypto, krb5_init_context,
+ ac_cv_NETSNMP_USE_KERBEROS_MIT=yes, ac_cv_MIT_NEW_CRYPTo=no
+ )
+ )
+
+ if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then
+ AC_MSG_RESULT(new MIT crypto API)
+ AC_DEFINE(NETSNMP_USE_KERBEROS_MIT)
+ if test no = $krb5_config; then
+ LIBS="$LIBS -lk5crypto"
+ fi
+ else
+ AC_MSG_RESULT(old MIT crypto API)])
+ fi
+ fi
+done
+
+new_with_security=$rebuilt_new_with_security
+
+#
+# generate empty files
+#
+# Create include file list for snmp_vars.h to use.
+mibdir="agent/mibgroup"
+if test ! -d agent; then
+ mkdir agent
+fi
+if test ! -d agent/mibgroup; then
+ mkdir agent/mibgroup
+fi
+j="$mibdir/mib_module_includes.h $mibdir/agent_module_includes.h \
+ $mibdir/mib_module_inits.h $mibdir/agent_module_inits.h \
+ $mibdir/mib_module_shutdown.h $mibdir/agent_module_shutdown.h \
+ include/net-snmp/agent/mib_module_config.h \
+ include/net-snmp/agent/agent_module_config.h \
+ $mibdir/mib_module_dot_conf.h $mibdir/agent_module_dot_conf.h"
+
+for i in $j; do
+ rm -f $i
+ echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $i
+done
+
+#
+# Do hairy agent module processing.
+#
+AC_MSG_CHECKING([for and configuring mib modules to use])
+
+# set up the CPP command
+MODULECPP="$CPP $PARTIALTARGETFLAGS -I${srcdir}/include -I${srcdir}/agent/mibgroup"
+if test "x$enable_mfd_rewrites" = "xyes"; then
+ MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES"
+fi
+
+module_list=""
+mib_module_list=""
+agent_module_list=""
+new_with_mib_modules=`echo $with_mib_modules | sed 's/,/ /g;'`
+new_with_out_mib_modules=`echo $with_out_mib_modules | sed 's/,/ /g;'`
+
+# set up initial module list
+new_module_list="$new_with_mib_modules default_modules"
+
+# minor modifications
+if test "x$enable_agent" = "xno"; then
+ # minimum mib module list for snmptrapd
+ new_module_list="mibII/vacm_vars mibII/vacm_conf utilities/execute $new_with_mib_modules"
+ default_mibs=SNMPv2-MIB:RFC1213-MIB
+ default_mibs_install=" "
+elif test "x$mini_agent" = "xyes"; then
+ # define the mini agent flag to reduce our load list from default_mibs.h
+ MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT"
+fi
+
+test_modules="$new_module_list"
+new_module_list=""
+
+# remove modules that were explicitly excluded
+for i in $test_modules
+ do
+ if echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+ mib_cfg_msg="mib module '$i' is both included and excluded."
+ AC_MSG_WARN([mib module conflict])
+ if test "x$with_mib_cfg_checks" = "xyes"; then
+ AC_MSG_WARN([user with : $with_mib_modules])
+ AC_MSG_WARN([final with : $new_module_list])
+ AC_MSG_WARN([user without : $with_out_mib_modules])
+ AC_MSG_WARN([final without: $new_with_out_mib_modules])
+ AC_MSG_ERROR([$mib_cfg_msg])
+ else
+ AC_MSG_WARN([$mib_cfg_msg It will be excluded])
+ AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg It has been excluded.])
+ fi
+ else
+ new_module_list="$new_module_list $i"
+ fi
+done
+
+AC_MSG_RESULT([$new_module_list.])
+
+#---------------------
+# loop over module list
+#
+all_warnings=""
+if test "x$with_mib_cfg_debug" = "xyes"; then
+ module_debug=1
+else
+ module_debug=0
+fi
+first_pass=1
+output_to=normal
+
+if test ! -d mk ; then
+ mkdir mk
+fi
+
+
+module_rules=mk/module_rules.mk
+echo "# contents below built automatically by configure; do not edit by hand" > $module_rules
+
+#
+# make file sub-pieces
+#
+for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do
+ eval "$i=mk/${i}.mk"
+ echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+done
+
+#
+# variable settings sub-pieces
+#
+for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do
+ eval "$i=mk/${i}.mk"
+ echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+ echo "$i= \\" >> mk/${i}.mk
+done
+
+echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk
+MODULE_LIST=mk/MODULE_LIST.mk
+
+
+#---------------------
+# until we have an empty module list...
+# (modules may add new modules, and until all dependencies are done...)
+#
+while test "x$new_module_list" != "x"; do
+ AC_MSG_MODULE_DBG(-e,"\n****************************************************************")
+ AC_MSG_MODULE_DBG("nml: $new_module_list")
+
+ #---------------------
+ # loop over all the modules in the current list
+ #
+ for j in $new_module_list
+ do
+
+ #---------------------
+ # figure out which sub-blocks to build in parts
+ if echo "$j" | grep "=" ; then
+ # build a shared object file
+ # format: sofilename=module1:module2
+ # XXX: currently doesn't do this
+ dl_name=`echo $j | sed 's/=.*//'`
+ dl_names="$dl_names $dl_name"
+ dl_objects=`echo $j | sed 's/.*=//'`
+ module_sublist=`echo $dl_objects | sed 's/:/ /g'`
+ saved_sublist=""
+ saved_sublist_code=""
+ output_to=separate
+
+ # create output files
+ # these actually get nuked later
+ output_inits="agent/mibgroup/${dl_name}-dll.c"
+ output_hdrs="agent/mibgroup/${dl_name}-hdrs.h"
+ else
+ # not a special token invocation
+ module_sublist=$j
+ output_to=normal
+ output_t=
+ fi
+
+ while test "x$module_sublist" != "x" ; do
+
+ #---------------------
+ # loop over all the modules in the sub list
+ for i in $module_sublist
+ do
+
+ AC_MSG_MODULE_DBG(-e "\n================================================================")
+ AC_MSG_MODULE_DBG("testing $i")
+ need_header=0
+
+ #---------------------
+ # build a pseudo include header that includes current config and
+ # system symbols:
+ AC_LANG_CONFTEST(AC_LANG_SOURCE([[
+#include NETSNMP_SYSTEM_INCLUDE_FILE
+#include "$srcdir/$mibdir/$i.h"]]))
+ mv conftest.$ac_ext module_tmp_header.h
+
+ #---------------------
+ # macro: config_belongs_in(ARG)
+ # ARG: either
+ # - mib_module => libnetsnmpmibs (default)
+ # - agent_module => libnetsnmpagent
+ #
+ module_type=mib_module
+ if test -f $srcdir/$mibdir/$i.h; then
+ changequote(, )
+ module_type=`$MODULECPP module_tmp_header.h | grep config_belongs_in | sed 's@.*config_belongs_in(\([^)]*\)).*@\1@'`
+ changequote([, ])
+ fi
+ if test "x$module_type" = "x" ; then
+ module_type=mib_module
+ fi
+ if test "x$output_to" = "xnormal" ; then
+ output_inits="$mibdir/${module_type}_inits.h"
+ output_hdrs="$mibdir/${module_type}_includes.h"
+ fi
+
+ #--------------------
+ # check for duplicates within the dll system.
+ # - if found in a dll, then remove from the dll and add to main
+ dblfix=""
+ for dltest in $dl_names ; do
+ eval mod_files="\"\$dl_${dltest}_files\""
+ if echo " $mod_files " | grep " $i " > /dev/null; then
+ # some dll module has already seen this, unload it from that list
+ # and include it in the core (again)
+ AC_MSG_MODULE_DBG("removing $i from $dltest")
+ mod_files=`echo " $mod_files " | sed "s@ $i @@"`
+ dblfix="__XXX__"
+ eval "dl_${dltest}_files=\"$mod_files\""
+
+ module_list="$module_list $i"
+ echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+ if test $module_type = "agent_module" ; then
+ echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+ else
+ echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+ fi
+ eval ${module_type}_list="\"\$${module_type}_list $i\""
+ echo " $i \\" >> $module_list_code
+ echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+ eval tmpfilevar=\$`echo ${module_type}_list_code`
+ echo " $i \\" >> $tmpfilevar
+
+ # XXX: add this to the main init list; this is possible not
+ # quite in the right spot any longer but we're stuck with it.
+ # Adding it back to the original ordered spot would be a
+ # nightmare. Ok, we're already in nightmare code so that
+ # wolud have to be a night-terror.
+ mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
+ output_inits_tmp="$mibdir/${module_type}_inits.h"
+ echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp
+ # XXX: even worse, we loose whether the header is needed or not.
+ output_hdrs_tmp="$mibdir/${module_type}_includes.h"
+ echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp
+ fi
+ done
+
+ #---------------------
+ # make sure module wasn't explicitly excluded, or already added
+ #
+ if test "x$dblfix" != "x" ; then
+ AC_MSG_MODULE_DBG("$i was duplicated -- putting into main")
+ elif echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+ AC_MSG_MODULE_DBG("$i was excluded")
+ elif echo " $module_list " | grep " $i " > /dev/null; then
+ AC_MSG_MODULE_DBG("$i already tested")
+ else
+
+ #---------------------
+ # process modules header, checking for config_ pseudo-macros
+ #
+
+ #---------------------
+ # does the header file for the module exist?
+ # macros are only processed if it does
+ if test -f $srcdir/$mibdir/$i.h; then
+ new_list=""
+
+ #---------------------
+ # macro: config_exclude(modules)
+ # - lists conflicts with other modules
+ # - EG: new MIB implementations exclude old and vice-versa
+ #
+ # check if $i has any conflicts
+ #
+ new_list_excl=`$MODULECPP module_tmp_header.h | grep config_exclude | sed 's/.*config_exclude(\(.*\)).*/\1/'`
+ if test "x$new_list_excl" != "x"; then
+ AC_MSG_MODULE_DBG("$i excludes $new_list_excl")
+ for j in $new_list_excl
+ do
+ if echo " $module_list $new_mib_module_list $new_list_two " | grep " $j " > /dev/null; then
+ mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it"
+ AC_MSG_WARN([mib module error])
+ if test "x$with_mib_cfg_checks" = "xyes"; then
+ AC_MSG_ERROR([$mib_cfg_msg])
+ else
+ AC_MSG_WARN([$mib_cfg_msg])
+ AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
+ fi
+ else
+ new_with_out_mib_modules="$j $new_with_out_mib_modules"
+ AC_MSG_MODULE_DBG("$j added to excluded list")
+ fi
+ done
+ fi
+
+ #---------------------
+ # macro: config_arch_require(ARCH,modules)
+ # - lists modules required for a given ARCH
+ #
+ # check if $i has any architecture specific requirements
+ #
+ changequote(, )
+ new_list_arch=`$MODULECPP module_tmp_header.h | grep config_arch_require | sed 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/'`
+ changequote([, ])
+ if test "x$new_list_arch" != "x"; then
+ for j in $new_list_arch
+ do
+ archtest=`echo $j | sed 's/-xarchx-.*//'`
+ # target_os may have been changed to a #define of 1...
+ if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then
+ new_list="$new_list `echo $j | sed 's/.*-xarchx-//'`"
+ AC_MSG_MODULE_DBG(" $i required adding arch files: `echo $j | sed 's/.*-xarchx-//'`")
+ fi
+ done
+ fi
+ AC_MSG_MODULE_DBG(" $i required arch files: $new_list")
+
+ #---------------------
+ # macro: config_require(modules)
+ # - lists modules required for this module
+ #
+ # check if $i has any other required modules
+ #
+ new_list="$new_list `$MODULECPP module_tmp_header.h | grep config_require | sed 's/.*config_require(\(.*\)).*/\1/'`"
+ AC_MSG_MODULE_DBG(" $i will test: $new_list")
+ if test "x$new_list" != "x"; then
+ for j in $new_list
+ do
+ AC_MSG_MODULE_DBG(-n " $i wants to add $j: ")
+ if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then
+ AC_MSG_WARN([mib module error])
+ AC_MSG_ERROR([mib module "$i" requires module "$j" but $j.h or $j.c could not be found in $srcdir/$mibdir])
+ elif echo " $new_with_out_mib_modules " | grep " $j " > /dev/null; then
+ if test "x$i" != "xdefault_modules" ; then
+ mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it"
+ AC_MSG_WARN([mib module error])
+ if test "x$with_mib_cfg_checks" = "xyes"; then
+ AC_MSG_ERROR([$mib_cfg_msg])
+ else
+ AC_MSG_WARN([$mib_cfg_msg])
+ AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
+ fi
+# elif echo " $module_list $new_list_two $new_module_list " | grep " $j " > /dev/null; then
+# AC_MSG_MODULE_DBG(" $j included previously")
+ fi
+ else
+ new_list_two="$new_list_two $j"
+ AC_MSG_MODULE_DBG(" $j included")
+ fi
+ done
+ fi
+
+ #---------------------
+ # macro: config_add_mib(SOME-MIB)
+ # - lists MIBs to be added to the default to-load list.
+ #
+ # check if $i has any mibs to add
+ #
+ new_mibs=`$MODULECPP module_tmp_header.h | grep config_add_mib | sed 's/.*config_add_mib(\(.*\)).*/\1/'`
+ if test "x$new_mibs" != "x"; then
+ for j in $new_mibs
+ do
+ if test "x`echo :$default_mibs: | grep :$j:`" = "x"; then
+ default_mibs="$default_mibs:$j"
+ fi
+ if test -f $srcdir/mibs/$j.txt; then
+ if echo $default_mibs_install | grep " $j " > /dev/null; then
+ :
+ else
+ default_mibs_install="$default_mibs_install $j.txt"
+ fi
+ fi
+ done
+ fi # new mibs
+
+ #-------------------
+ # add the current module to the list of stuff to compile, etc.
+ #
+ # add $i to module list
+ #
+ AC_MSG_MODULE_DBG(" $i added (based on $i.h)")
+ module_list="$module_list $i"
+ eval ${module_type}_list="\"\$${module_type}_list $i\""
+
+ echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+ if test $module_type = "agent_module" ; then
+ echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+ else
+ echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+ fi
+
+ #-------------------
+ # check for unsupported config_load_mib
+ #
+ if $MODULECPP module_tmp_header.h | grep config_load_mib > /dev/null 2>&1; then
+ AC_MSG_WARN([mib module error])
+ AC_MSG_WARN([mib module "$i" uses the "config_load_mib" directive, which is no longer supported. It probably won't work.])
+ fi # grep config_load_mib
+
+ #-------------------
+ # check for config_parse_dot_conf
+ # (generally not used any longer; old auto-load a .conf token)
+ #
+ changequote(, )
+ $MODULECPP module_tmp_header.h | grep config_parse_dot_conf | sed 's@.*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@' >> $mibdir/mib_module_dot_conf.h
+ changequote([, ])
+
+ #---------------------
+ # macro: config_error(error text)
+ # - used to signal a configuration error from a module
+ #
+ # check if $i has any errors, or warnings
+ #
+ error=`$MODULECPP module_tmp_header.h | grep config_error | sed 's/.*config_error(\(.*\)).*/\1/'`
+ if test "x$error" != "x"; then
+ echo
+ echo
+ AC_MSG_ERROR([$i: *** $error ***])
+ fi
+
+ #---------------------
+ # macro: config_warning(warning text)
+ # - used to signal a configuration "warning" to be printed to the user
+ #
+ warning=`$MODULECPP module_tmp_header.h | grep config_warning | sed 's/.*config_warning(\(.*\)).*/\1/'`
+ if test "x$warning" != "x"; then
+ all_warnings="$all_warnings $warning
+"
+ fi
+
+ #---------------------
+ # Check for a .c file if the .h didn't exist
+ #
+ elif test -f $srcdir/$mibdir/$i.c; then
+ if echo " $module_list $new_list_two $new_module_list " | grep " $i " > /dev/null; then
+ AC_MSG_MODULE_DBG(" $i already included")
+ else
+ AC_MSG_MODULE_DBG(" $i added (based on $i.c)")
+ module_list="$module_list $i"
+ mib_module_list="$mib_module_list $i"
+ fi
+
+ #---------------------
+ # No .h or .c = error! (typo?)
+ #
+ else # no $i.h or $i.c
+ AC_MSG_WARN([mib module error])
+ AC_MSG_ERROR([module files $i.h or $i.c could not be found in $srcdir/$mibdir])
+ fi # no $i.h
+
+ #-------------------
+ # check for init/shutdown routines too
+ #
+ has_c_code=no
+ if test -f $srcdir/$mibdir/$i.c; then
+ if test "x$output_to" = "xnormal" ; then
+ echo " $i \\" >> $module_list_code
+ echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+ eval tmpfilevar=\$`echo ${module_type}_list_code`
+ echo " $i \\" >> $tmpfilevar
+ else
+ eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\""
+ saved_sublist_code="$saved_sublist_code $i"
+ fi
+ mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
+ AC_MSG_MODULE_DBG(-e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown")
+ if test "x$mnm" != "x`basename $i`"; then
+ AC_MSG_WARN([mib module error])
+ AC_MSG_ERROR([conflicting names: $mnm != `basename $i`])
+ fi
+ temp_init=`grep init_$mnm $srcdir/$mibdir/$i.c | grep -v _init_$mnm`
+ if test "x$temp_init" != "x"; then
+ AC_MSG_MODULE_DBG(-e "adding init_$mnm() to list")
+ need_header=1
+ echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+ fi
+ grep shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null
+ if test $? -eq 0 ; then
+ if test $module_debug -eq 1; then
+ echo -e "\nadding shutdown_$mnm() to list"
+ fi
+ need_header=1
+ echo " if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h
+ fi
+ fi # test -f $srcdir/$mibdir/$i.c
+
+ #-------------------
+ # if there is a shutdown/init list,
+ #
+ if test $need_header -eq 1 ; then
+ echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs
+ else
+ echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs
+ fi
+
+ #-------------------
+ # check for output directory (for building outside of source tree
+ #
+ changequote(, )
+ if test "x`echo $i | sed 's/\///g;'`" != "x$i"; then
+ mnd=`echo $i | sed 's/\/[^/]*$//;'`
+ if test ! -d ./$mibdir/$mnd; then
+ module_directories="$module_directories ./$mibdir/$mnd"
+ fi
+ fi # module directory test
+ changequote([, ])
+
+ #-------------------
+ # define USING_*_MODULE
+ #
+ changequote(, )
+ sym="`echo ${i} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
+ changequote([, ])
+ echo "/* Define if compiling with the ${i} module files. */" >> include/net-snmp/agent/${module_type}_config.h
+ echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h
+ echo " " >> include/net-snmp/agent/${module_type}_config.h
+
+ #-------------------
+ echo $ECHO_N " $i$ECHO_C"
+ fi #
+ done # for i in $module_sublist
+
+ if test "$output_to" = "separate" ; then
+ if test "x$new_list_two" = "x" ; then
+ # no new sub-modules to add to the current target
+ output_to="normal"
+
+ dllcleans="$saved_sublist_o $dllcleans"
+ output_inits=""
+ module_sublist=""
+ else
+ # a module had sub-modules required; keep goin'
+ saved_sublist="$saved_sublist $module_sublist"
+ module_sublist="$new_list_two"
+ new_list_two=""
+ fi
+ else
+ module_sublist=""
+ fi
+
+ done # while module_sublist
+ done # for j in $new_module_list
+
+ # remember the top level modules for later reporting
+ if test $first_pass = 1 ; then
+ # remember this list for later reporting
+ top_level_modules="$new_module_list => $new_list_two"
+ first_pass=0
+ fi
+ #-------------------
+ # if $i added new modules vis config_*,
+ # check those modules for requirements too
+ #
+ # transfer the new module to check list to the normal variable
+ #
+ if test "x$new_list_two" ; then
+ output_to=normal
+ fi
+ new_module_list="$new_list_two"
+ new_list_two=""
+done # while test "x$new_module_list" != "x"; do
+echo ""
+
+#--------------------
+# construct the dll code files and make rules. This can't be done
+# until now because dulpicate use of a module means it gets removed
+# from the dll and put into the main agent.
+#
+for i in $dl_names ; do
+ eval mod_files="\"\$dl_${i}_files\""
+ echo "components in the $i dll: $mod_files"
+
+ output_inits="agent/mibgroup/${i}-dll.c"
+ output_hdrs="agent/mibgroup/${i}-hdrs.h"
+
+ AC_MSG_MODULE_DBG("creating dll file: $output_inits")
+ for ofile in $output_inits $output_hdrs ; do
+ if test -f $ofile ; then
+ if grep "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then
+ :
+ else
+ AC_MSG_ERROR([$ofile already existed ; can't build dll object $i])
+ fi
+ fi
+ cat > $ofile << EOFIF
+/* xDo not edit; this file created automatically by configure */
+EOFIF
+ done
+
+ cat >> $output_inits << EOFOC
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "${i}-hdrs.h"
+void
+init_$i(void) {
+EOFOC
+
+ # create the .so rule
+ saved_sublist_o=`echo "$mod_files " | sed 's/^ *//g;s/ */.o /g;'`
+
+ # create the rules for each object
+ for j in $mod_files ; do
+ cat >> $module_rules << EOFR
+$j.o: $j.c
+ \$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
+
+EOFR
+ mnm=`echo $j | sed 's/.*\///;s/\.c$//;'`
+ echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+ done
+
+ # create the rule for the .so and wrapper code
+ cat >> $module_rules << EOFM
+${i}-dll.o: ${i}-dll.c
+ \$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
+
+${i}.so: $saved_sublist_o ${i}-dll.o
+ \$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o
+
+EOFM
+ cat >> $output_inits << EOFOCFIN
+}
+EOFOCFIN
+
+done
+
+# cleanup
+rm -f module_tmp_header.h
+
+#-------------------
+# build module lists for Makefiles
+#
+changequote(, )
+
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+ eval "$i=mk/${i}.mk"
+done
+
+sed 's/^module_list_code/module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $module_list_code > $module_list_o
+sed 's/^module_list_code/module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $module_list_code > $module_list_c
+sed 's/^module_list_code/module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $module_list_code > $module_list_lo
+
+sed 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $mib_module_list_code > $mib_module_list_o
+sed 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $mib_module_list_code > $mib_module_list_c
+sed 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $mib_module_list_code > $mib_module_list_lo
+
+sed 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ ]*\)\.o@mibgroup/\1.o@g' < $mib_module_list_o > $mibgroup_list_o
+sed 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ ]*\)\.lo@mibgroup/\1.lo@g' < $mib_module_list_lo > $mibgroup_list_lo
+
+sed 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $agent_module_list_code > $agent_module_list_o
+sed 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $agent_module_list_code > $agent_module_list_c
+sed 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $agent_module_list_code > $agent_module_list_lo
+
+sed 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ ]*\)\.o@mibgroup/\1.o@g' < $agent_module_list_o > $agentgroup_list_o
+sed 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ ]*\)\.lo@mibgroup/\1.lo@g' < $agent_module_list_lo > $agentgroup_list_lo
+
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+ # hpux make (at least) doesn't like a trailing \ on the last
+ # line even when the next line contains nothing but
+ # whitespace.
+ lasttoken=`tail -1 mk/$i.mk | awk '{print $1}'`
+ sed "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp
+ mv mk/$i.mk.tmp mk/$i.mk
+
+ # add a closing comment
+ echo "" >> mk/$i.mk
+ echo "# end configure generated code" >> mk/$i.mk
+done
+
+changequote([, ])
+
+if test $module_debug -eq 1; then
+ echo -e "\nFinal module list: $module_list_code"
+ exit
+fi
+if test "x$with_mib_cfg_checks" = "xyes"; then
+ AC_MSG_CACHE_ADD([Agent Module list: $module_list_code])
+fi
+AC_SUBST_FILE(MODULE_LIST)
+AC_SUBST_FILE(module_list_c)
+AC_SUBST_FILE(module_list_o)
+AC_SUBST_FILE(module_list_lo)
+AC_SUBST_FILE(mib_module_list_c)
+AC_SUBST_FILE(mib_module_list_o)
+AC_SUBST_FILE(mib_module_list_lo)
+AC_SUBST_FILE(agent_module_list_c)
+AC_SUBST_FILE(agent_module_list_o)
+AC_SUBST_FILE(agent_module_list_lo)
+AC_SUBST_FILE(mibgroup_list_o)
+AC_SUBST_FILE(mibgroup_list_lo)
+AC_SUBST_FILE(agentgroup_list_o)
+AC_SUBST_FILE(agentgroup_list_lo)
+AC_SUBST_FILE(agent_module_list)
+
+#AC_SUBST_FILE(mib_module_list)
+#AC_SUBST(module_list)
+AC_SUBST(default_mibs_install)
+AC_SUBST(dllcleans)
+AC_SUBST_FILE(module_rules)
+AC_SUBST_FILE(module_list_deps)
+AC_SUBST_FILE(mib_module_list_deps)
+AC_SUBST_FILE(agent_module_list_deps)
+
+AC_MSG_RESULT(.)
+
+if test $module_debug -eq 1; then
+AC_MSG_CACHE_ADD(Agent MIB code: $module_list)
+fi
+AC_MSG_CACHE_ADD(Agent MIB code: $top_level_modules)
+
+# end hairy agent module processing
+
+AC_MSG_CHECKING([if directories need to be created])
+for i in $module_directories; do
+ $srcdir/mkinstalldirs $i
+done
+AC_MSG_RESULT(.)
+
+#-------------------
+# Define default mibs
+#
+AC_MSG_CHECKING([default mib files to read])
+if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then
+ NETSNMP_DEFAULT_MIBS="$default_mibs"
+fi
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+ # mingw32 and cygwin use ';' as the environment variable separator char
+ ENV_SEPARATOR=";"
+ NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | sed 's/:/;/g'`
+ default_mibs=`echo "$default_mibs" | sed 's/:/;/g'`
+else
+ ENV_SEPARATOR=":"
+fi
+AC_SUBST(ENV_SEPARATOR)
+AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBS,"$NETSNMP_DEFAULT_MIBS")
+AC_SUBST(NETSNMP_DEFAULT_MIBS)
+AC_MSG_RESULT($NETSNMP_DEFAULT_MIBS)
+
+AC_MSG_CHECKING([whether we have to build PIC code])
+echo " $module_list " | grep " ucd-snmp/dlmod " >/dev/null
+if test $? -eq 0 ; then
+ LIB_CFLAGS="$LIB_CFLAGS $SHLIB_CFLAGS"
+ AC_MSG_RESULT(yes)
+else
+ DLLIBS=""
+ AC_MSG_RESULT(no)
+fi
+
+#
+# Check for kernel location
+#
+
+AC_CACHE_CHECK(for location of system kernel,ac_cv_KERNEL_LOC,
+[ac_cv_KERNEL_LOC="unknown"
+# First determine if test expects a -f or a -c (character device (SYSV))
+
+if test -c /dev/null; then
+ CFLAG="-c"
+elif test -f /dev/null; then
+ CFLAG="-f"
+else
+ # fall back
+ CFLAG="-f"
+fi
+for i in /vmunix /hp-ux /stand/vmunix /dev/ksyms /kernel/unix /kernel/genunix /netbsd /unix /kernel /bsd /mach_kernel /boot/kernel/kernel
+ do
+ if test -f $i -o $CFLAG $i; then
+ ac_cv_KERNEL_LOC="$i"
+ break;
+ fi
+done
+if test $i = "unknown"; then
+ AC_MSG_WARN([Can't find system kernel... Setting to /vmunix])
+ ac_cv_KERNEL_LOC="/vmunix"
+fi
+])
+
+AC_DEFINE_UNQUOTED(KERNEL_LOC,"$ac_cv_KERNEL_LOC")
+
+#
+# Check for mount table location
+#
+
+AC_CACHE_CHECK(for mount table location,ac_cv_ETC_MNTTAB,
+[ac_cv_ETC_MNTTAB="unknown"
+for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
+ do
+ if test -f $i -o -c $i; then
+ ac_cv_ETC_MNTTAB="$i"
+ break;
+ fi
+done
+])
+
+AC_DEFINE_UNQUOTED(ETC_MNTTAB,"$ac_cv_ETC_MNTTAB")
+
+# Check for /dev/dmem or /dev/drum location
+AC_CACHE_CHECK(for location of swap device,ac_cv_DMEM_LOC,
+[
+# First determine if test expects a -f or a -c (character device (SYSV))
+
+if test -f /dev/kmem; then
+ CTEST="test -f"
+elif test -c /dev/kmem; then
+ CTEST="test -c"
+else
+ # fall back
+ CTEST="test -f"
+fi
+
+if $CTEST /dev/dmem; then
+ ac_cv_DMEM_LOC="/dev/dmem"
+elif $CTEST /dev/drum; then
+ ac_cv_DMEM_LOC="/dev/drum"
+else
+ ac_cv_DMEM_LOC="none"
+fi
+])
+
+if test "x$ac_cv_DMEM_LOC" != "xnone"; then
+ AC_DEFINE_UNQUOTED(DMEM_LOC,"$ac_cv_DMEM_LOC")
+fi
+
+# forced efence turned off.
+# if test "x$developer" = "xyes" -a "x$use_efence" != "xno"; then
+# use_efence="yes"
+# fi
+
+if test "x$use_efence" = "xyes"; then
+ AC_CHECK_LIB(efence, EF_Exit)
+fi
+
+# Checks for libraries.
+# AC_CHECK_LIB(des, main)
+# AC_CHECK_LIB(m, asin)
+
+AC_ARG_WITH(elf,
+ [AS_HELP_STRING(--without-elf,[use elf libraries])],,
+ [AC_ARG_ENABLE(elf,,
+ [AC_MSG_ERROR([ Invalid option. Use --with-elf/--without-elf instead ])])])
+
+if test "x$with_elf" != "xno"; then
+# nlist is needed for uptime on some sytems in the generic library
+# add hosts which don't use nlist to the blank first line
+case $target_os in
+ linux*) ;;
+ irix*) # Check for nlist in mld (irix)
+ AC_CHECK_LIB(elf, nlist)
+ AC_CHECK_LIB(elf, nlist64)
+ AC_CHECK_LIB(mld, nlist)
+ ;;
+ *) # default
+ AC_CHECK_LIB(elf, nlist)
+ ;;
+esac
+fi
+
+
+# On some platforms (Irix) libnsl and libsocket should not be used.
+AC_CHECK_FUNC(gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME),
+ AC_CHECK_LIB(nsl, gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME)
+ LIBS="${LIBS} -lnsl"))
+
+# SCO Unixware 7.1.4 finds gethostbyname() in -lsocket
+AC_CHECK_FUNC(gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME),
+ AC_CHECK_LIB(socket, gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME)
+ LIBS="${LIBS} -lsocket"))
+
+# Solaris kstat
+AC_CHECK_LIB(kstat, kstat_lookup,
+ AC_DEFINE(HAVE_LIBKSTAT, 1, [Define to 1 if you have the `kstat' library (-lkstat).])
+ LNETSNMPLIBS="${LNETSNMPLIBS} -lkstat")
+
+# Check for libraries that the agent needs
+# saving old libraries
+NONAGENTLIBS=$LIBS
+
+# Check for security related functions
+if test "x$tryopenssl" != "xno"; then
+ if test "x$askedopenssl" != "xyes" -a "x$askedpkcs" = "xyes"; then
+ AC_CHECK_LIB(pkcs11, C_Initialize, AC_DEFINE(HAVE_LIBPKCS11, 1, [Define to 1 if you have the `pkcs11' library (-lpkcs11).])
+ LIBPKCS11="-lpkcs11")
+ else
+ if test "x$tryrsaref" != "xno"; then
+ AC_CHECK_LIB(rsaref, RSAPrivateDecrypt)
+ AC_CHECK_LIB(RSAglue, RSA_PKCS1_RSAref)
+ fi
+
+ AC_CHECK_LIB(crypto, EVP_md5, AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
+ LIBCRYPTO="-lcrypto")
+ AC_CHECK_LIB(crypto, AES_cfb128_encrypt,
+ AC_DEFINE(HAVE_AES_CFB128_ENCRYPT, 1, [Define to 1 if you have the `AES_cfb128_encrypt' function.]))
+ fi
+elif test "x$askedpkcs" = "xyes"; then
+ AC_CHECK_LIB(pkcs11, C_Initialize, AC_DEFINE(HAVE_LIBPKCS11)
+ LIBPKCS11="-lpkcs11")
+fi
+
+LIBS=$NONAGENTLIBS
+
+# check for tcp wrapper support
+_cppflags="${CPPFLAGS}"
+_ldflags="${LDFLAGS}"
+
+AC_ARG_WITH(libwrap,
+[ --with-libwrap[=LIBPATH] Compile in libwrap (tcp_wrappers) support.],[
+ if test "$with_libwrap" != "no"; then
+ if test "$with_libwrap" != "yes"; then
+ CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
+ LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
+ fi
+
+ _libs=${LIBS}
+ AC_CHECK_HEADER(tcpd.h, ,
+ AC_MSG_ERROR([Asked to use libwrap but I couldn't find tcpd.h.]))
+
+ LIBS="$LIBS -lwrap"
+ AC_MSG_CHECKING([for TCP wrappers library -lwrap])
+ # XXX: should check for hosts_ctl
+ AC_TRY_LINK([#include <sys/types.h>
+ #include <tcpd.h>
+ int allow_severity = 0;
+ int deny_severity = 0;
+ ],[hosts_access((void *)0)],[
+
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(NETSNMP_USE_LIBWRAP)
+ test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
+ _wraplibs="$_wraplibs -lwrap"],
+ [
+ AC_MSG_RESULT([no])
+ # Linux RedHat 6.1 won't link libwrap without libnsl
+ AC_CHECK_FUNC(yp_get_default_domain, ,
+ AC_CHECK_LIB(nsl, yp_get_default_domain))
+ AC_MSG_CHECKING([for TCP wrappers library -lwrap linked with -lnsl])
+ AC_TRY_LINK([#include <sys/types.h>
+ #include <tcpd.h>
+ int allow_severity = 0;
+ int deny_severity = 0;
+ ],[hosts_access((void *)0)],
+
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(NETSNMP_USE_LIBWRAP)
+ test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
+ _wraplibs="$_wraplibs -lwrap -lnsl",
+
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(Asked to use libwrap but I couldn't find it.))])
+ LAGENTLIBS="$_wraplibs"
+ CPPFLAGS=${_cppflags}
+ LDFLAGS=${_ldflags}
+ LIBS=${_libs}
+ fi
+])
+
+AC_CHECK_HEADERS(rpm/rpmlib.h rpm/header.h)
+
+AC_CHECK_HEADER(rpm/rpmlib.h,rpmlib_h=yes,rpmlib_h=no)
+AC_CHECK_HEADER(rpm/header.h,rpmheader_h=yes,rpmheader_h=no)
+
+if test "x$rpmheader_h" = "xno" -o "x$rpmlib_h" = "xno" ; then
+ if test "x$with_rpm" = "xyes" ; then
+ AC_MSG_ERROR([Could not find either the RPM header files needed and was specifically asked to use RPM support])
+ else
+ with_rpm=no
+ fi
+fi
+
+#
+# rpm libraries only needed for the host resources mib software
+# installed tables (on linux in particular)
+#
+if test "x$with_rpm" != "xno" && \
+ echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+ # ARG. RPM is a real pain.
+ # FWIW librpm.la, librpmio.la, and libpopt.la have correct dependencies.
+ _rpmlibs=""
+
+ # zlib is required for newer versions of rpm
+ _cppflags="${CPPFLAGS}"
+ _ldflags="${LDFLAGS}"
+
+ AC_ARG_WITH(zlib,
+ [ --with-zlib[=DIR] use libz in DIR],[
+ if test -d "$withval"; then
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+ ])
+
+ # dunno if this is needed for rpm-4.0.x, earlier probably needs.
+ AC_CHECK_HEADER(zlib.h,
+ AC_CHECK_LIB(z, gzread, , CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
+ CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
+
+ # two variants of bzip2 need checking.
+ AC_ARG_WITH(bzip2,
+ [ --with-bzip2[=DIR] use libbz2 in DIR],[
+ if test -d "$withval"; then
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+ fi
+ if test "x$with_bzip2" != "xno"; then
+ AC_CHECK_LIB(bz2, bzread, [_rpmlibs="$_rpmlibs -lbz2"],
+ AC_CHECK_LIB(bz2, BZ2_bzread, [_rpmlibs="$_rpmlibs -lbz2"],))
+ fi
+ ])
+
+
+ # two variants of db1 need checking.
+ AC_CHECK_LIB(db1, dbopen, [_rpmlibs="-ldb1 $_rpmlibs"],
+ AC_CHECK_LIB(db, dbopen, [_rpmlibs="-ldb $_rpmlibs"]))
+
+ # two variants of db3 need checking.
+ AC_CHECK_LIB(db-3.1, db_create, [_rpmlibs="-ldb-3.1 $_rpmlibs"],
+ AC_CHECK_LIB(db-3.0, db_create, [_rpmlibs="-ldb-3.0 $_rpmlibs"]))
+
+ # rpm-3.0.5 and later needs popt.
+ AC_CHECK_LIB(popt, poptParseArgvString, [_rpmlibs="-lpopt $_rpmlibs"])
+
+ # rpm-4.0.x needs rpmio.
+ AC_CHECK_LIB(rpmio, Fopen, [_rpmlibs="-lrpmio $_rpmlibs"],,$_rpmlibs)
+
+ # now check for rpm using the appropriate libraries.
+ AC_CHECK_LIB(rpm, rpmGetFilesystemList,[
+ AC_DEFINE(HAVE_LIBRPM)
+ LMIBLIBS="-lrpm $_rpmlibs $LMIBLIBS"
+ CFLAGS="$CFLAGS -I/usr/include/rpm"
+ ],[
+ # rpm-4.0.3 librpmdb actually contains what we need.
+ AC_CHECK_LIB(rpmdb, rpmdbOpen,[
+ AC_DEFINE(HAVE_LIBRPM)
+ LMIBLIBS="-lrpmdb -lrpm $_rpmlibs $LMIBLIBS"
+ CFLAGS="$CFLAGS -I/usr/include/rpm"
+ ],,-lrpm $_rpmlibs)
+ ])
+
+ # rpm 4.6 has incompatible API, turn on the legacy one
+ AC_CHECK_DECL([headerGetEntry],
+ : ,
+ AC_DEFINE([_RPM_4_4_COMPAT], [], [Define if you have RPM 4.6 or newer to turn on legacy API]),
+ [[#include <rpm/rpmlib.h>]]
+ )
+fi
+
+# libkvm
+AC_CHECK_LIB(kvm, kvm_read, [_libkvm="-lkvm"])
+AC_CHECK_FUNC(kvm_openfiles, AC_DEFINE(HAVE_KVM_OPENFILES, 1, [Define to 1 if you have the `kvm_openfiles' function.]),
+ AC_CHECK_LIB(kvm, kvm_openfiles, AC_DEFINE(HAVE_KVM_OPENFILES, 1, [Define to 1 if you have the `kvm_openfiles' function.])
+ _libkvm="-lkvm"))
+AC_CHECK_FUNC(kvm_getprocs, AC_DEFINE(HAVE_KVM_GETPROCS, 1, [Define to 1 if you have the `kvm_getprocs' function.]),
+ AC_CHECK_LIB(kvm, kvm_getprocs, AC_DEFINE(HAVE_KVM_GETPROCS, 1, [Define to 1 if you have the `kvm_getprocs' function.])
+ _libkvm="-lkvm"))
+AC_CHECK_FUNC(kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.]),
+ AC_CHECK_LIB(kvm, kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.])
+ _libkvm="-lkvm"))
+if test "x${_libkvm}" != "x"; then
+ AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the `kvm' library (-lkvm).])
+ LAGENTLIBS="$LAGENTLIBS ${_libkvm}"
+fi
+
+# DYNAMIC MODULE SUPPORT
+AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.]),
+ AC_CHECK_LIB(dl, dlopen, AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.])
+ AC_DEFINE(HAVE_LIBDL, 1, [Define to 1 if you have the `dl' library (-ldl).])
+ LMIBLIBS="${LMIBLIBS} -ldl"))
+
+# nlist
+AC_CHECK_FUNCS(nlist nlist64 knlist)
+
+# whether we need -ldevstat for diskio MIB
+echo " $module_list " | grep " ucd-snmp/diskio " >/dev/null
+if test $? -eq 0 ; then
+ AC_CHECK_FUNC(getdevs, AC_DEFINE(HAVE_GETDEVS),
+ AC_CHECK_LIB(devstat, getdevs, AC_DEFINE(HAVE_GETDEVS)
+ LMIBLIBS="${LMIBLIBS} -ldevstat"))
+ AC_CHECK_FUNC(getdevs, AC_DEFINE(HAVE_DEVSTAT_GETDEVS),
+ AC_CHECK_LIB(devstat, devstat_getdevs, AC_DEFINE(HAVE_DEVSTAT_GETDEVS)
+ LMIBLIBS="${LMIBLIBS} -ldevstat"))
+fi
+
+# LM-SENSORS-MIB support
+echo " $module_list " | grep " ucd-snmp/lmSensors " > /dev/null
+if test $? -eq 0 ; then
+ AC_MSG_CHECKING([for sensors support])
+ case $target_os in
+ solaris*)
+ AC_CHECK_HEADER(picl.h, LMIBLIBS="${LMIBLIBS} -lpicl",)
+ AC_CHECK_HEADERS(picl.h)
+ ;;
+ *)
+ AC_CHECK_HEADER(sensors/sensors.h,,
+ [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find sensors/sensors.h])])
+ AC_CHECK_LIB(sensors, sensors_get_detected_chips, [
+ LMIBLIBS="${LMIBLIBS} -lsensors" ;
+ ],
+ [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find -lsensors])])
+ ;;
+ esac
+fi
+
+######################################################################
+# PERL SUPPORT
+######################################################################
+
+#
+# test to see if we can attempt to build embedded Perl so far
+#
+if test "x$embed_perl" = "xtry" ; then
+ if test "x$install_perl" = "xno" ; then
+ install_perl="try"
+ fi
+ if test "x$ac_cv_path_PERLPROG" = "x" -o "x$ac_cv_path_PERLPROG" = "xno" ; then
+ install_perl="no"
+ embed_perl="no"
+ fi
+fi
+
+
+#
+# Embedded Perl specific stuff
+#
+
+# test perl prog
+if test "x$install_perl" != "xno" ; then
+ myperl=$ac_cv_path_PERLPROG
+ if test $myperl = "no" ; then
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ else
+ AC_MSG_ERROR(--enable-embedded-perl requested but no perl executable found)
+ fi
+ fi
+fi
+
+# test for shared libraries support
+if test "x$install_perl" != "xno" ; then
+ # embedded Perl requires shared libraries
+ if test "x$enable_shared" != "xyes"; then
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ else
+ AC_MSG_ERROR(Perl support requires --enable-shared)
+ fi
+ fi
+fi
+
+if test "x$install_perl" != "xno" ; then
+ AC_MSG_CHECKING([if we are in the source tree so we can install Perl modules])
+ if test "x$srcdir" = "x." -o -d perl/agent/default_store ; then
+ AC_MSG_RESULT([Yes])
+ else
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ AC_MSG_RESULT([No])
+ else
+ AC_MSG_ERROR([Perl modules can not be built outside the source directory])
+ fi
+ fi
+fi
+
+# check the Perl compiler name
+if test "x$install_perl" != "xno" ; then
+ #
+ # Perl cc checks
+ #
+ if test "xenable_perl_cc_checks" != "xno" ; then
+ AC_MSG_CHECKING([for Perl cc])
+ changequote(, )
+ PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
+ changequote([, ])
+ if test "x$PERLCC" != "x" ; then
+ AC_MSG_RESULT([$PERLCC])
+ else
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ else
+ AC_MSG_ERROR([Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl.])
+ fi
+ fi
+fi
+
+# check the Perl compiler compatibility
+if test "x$install_perl" != "xno" ; then
+ AC_MSG_CHECKING([whether $PERLCC is a GNU C compiler])
+ OLDCC=$CC
+ CC="$PERLCC"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
+#ifndef __GNUC__
+ choke me
+#endif
+ ]])], [perlcc_is_gnu=yes], [perlcc_is_gnu=no])
+ AC_MSG_RESULT([$perlcc_is_gnu])
+ CC=$OLDCC
+ if test "x$GCC" = "xyes" -a "x$perlcc_is_gnu" = "xno" ; then
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ else
+ AC_MSG_ERROR([This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
+ fi
+ fi
+fi
+
+# check if they're both gnu
+if test "x$install_perl" != "xno" ; then
+ if test "x$GCC" != "xyes" -a "x$perlcc_is_gnu" = "xyes" ; then
+ if test "x$install_perl" = "xtry" ; then
+ install_perl="no"
+ else
+ AC_MSG_ERROR([This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
+ fi
+ fi
+fi
+
+# we have enough support for installing the modules at least.
+if test "x$install_perl" = "xtry" ; then
+ install_perl="yes"
+else
+ if test "x$install_perl" = "xno" ; then
+ install_perl="no"
+ embed_perl="no"
+ fi
+fi
+
+####################
+# on to embedding...
+
+# check the compiler flags for illegal tokens
+case $target_os in
+ solaris*)
+ if test "x$embed_perl" != "xno" ; then
+ #
+ # Perl cc checks
+ #
+ AC_MSG_CHECKING([for problematic Perl cc flags on Suns])
+ if $myperl -V:ccflags | grep LARGEFILE > /dev/null ; then
+ if test "x$embed_perl" = "xtry" ; then
+ embed_perl="no"
+ else
+ AC_MSG_ERROR([Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+ fi
+ else
+ AC_MSG_RESULT([none known])
+ fi
+ fi
+ ;;
+
+ *)
+ ;;
+esac
+
+
+# check the cflags
+if test "x$embed_perl" != "xno" ; then
+ AC_MSG_CHECKING([for Perl CFLAGS])
+ perlcflags=`$myperl -MExtUtils::Embed -e ccopts`
+ if test "x$perlcflags" != "x" ; then
+ AC_MSG_RESULT([$perlcflags])
+ CFLAGS="$CFLAGS $perlcflags"
+ else
+ if test "x$embed_perl" = "xtry" ; then
+ embed_perl="no"
+ else
+ AC_MSG_ERROR([Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+ fi
+ fi
+fi
+
+# check the ldflags
+if test "x$embed_perl" != "xno" ; then
+ AC_MSG_CHECKING([for Perl LDFLAGS])
+ netsnmp_perlldopts=`$myperl -MExtUtils::Embed -e ldopts`
+ if test "x$netsnmp_perlldopts" != "x" ; then
+ AC_MSG_RESULT([$netsnmp_perlldopts])
+ else
+ if test "x$embed_perl" = "xtry" ; then
+ embed_perl="no"
+ else
+ AC_MSG_ERROR([Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+ fi
+ fi
+ if test "x$enable_as_needed" = "xyes" ; then
+ # link *libraries* with libperl
+ PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
+ # Perl ccdlflags (RPATH to libperl, hopefully)
+ AC_MSG_CHECKING([for Perl CCDLFLAGS])
+ changequote(, )
+ netsnmp_perlccdlflags=`$myperl -V:ccdlflags | $myperl -n -e 'print $1 '"if (/^\s*ccdlflags='([^']+)';/);"`
+ changequote([, ])
+ AC_MSG_RESULT([$netsnmp_perlccdlflags])
+ PERLLDOPTS_FOR_APPS="$netsnmp_perlccdlflags"
+ else
+ # link *applications* against libperl
+ PERLLDOPTS_FOR_APPS="$netsnmp_perlldopts"
+ fi
+fi
+
+# check needed functions
+if test "x$embed_perl" != "xno" ; then
+ OLDLIBS="$LIBS"
+ LIBS="$LIBS $netsnmp_perlldopts"
+
+ # newer perl vs older perl call functions
+ AC_CHECK_FUNCS(eval_pv)
+
+ # sigh: this has a CAPITAL P in Perl, which ends up being the same
+ # autoconf define as the lower case so we have to treat them *BOTH*
+ # specially. Wonderful.
+ AC_CHECK_FUNC(perl_eval_pv, AC_DEFINE(HAVE_PERL_EVAL_PV_LC))
+ AC_CHECK_FUNC(Perl_eval_pv, AC_DEFINE(HAVE_PERL_EVAL_PV_UC))
+
+ LIBS="$OLDLIBS"
+
+
+ if test "x$ac_cv_func_perl_eval_pv" != "xyes" -a "x$ac_cv_func_Perl_eval_pv" != "xyes" -a "x$ac_cv_func_eval_pv" != "xyes" ; then
+ if test "x$embed_perl" = "xtry" ; then
+ embed_perl="no"
+ else
+ AC_MSG_ERROR([Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+ fi
+ else
+ AC_DEFINE(NETSNMP_EMBEDDED_PERL)
+ OTHERAGENTLIBOBJS="snmp_perl.o"
+ OTHERAGENTLIBLOBJS="snmp_perl.lo"
+
+ EMBEDPERLINSTALL="embedperlinstall"
+ EMBEDPERLUNINSTALL="embedperluninstall"
+ # yay, we got here!
+ embed_perl="yes"
+ fi
+else
+ EMBEDPERLINSTALL=""
+ EMBEDPERLUNINSTALL=""
+ embed_perl="no"
+ fi
+fi
+AC_SUBST(EMBEDPERLINSTALL)
+AC_SUBST(EMBEDPERLUNINSTALL)
+AC_SUBST(PERLLDOPTS_FOR_LIBS)
+AC_SUBST(PERLLDOPTS_FOR_APPS)
+
+# embedded Perl results
+AC_MSG_CHECKING([for potential embedded Perl support])
+if test "x$embed_perl" != "xyes" ; then
+ AC_MSG_CACHE_ADD(Embedded Perl support: disabled)
+ AC_MSG_RESULT([disabled])
+else
+ AC_MSG_CACHE_ADD(Embedded Perl support: enabled)
+ AC_MSG_RESULT([enabled])
+fi
+
+# install Perl module results
+PERLTARGS=""
+PERLINSTALLTARGS=""
+PERLUNINSTALLTARGS=""
+AC_MSG_CHECKING([if we can install the Perl modules])
+if test "x$install_perl" = "xyes" ; then
+ PERLTARGS="perlmodules"
+ PERLINSTALLTARGS="perlinstall"
+ PERLUNINSTALLTARGS="perluninstall"
+ if test "x$embed_perl" = "xyes" ; then
+ AC_MSG_CACHE_ADD(SNMP Perl modules: building -- embeddable)
+ AC_MSG_RESULT([yes -- and embeddable])
+ else
+ AC_MSG_CACHE_ADD(SNMP Perl modules: building -- not embeddable)
+ AC_MSG_RESULT([yes -- not embeddable])
+ fi
+else
+ AC_MSG_RESULT([no])
+ AC_MSG_CACHE_ADD(SNMP Perl modules: disabled)
+fi
+AC_SUBST(PERLTARGS)
+AC_SUBST(PERLINSTALLTARGS)
+AC_SUBST(PERLUNINSTALLTARGS)
+AC_SUBST(PERLARGS)
+
+
+
+# reset libs
+AGENTLIBS=$LIBS
+LIBS=$NONAGENTLIBS
+
+
+
+# python support
+PYTHONTARGS=""
+PYTHONINSTALLTARGS=""
+PYTHONUNINSTALLTARGS=""
+PYTHONCLEANTARGS=""
+AC_MSG_CHECKING([if we should install the python bindings])
+if test "x$install_python" = "xyes" ; then
+ PYTHONTARGS="pythonmodules"
+ PYTHONINSTALLTARGS="pythoninstall"
+ PYTHONUNINSTALLTARGS="pythonuninstall"
+ PYTHONCLEANTARGS="pythonclean"
+ AC_MSG_CACHE_ADD(SNMP Python modules: building for $PYTHONPROG)
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_CACHE_ADD(SNMP Python modules: disabled)
+ AC_MSG_RESULT([no])
+fi
+AC_SUBST(PYTHONTARGS)
+AC_SUBST(PYTHONINSTALLTARGS)
+AC_SUBST(PYTHONUNINSTALLTARGS)
+AC_SUBST(PYTHONCLEANTARGS)
+AC_SUBST(PYTHONARGS)
+
+
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS(stdarg.h string.h fcntl.h limits.h sys/file.h sys/ioctl.h syslog.h unistd.h sys/dmap.h machine/pte.h xti.h sys/sockio.h sys/socket.h sys/param.h sys/uio.h)
+# at least Solaris 9 needs sys/socket.h to compile sys/socketvar.h
+AC_CHECK_HEADERS(sys/socketvar.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+])
+# at least OpenBSD 3.4 needs sys/param.h (MAXPATHLEN) to compile sys/swap.h
+AC_CHECK_HEADERS(sys/swap.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+])
+AC_CHECK_HEADERS(sys/timeout.h sys/un.h fstab.h sys/fs.h mtab.h ufs/fs.h sys/fixpoint.h machine/param.h sys/vm.h vm/vm.h sys/vmmeter.h sys/vmparam.h sys/vmmac.h sys/vmsystm.h sys/time.h sys/times.h sys/statvfs.h sys/vfs.h sys/mnttab.h sys/select.h mntent.h sys/mntent.h kstat.h utsname.h sys/utsname.h sys/cdefs.h getopt.h locale.h pthread.h sys/loadavg.h regex.h linux/tasks.h pwd.h grp.h utmpx.h)
+# Network headers
+AC_CHECK_HEADERS(arpa/inet.h netinet/in_systm.h netinet/in.h netinet/ip_var.h netinet/tcp.h netinet/tcpip.h netinet/udp.h net/if.h netinet/in_var.h netinet/ip.h netinet/ip_icmp.h net/if_arp.h net/if_mib.h net/if_var.h netinet/if_ether.h netinet/tcp_timer.h netinet/tcp_var.h netinet/udp_var.h netinet/icmp_var.h netdb.h net/route.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_SYS_SOCKETVAR_H
+#include <sys/socketvar.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_H
+#include <netinet/ip.h>
+#endif
+#if HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_IP_ICMP_H
+#include <netinet/ip_icmp.h>
+#endif
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+]])
+# UFS headers
+AC_CHECK_HEADERS(ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_UFS_UFS_DINODE_H
+#include <ufs/ufs/dinode.h>
+#endif
+#if HAVE_UFS_UFS_QUOTA_H
+#include <ufs/ufs/quota.h>
+#endif
+]])
+# FreeBSD required headers
+AC_CHECK_HEADERS(malloc.h net/if_dl.h sys/sysctl.h stdlib.h net/if_types.h sys/queue.h osreldate.h machine/types.h sys/user.h sys/proc.h sys/mbuf.h sys/mount.h sys/dkstat.h sys/conf.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+]])
+# Linux
+AC_CHECK_HEADERS(netinet/tcp_fsm.h sys/protosw.h nlist.h ioctls.h asm/page.h asm/types.h netipx/ipx.h pci/pci.h)
+# Solaris
+AC_CHECK_HEADERS(inet/mib2.h)
+# NetBSD required headers
+AC_CHECK_HEADERS(kvm.h sys/pool.h uvm/uvm_param.h uvm/uvm_extern.h vm/vm_param.h vm/vm_extern.h)
+# BSDi2 headers
+AC_CHECK_HEADERS(vm/swap_pager.h,,,
+[[
+#if HAVE_VM_VM_H
+#include <vm/vm.h>
+#endif
+]])
+# linux ethtool
+# requires special hacks to get around various problems on older linux kernels.
+# major ugh....
+AC_CHECK_HEADERS([linux/ethtool.h],,,
+[[
+#include <linux/types.h>
+typedef __u64 u64; /* hack, so we may include kernel's ethtool.h */
+typedef __u32 u32; /* ditto */
+typedef __u16 u16; /* ditto */
+typedef __u8 u8; /* ditto */
+]])
+# BSDi3 headers
+AC_CHECK_HEADERS(sys/stat.h)
+# BSDi3/IRIX headers
+# at least IRIX 6.5 needs _KMEMUSER and sys/types.h (mprot_t) to compile
+# sys/vnode.h
+AC_CHECK_HEADERS(sys/vnode.h,,,
+[
+#define _KMEMUSER 1
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+])
+# at least IRIX 6.5 needs sys/sema.h (mrlock_t) to compile sys/hashing.h
+AC_CHECK_HEADERS(sys/sema.h)
+AC_CHECK_HEADERS(sys/hashing.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_SEMA_H
+#include <sys/sema.h>
+#endif
+])
+# more IRIX headers
+AC_CHECK_HEADERS(sys/tcpipstats.h sys/sysmp.h sys/systeminfo.h sys/sysget.h)
+# AIX system configuration
+AC_CHECK_HEADERS(sys/systemcfg.h)
+# from smux stuff
+AC_CHECK_HEADERS(err.h sys/filio.h sgtty.h)
+# AIX needs this for statfs func
+AC_CHECK_HEADERS(sys/statfs.h)
+# for HostRes (HP-UX at least)
+AC_CHECK_HEADERS(sys/dkio.h sys/diskio.h sys/pstat.h linux/hdreg.h pkglocs.h)
+# for HostRes (Solaris 2.x at least)
+AC_CHECK_HEADERS(pkginfo.h,
+ AC_CHECK_LIB(adm, pkginfo, AC_DEFINE(HAVE_PKGINFO)
+ LMIBLIBS="${LMIBLIBS} -ladm"))
+
+case $target_os in
+ aix*) # AIX perfstat library, needed for CPU/memory statistics
+ AC_CHECK_HEADERS(libperfstat.h,
+ AC_CHECK_LIB(perfstat, perfstat_cpu_total, AC_DEFINE(HAVE_PERFSTAT)
+ LMIBLIBS="${LMIBLIBS} -lperfstat"), AC_MSG_ERROR([
+
+*** To monitor CPU/memory values in AIX you need to install
+*** libperfstat which can be found in bos.perf
+]))
+ ;;
+ hpux*) # HP-UX agent needs open_mib
+ AC_CHECK_LIB(nm, open_mib, AC_DEFINE(HAVE_LIBNM)
+ LMIBLIBS="${LMIBLIBS} -lnm")
+ ;;
+ *)
+ ;;
+esac
+# WIN32
+# (mingw32 must link winsock explicitly)
+AC_CHECK_HEADERS(winsock.h,[
+ AGENTLIBS="${AGENTLIBS} -liphlpapi"
+ case $target_os in
+ mingw*)
+ LIBS="${LIBS} -lregex -lws2_32"
+ AGENTLIBS="${AGENTLIBS} -lregex -lws2_32"
+ ;;
+ *)
+ ;;
+ esac
+])
+AC_CHECK_HEADERS(io.h)
+# SCO
+AC_CHECK_HEADERS(sys/stream.h)
+# KAME
+AC_CHECK_HEADERS(netinet/ip6.h netinet6/in6_var.h netinet6/in6_pcb.h netinet6/ip6_var.h netinet6/tcp6.h netinet6/tcp6_fsm.h netinet6/nd6.h netinet6/tcp6_timer.h netinet6/tcp6_var.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP6_H
+#include <netinet/ip6.h>
+#endif
+]])
+# DYNAMIC MODULE SUPPORT
+AC_CHECK_HEADERS(dlfcn.h)
+# table_array helper support
+AC_CHECK_HEADERS(search.h)
+
+# RPM subdirectory path (sigh)
+if test "x$with_rpm" != "xno" && \
+ echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+ AC_CHECK_HEADERS(rpm/rpmdb.h)
+fi
+
+# OpenBSD 2.6 needs netinet/in.h before netinet/in_pcb.h
+AC_MSG_CHECKING([[for netinet/in_pcb.h]])
+AC_CACHE_VAL(cv_have_netinet_in_pcb_h,
+[ AC_TRY_CPP( [
+#include <netinet/in.h>
+#include <netinet/in_pcb.h>
+], cv_have_netinet_in_pcb_h=yes, cv_have_netinet_in_pcb_h=no)])
+AC_MSG_RESULT($cv_have_netinet_in_pcb_h)
+if test $cv_have_netinet_in_pcb_h = yes; then
+ AC_DEFINE(HAVE_NETINET_IN_PCB_H)
+fi
+
+# NetBSD needs machine/types.h before sys/disklabel.h
+AC_MSG_CHECKING([[for sys/disklabel.h]])
+AC_CACHE_VAL(cv_have_sys_disklabel_h,
+[ AC_TRY_CPP( [
+#include <machine/types.h>
+#include <sys/disklabel.h>
+], cv_have_sys_disklabel_h=yes, cv_have_sys_disklabel_h=no)])
+AC_MSG_RESULT($cv_have_sys_disklabel_h)
+if test $cv_have_sys_disklabel_h = yes; then
+ AC_DEFINE(HAVE_SYS_DISKLABEL_H)
+fi
+
+# OpenSSL
+AC_CHECK_HEADERS(openssl/hmac.h openssl/evp.h openssl/aes.h openssl/des.h openssl/dh.h)
+AC_CHECK_HEADERS(security/cryptoki.h)
+
+# Printing
+AC_PATH_PROG([LPSTAT_PATH],lpstat)
+if test x$LPSTAT_PATH != x; then
+ AC_DEFINE_UNQUOTED(LPSTAT_PATH,"$LPSTAT_PATH")
+ AC_DEFINE(HAVE_LPSTAT)
+fi
+AC_CHECK_FUNCS(cgetnext)
+if test -r /etc/printcap; then
+ AC_DEFINE(HAVE_PRINTCAP)
+fi
+
+AC_MSG_CHECKING([for authentication support])
+useopenssl=no
+usepkcs=no
+if test "x$ac_cv_lib_pkcs11_C_Initialize" != "xyes" -o "x$ac_cv_header_security_cryptoki_h" != "xyes"; then
+ if test "x$askedpkcs" = "xyes"; then
+ AC_MSG_ERROR(Asked to use PKCS11 but I couldn't find it.)
+ fi
+else
+ if test "x$askedpkcs" = "xyes"; then
+ usepkcs=yes
+ fi
+fi
+
+if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
+ if test "x$askedopenssl" = "xyes"; then
+ AC_MSG_ERROR(Asked to use OpenSSL but I couldn't find it.)
+ fi
+else
+ if test "x$askedopenssl" = "xyes"; then
+ useopenssl=yes
+ elif test "x$tryopenssl" = "xyes"; then
+ if test "x$usepkcs" != "xyes"; then
+ useopenssl=yes
+ fi
+ fi
+fi
+
+if test "x$useopenssl" != "xno" ; then
+ authmodes="MD5 SHA1"
+ if test "x$enable_privacy" != "xno" ; then
+ if test "x$ac_cv_header_openssl_aes_h" = "xyes" ; then
+ encrmodes="DES AES"
+ else
+ encrmodes="DES"
+ fi
+ else
+ encrmodes="[disabled]"
+ fi
+ AC_DEFINE(NETSNMP_USE_OPENSSL)
+ LNETSNMPLIBS="$LNETSNMPLIBS $LIBCRYPTO"
+ AC_MSG_RESULT(OpenSSL Support)
+elif test "x$usepkcs" != "xno" ; then
+ authmodes="MD5 SHA1"
+ if test "x$enable_privacy" != "xno" ; then
+ encrmodes="DES"
+ else
+ encrmodes="[disabled]"
+ fi
+ AC_DEFINE(NETSNMP_USE_PKCS11)
+ LNETSNMPLIBS="$LNETSNMPLIBS $LIBPKCS11"
+ AC_MSG_RESULT(PKCS11 Support)
+elif test "x$enable_md5" != "xno"; then
+ authmodes="MD5"
+ encrmodes=""
+ AC_DEFINE(NETSNMP_USE_INTERNAL_MD5)
+ AC_MSG_RESULT(Internal MD5 Support)
+fi
+if test "x$enable_md5" = "xno"; then
+ authmodes=`echo $authmodes | sed 's/MD5 *//;'`
+fi
+AC_SUBST(LNETSNMPLIBS)
+AC_SUBST(LAGENTLIBS)
+
+AC_MSG_CACHE_ADD(Authentication support: $authmodes)
+AC_MSG_CACHE_ADD(Encryption support: $encrmodes)
+
+if test "x$all_warnings" != "x"; then
+ AC_MSG_CACHE_ADD(WARNING: $all_warnings)
+fi
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_HEADER_TIME
+
+# this should use AC_CHECK_TYPE, but it's broken at least in 2.13-14
+# so we do it by hand.
+AC_MSG_CHECKING([for socklen_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([socklen_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif], [ac_cv_type_socklen_t=yes], [ac_cv_type_socklen_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_socklen_t])
+if test $ac_cv_type_socklen_t = yes; then
+ AC_DEFINE(HAVE_SOCKLEN_T)
+fi
+
+# AIX keeps in_addr_t in /usr/include/netinet/in.h
+AC_MSG_CHECKING([for in_addr_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([in_addr_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif], [ac_cv_type_in_addr_t=yes], [ac_cv_type_in_addr_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_in_addr_t])
+if test $ac_cv_type_in_addr_t = yes; then
+ AC_DEFINE(HAVE_IN_ADDR_T)
+fi
+
+# Older versions of MinGW do not define ssize_t in sys/types
+AC_MSG_CHECKING([for ssize_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([ssize_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif], [ac_cv_type_ssize_t=yes], [ac_cv_type_ssize_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_ssize_t])
+if test $ac_cv_type_ssize_t = yes; then
+ AC_DEFINE(HAVE_SSIZE_T, 1, [Define if type ssize_t is available])
+fi
+
+# Check ps args
+AC_CACHE_CHECK([for correct flags to ps], ac_cv_ps_flags,
+[if test "`($PSPROG -e 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="-e"
+elif test "`($PSPROG -el 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="-el"
+elif test "`($PSPROG acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="acx"
+elif test "`($PSPROG -acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="-acx"
+elif test "`($PSPROG -o pid,tt,state,time,ucomm 2>&1) | $EGREP ' ps *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="-o pid,tt,state,time,ucomm"
+elif test "`($PSPROG ax 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+ ac_cv_ps_flags="ax"
+elif test "x$PARTIALTARGETOS" = "xcygwin"; then
+ ac_cv_ps_flags="-e"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+ ac_cv_ps_flags="-e"
+else
+ AC_MSG_WARN([Unable to determine valid ps flags... defaulting...])
+ ac_cv_ps_flags="-acx"
+fi
+])
+
+PSCMD="$PSPROG $ac_cv_ps_flags"
+AC_SUBST(PSCMD)
+AC_DEFINE_UNQUOTED(PSCMD, "$PSPROG $ac_cv_ps_flags")
+
+# Checks for byte order
+if test $cross_compiling = yes; then
+ if test x$with_endianness = xbig; then
+ AC_DEFINE(WORDS_BIGENDIAN)
+ elif test -z $with_endianness; then
+ AC_MSG_ERROR([You are cross-compiling, but you have not specified the target's endianness])
+ fi
+else
+ if test $with_endianness; then
+ AC_MSG_ERROR([Endianness has been specified, but you are not cross-compiling.])
+ fi
+ AC_C_BIGENDIAN
+fi
+
+# Checks for library functions.
+AC_FUNC_ALLOCA
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_MEMCMP
+AC_TYPE_SIGNAL
+AC_FUNC_GETMNTENT
+AC_CHECK_FUNCS(setmntent hasmntopt gethostname uname gettimeofday select socket strtol strtoul strlcpy)
+AC_CHECK_FUNCS(strchr strtok_r strdup memcpy memmove index bcopy strcasestr regcomp)
+AC_CHECK_FUNCS(signal setsid sigset sigblock sighold strerror setenv vsnprintf snprintf)
+AC_CHECK_FUNCS(sigaction)
+AC_CHECK_FUNCS(random lrand48 rand)
+AC_CHECK_FUNCS(execv system fork getpid strncasecmp sigalrm)
+AC_CHECK_FUNCS(lseek64 pread64)
+if test "x$with_rpm" != "xno" && \
+ echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+ OLDLIBS=$LIBS
+ LIBS=$LMIBLIBS
+ AC_CHECK_FUNCS(rpmGetPath)
+ LIBS=$OLDLIBS
+fi
+
+AC_CHECK_FUNCS(getloadavg)
+AC_CHECK_FUNCS(getaddrinfo getipnodebyname gai_strerror)
+# BSDi2 functions differ
+AC_CHECK_FUNCS(statvfs statfs)
+AC_CHECK_FUNCS(getdtablesize)
+# freebsd2 checks
+AC_CHECK_FUNCS(getfsstat)
+AC_CHECK_FUNCS(usleep)
+AC_CHECK_FUNCS(setlocale)
+AC_CHECK_FUNCS(tcgetattr)
+AC_CHECK_FUNCS(if_nameindex if_freenameindex)
+# solaris checks
+AC_CHECK_FUNCS(getpagesize)
+AC_CHECK_FUNCS(mkstemp)
+AC_CHECK_FUNCS(getpwnam getgrnam setgid setuid setgroups)
+# High resolution alarm support
+AC_CHECK_FUNCS(setitimer)
+# functions to support the clock.
+AC_CHECK_FUNCS(mktime stime times sysconf)
+# missing from hp-ux
+AC_CHECK_FUNCS(if_nametoindex)
+# missing from MinGW
+AC_CHECK_FUNCS(chown localtime_r)
+
+AC_MSG_CHECKING([[for SIOCGIFADDR in sys/ioctl.h]])
+AC_CACHE_VAL(cv_sys_ioctl_h_has_SIOCGIFADDR,
+[ AC_EGREP_CPP(xxxyesxxx,
+[
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+#ifdef SIOCGIFADDR
+xxxyesxxx
+#endif
+], cv_sys_ioctl_h_has_SIOCGIFADDR=yes, cv_sys_ioctl_h_has_SIOCGIFADDR=no)])
+AC_MSG_RESULT($cv_sys_ioctl_h_has_SIOCGIFADDR)
+if test $cv_sys_ioctl_h_has_SIOCGIFADDR = yes; then
+ AC_DEFINE(SYS_IOCTL_H_HAS_SIOCGIFADDR)
+fi
+
+# ultrix
+AC_MSG_CHECKING([[for two-argument statfs with struct fs_data (Ultrix)]])
+AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
+[AC_TRY_RUN([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_FS_TYPES_H
+#include <sys/fs_types.h>
+#endif
+main ()
+{
+struct fs_data fsd;
+/* Ultrix's statfs returns 1 for success,
+ 0 for not mounted, -1 for failure. */
+exit (statfs (".", &fsd) != 1);
+}],
+fu_cv_sys_stat_fs_data=yes,
+fu_cv_sys_stat_fs_data=no,
+fu_cv_sys_stat_fs_data=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
+if test $fu_cv_sys_stat_fs_data = yes; then
+ AC_DEFINE(STAT_STATFS_FS_DATA)
+fi
+
+# check if compiler pre-processor defines __FUNCTION__
+AC_CACHE_CHECK(if __FUNCTION__ is defined,ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED,
+[
+AC_TRY_COMPILE(,[
+ char *cp = __FUNCTION__;
+], ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=yes, ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=no)])
+
+if test "x$ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED" = "xyes"; then
+ AC_DEFINE(HAVE_CPP_UNDERBAR_FUNCTION_DEFINED)
+fi
+
+#--------------------------------------------------------------
+# on SCO Unixware 7.1.4 (SCO compiler), "static inline" functions
+# are not supported, so this disables the whole inline thing if it
+# doesn't work properly. Should have no effect on other platforms.
+AC_CACHE_CHECK([[whether static inline functions are broken (Unixware)]],
+ [netsnmp_cv_c_broken_inline],
+AC_COMPILE_IFELSE([[
+static inline int nested_inline_function(void) {
+ return 0;
+}
+inline int main_inline_function( void ) {
+ return nested_inline_function();
+}
+]], netsnmp_cv_broken_inline=no, netsnmp_cv_broken_inline=yes))
+
+# But, sadly, the usage of inline in NET_SNMP disagrees seriously with at least
+# solaris2, so disable it for now.
+case "$target_os" in
+ solaris*)
+ netsnmp_cv_broken_inline=yes
+ ;;
+ *)
+ ;;
+esac
+
+if test "$netsnmp_cv_broken_inline" = yes ; then
+ AC_DEFINE(NETSNMP_BROKEN_INLINE, 1,
+ [Define if static inline functions are unsupported])
+fi
+
+# openbsd seems to have dropped m_clusters and m_clfree from mbstat
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
+], mbstat, m_clusters, no)
+
+# openbsd seems to have dropped m_mbufs from mbstat too
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
+], mbstat, m_mbufs, no)
+
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/signal.h>
+], sigaction, sa_sigaction, no)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+], tm, tm_gmtoff, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+], ifnet, if_mtu)
+
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xno"; then
+AC_CACHE_CHECK(if _KERNEL needs to be defined for if_mtu, ac_cv_IFNET_NEEDS_KERNEL,
+[
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xyes"; then
+ ac_cv_IFNET_NEEDS_KERNEL=no
+else
+AC_TRY_COMPILE([
+#define _KERNEL 1
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+],[
+struct ifnet testit;
+testit.if_mtu = 0;
+], ac_cv_IFNET_NEEDS_KERNEL=yes, ac_cv_IFNET_NEEDS_KERNEL=no)
+fi
+])
+
+if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
+ AC_DEFINE(IFNET_NEEDS_KERNEL)
+fi
+fi
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+], sockaddr, sa_len, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+], sockaddr, sa_union.sa_generic.sa_family2, no)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+], sockaddr_storage, ss_family, no)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+], sockaddr_storage, __ss_family, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_dst, no)
+
+# checking for 4.3 vs 4.4 rtentry.
+AC_CACHE_CHECK(type of rtentry structure,ac_cv_RTENTRY_TYPE,
+[
+
+# 4.4 compat
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
+#define rt_dst rt_nodes->rn_key
+#endif
+
+ struct rtentry rt;
+ rt.rt_nodes[0].rn_flags = 1;
+ rt.rt_dst;
+ ], ac_cv_RTENTRY_TYPE="BSD-4.4")
+
+# 4.3 compat
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+struct rtentry rt;
+rt.rt_hash;
+], ac_cv_RTENTRY_TYPE="BSD-4.3")
+fi
+
+# else ack.
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+ AC_MSG_RESULT(Unknown)
+ ac_cv_RTENTRY_TYPE="unknown"
+fi
+
+])
+
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
+ AC_DEFINE(RTENTRY_4_4)
+fi
+
+# checking for alpha's ortentry vs rtentry
+if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
+AC_CACHE_CHECK(for struct rtentry, ac_cv_struct_rtentry,
+[AC_EGREP_CPP(ortentry, [#define KERNEL
+#include <net/route.h>
+], ac_cv_struct_rtentry=ortentry, ac_cv_struct_rtentry=rtentry )
+if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
+ ac_cv_struct_rtentry="rtentry"
+else
+ ac_cv_struct_rtentry="ortentry"
+fi
+])
+else
+ RTENTRY_TYPE="rtentry"
+ ac_cv_struct_rtentry="rtentry"
+fi
+
+if test "x$ac_cv_struct_rtentry" != "x"; then
+ AC_DEFINE_UNQUOTED(RTENTRY,struct ${ac_cv_struct_rtentry})
+else
+ AC_DEFINE(RTENTRY,struct rtentry)
+fi
+
+# check for 4.3's rtentry->rt_next
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.3"; then
+AC_CACHE_CHECK(for struct rtentry has a rt_next node,
+ ac_cv_struct_rtentry_rt_next,
+[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+struct rtentry rt;
+rt.rt_next;
+], ac_cv_struct_rtentry_rt_next=yes, ac_cv_struct_rtentry_rt_next=no )
+])
+
+if test "x$ac_cv_struct_rtentry_rt_next" = "xyes"; then
+ AC_DEFINE(RTENTRY_RT_NEXT)
+fi
+
+fi
+
+# Check sin6_scope_id member specified in RFC2553 additionally
+AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,[
+AC_INCLUDES_DEFAULT()
+[#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+]])
+
+# Check struct rtentry for various things.
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_unit)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_refcnt)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_hash)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_use)
+
+# Check tcpstat for tcpstat.tcp_rcvmemdrop
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#include <netinet/tcp.h>
+#ifdef HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+
+#ifdef HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
+], tcpstat, tcp_rcvmemdrop)
+
+
+AC_CHECK_STRUCT_FOR([
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+], ifaddr, ifa_next)
+
+# Check ifnet entries using macro defined in aclocal.m4.
+#
+# XXX Broken on FreeBSD where these are #define'd in <net/if.h>
+#
+AC_CHECK_IFNET_FOR(if_baudrate)
+AC_CHECK_IFNET_FOR(if_baudrate.ifs_value)
+AC_CHECK_IFNET_FOR(if_speed)
+AC_CHECK_IFNET_FOR(if_type)
+AC_CHECK_IFNET_FOR(if_imcasts)
+AC_CHECK_IFNET_FOR(if_iqdrops)
+AC_CHECK_IFNET_FOR(if_noproto)
+AC_CHECK_IFNET_FOR(if_omcasts)
+AC_CHECK_IFNET_FOR(if_xname,no)
+AC_CHECK_IFNET_FOR(if_lastchange.tv_sec)
+AC_CHECK_IFNET_FOR(if_obytes)
+AC_CHECK_IFNET_FOR(if_ibytes)
+AC_CHECK_IFNET_FOR(if_addrlist)
+AC_CHECK_IFNET_FOR(if_addrhead.tqh_first)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_discard)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_noport)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_noportbcast)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_fullsock)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IF_ETHER_H
+#include <netinet/if_ether.h>
+#endif
+],arphd,at_next)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_CONF_H
+#include <sys/conf.h>
+#endif
+],swdevt,sw_nblksenabled)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,mnt_dir)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,f_frsize)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statfs,f_frsize)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,f_files)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_files)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_ffree)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_favail)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_NLIST_H
+#include <nlist.h>
+#endif
+],nlist,n_value)
+
+# struct nlist64 (IRIX)
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_NLIST_H
+#include <nlist.h>
+#endif
+],nlist64, n_value)
+
+# check struct ipstat for various things
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_cantforward)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_cantfrag)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_delivered)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragdropped)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragtimeout)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragmented)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_localout)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_noproto)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_noroute)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_odropped)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_ofragments)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_reassembled)
+
+# check for the des_ks_struct.weak_key attribute, which indicates the
+# older openssl version is being used.
+if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
+AC_CHECK_STRUCT_FOR([
+#include <openssl/des.h>
+], des_ks_struct, weak_key)
+fi
+
+# attempt to figure out if sysctl is usable
+
+if test $cross_compiling = yes; then
+ AC_MSG_WARN([Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available])
+else
+ AC_CACHE_CHECK(if sysctl can read kernel information,ac_cv_NETSNMP_CAN_USE_SYSCTL,
+ [AC_TRY_RUN([
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#include <sys/types.h>
+#if HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
+
+main() {
+ int mib[2];
+ size_t len;
+ struct timeval boottime;
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_BOOTTIME;
+
+ len = sizeof(boottime);
+ sysctl(mib, 2, &boottime, &len, NULL, NULL);
+ if (boottime.tv_sec != 0)
+ exit(0);
+ else
+ exit(1);
+}
+ ], ac_cv_NETSNMP_CAN_USE_SYSCTL=yes, ac_cv_NETSNMP_CAN_USE_SYSCTL=no, ac_cv_NETSNMP_CAN_USE_SYSCTL=no)])
+fi
+
+if test "x$ac_cv_NETSNMP_CAN_USE_SYSCTL" = "xyes"; then
+ AC_DEFINE(NETSNMP_CAN_USE_SYSCTL)
+fi
+
+#
+# In FreeBSD 4.x, the TCP timer constants aren't. They are defined
+# in terms of 'hz', the kernel clock tick. In this case,
+# we need to have a local variable 'hz' in scope and set to a useful
+# value whenever we use one of these constants.
+#
+AC_CACHE_CHECK(whether TCP timers depend on 'hz',ac_cv_TCPTV_NEEDS_HZ,
+[AC_EGREP_CPP(hz,
+[#include <netinet/tcp_timer.h>
+TCPTV_SRTTDFLT
+], ac_cv_TCPTV_NEEDS_HZ=yes, ac_cv_TCPTV_NEEDS_HZ=no)])
+
+if test "x$ac_cv_TCPTV_NEEDS_HZ" = "xyes"; then
+ AC_DEFINE(TCPTV_NEEDS_HZ)
+fi
+
+#
+# define the agent libraries variables
+#
+AC_SUBST(LMIBLIBS)
+AC_SUBST(AGENTLIBS)
+AC_SUBST(OTHERAGENTLIBOBJS)
+AC_SUBST(OTHERAGENTLIBLOBJS)
+
+#
+# Prompt for various bits of user information
+#
+
+if test "x$ac_cv_user_prompt_NETSNMP_LOGFILE" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_LOC" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" = "x" -o "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "x"; then
+AC_CACHE_CHECK(whether to prompt for values, ac_cv_have_warned,
+[
+if test "x$defaults" = "xno"; then
+cat << EOF
+
+ ************** Configuration Section **************
+
+ You are about to be prompted with a series of questions. Answer
+them carefully, as they determine how the SNMP agent and related
+applications are to function.
+
+ After the configure script finishes, you can browse the newly
+created net-snmp-config.h file for further - less important - parameters to
+modify. Be careful if you re-run configure though, since net-snmp-config.h
+will be overwritten.
+
+-Press return to continue-
+EOF
+
+read tmpinput
+ac_cv_have_warned="yes"
+else
+ ac_cv_have_warned="no"
+fi
+])
+else
+ ac_cv_have_warned="yes"
+fi
+
+ME=`$WHOAMI`
+if test -f /etc/resolv.conf; then
+ LOC=`cat /etc/resolv.conf | grep '^domain' | tail -1 | awk '{print $NF}'`
+else
+ LOC="@no.where"
+fi
+
+AC_PROMPT_USER(NETSNMP_DEFAULT_SNMP_VERSION,[
+
+*** Default SNMP Version:
+
+ Starting with Net-SNMP 5.0, you can choose the default version of
+the SNMP protocol to use when no version is given explicitly on the
+command line, or via an 'snmp.conf' file. In the past this was set to
+SNMPv1, but you can use this to switch to SNMPv3 if desired. SNMPv3
+will provide a more secure management environment (and thus you're
+encouraged to switch to SNMPv3), but may break existing scripts that
+rely on the old behaviour. (Though such scripts will probably need to
+be changed to use the '-c' community flag anyway, as the SNMPv1
+command line usage has changed as well.).
+ At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
+the default version for the command tools (snmpget, ...) to use. This
+can always be overridden at runtime using the -v flag to the tools, or
+by using the \"defVersion\" token in your snmp.conf file.
+ Providing the --with-default-snmp-version=\"x\" parameter to ./configure
+will avoid this prompt.
+
+Default version of SNMP to use],3,unquoted)
+
+# we tested this above before the prompt, but the prompt may give a new value.
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+ ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
+fi
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+ AC_MSG_ERROR([Illegal version number. Only 1, 2 (for SNMPv2c) and 3 are supported.])
+fi
+
+AC_PROMPT_USER(NETSNMP_SYS_CONTACT,[
+
+*** System Contact Information:
+
+ Describes who should be contacted about the host the agent is
+running on. This information is available in the MIB-II tree. This
+can also be over-ridden using the \"syscontact\" syntax in the agent's
+configuration files.
+ Providing the --with-sys-contact=\"contact\" parameter to ./configure
+will avoid this prompt.
+
+System Contact Information],$ME@$LOC,quoted)
+
+AC_PROMPT_USER(NETSNMP_SYS_LOC,[
+
+*** System Location:
+
+ Describes the location of the system. This information is
+available in the MIB-II tree. this can also be over-ridden using the
+\"syslocation\" syntax in the agent's configuration files.
+ Providing the --with-sys-location=\"location\" parameter to ./configure
+will avoid this prompt.
+
+System Location],Unknown,quoted)
+
+if test -d /var/log; then
+ defaultlog="/var/log/snmpd.log"
+else
+ defaultlog="/usr/adm/snmpd.log"
+fi
+
+AC_PROMPT_USER(NETSNMP_LOGFILE,[
+
+*** Logfile location:
+
+ Enter the default location for the snmpd agent to dump
+information & errors to. If not defined (enter the keyword \"none\"
+at the prompt below) the agent will use stdout and stderr instead.
+(Note: This value can be over-ridden using command line options.)
+ Providing the --with-logfile=\"path\" parameter to ./configure
+will avoid this prompt.
+
+Location to write logfile],$defaultlog,quoted)
+
+if test -d /var; then
+ defaultstore="/var/net-snmp"
+ ucddefaultstore="/var/ucd-snmp"
+else
+ defaultstore="/etc/net-snmp"
+ ucddefaultstore="/etc/ucd-snmp"
+fi
+
+AC_PROMPT_USER(NETSNMP_PERSISTENT_DIRECTORY,[
+
+*** snmpd persistent storage location:
+
+ Enter a directory for the SNMP library to store persistent
+data in the form of a configuration file. This default location is
+different than the old default location (which was for ucd-snmp). If
+you stay with the new path, I'll ask you in a second if you wish to
+copy your files over to the new location (once only). If you pick
+some other path than the default, you'll have to copy them yourself.
+There is nothing wrong with picking the old path ($ucddefaultstore) if
+you'd rather.
+ Providing the --with-persistent-directory=\"path\" parameter to
+./configure will avoid this prompt.
+
+Location to write persistent information],$defaultstore,quoted)
+
+PERSISTENT_DIRECTORY=$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
+AC_SUBST(PERSISTENT_DIRECTORY)
+UCDPERSISTENT_DIRECTORY=$ucddefaultstore
+AC_SUBST(UCDPERSISTENT_DIRECTORY)
+
+if test $PERSISTENT_DIRECTORY = "$defaultstore" -a -d "$ucddefaultstore" -a ! -d "$defaultstore" ; then
+AC_CACHE_CHECK(If we should copy the old persistent directory, ac_cv_user_prompt_COPY_PERSISTENT_FILES,
+[
+AC_PROMPT_USER_NO_DEFINE(ac_cv_user_prompt_COPY_PERSISTENT_FILES,[
+
+*** Copying old ucd-snmp persistent files to net-snmp persistent directory:
+
+ Would you like to copy the older ucd-snmp persistent files
+into your new net-snmp persistent file path? This will functionally
+save all your ucd-snmp data and let it be used within the net-snmp
+tools. This will only be done once when you run make install. If you
+wish to do this, enter "yes" at the prompt.
+ Providing the --with-copy-persistent-files=\"no\" (or \"yes\")
+parameters to ./configure will avoid this prompt.
+
+Copy ucd-snmp data into the net-snmp data directory],"yes")
+])
+else
+ac_cv_user_prompt_COPY_PERSISTENT_FILES="no"
+fi
+COPY_PERSISTENT_FILES="$ac_cv_user_prompt_COPY_PERSISTENT_FILES"
+AC_SUBST(COPY_PERSISTENT_FILES)
+
+AC_SUBST(DLLIBS)
+
+AC_CONFIG_FILES([Makefile:Makefile.top:Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend])
+AC_CONFIG_FILES([apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend])
+AC_CONFIG_FILES([apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend])
+AC_CONFIG_FILES([agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend])
+AC_CONFIG_FILES([agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend])
+AC_CONFIG_FILES([agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend])
+AC_CONFIG_FILES([local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([testing/Makefile:Makefile.top:testing/Makefile.in])
+AC_CONFIG_FILES([man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([net-snmp-config:net-snmp-config.in],
+ [chmod +x net-snmp-config])
+
+AC_CONFIG_COMMANDS([default], echo timestamp > stamp-h)
+
+#
+# protect PACKAGE_* variables
+#
+AH_VERBATIM([PACKAGE_BUGREPORT],[/* Define to the address where bug reports for this package should be sent. */
+#ifndef PACKAGE_BUGREPORT
+#undef PACKAGE_BUGREPORT
+#endif])
+AH_VERBATIM([PACKAGE_NAME],[/* Define to the full name of this package. */
+#ifndef PACKAGE_NAME
+#undef PACKAGE_NAME
+#endif])
+AH_VERBATIM([PACKAGE_STRING],[/* Define to the full name and version of this package. */
+#ifndef PACKAGE_STRING
+#undef PACKAGE_STRING
+#endif])
+AH_VERBATIM([PACKAGE_TARNAME],[/* Define to the one symbol short name of this package. */
+#ifndef PACKAGE_TARNAME
+#undef PACKAGE_TARNAME
+#endif])
+AH_VERBATIM([PACKAGE_VERSION],[/* Define to the version of this package. */
+#ifndef PACKAGE_VERSION
+#undef PACKAGE_VERSION
+#endif])
+
+AC_OUTPUT
+
+AC_MSG_CACHE_DISPLAY()
+# Local Variables:
+# mode: Autoconf
+# comment-start: "#"
+# End: