configure.ac
来自「OpenVPN -- A Secure tunneling daemon」· AC 代码 · 共 425 行
AC
425 行
dnl OpenVPN -- An application to securely tunnel IP networksdnl over a single UDP port, with support for SSL/TLS-baseddnl session authentication and key exchange,dnl packet encryption, packet authentication, anddnl packet compression.dnldnl Copyright (C) 2002-2003 James Yonan <jim@yonan.net>dnldnl This program is free software; you can redistribute it and/or modifydnl it under the terms of the GNU General Public License as published bydnl the Free Software Foundation; either version 2 of the License, ordnl (at your option) any later version.dnldnl This program is distributed in the hope that it will be useful,dnl but WITHOUT ANY WARRANTY; without even the implied warranty ofdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See thednl GNU General Public License for more details.dnldnl You should have received a copy of the GNU General Public Licensednl along with this program (see the file COPYING included with thisdnl distribution); if not, write to the Free Software Foundation, Inc.,dnl 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAdnl Process this file with autoconf to produce a configure script.AC_PREREQ(2.50)AC_INIT([OpenVPN], [1.4.3], [openvpn-users@lists.sourceforge.net], [openvpn])AM_CONFIG_HEADER(config.h)AC_CONFIG_SRCDIR(syshead.h)AC_ARG_ENABLE(lzo, [ --disable-lzo Do not compile LZO compression support], [LZO="$enableval"], [LZO="yes"])AC_ARG_ENABLE(crypto, [ --disable-crypto Do not compile OpenSSL crypto support], [CRYPTO="$enableval"], [CRYPTO="yes"])AC_ARG_ENABLE(ssl, [ --disable-ssl Do not compile OpenSSL SSL support for TLS-based key exchange], [SSL="$enableval"], [SSL="yes"])AC_ARG_ENABLE(pthread, [ --enable-pthread Compile pthread support for improved SSL/TLS latency], [PTHREAD="$enableval"], [PTHREAD="no"])AC_ARG_ENABLE(strict, [ --enable-strict Enable strict compiler warnings], [STRICT="$enableval"], [STRICT="no"])AC_ARG_ENABLE(mtu-dynamic, [ --enable-mtu-dynamic Enable dynamic MTU support], [DYNAMIC_MTU="$enableval"], [DYNAMIC_MTU="no"])AC_ARG_ENABLE(strict-options, [ --enable-strict-options Enable strict options check between peers], [STRICT_OPTIONS="$enableval"], [STRICT_OPTIONS="no"])AC_ARG_WITH(ssl-headers, [ --with-ssl-headers=DIR Crypto/SSL Include files location], [CS_HDR_DIR="$withval"] [CPPFLAGS="$CPPFLAGS -I$withval"] )AC_ARG_WITH(ssl-lib, [ --with-ssl-lib=DIR Crypto/SSL Library location], [LDFLAGS="$LDFLAGS -L$withval"] )AC_ARG_WITH(lzo-headers, [ --with-lzo-headers=DIR LZO Include files location], [LZO_HDR_DIR="$withval"] [CPPFLAGS="$CPPFLAGS -I$withval"] )AC_ARG_WITH(lzo-lib, [ --with-lzo-lib=DIR LZO Library location], [LDFLAGS="$LDFLAGS -L$withval"] )AC_ARG_WITH(ifconfig-path, [ --with-ifconfig-path=PATH Path to ifconfig tool], [IFCONFIG="$withval"], [AC_PATH_PROG([IFCONFIG], [ifconfig], [ifconfig], [$PATH:/usr/local/sbin:/usr/sbin:/sbin])])AC_DEFINE_UNQUOTED(IFCONFIG_PATH, "$IFCONFIG", [Path to ifconfig tool])AC_ARG_WITH(leak-check, [ --with-leak-check=TYPE Build with memory leak checking, TYPE = dmalloc or ssl], [LEAK="$withval"])dnl Guess host type.AC_CANONICAL_HOSTAC_CANONICAL_SYSTEMAM_INIT_AUTOMAKE(openvpn, [$PACKAGE_VERSION])dnl fix search path, to allow compilers to find syshead.hCPPFLAGS="$CPPFLAGS -I${srcdir}"dnl check target OSopenvpn_target=$targetif test $target_alias; then openvpn_target=$target_aliasfiAC_DEFINE_UNQUOTED(TARGET_ALIAS, "$openvpn_target", [A string representing our target])case "$target" in*linux*) AC_DEFINE(TARGET_LINUX, 1, [Are we running on Linux?]) dnl RH9 SSL headers workaround if test -z $CS_HDR_DIR && test "$CRYPTO" = "yes"; then CPPFLAGS="$CPPFLAGS $(pkg-config --cflags openssl 2>/dev/null)" fi ;;*solaris*) AC_DEFINE(TARGET_SOLARIS, 1, [Are we running on Solaris?]) ;;*openbsd*) AC_DEFINE(TARGET_OPENBSD, 1, [Are we running on OpenBSD?]) ;;*freebsd*) AC_DEFINE(TARGET_FREEBSD, 1, [Are we running on FreeBSD?]) ;;*netbsd*) AC_DEFINE(TARGET_NETBSD, 1, [Are we running NetBSD?]) ;;*darwin*) dnl some Mac OS X tendering (we use vararg macros...) AC_DEFINE(TARGET_DARWIN, 1, [Are we running on Mac OS X?]) CPPFLAGS="$CPPFLAGS -no-cpp-precomp" ;;*mingw*) AC_MSG_RESULT([WARNING: configure support for mingw is incomplete]) AC_MSG_RESULT([WARNING: use makefile.w32 instead]) OPENVPN_ADD_LIBS(-lgdi32) OPENVPN_ADD_LIBS(-lwsock32) ;; esacdnl Checks for programs.AC_PROG_CCAC_PROG_INSTALLAC_PROG_GCC_TRADITIONALdnl Checks for header files.AC_HEADER_STDCdnl Checks for typedefs, structures, and compiler characteristics.AC_C_CONSTAC_C_INLINEAC_C_VOLATILEAC_TYPE_OFF_TAC_TYPE_PID_TAC_TYPE_SIZE_TAC_TYPE_UID_TAC_HEADER_TIMEAX_CPP_VARARG_MACRO_ISOAX_CPP_VARARG_MACRO_GCCdnl Check for more header files.AC_HEADER_SYS_WAITAC_CHECK_HEADERS(sys/time.h sys/socket.h sys/ioctl.h sys/stat.h dnl sys/mman.h fcntl.h sys/file.h stdlib.h stdint.h dnl stdarg.h unistd.h signal.h stdio.h string.h dnl strings.h ctype.h errno.h syslog.h pwd.h grp.h dnl net/if_tun.h net/if.h stropts.h sys/sockio.h dnl netinet/in.h netinet/in_systm.h netinet/ip.h dnl netinet/if_ether.h netinet/tcp.h resolv.h arpa/inet.h dnl netdb.h sys/uio.h linux/if_tun.h linux/sockios.h dnl linux/types.h linux/errqueue.h)AC_CACHE_SAVEdnl check that in_addr_t is definedAC_CHECK_TYPE( [in_addr_t], [], [AC_DEFINE(in_addr_t, uint32_t, [Some systems don't define in_addr_t])], [#include "syshead.h"])dnl check for basic typesAC_CHECK_TYPE( [uint8_t], [], [AC_DEFINE(uint8_t, unsigned char, [8-bit unsigned type])], [#include "syshead.h"])AC_CHECK_TYPE( [uint32_t], [], [AC_DEFINE(uint32_t, unsigned long, [32-bit unsigned type])], [#include "syshead.h"])dnl check for IPv6 typesAC_CHECK_TYPE( [struct tun_pi], [AC_DEFINE(HAVE_TUN_PI, 1, [struct tun_pi needed for IPv6 support])], [], [#include "syshead.h"])AC_CHECK_TYPE( [struct iphdr], [AC_DEFINE(HAVE_IPHDR, 1, [struct iphdr needed for IPv6 support])], [], [#include "syshead.h"])AC_CHECK_TYPE( [struct iovec], [AC_DEFINE(HAVE_IOVEC, 1, [struct iovec needed for IPv6 support])], [], [#include "syshead.h"])dnl check for extended socket error typesAC_CHECK_TYPE( [struct sock_extended_err], [AC_DEFINE(HAVE_SOCK_EXTENDED_ERR, 1, [struct sock_extended_err needed for extended socket error support])], [], [#include "syshead.h"])AC_CHECK_TYPE( [struct msghdr], [AC_DEFINE(HAVE_MSGHDR, 1, [struct msghdr needed for extended socket error support])], [], [#include "syshead.h"])AC_CHECK_TYPE( [struct cmsghdr], [AC_DEFINE(HAVE_CMSGHDR, 1, [struct cmsghdr needed for extended socket error support])], [], [#include "syshead.h"])AC_CHECK_SIZEOF(unsigned int)AC_CHECK_SIZEOF(unsigned long)AC_CACHE_SAVEdnl check for other typesTYPE_SOCKLEN_TAC_TYPE_SIGNALdnl Check for libsocketAC_SEARCH_LIBS(socket, socket)dnl Check for libnslAC_SEARCH_LIBS(inet_ntoa, nsl)dnl Check for libresolvAC_SEARCH_LIBS(gethostbyname, resolv nsl)dnl optional library functionsAC_FUNC_FORKAC_CHECK_FUNCS(daemon chroot getpwnam setuid nice system getpid dup dup2 dnl getpass strerror syslog openlog mlockall getgrnam setgid dnl setgroups stat flock readv writev setsockopt getsockopt dnl setsid chdir gettimeofday)AC_REPLACE_FUNCS(inet_aton)AC_CACHE_SAVEdnl Required library functionsAC_FUNC_MEMCMPAC_FUNC_MALLOCAC_CHECK_FUNCS(time select socket gethostbyname inet_ntoa memset vsnprintf ctime, [], [AC_MSG_ERROR([Required library function not found])])dnldnl check librariesdnldnldnl check for pthread librarydnlif test "$PTHREAD" = "yes"; then AC_CHECKING([for pthread support]) ACX_PTHREAD( [ case "$target" in *openbsd*) AC_MSG_RESULT([WARNING: pthread support on OpenBSD is unstable!]) CFLAGS="$CFLAGS -pthread" ;; esac LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" AC_DEFINE(USE_PTHREAD, 1, [Use pthread-based multithreading]) ], [ AC_MSG_RESULT([I don't know how to build with pthread support on this platform.]) AC_MSG_ERROR([try ./configure --disable-pthread]) ])fidnldnl check for dmalloc librarydnlif test "$LEAK" = "dmalloc"; then AC_CHECKING([for dmalloc Library and Header files]) AC_CHECK_HEADER(dmalloc.h, [AC_CHECK_LIB(dmalloc, malloc, [ if test "$PTHREAD" = "yes"; then OPENVPN_ADD_LIBS(-ldmallocth) else OPENVPN_ADD_LIBS(-ldmalloc) fi AC_DEFINE(DMALLOC, 1, [Use dmalloc memory debugging library]) ], [AC_MSG_ERROR([dmalloc library not found.])] )], [AC_MSG_ERROR([dmalloc headers not found.])] )fidnldnl check for LZO librarydnlif test "$LZO" = "yes"; then AC_CHECKING([for LZO Library and Header files]) AC_CHECK_HEADER(lzo1x.h, [AC_CHECK_LIB(lzo, lzo1x_1_15_compress, [ OPENVPN_ADD_LIBS(-llzo) AC_DEFINE(USE_LZO, 1, [Use LZO compression library]) ], [AC_MSG_ERROR([LZO headers were found but LZO library was not found.])] )], [ AC_MSG_RESULT([LZO library and headers not found.]) AC_MSG_RESULT([LZO library available from http://www.oberhumer.com/opensource/lzo/]) AC_MSG_ERROR([Or try ./configure --disable-lzo]) ] )fidnldnl check for OpenSSL-crypto librarydnlif test "$CRYPTO" = "yes"; then AC_CHECKING([for OpenSSL Crypto Library and Header files]) AC_CHECK_HEADER(openssl/evp.h, [AC_CHECK_LIB(crypto, EVP_CIPHER_CTX_init, [ AC_CHECKING([that OpenSSL Library is at least version 0.9.5]) AC_EGREP_CPP(yes, [ #include "openssl/evp.h" #if SSLEAY_VERSION_NUMBER >= 0x00905000L yes #endif ], [ AC_DEFINE(USE_CRYPTO, 1, [Use OpenSSL crypto library]) OPENVPN_ADD_LIBS(-lcrypto) AC_CHECK_FUNCS(EVP_CIPHER_CTX_set_key_length) ], [AC_MSG_ERROR([OpenSSL crypto Library is too old.])] ) ], [AC_MSG_ERROR([OpenSSL Crypto library not found.])] )], [AC_MSG_ERROR([OpenSSL Crypto headers not found.])] )dnldnl check for OpenSSL-SSL librarydnl if test "$SSL" = "yes"; then AC_CHECKING([for OpenSSL SSL Library and Header files]) AC_CHECK_HEADER(openssl/ssl.h, [AC_CHECK_LIB(ssl, SSL_CTX_new, [ if test "$LEAK" = "ssl"; then AC_CHECKING([for Memory Debugging Capabilities in OpenSSL Library]) AC_CHECK_LIB(ssl, CRYPTO_mem_ctrl, [ AC_DEFINE(CRYPTO_MDEBUG, 1, [Use memory debugging function in OpenSSL]) AC_MSG_RESULT([NOTE: OpenSSL library must be compiled with CRYPTO_MDEBUG]) ], [AC_MSG_ERROR([Memory Debugging function in OpenSSL library not found.])] ) fi ], [AC_MSG_ERROR([OpenSSL SSL library not found.])] )], [AC_MSG_ERROR([OpenSSL SSL headers not found.])] ) AC_DEFINE(USE_SSL, 1, [Use OpenSSL SSL library]) OPENVPN_ADD_LIBS(-lssl) fifidnl enable strict compiler warningsif test "$STRICT" = "yes"; then CFLAGS="$CFLAGS -Wall -W -Wpointer-arith -Wsign-compare -Winline -Wno-unused-parameter"fidnl enable strict options check between peersif test "$STRICT_OPTIONS" = "yes"; then AC_DEFINE(STRICT_OPTIONS_CHECK, 1, [Enable strict options check between peers])fidnl enable dynamic MTU capabilityif test "$DYNAMIC_MTU" = "yes"; then AC_DEFINE(FRAGMENT_ENABLE, 1, [Enable dynamic MTU capability])fiAC_OUTPUT(Makefile openvpn.spec)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?