acinclude.m4
来自「Ubuntu packages of security software。 相」· M4 代码 · 共 320 行
M4
320 行
dnldnl Check for 4.4 BSD sa_len member in sockaddr structdnldnl usage: AC_DNET_SOCKADDR_SA_LENdnl results: HAVE_SOCKADDR_SA_LEN (defined)dnlAC_DEFUN(AC_DNET_SOCKADDR_SA_LEN, [AC_MSG_CHECKING(for sa_len in sockaddr struct) AC_CACHE_VAL(ac_cv_dnet_sockaddr_has_sa_len, AC_TRY_COMPILE([# ifndef _SOCKADDR_LEN# define _SOCKADDR_LEN 1 # endif# include <sys/types.h># include <sys/socket.h>], [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], ac_cv_dnet_sockaddr_has_sa_len=yes, ac_cv_dnet_sockaddr_has_sa_len=no)) AC_MSG_RESULT($ac_cv_dnet_sockaddr_has_sa_len) if test $ac_cv_dnet_sockaddr_has_sa_len = yes ; then AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr struct has sa_len.]) fi])dnldnl Check for sockaddr_in6 struct in <netinet/in.h>dnldnl usage: AC_DNET_SOCKADDR_IN6dnl results: HAVE_SOCKADDR_IN6dnlAC_DEFUN(AC_DNET_SOCKADDR_IN6, [AC_MSG_CHECKING(for sockaddr_in6 struct in <netinet/in.h>) AC_CACHE_VAL(ac_cv_dnet_netinet_in_h_has_sockaddr_in6, AC_TRY_COMPILE([# include <sys/types.h># include <sys/socket.h># include <netinet/in.h>], [struct sockaddr_in6 sin6; sin6.sin6_family = AF_INET6;], ac_cv_dnet_netinet_in_h_has_sockaddr_in6=yes, ac_cv_dnet_netinet_in_h_has_sockaddr_in6=no)) AC_MSG_RESULT($ac_cv_dnet_netinet_in_h_has_sockaddr_in6) if test $ac_cv_dnet_netinet_in_h_has_sockaddr_in6 = yes ; then AC_DEFINE(HAVE_SOCKADDR_IN6, 1, [Define if <netinet/in.h> has sockaddr_in6 struct.]) fi])dnldnl Check for arp_dev member in arpreq structdnldnl usage: AC_DNET_ARPREQ_ARP_DEVdnl results: HAVE_ARPREQ_ARP_DEV (defined)dnlAC_DEFUN(AC_DNET_ARPREQ_ARP_DEV, [AC_MSG_CHECKING(for arp_dev in arpreq struct) AC_CACHE_VAL(ac_cv_dnet_arpreq_has_arp_dev, AC_TRY_COMPILE([# include <sys/types.h># include <sys/socket.h># include <net/if_arp.h>], [void *p = ((struct arpreq *)0)->arp_dev], ac_cv_dnet_arpreq_has_arp_dev=yes, ac_cv_dnet_arpreq_has_arp_dev=no)) AC_MSG_RESULT($ac_cv_dnet_arpreq_has_arp_dev) if test $ac_cv_dnet_arpreq_has_arp_dev = yes ; then AC_DEFINE(HAVE_ARPREQ_ARP_DEV, 1, [Define if arpreq struct has arp_dev.]) fi])dnldnl Check for rt_msghdr struct in <net/route.h>dnldnl usage: AC_DNET_ROUTE_RT_MSGHDRdnl results: HAVE_ROUTE_RT_MSGHDRdnlAC_DEFUN(AC_DNET_ROUTE_RT_MSGHDR, [AC_MSG_CHECKING(for rt_msghdr struct in <net/route.h>) AC_CACHE_VAL(ac_cv_dnet_route_h_has_rt_msghdr, AC_TRY_COMPILE([# include <sys/types.h># include <sys/socket.h># include <net/if.h># include <net/route.h>], [struct rt_msghdr rtm; rtm.rtm_msglen = 0;], ac_cv_dnet_route_h_has_rt_msghdr=yes, ac_cv_dnet_route_h_has_rt_msghdr=no)) AC_MSG_RESULT($ac_cv_dnet_route_h_has_rt_msghdr) if test $ac_cv_dnet_route_h_has_rt_msghdr = yes ; then AC_DEFINE(HAVE_ROUTE_RT_MSGHDR, 1, [Define if <net/route.h> has rt_msghdr struct.]) fi])dnldnl Check for the Berkeley Packet Filterdnldnl usage: AC_DNET_BSD_BPFdnl results: HAVE_BSD_BPFdnlAC_DEFUN(AC_DNET_BSD_BPF, [AC_MSG_CHECKING(for Berkeley Packet Filter) AC_CACHE_VAL(ac_cv_dnet_bsd_bpf, if test -c /dev/bpf0 ; then ac_cv_dnet_bsd_bpf=yes else ac_cv_dnet_bsd_bpf=no fi) AC_MSG_RESULT($ac_cv_dnet_bsd_bpf) if test $ac_cv_dnet_bsd_bpf = yes ; then AC_DEFINE(HAVE_BSD_BPF, 1, [Define if you have the Berkeley Packet Filter.]) fi])dnldnl Check for the Linux /proc filesystemdnldnl usage: AC_DNET_LINUX_PROCFSdnl results: HAVE_LINUX_PROCFSdnlAC_DEFUN(AC_DNET_LINUX_PROCFS, [AC_MSG_CHECKING(for Linux proc filesystem) AC_CACHE_VAL(ac_cv_dnet_linux_procfs, if test "x`cat /proc/sys/kernel/ostype 2>&-`" = "xLinux" ; then ac_cv_dnet_linux_procfs=yes else ac_cv_dnet_linux_procfs=no fi) AC_MSG_RESULT($ac_cv_dnet_linux_procfs) if test $ac_cv_dnet_linux_procfs = yes ; then AC_DEFINE(HAVE_LINUX_PROCFS, 1, [Define if you have the Linux /proc filesystem.]) fi])dnldnl Check for Linux PF_PACKET socketsdnldnl usage: AC_DNET_LINUX_PF_PACKETdnl results: HAVE_LINUX_PF_PACKETdnlAC_DEFUN(AC_DNET_LINUX_PF_PACKET, [AC_MSG_CHECKING(for Linux PF_PACKET sockets) AC_CACHE_VAL(ac_cv_dnet_linux_pf_packet, if test -f /usr/include/netpacket/packet.h ; then ac_cv_dnet_linux_pf_packet=yes else ac_cv_dnet_linux_pf_packet=no fi) AC_MSG_RESULT($ac_cv_dnet_linux_pf_packet) if test $ac_cv_dnet_linux_pf_packet = yes ; then AC_DEFINE(HAVE_LINUX_PF_PACKET, 1, [Define if you have Linux PF_PACKET sockets.]) fi])dnldnl Check for SNMP MIB2 STREAMS (Solaris only?)dnldnl usage: AC_DNET_STREAMS_MIB2dnl results: HAVE_STREAMS_MIB2dnlAC_DEFUN(AC_DNET_STREAMS_MIB2, [AC_MSG_CHECKING(for SNMP MIB2 STREAMS) AC_CACHE_VAL(ac_cv_dnet_streams_mib2, if test -f /usr/include/inet/mib2.h -a -c /dev/ip ; then ac_cv_dnet_streams_mib2=yes else ac_cv_dnet_streams_mib2=no fi) AC_MSG_RESULT($ac_cv_dnet_streams_mib2) if test $ac_cv_dnet_streams_mib2 = yes ; then AC_DEFINE(HAVE_STREAMS_MIB2, 1, [Define if you have SNMP MIB2 STREAMS.]) fi])dnldnl Check for route(7) STREAMS (UnixWare only?)dnldnl usage: AC_DNET_STREAMS_ROUTEdnl results: HAVE_STREAMS_ROUTEdnlAC_DEFUN(AC_DNET_STREAMS_ROUTE, [AC_MSG_CHECKING(for route(7) STREAMS) AC_CACHE_VAL(ac_cv_dnet_streams_route, if grep RTSTR_SEND /usr/include/net/route.h >/dev/null 2>&1 ; then ac_cv_dnet_streams_route=yes else ac_cv_dnet_streams_route=no fi) AC_MSG_RESULT($ac_cv_dnet_streams_route) if test $ac_cv_dnet_streams_route = yes ; then AC_DEFINE(HAVE_STREAMS_ROUTE, 1, [Define if you have route(7) STREAMS.]) fi])dnldnl Check for arp(7) ioctlsdnldnl usage: AC_DNET_IOCTL_ARPdnl results: HAVE_IOCTL_ARPdnlAC_DEFUN(AC_DNET_IOCTL_ARP, [AC_MSG_CHECKING(for arp(7) ioctls) AC_CACHE_VAL(ac_cv_dnet_ioctl_arp, AC_EGREP_CPP(werd, [# include <sys/types.h># define BSD_COMP# include <sys/ioctl.h># ifdef SIOCGARP werd# endif], ac_cv_dnet_ioctl_arp=yes, ac_cv_dnet_ioctl_arp=no)) case "$host_os" in irix*) ac_cv_dnet_ioctl_arp=no ;; esac AC_MSG_RESULT($ac_cv_dnet_ioctl_arp) if test $ac_cv_dnet_ioctl_arp = yes ; then AC_DEFINE(HAVE_IOCTL_ARP, 1, [Define if you have arp(7) ioctls.]) fi])dnldnl Check for raw IP sockets ip_{len,off} host byte orderingdnldnl usage: AC_DNET_RAWIP_HOST_OFFLENdnl results: HAVE_RAWIP_HOST_OFFLENdnlAC_DEFUN(AC_DNET_RAWIP_HOST_OFFLEN, [AC_MSG_CHECKING([for raw IP sockets ip_{len,off} host byte ordering]) AC_CACHE_VAL(ac_cv_dnet_rawip_host_offlen, [ case "$host_os" in *openbsd*) ac_cv_dnet_rawip_host_offlen=no ;; *bsd*|*osf*|*unixware*) ac_cv_dnet_rawip_host_offlen=yes ;; *) ac_cv_dnet_rawip_host_offlen=no ;; esac]) AC_MSG_RESULT($ac_cv_dnet_rawip_host_offlen) if test $ac_cv_dnet_rawip_host_offlen = yes ; then AC_DEFINE(HAVE_RAWIP_HOST_OFFLEN, 1, [Define if raw IP sockets require host byte ordering for ip_off, ip_len.]) fi])dnldnl Check for cooked raw IP socketsdnldnl usage: AC_DNET_RAWIP_COOKEDdnl results: HAVE_RAWIP_COOKEDdnlAC_DEFUN(AC_DNET_RAWIP_COOKED, [AC_MSG_CHECKING(for cooked raw IP sockets) AC_CACHE_VAL(ac_cv_dnet_rawip_cooked, [ case "$host_os" in solaris*|irix*) ac_cv_dnet_rawip_cooked=yes ;; *) ac_cv_dnet_rawip_cooked=no ;; esac]) AC_MSG_RESULT($ac_cv_dnet_rawip_cooked) if test $ac_cv_dnet_rawip_cooked = yes ; then AC_DEFINE(HAVE_RAWIP_COOKED, 1, [Define if you have cooked raw IP sockets.]) fi])dnldnl AC_LBL_LIBRARY_NETdnldnl This test is for network applications that need socket() anddnl gethostbyname() -ish functions. Under Solaris, those applicationsdnl need to link with "-lsocket -lnsl". Under IRIX, they need to linkdnl with "-lnsl" but should *not* link with "-lsocket" becausednl libsocket.a breaks a number of things (for instance:dnl gethostbyname() under IRIX 5.2, and snoop sockets under mostdnl versions of IRIX).dnldnl Unfortunately, many application developers are not aware of this,dnl and mistakenly write tests that cause -lsocket to be used underdnl IRIX. It is also easy to write tests that cause -lnsl to be useddnl under operating systems where neither are necessary (or useful),dnl such as SunOS 4.1.4, which uses -lnsl for TLI.dnldnl This test exists so that every application developer does not testdnl this in a different, and subtly broken fashion.dnl It has been argued that this test should be broken up into twodnl seperate tests, one for the resolver libraries, and one for thednl libraries necessary for using Sockets API. Unfortunately, the twodnl are carefully intertwined and allowing the autoconf user to usednl them independantly potentially results in unfortunate orderingdnl dependancies -- as such, such component macros would have todnl carefully use indirection and be aware if the other components werednl executed. Since other autoconf macros do not go to this trouble,dnl and almost no applications use sockets without the resolver, thisdnl complexity has not been implemented.dnldnl The check for libresolv is in case you are attempting to linkdnl statically and happen to have a libresolv.a lying around (and nodnl libnsl.a).dnlAC_DEFUN(AC_LBL_LIBRARY_NET, [ # Most operating systems have gethostbyname() in the default searched # libraries (i.e. libc): AC_CHECK_FUNC(gethostbyname, , # Some OSes (eg. Solaris) place it in libnsl: AC_CHECK_LIB(nsl, gethostbyname, , # Some strange OSes (SINIX) have it in libsocket: AC_CHECK_LIB(socket, gethostbyname, , # Unfortunately libsocket sometimes depends on libnsl. # AC_CHECK_LIB's API is essentially broken so the # following ugliness is necessary: AC_CHECK_LIB(socket, gethostbyname, LIBS="-lsocket -lnsl $LIBS", AC_CHECK_LIB(resolv, gethostbyname), -lnsl)))) AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) # DLPI needs putmsg under HPUX so test for -lstr while we're at it AC_CHECK_LIB(str, putmsg) ])
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?