📄 configure.in
字号:
echo "If you are running Linux and Net-SNMP v 5.0.8 you may have " echo -n "to apply this patch: " echo "http://sf.net/tracker/index.php?func=detail&aid=708409&group_id=12694&atid=112694" echo "" echo "For Linux and Net-SNMP v 5.0.9 the patch is:" echo "http://sourceforge.net/tracker/index.php?func=detail&aid=905573&group_id=12694&atid=456380" echo "" echo "If you don't know how to resolve the problem and do not want to " echo "see this message again, run ./configure --without-snmp " echo "-------------------------------------------------------------" snmpd_valid="no" fi AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) echo "------------------------------------------------------------- " echo "Unable to start snmpd. This is the snmpd log file: " echo cat conftestsnmp.log echo "" echo "If you don't know how to resolve the problem and do not want to " echo "see this message again, run ./configure --without-snmp " echo "------------------------------------------------------------- " fifioldCPPFLAGS=${CPPFLAGS}while test "${net_snmp_found}" = "true"; do NETSNMPCFLAGS=`net-snmp-config --cflags` # Darwin 7.0.0 / OS X 10.3 on ppc gives ppc and i386 arch flags which # the default compiler cannot compile. XR_CHECK_CFLAG(${NETSNMPCFLAGS}, snmpd_flags_valid=yes, snmpd_flags_valid=no) if test "${snmpd_flags_valid}" = "no" ; then echo "------------------------------------------------------------- " echo "'net-snmp-config --cflags' gave invalid cflags! " echo "------------------------------------------------------------- " snmpd_valid=no break fi CPPFLAGS=${NETSNMPCFLAGS} AC_CHECK_HEADERS([net-snmp/agent/net-snmp-agent-includes.h], net_snmp_agent_includes_bug=no, net_snmp_agent_includes_bug=yes, [ #include <net-snmp/net-snmp-config.h> #include <net-snmp/net-snmp-includes.h> ] ) if test "${net_snmp_agent_includes_bug}" = "yes" ; then AC_MSG_WARN(File <net-snmp/agent/net-snmp-agent-includes.h> does not appear usable) snmpd_valid=no break fi AC_CHECK_HEADERS([net-snmp/library/container.h], net_snmp_container_bug=no, net_snmp_container_bug=yes, [ #include <net-snmp/net-snmp-config.h> #include <net-snmp/net-snmp-includes.h> #include <net-snmp/agent/net-snmp-agent-includes.h> ] ) if test "${net_snmp_container_bug}" = "yes" ; then AC_MSG_WARN(File <net-snmp/library/container.h> does not appear usable) snmpd_valid=no break fi breakdoneCPPFLAGS=${oldCPPFLAGS}if test "${snmpd_valid}" = "yes" ; then MIBS="mibs"else AC_MSG_WARN(XORP MIBs will not be built) MIBS=""fiAC_SUBST(MIBS)dnl ---------------------------------------------------------------------------dnl Check for librariesdnl ---------------------------------------------------------------------------dnl XXX Into C to avoid name mangling problems when checking librariesAC_LANG_CAC_SEARCH_LIBS(socket, socket)AC_SEARCH_LIBS(inet_addr, nsl)AC_SEARCH_LIBS(dlopen, dl)AC_SEARCH_LIBS(hstrerror, resolv)dnldnl Select the optional CLI-related curses librarydnlCLI_CURSES_LIB=""AC_CHECK_LIB(curses, tigetstr, [CLI_CURSES_LIB="-lcurses"], [ AC_CHECK_LIB(ncurses, tigetstr, [CLI_CURSES_LIB="-lncurses"], [ AC_CHECK_LIB(curses, tgetstr, [CLI_CURSES_LIB="-lcurses"]) ])])AC_SUBST(CLI_CURSES_LIB)dnl Replace main with a function in -lc:dnl AC_CHECK_LIB(c, main)dnl XXX: XR_WITH_DMALLOC_DIR must be after -lc otherwise it won't have efectdnl XXX: XR_WITH_DMALLOC_DIR is a local modified version of AM_WITH_DMALLOCXR_WITH_DMALLOC_DIRdnl Replace main with a function in -lutil:dnl AC_CHECK_LIB(util, main)dnl AC_CHECK_LIB(crypt, crypt)dnl -- Back to C++ now we've finished checking for librariesAC_LANG_CPLUSPLUSdnl ---------------------------------------------------------------------------dnl Check for header files and typesdnl ---------------------------------------------------------------------------AC_HEADER_STDCdnldnl Check for misc. header filesdnlAC_CHECK_HEADERS(sys/cdefs.h sys/ioctl.h sys/sockio.h sys/sysctl.h sys/filio.h net/if_types.h net/if_var.h net/if_dl.h netinet/in_var.h ifaddrs.h netinet/pim.h linux/rtnetlink.h)dnldnl XXX ether_addr is defined in one of the following header files:dnl sys/ethernet.h, net/ethernet.h, net/if_ether.h or netinet/if_ether.hdnlAC_CHECK_HEADERS(sys/ethernet.h net/ethernet.h net/if_ether.h netinet/if_ether.h)if test "${ac_cv_header_sys_ethernet_h}" = "yes"then xr_cv_ether_header="sys/ethernet.h"fiif test "${ac_cv_header_net_ethernet_h}" = "yes"then xr_cv_ether_header="net/ethernet.h"fiif test "${ac_cv_header_net_if_ether_h}" = "yes"then xr_cv_ether_header="net/if_ether.h"fiif test "${ac_cv_header_netinet_if_ether_h}" = "yes"then xr_cv_ether_header="netinet/if_ether.h"fidnldnl Check for ether_ntoadnlAC_CACHE_CHECK(for ether_ntoa in $xr_cv_ether_header, xr_cv_have_ether_ntoa, AC_EGREP_HEADER(ether_ntoa, $xr_cv_ether_header, xr_cv_have_ether_ntoa=yes, xr_cv_have_ether_ntoa=no))if test "${xr_cv_have_ether_ntoa}" = "no" ; then AC_DEFINE(NEED_ETHER_NTOA, 1, [Define to 1 if the C library is missing ether_ntoa(3)])fidnldnl Check for ether_atondnlAC_CACHE_CHECK(for ether_aton in $xr_cv_ether_header, xr_cv_have_ether_aton, AC_EGREP_HEADER(ether_aton, $xr_cv_ether_header, xr_cv_have_ether_aton=yes, xr_cv_have_ether_aton=no))if test "${xr_cv_have_ether_aton}" = "no" ; then AC_DEFINE(NEED_ETHER_ATON, 1, [Define to 1 if the C library is missing ether_aton(3)])fidnl ---------------------------------------------------------------------------dnl Check for standard size types. The defaults are only valid on somednl systems so we hope that <inttypes.h> exists when they're wrong.dnl ---------------------------------------------------------------------------AC_CHECK_HEADERS(stdint.h inttypes.h)dnl Some systems have these in <stdint.h>, just to be difficult...AC_CACHE_CHECK(for uint8_t in <stdint.h>, xorp_cv_uint8_t_in_stdint_h, AC_EGREP_HEADER(uint8_t, stdint.h, xorp_cv_uint8_t_in_stdint_h=yes, xorp_cv_uint8_t_in_stdint_h=no))if test "${xorp_cv_uint8_t_in_stdint_h}" = "no"then AC_CHECK_TYPE(uint8_t, unsigned char)fiAC_CACHE_CHECK(for uint16_t in <stdint.h>, xorp_cv_uint16_t_in_stdint_h, AC_EGREP_HEADER(uint16_t, stdint.h, xorp_cv_uint16_t_in_stdint_h=yes, xorp_cv_uint16_t_in_stdint_h=no))if test "${xorp_cv_uint16_t_in_stdint_h}" = "no"then AC_CHECK_TYPE(uint16_t, unsigned short)fiAC_CACHE_CHECK(for uint32_t in <stdint.h>, xorp_cv_uint32_t_in_stdint_h, AC_EGREP_HEADER(uint32_t, stdint.h, xorp_cv_uint32_t_in_stdint_h=yes, xorp_cv_uint32_t_in_stdint_h=no))if test "${xorp_cv_uint32_t_in_stdint_h}" = "no"then AC_CHECK_TYPE(uint32_t, unsigned int)fidnl ----------------------------dnl TODO: the following two macros cause autoconf to complain.dnl ----------------------------AC_C_BIGENDIANAC_C_CHAR_UNSIGNEDdnl ---------------------------------------------------------------------------dnl Check for typedefs and structuresdnl ---------------------------------------------------------------------------dnl ---------------------------------------------------------------------------dnl Check for typedefs and structuresdnl ---------------------------------------------------------------------------AC_STRUCT_TMXR_TYPE_SIG_TAC_TYPE_PID_TAC_TYPE_SIZE_TAC_TYPE_SIGNALdnl ----------------------------dnl Check for socklen_tdnl ----------------------------AC_MSG_CHECKING(whether socklen_t is defined)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[socklen_t socklen;],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define to 1 if you have socklen_t])], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for sa_len in sockaddrdnl ----------------------------AC_MSG_CHECKING(whether struct sockaddr has field sa_len)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[static struct sockaddr sockaddr;int sa_len = sizeof(sockaddr.sa_len);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SA_LEN, 1, [Define to 1 if your struct sockaddr has field sa_len])], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for sin_len in sockaddr_indnl ----------------------------AC_MSG_CHECKING(whether struct sockaddr_in has field sin_len)AC_TRY_COMPILE([#include <sys/types.h>#include <netinet/in.h>],[static struct sockaddr_in sockaddr_in;int sin_len = sizeof(sockaddr_in.sin_len);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SIN_LEN, 1, [Define to 1 if your struct sockaddr_in has field sin_len])], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for sun_len in sockaddr_undnl ----------------------------AC_MSG_CHECKING(whether struct sockaddr_un has field sun_len)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/un.h>],[static struct sockaddr_un sockaddr_un;int sun_len = sizeof(sockaddr_un.sun_len);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SUN_LEN, 1, [Define to 1 if your struct sockaddr_un has field sun_len])], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for ifr_ifindex in ifreqdnl ----------------------------AC_MSG_CHECKING(whether struct ifreq has field ifr_ifindex)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <net/if.h>],[static struct ifreq ifreq;int i = sizeof(ifreq.ifr_ifindex);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_IFR_IFINDEX, 1, [Define to 1 if your struct ifreq has field ifr_ifindex])], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for mreqndnl ----------------------------AC_MSG_CHECKING(whether struct ip_mreqn is defined)AC_EGREP_HEADER(ip_mreqn, netinet/in.h, [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ST_IP_MREQN, 1, [Define to 1 if you have struct ip_mreqn]) ], AC_MSG_RESULT(no))dnl ----------------------------dnl Check for advanced multicast API supportdnl ----------------------------AC_MSG_CHECKING(whether struct mfcctl2 is defined)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip_mroute_adv_api_freebsd_4_5.h"],[static struct mfcctl2 mfcctl2;],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MFCCTL2, 1, [Define to 1 if you have struct mfcctl2])], AC_MSG_RESULT(no))AC_MSG_CHECKING(whether struct mfcctl2 has field mfcc_flags)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip_mroute_adv_api_freebsd_4_5.h"],[static struct mfcctl2 mfcctl2;int len = sizeof(mfcctl2.mfcc_flags);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MFCC_FLAGS, 1, [Define to 1 if your struct mfcctl2 has field mfcc_flags])], AC_MSG_RESULT(no))AC_MSG_CHECKING(whether struct mfcctl2 has field mfcc_rp)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip_mroute_adv_api_freebsd_4_5.h"],[static struct mfcctl2 mfcctl2;int len = sizeof(mfcctl2.mfcc_rp);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MFCC_RP, 1, [Define to 1 if your struct mfcctl2 has field mfcc_rp])], AC_MSG_RESULT(no))AC_MSG_CHECKING(whether struct mf6cctl2 is defined)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip6_mroute_adv_api_freebsd_4_5.h"],[static struct mf6cctl2 mf6cctl2;],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MF6CCTL2, 1, [Define to 1 if you have struct mf6ctl2])], AC_MSG_RESULT(no))AC_MSG_CHECKING(whether struct mf6cctl2 has field mf6cc_flags)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip6_mroute_adv_api_freebsd_4_5.h"],[static struct mf6cctl2 mf6cctl2;int len = sizeof(mf6cctl2.mf6cc_flags);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MF6CC_FLAGS, 1, [Define to 1 if your struct mf6ctl2 has field mf6cc_flags])], AC_MSG_RESULT(no))AC_MSG_CHECKING(whether struct mf6cctl2 has field mf6cc_rp)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/time.h>#include <sys/socket.h>#include <net/route.h>#include <netinet/in.h>#include "mrt/include/netinet/ip6_mroute_adv_api_freebsd_4_5.h"],[static struct mf6cctl2 mf6cctl2;int len = sizeof(mf6cctl2.mf6cc_rp);],[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MF6CC_RP, 1, [Define to 1 if your struct mf6ctl2 has field mf6cc_rp])], AC_MSG_RESULT(no))dnl ---------------------------------------------------------------------------dnl Check for library functionsdnl ---------------------------------------------------------------------------AC_CHECK_FUNCS(strerror)AC_CHECK_FUNCS(getifaddrs)AC_CHECK_FUNCS(if_nametoindex)AC_CHECK_FUNCS(if_indextoname)dnl ---------------------------------------------------------------------------dnl Check for system servicesdnl ---------------------------------------------------------------------------dnl-----------------------------dnl Check for IPv6dnl-----------------------------ipv6=noAC_MSG_CHECKING(whether the system has IPv6 stack)if test "${enable_ipv6}" = "no"; then AC_MSG_RESULT(disabled)else AC_LANG_SAVE AC_LANG_C AC_TRY_RUN([ /* AF_INET6 available check */#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>main(){ if (socket(AF_INET6, SOCK_STREAM, 0) < 0) return (1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -