📄 configure.in
字号:
*) # Turn off the pointlessly noisy warnings. STD_CWARNINGS="+w1 +W 474,530" ;; esac CCOPT="$CCOPT -Ae -z" LIBS="-Wl,+vnocompatwarnings $LIBS"MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>&1 | awk '"'"'BEGIN {colon=0; rec="";} { for (i = 0 ; i < NF; i++) { if (colon && a[$i]) continue; if ($i == "\\") continue; if (!colon) { rec = $i continue; } if ($i == ":") { rec = rec " :" colon = 1 continue; } if (length(rec $i) > 76) { print rec " \\"; rec = "\t" $i; a[$i] = 1; } else { rec = rec " " $i a[$i] = 1; } } } END {print rec}'"'"' >>$TMP' MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP' ;; *-sgi-irix*) STD_CWARNINGS="-fullwarn -woff 1209" # # Silence more than 250 instances of # "prototyped function redeclared without prototype" # and 11 instances of # "variable ... was set but never used" # from lib/dns/sec/openssl. # IRIX_DNSSEC_WARNINGS_HACK="-woff 1692,1552" ;; *-solaris*) MKDEPCFLAGS="-xM" ;; *-UnixWare*) CC="$CC -w" ;; esacfi## _GNU_SOURCE is needed to access the fd_bits field of struct fd_set, which# is supposed to be opaque.#case $host in *linux*) STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE" ;;esacAC_SUBST(MKDEPCC)AC_SUBST(MKDEPCFLAGS)AC_SUBST(MKDEPPROG)AC_SUBST(IRIX_DNSSEC_WARNINGS_HACK)## NLS#AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)## -lxnet buys us one big porting headache... standards, gotta love 'em.## AC_CHECK_LIB(xnet, socket, ,# AC_CHECK_LIB(socket, socket)# AC_CHECK_LIB(nsl, inet_ntoa)# )## Use this for now, instead:#case "$host" in mips-sgi-irix*) ;; *) AC_CHECK_LIB(d4r, gethostbyname_r) AC_CHECK_LIB(socket, socket) AC_CHECK_LIB(nsl, inet_ntoa) ;;esac## Purify support#AC_MSG_CHECKING(whether to use purify)AC_ARG_WITH(purify, [ --with-purify[=PATH] use Rational purify], use_purify="$withval", use_purify="no")case "$use_purify" in no) ;; yes) AC_PATH_PROG(purify_path, purify, purify) ;; *) purify_path="$use_purify" ;;esaccase "$use_purify" in no) AC_MSG_RESULT(no) PURIFY="" ;; *) if test -f $purify_path || test $purify_path = purify; then AC_MSG_RESULT($purify_path) PURIFYFLAGS="`echo $PURIFYOPTIONS`" PURIFY="$purify_path $PURIFYFLAGS" else AC_MSG_ERROR([$purify_path not found.Please choose the proper path with the following command: configure --with-purify=PATH]) fi ;;esacAC_SUBST(PURIFY)## GNU libtool support#AC_ARG_WITH(libtool, [ --with-libtool use GNU libtool (following indented options supported)], use_libtool="$withval", use_libtool="no")case $use_libtool in yes) AM_PROG_LIBTOOL O=lo A=la LIBTOOL_MKDEP_SED='s;\.o;\.lo;' LIBTOOL_MODE_COMPILE='--mode=compile' LIBTOOL_MODE_INSTALL='--mode=install' LIBTOOL_MODE_LINK='--mode=link' ;; *) O=o A=a LIBTOOL= AC_SUBST(LIBTOOL) LIBTOOL_MKDEP_SED= LIBTOOL_MODE_COMPILE= LIBTOOL_MODE_INSTALL= LIBTOOL_MODE_LINK= ;;esac## File name extension for static archive files, for those few places# where they are treated differently from dynamic ones.#SA=aAC_SUBST(O)AC_SUBST(A)AC_SUBST(SA)AC_SUBST(LIBTOOL_MKDEP_SED)AC_SUBST(LIBTOOL_MODE_COMPILE)AC_SUBST(LIBTOOL_MODE_INSTALL)AC_SUBST(LIBTOOL_MODE_LINK)## Here begins a very long section to determine the system's networking# capabilities. The order of the tests is signficant.### IPv6#AC_ARG_ENABLE(ipv6, [ --enable-ipv6 use IPv6 [default=autodetect]])case "$enable_ipv6" in yes|''|autodetect) AC_DEFINE(WANT_IPV6) ;; no) ;;esac## We do the IPv6 compilation checking after libtool so that we can put# the right suffix on the files.#AC_MSG_CHECKING(for IPv6 structures)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>],[struct sockaddr_in6 sin6; return (0);], [AC_MSG_RESULT(yes) found_ipv6=yes], [AC_MSG_RESULT(no) found_ipv6=no])## See whether IPv6 support is provided via a Kame add-on.# This is done before other IPv6 linking tests to LIBS is properly set.#AC_MSG_CHECKING(for Kame IPv6 support)AC_ARG_WITH(kame, [ --with-kame[=PATH] use Kame IPv6 [default path /usr/local/v6]], use_kame="$withval", use_kame="no")case "$use_kame" in no) ;; yes) kame_path=/usr/local/v6 ;; *) kame_path="$use_kame" ;;esaccase "$use_kame" in no) AC_MSG_RESULT(no) ;; *) if test -f $kame_path/lib/libinet6.a; then AC_MSG_RESULT($kame_path/lib/libinet6.a) LIBS="-L$kame_path/lib -linet6 $LIBS" else AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.Please choose the proper path with the following command: configure --with-kame=PATH]) fi ;;esac## Whether netinet6/in6.h is needed has to be defined in isc/platform.h.# Including it on Kame-using platforms is very bad, though, because# Kame uses #error against direct inclusion. So include it on only# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.# This is done before the in6_pktinfo check because that's what# netinet6/in6.h is needed for.#changequote({, })case "$host" in*-bsdi4.[01]*) ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1" isc_netinet6in6_hack="#include <netinet6/in6.h>" ;;*) ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H" isc_netinet6in6_hack="" ;;esacchangequote([, ])## This is similar to the netinet6/in6.h issue.#case "$host" in*-UnixWare*) ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1" ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1" isc_netinetin6_hack="#include <netinet/in6.h>" ;;*) ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H" ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR" isc_netinetin6_hack="" ;;esac## Now delve deeper into the suitability of the IPv6 support.#case "$found_ipv6" in yes) HAS_INET6_STRUCTS="#define HAS_INET6_STRUCTS 1" AC_MSG_CHECKING(for in6_addr) AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>$isc_netinetin6_hack$isc_netinet6in6_hack],[struct in6_addr in6; return (0);], [AC_MSG_RESULT(yes) HAS_IN_ADDR6="#undef HAS_IN_ADDR6" isc_in_addr6_hack=""], [AC_MSG_RESULT(no) HAS_IN_ADDR6="#define HAS_IN_ADDR6 1" isc_in_addr6_hack="#define in6_addr in_addr6"]) AC_MSG_CHECKING(for in6addr_any) AC_TRY_LINK([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>$isc_netinetin6_hack$isc_netinet6in6_hack$isc_in_addr6_hack], [struct in6_addr in6; in6 = in6addr_any; return (0);], [AC_MSG_RESULT(yes) NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"], [AC_MSG_RESULT(no) NEED_IN6ADDR_ANY="#define NEED_IN6ADDR_ANY 1"]) AC_MSG_CHECKING(for sin6_scope_id in struct sockaddr_in6) AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>$isc_netinetin6_hack$isc_netinet6in6_hack], [struct sockaddr_in6 xyzzy; xyzzy.sin6_scope_id = 0; return (0);], [AC_MSG_RESULT(yes) result="#define HAVE_SIN6_SCOPE_ID 1"], [AC_MSG_RESULT(no) result="#undef HAVE_SIN6_SCOPE_ID"]) HAVE_SIN6_SCOPE_ID="$result" AC_MSG_CHECKING(for in6_pktinfo) AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>$isc_netinetin6_hack$isc_netinet6in6_hack], [struct in6_pktinfo xyzzy; return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"], [AC_MSG_RESULT(no -- disabling runtime ipv6 support) ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"]) AC_MSG_CHECKING(for sockaddr_storage) AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>$isc_netinetin6_hack$isc_netinet6in6_hack], [struct sockaddr_storage xyzzy; return (0);], [AC_MSG_RESULT(yes) HAVE_SOCKADDR_STORAGE="#define HAVE_SOCKADDR_STORAGE 1"], [AC_MSG_RESULT(no) HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE"]) ;; no) HAS_INET6_STRUCTS="#undef HAS_INET6_STRUCTS" NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY" ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO" HAVE_SIN6_SCOPE_ID="#define HAVE_SIN6_SCOPE_ID 1" HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE" ISC_IPV6_H="ipv6.h" ISC_IPV6_O="ipv6.$O" ISC_ISCIPV6_O="unix/ipv6.$O" ISC_IPV6_C="ipv6.c" ;;esacAC_SUBST(HAS_INET6_STRUCTS)AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H)AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H)AC_SUBST(HAS_IN_ADDR6)AC_SUBST(NEED_IN6ADDR_ANY)AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)AC_SUBST(ISC_IPV6_H)AC_SUBST(ISC_IPV6_O)AC_SUBST(ISC_ISCIPV6_O)AC_SUBST(ISC_IPV6_C)AC_SUBST(HAVE_SIN6_SCOPE_ID)AC_SUBST(HAVE_SOCKADDR_STORAGE)## Check for network functions that are often missing. We do this# after the libtool checking, so we can put the right suffix on# the files. It also needs to come after checking for a Kame add-on,# which provides some (all?) of the desired functions.#AC_MSG_CHECKING([for inet_ntop])AC_TRY_LINK([#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>], [inet_ntop(0, 0, 0, 0); return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"], [AC_MSG_RESULT(no) ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O" ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c" ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"])AC_MSG_CHECKING([for inet_pton])AC_TRY_LINK([#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>], [inet_pton(0, 0, 0); return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"], [AC_MSG_RESULT(no) ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O" ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c" ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"])AC_MSG_CHECKING([for inet_aton])AC_TRY_LINK([#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>], [struct in_addr in; inet_aton(0, &in); return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"], [AC_MSG_RESULT(no) ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O" ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c" ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"])AC_SUBST(ISC_PLATFORM_NEEDNTOP)AC_SUBST(ISC_PLATFORM_NEEDPTON)AC_SUBST(ISC_PLATFORM_NEEDATON)## Look for a 4.4BSD-style sa_len member in struct sockaddr.#case "$host" in *-dec-osf*) # Turn on 4.4BSD style sa_len support. AC_DEFINE(_SOCKADDR_LEN) ;;esacAC_MSG_CHECKING(for sa_len in struct sockaddr)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct sockaddr sa; sa.sa_len = 0; return (0);], [AC_MSG_RESULT(yes) HAVE_SA_LEN="#define HAVE_SA_LEN 1"], [AC_MSG_RESULT(no) HAVE_SA_LEN="#undef HAVE_SA_LEN"])AC_SUBST(HAVE_SA_LEN)# HAVE_MINIMUM_IFREQcase "$host" in *-bsdi[2345]*) have_minimum_ifreq=yes;; *-darwin*) have_minimum_ifreq=yes;; *-freebsd*) have_minimum_ifreq=yes;; *-lynxos*) have_minimum_ifreq=yes;; *-netbsd*) have_minimum_ifreq=yes;; *-next*) have_minimum_ifreq=yes;; *-openbsd*) have_minimum_ifreq=yes;; *-rhapsody*) have_minimum_ifreq=yes;;esaccase "$have_minimum_ifreq" in yes) HAVE_MINIMUM_IFREQ="#define HAVE_MINIMUM_IFREQ 1";; no) HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";; *) HAVE_MINIMUM_IFREQ="#undef HAVE_MINIMUM_IFREQ";;esacAC_SUBST(HAVE_MINIMUM_IFREQ)# PORT_DIRPORT_DIR=port/unknownSOLARIS_BITTYPES="#undef NEED_SOLARIS_BITTYPES"BSD_COMP="#undef BSD_COMP"USE_FIONBIO_IOCTL="#undef USE_FIONBIO_IOCTL"case "$host" in *aix3.2*) PORT_DIR="port/aix32";; *aix4*) PORT_DIR="port/aix4";; *aux3*) PORT_DIR="port/aux3";; *-bsdi2*) PORT_DIR="port/bsdos2";; *-bsdi*) PORT_DIR="port/bsdos";; *-cygwin*) PORT_DIR="port/cygwin";; *-darwin*) PORT_DIR="port/darwin";; *-osf*) PORT_DIR="port/decunix";; *-freebsd*) PORT_DIR="port/freebsd";; *-hpux9*) PORT_DIR="port/hpux9";; *-hpux10*) PORT_DIR="port/hpux10";; *-hpux11*) PORT_DIR="port/hpux";; *-irix*) PORT_DIR="port/irix";; *-linux*) PORT_DIR="port/linux";; *-lynxos*) PORT_DIR="port/lynxos";; *-mpe*) PORT_DIR="port/mpe";; *-netbsd*) PORT_DIR="port/netbsd";; *-next*) PORT_DIR="port/next";; *-openbsd*) PORT_DIR="port/openbsd";; *-qnx*) PORT_DIR="port/qnx";; *-rhapsody*) PORT_DIR="port/rhapsody";; *-solaris2.[[01234]]*) BSD_COMP="#define BSD_COMP 1" SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1" USE_FIONBIO_IOCTL="#define USE_FIONBIO_IOCTL 1" PORT_DIR="port/solaris";; *-solaris2.5*) BSD_COMP="#define BSD_COMP 1" SOLARIS_BITTYPES="#define NEED_SOLARIS_BITTYPES 1" PORT_DIR="port/solaris";; *-solaris2*) BSD_COMP="#define BSD_COMP 1" PORT_DIR="port/solaris";; *-ultrix*) PORT_DIR="port/ultrix";; *-sco-sysv*uw2.0*) PORT_DIR="port/unixware20";; *-sco-sysv*uw2.1.2*) PORT_DIR="port/unixware212";; *-sco-sysv*uw7*) PORT_DIR="port/unixware7";;esacAC_SUBST(BSD_COMP)AC_SUBST(SOLARIS_BITTYPES)AC_SUBST(USE_FIONBIO_IOCTL)AC_SUBST(PORT_DIR)PORT_INCLUDE=${PORT_DIR}/includeAC_SUBST(PORT_INCLUDE)## Look for a 4.4BSD or 4.3BSD struct msghdr#AC_MSG_CHECKING(for struct msghdr flavor)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct msghdr msg; msg.msg_flags = 0; return (0);], [AC_MSG_RESULT(4.4BSD) ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"], [AC_MSG_RESULT(4.3BSD) ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)## Look for in_port_t.#AC_MSG_CHECKING(for type in_port_t)AC_TRY_COMPILE([#include <sys/types.h>#include <netinet/in.h>],[in_port_t port = 25; return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"], [AC_MSG_RESULT(no) ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])AC_SUBST(ISC_PLATFORM_NEEDPORTT)## Check for addrinfo#AC_MSG_CHECKING(for struct addrinfo)AC_TRY_COMPILE([#include <netdb.h>],[struct addrinfo a; return (0);], [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_ADDRINFO)], [AC_MSG_RESULT(no)])AC_MSG_CHECKING(for int sethostent)AC_TRY_COMPILE([#include <netdb.h>],[int i = sethostent(0); return(0);], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])AC_MSG_CHECKING(for int endhostent)AC_TRY_COMPILE([#include <netdb.h>],[int i = endhostent(); return(0);], [AC_MSG_RESULT(yes) ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"], [AC_MSG_RESULT(no) ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])AC_SUBST(ISC_LWRES_ENDHOSTENTINT)AC_MSG_CHECKING(for int setnetent)AC_TRY_COMPILE([#include <netdb.h>],[int i = setnetent(0); return(0);], [AC_MSG_RESULT(yes) ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"], [AC_MSG_RESULT(no) ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])AC_SUBST(ISC_LWRES_SETNETENTINT)AC_MSG_CHECKING(for int endnetent)AC_TRY_COMPILE([#include <netdb.h>],[int i = endnetent(); return(0);], [AC_MSG_RESULT(yes) ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"], [AC_MSG_RESULT(no) ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])AC_SUBST(ISC_LWRES_ENDNETENTINT)AC_MSG_CHECKING(for gethostbyaddr(const void *, size_t, ...))AC_TRY_COMPILE([#include <netdb.h>struct hostent *gethostbyaddr(const void *, size_t, int);],[return(0);], [AC_MSG_RESULT(yes) ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"], [AC_MSG_RESULT(no)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -