2005-09-26 07:28:27 +02:00
dnl OpenVPN -- An application to securely tunnel IP networks
dnl over a single UDP port, with support for SSL/TLS-based
dnl session authentication and key exchange,
dnl packet encryption, packet authentication, and
dnl packet compression.
dnl
2010-04-28 18:31:36 +02:00
dnl Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
2012-02-29 21:11:56 +01:00
dnl Copyright (C) 2006-2012 Alon Bar-Lev <alon.barlev@gmail.com>
2005-09-26 07:28:27 +02:00
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program (see the file COPYING included with this
dnl distribution); if not, write to the Free Software Foundation, Inc.,
dnl 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dnl Process this file with autoconf to produce a configure script.
2012-02-29 21:11:56 +01:00
AC_PREREQ(2.59)
2005-09-26 07:28:27 +02:00
2007-04-22 00:19:48 +02:00
m4_include(version.m4)
2012-02-29 21:11:56 +01:00
AC_INIT([PRODUCT_NAME], [PRODUCT_VERSION], [PRODUCT_BUGREPORT], [PRODUCT_TARNAME])
m4_include(compat.m4)
2012-02-29 21:12:00 +01:00
AC_DEFINE([OPENVPN_VERSION_RESOURCE], [PRODUCT_VERSION_RESOURCE], [Version in windows resource format])
2012-02-29 21:11:56 +01:00
AC_CONFIG_AUX_DIR([.])
2013-01-08 09:39:12 +01:00
AC_CONFIG_HEADERS([config.h])
2012-02-29 21:11:59 +01:00
AC_CONFIG_SRCDIR([src/openvpn/syshead.h])
2012-02-29 21:11:52 +01:00
AC_CONFIG_MACRO_DIR([m4])
2012-02-29 21:11:56 +01:00
AM_INIT_AUTOMAKE
AC_CANONICAL_HOST
AC_USE_SYSTEM_EXTENSIONS
2005-09-26 07:28:27 +02:00
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[lzo],
2012-03-24 08:58:37 +01:00
[AS_HELP_STRING([--disable-lzo], [disable LZO compression support @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
2012-03-24 08:58:37 +01:00
[enable_lzo="yes"]
2011-03-10 01:04:39 +01:00
)
2012-09-18 08:33:34 +02:00
AC_ARG_ENABLE(snappy,
[ --disable-snappy Disable Snappy compression support],
[enable_snappy="$enableval"],
[enable_snappy="yes"]
)
2014-01-01 22:57:58 +01:00
AC_ARG_ENABLE(lz4,
[ --disable-lz4 Disable LZ4 compression support],
[enable_lz4="$enableval"],
[enable_lz4="yes"]
)
2012-09-18 08:33:34 +02:00
AC_ARG_ENABLE(comp-stub,
[ --enable-comp-stub Don't compile compression support but still allow limited interoperability with compression-enabled peers],
[enable_comp_stub="$enableval"],
[enable_comp_stub="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[crypto],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-crypto], [disable crypto support @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_crypto="yes"]
2005-09-26 07:28:27 +02:00
)
2014-06-08 18:16:12 +02:00
AC_ARG_ENABLE(
[ofb-cfb],
[AS_HELP_STRING([--enable-ofb-cfb], [enable support for OFB and CFB cipher modes @<:@default=yes@:>@])],
,
[enable_crypto_ofb_cfb="yes"]
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[ssl],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-ssl], [disable SSL support for TLS-based key exchange @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_ssl="yes"]
2010-12-15 10:53:04 +01:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[x509-alt-username],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-x509-alt-username], [enable the --x509-username-field feature @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_x509_alt_username="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[multi],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-multi], [disable client/server support (--mode server + client mode) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_multi="yes"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[server],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-server], [disable server support only (but retain client support) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_server="yes"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[plugins],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-plugins], [disable plug-in support @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_plugins="yes"]
2010-02-15 23:15:44 +01:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[management],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-management], [disable management server support @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_management="yes"]
2005-10-13 10:38:41 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[pkcs11],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-pkcs11], [enable pkcs11 support @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
2012-02-29 21:12:07 +01:00
[enable_pkcs11="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[fragment],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-fragment], [disable internal fragmentation support (--fragment) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_fragment="yes"]
2005-10-15 10:44:02 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[multihome],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-multihome], [disable multi-homed UDP server support (--multihome) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_multihome="yes"]
2006-02-16 19:12:24 +01:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[port-share],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-port-share], [disable TCP server port-share support (--port-share) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_port_share="yes"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[debug],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-debug], [disable debugging support (disable gremlin and verb 7+ messages) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_debug="yes"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[small],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-small], [enable smaller executable size (disable OCC, usage message, and verb 4 parm list) @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_small="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[password-save],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-password-save], [allow --askpass and --auth-user-pass passwords to be read from a file @<:@default=yes@:>@])],
2012-04-27 15:40:54 +02:00
,
2012-02-29 21:11:56 +01:00
[enable_password_save="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[iproute2],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-iproute2], [enable support for iproute2 @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_iproute2="no"]
2009-08-24 21:13:52 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[def-auth],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-def-auth], [disable deferred authentication @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_def_auth="yes"]
2009-08-24 21:13:52 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[pf],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--disable-pf], [disable internal packet filter @<:@default=yes@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_pf="yes"]
2005-09-26 07:28:27 +02:00
)
2012-05-15 00:42:03 +02:00
AC_ARG_ENABLE(
[plugin-auth-pam],
2012-06-26 16:03:26 +02:00
[AS_HELP_STRING([--disable-plugin-auth-pam], [disable auth-pam plugin @<:@default=platform specific@:>@])],
2012-05-15 00:42:03 +02:00
,
2012-06-26 16:03:26 +02:00
[
case "$host" in
*-*-openbsd*) enable_plugin_auth_pam="no";;
*-mingw*) enable_plugin_auth_pam="no";;
*) enable_plugin_auth_pam="yes";;
esac
]
2012-05-15 00:42:03 +02:00
)
AC_ARG_ENABLE(
[plugin-down-root],
2012-06-26 16:03:26 +02:00
[AS_HELP_STRING([--disable-plugin-down-root], [disable down-root plugin @<:@default=platform specific@:>@])],
,
[
case "$host" in
*-mingw*) enable_plugin_down_root="no";;
*) enable_plugin_down_root="yes";;
esac
]
2012-05-15 00:42:03 +02:00
)
AC_ARG_ENABLE(
[pam-dlopen],
[AS_HELP_STRING([--enable-pam-dlopen], [dlopen libpam @<:@default=no@:>@])],
,
[enable_pam_dlopen="no"]
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[strict],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-strict], [enable strict compiler warnings (debugging option) @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_strict="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[pedantic],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-pedantic], [enable pedantic compiler warnings, will not generate a working executable (debugging option) @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_pedantic="no"]
2005-09-26 07:28:27 +02:00
)
2014-05-29 12:39:07 +02:00
AC_ARG_ENABLE(
[werror],
[AS_HELP_STRING([--enable-werror], [promote compiler warnings to errors, will cause builds to fail is the compiler issues warnings (debugging option) @<:@default=no@:>@])],
,
[enable_werror="no"]
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[strict-options],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-strict-options], [enable strict options check between peers (debugging option) @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_strict_options="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[selinux],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-selinux], [enable SELinux support @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_selinux="no"]
2009-09-05 01:50:35 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_ENABLE(
[systemd],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--enable-systemd], [enable systemd suppport @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
,
[enable_systemd="no"]
2011-10-31 15:51:53 +01:00
)
2012-05-05 10:01:17 +02:00
AC_ARG_WITH(
[special-build],
[AS_HELP_STRING([--with-special-build=STRING], [specify special build string])],
[test -n "${withval}" && AC_DEFINE_UNQUOTED([CONFIGURE_SPECIAL_BUILD], ["${withval}"], [special build string])]
)
2012-02-29 21:11:56 +01:00
AC_ARG_WITH(
[mem-check],
2012-02-29 21:12:11 +01:00
[AS_HELP_STRING([--with-mem-check=TYPE], [build with debug memory checking, TYPE=no|dmalloc|valgrind|ssl @<:@default=no@:>@])],
2012-02-29 21:11:56 +01:00
[
case "${withval}" in
dmalloc|valgrind|ssl|no) ;;
*) AC_MSG_ERROR([bad value ${withval} for --mem-check]) ;;
esac
],
[with_mem_check="no"]
2005-09-26 07:28:27 +02:00
)
2012-02-29 21:11:56 +01:00
AC_ARG_WITH(
2012-02-29 21:12:10 +01:00
[crypto-library],
[AS_HELP_STRING([--with-crypto-library=library], [build with the given crypto library, TYPE=openssl|polarssl @<:@default=openssl@:>@])],
2012-02-29 21:11:56 +01:00
[
case "${withval}" in
openssl|polarssl) ;;
2012-02-29 21:12:10 +01:00
*) AC_MSG_ERROR([bad value ${withval} for --with-crypto-library]) ;;
2012-02-29 21:11:56 +01:00
esac
],
2012-02-29 21:12:10 +01:00
[with_crypto_library="openssl"]
2011-06-24 08:37:33 +02:00
)
2012-05-15 00:42:03 +02:00
AC_ARG_WITH(
[plugindir],
[AS_HELP_STRING([--with-plugindir], [plugin directory @<:@default=LIBDIR/openvpn@:>@])],
,
[with_plugindir="\$(libdir)/openvpn/plugins"]
)
2012-05-05 08:49:00 +02:00
AC_DEFINE_UNQUOTED([TARGET_ALIAS], ["${host}"], [A string representing our host])
2010-03-11 17:28:41 +01:00
case "$host" in
2012-02-29 21:11:56 +01:00
*-*-linux*)
AC_DEFINE([TARGET_LINUX], [1], [Are we running on Linux?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["L"], [Target prefix])
;;
*-*-solaris*)
AC_DEFINE([TARGET_SOLARIS], [1], [Are we running on Solaris?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["S"], [Target prefix])
;;
*-*-openbsd*)
AC_DEFINE([TARGET_OPENBSD], [1], [Are we running on OpenBSD?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["O"], [Target prefix])
;;
*-*-freebsd*)
AC_DEFINE([TARGET_FREEBSD], [1], [Are we running on FreeBSD?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["F"], [Target prefix])
;;
*-*-netbsd*)
AC_DEFINE([TARGET_NETBSD], [1], [Are we running NetBSD?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["N"], [Target prefix])
;;
*-*-darwin*)
AC_DEFINE([TARGET_DARWIN], [1], [Are we running on Mac OS X?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["M"], [Target prefix])
2012-06-02 17:31:49 +02:00
have_tap_header="yes"
2012-02-29 21:11:56 +01:00
dnl some Mac OS X tendering (we use vararg macros...)
CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
;;
*-mingw*)
AC_DEFINE([TARGET_WIN32], [1], [Are we running WIN32?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["W"], [Target prefix])
2012-02-29 21:12:12 +01:00
CPPFLAGS="${CPPFLAGS} -DWIN32_LEAN_AND_MEAN"
CPPFLAGS="${CPPFLAGS} -DNTDDI_VERSION=NTDDI_WINXP -D_WIN32_WINNT=_WIN32_WINNT_WINXP"
2012-02-29 21:11:56 +01:00
WIN32=yes
;;
*-*-dragonfly*)
AC_DEFINE([TARGET_DRAGONFLY], [1], [Are we running on DragonFlyBSD?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["D"], [Target prefix])
;;
2014-06-10 16:04:30 +02:00
*-aix*)
AC_DEFINE([TARGET_AIX], [1], [Are we running AIX?])
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["A"], [Target prefix])
ROUTE="/usr/sbin/route"
have_tap_header="yes"
ac_cv_header_net_if_h="no" # exists, but breaks things
;;
2012-02-29 21:11:56 +01:00
*)
AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["X"], [Target prefix])
2012-06-02 17:31:49 +02:00
have_tap_header="yes"
2012-02-29 21:11:56 +01:00
;;
2005-09-26 07:28:27 +02:00
esac
2012-02-29 21:11:56 +01:00
PKG_PROG_PKG_CONFIG
AC_PROG_CPP
2005-09-26 07:28:27 +02:00
AC_PROG_INSTALL
2012-02-29 21:11:56 +01:00
AC_PROG_LN_S
2012-05-05 08:39:42 +02:00
AC_PROG_SED
2012-02-29 21:11:56 +01:00
AC_PROG_MAKE_SET
2005-09-26 07:28:27 +02:00
2012-02-29 21:12:01 +01:00
AC_ARG_VAR([IFCONFIG], [full path to ipconfig utility])
AC_ARG_VAR([ROUTE], [full path to route utility])
AC_ARG_VAR([IPROUTE], [full path to ip utility])
AC_ARG_VAR([NETSTAT], [path to netstat utility]) # tests
AC_ARG_VAR([MAN2HTML], [path to man2html utility])
2012-05-05 08:39:42 +02:00
AC_ARG_VAR([GIT], [path to git utility])
2014-07-03 22:24:05 +02:00
AC_ARG_VAR([SYSTEMD_ASK_PASSWORD], [path to systemd-ask-password utility])
2012-02-29 21:12:01 +01:00
AC_PATH_PROGS([IFCONFIG], [ifconfig],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin])
AC_PATH_PROGS([ROUTE], [route],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin])
AC_PATH_PROGS([IPROUTE], [ip],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin])
2014-07-03 22:24:05 +02:00
AC_PATH_PROGS([SYSTEMD_ASK_PASSWORD], [systemd-ask-password],, [$PATH:/usr/local/bin:/usr/bin:/bin])
2012-02-29 21:12:01 +01:00
AC_CHECK_PROGS([NETSTAT], [netstat], [netstat], [$PATH:/usr/local/sbin:/usr/sbin:/sbin:/etc]) # tests
AC_CHECK_PROGS([MAN2HTML], [man2html])
2012-05-05 08:39:42 +02:00
AC_CHECK_PROGS([GIT], [git]) # optional
2012-02-29 21:12:01 +01:00
AC_DEFINE_UNQUOTED([IFCONFIG_PATH], ["$IFCONFIG"], [Path to ifconfig tool])
AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool])
AC_DEFINE_UNQUOTED([ROUTE_PATH], ["$ROUTE"], [Path to route tool])
2014-07-03 22:24:05 +02:00
AC_DEFINE_UNQUOTED([SYSTEMD_ASK_PASSWORD_PATH], ["$SYSTEMD_ASK_PASSWORD"], [Path to systemd-ask-password tool])
2012-02-29 21:12:01 +01:00
2012-02-29 21:12:00 +01:00
#
# Libtool
#
ifdef(
[LT_INIT],
[
LT_INIT([win32-dll])
LT_LANG([Windows Resource])
],
[
AC_LIBTOOL_WIN32_DLL
AC_LIBTOOL_RC
AC_PROG_LIBTOOL
]
)
2005-09-26 07:28:27 +02:00
AC_C_CONST
AC_C_INLINE
AC_C_VOLATILE
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_UID_T
2012-02-29 21:11:56 +01:00
AC_TYPE_INT8_T
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_UINT8_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_SIGNAL
2005-09-26 07:28:27 +02:00
AX_CPP_VARARG_MACRO_ISO
AX_CPP_VARARG_MACRO_GCC
2012-02-29 21:11:55 +01:00
AX_TYPE_SOCKLEN_T
2005-09-26 07:28:27 +02:00
AX_EMPTY_ARRAY
2012-02-29 21:11:56 +01:00
AC_CHECK_SIZEOF([unsigned int])
AC_CHECK_SIZEOF([unsigned long])
AC_CHECK_HEADERS([ \
2012-04-27 14:09:15 +02:00
stdio.h stdarg.h stdbool.h limits.h \
2012-02-29 21:11:56 +01:00
time.h errno.h fcntl.h io.h direct.h \
ctype.h sys/types.h sys/socket.h \
2012-02-29 21:12:02 +01:00
signal.h unistd.h dlfcn.h \
2012-02-29 21:11:56 +01:00
netinet/in.h netinet/in_systm.h \
netinet/tcp.h arpa/inet.h netdb.h \
windows.h winsock2.h ws2tcpip.h \
])
2012-02-29 21:12:04 +01:00
AC_CHECK_HEADERS([ \
2012-04-12 08:50:12 +02:00
sys/time.h sys/ioctl.h sys/stat.h \
2012-05-12 11:02:18 +02:00
sys/mman.h sys/file.h sys/wait.h \
2012-03-26 23:26:36 +02:00
unistd.h signal.h libgen.h stropts.h \
2012-02-29 21:12:04 +01:00
syslog.h pwd.h grp.h \
2012-03-26 23:26:36 +02:00
sys/sockio.h sys/uio.h linux/sockios.h \
2012-02-29 21:12:04 +01:00
linux/types.h sys/poll.h sys/epoll.h err.h \
])
2005-09-26 07:28:27 +02:00
2012-02-29 21:11:56 +01:00
SOCKET_INCLUDES="
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_WINDOWS_H
#include <windows.h>
#endif
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
#endif
#ifdef HAVE_WS2TCPIP_H
#include <ws2tcpip.h>
#endif
2012-03-26 23:26:35 +02:00
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
2012-04-08 21:22:09 +02:00
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
2012-02-29 21:11:56 +01:00
"
2008-05-12 22:31:43 +02:00
2012-02-29 21:12:04 +01:00
AC_CHECK_HEADERS(
2013-06-21 12:48:28 +02:00
[net/if.h netinet/ip.h netinet/if_ether.h resolv.h sys/un.h net/if_utun.h sys/kern_control.h],
2012-02-29 21:11:56 +01:00
,
,
2012-02-29 21:12:04 +01:00
[[${SOCKET_INCLUDES}]]
2012-02-29 21:11:56 +01:00
)
AC_CHECK_TYPES(
2005-09-26 07:28:27 +02:00
[in_addr_t],
2012-02-29 21:11:56 +01:00
,
[AC_DEFINE([in_addr_t], [uint32_t], [Workaround missing in_addr_t])],
[[${SOCKET_INCLUDES}]]
)
2005-09-26 07:28:27 +02:00
AC_CHECK_TYPE(
[struct iphdr],
2012-04-07 19:39:26 +02:00
[AC_DEFINE([HAVE_IPHDR], [1], [struct iphdr needed for IPv6 support])],
2012-02-29 21:11:56 +01:00
,
[[${SOCKET_INCLUDES}]]
)
2005-09-26 07:28:27 +02:00
AC_CHECK_TYPE(
[struct sock_extended_err],
2012-04-07 19:39:26 +02:00
[AC_DEFINE([HAVE_SOCK_EXTENDED_ERR], [1], [struct sock_extended_err needed for extended socket error support])],
2012-02-29 21:11:56 +01:00
,
[[${SOCKET_INCLUDES}]]
)
2005-09-26 07:28:27 +02:00
AC_CHECK_TYPE(
[struct msghdr],
2012-04-07 19:39:26 +02:00
[AC_DEFINE([HAVE_MSGHDR], [1], [struct msghdr needed for extended socket error support])],
2012-02-29 21:11:56 +01:00
,
[[${SOCKET_INCLUDES}]]
)
2005-09-26 07:28:27 +02:00
AC_CHECK_TYPE(
[struct cmsghdr],
2012-04-07 19:39:26 +02:00
[AC_DEFINE([HAVE_CMSGHDR], [1], [struct cmsghdr needed for extended socket error support])],
2012-02-29 21:11:56 +01:00
,
[[${SOCKET_INCLUDES}]]
)
2005-10-15 10:44:02 +02:00
AC_CHECK_TYPE(
[struct in_pktinfo],
2012-04-07 19:39:26 +02:00
[AC_DEFINE([HAVE_IN_PKTINFO], [1], [struct in_pktinfo needed for IP_PKTINFO support])],
2012-02-29 21:11:56 +01:00
,
[[${SOCKET_INCLUDES}]]
)
2014-01-17 16:30:37 +01:00
AC_CHECK_TYPE(
[sa_family_t],
[AC_DEFINE([HAVE_SA_FAMILY_T], [1], [sa_family_t, needed to hold AF_* info])],
,
[[${SOCKET_INCLUDES}]]
)
2012-02-29 21:11:56 +01:00
AC_CHECK_TYPE(
[struct sockaddr_in6],
,
[AC_MSG_ERROR([struct sockaddr_in6 not found, needed for ipv6 transport support.])],
[[${SOCKET_INCLUDES}]]
)
2012-02-29 21:12:04 +01:00
AC_CHECK_DECLS(
[SO_MARK],
,
,
[[${SOCKET_INCLUDES}]]
)
2012-02-29 21:11:56 +01:00
2012-02-29 21:12:04 +01:00
dnl We emulate signals in Windows
AC_CHECK_DECLS(
[SIGHUP],
2012-02-29 21:11:56 +01:00
,
2012-02-29 21:12:04 +01:00
[AC_DEFINE([SIGHUP], [1], [SIGHUP replacement])],
[[
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
]]
2012-02-29 21:11:56 +01:00
)
2012-02-29 21:12:04 +01:00
AC_CHECK_DECLS(
[SIGINT],
,
[AC_DEFINE([SIGINT], [2], [SIGINT replacement])],
[[
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
]]
)
AC_CHECK_DECLS(
[SIGUSR1],
,
[AC_DEFINE([SIGUSR1], [10], [SIGUSR1 replacement])],
[[
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
]]
)
AC_CHECK_DECLS(
[SIGUSR2],
,
[AC_DEFINE([SIGUSR2], [12], [SIGUSR2 replacement])],
[[
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
]]
)
AC_CHECK_DECLS(
[SIGTERM],
,
[AC_DEFINE([SIGTERM], [15], [SIGTERM replacement])],
[[
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
]]
)
AC_FUNC_FORK
2012-02-29 21:11:56 +01:00
AC_CHECK_FUNCS([ \
daemon chroot getpwnam setuid nice system getpid dup dup2 \
getpass strerror syslog openlog mlockall getgrnam setgid \
setgroups stat flock readv writev time gettimeofday \
2012-02-29 21:12:04 +01:00
ctime memset vsnprintf strdup \
2012-02-29 21:11:56 +01:00
setsid chdir putenv getpeername unlink \
chsize ftruncate execve getpeereid umask basename dirname access \
epoll_create \
])
2012-03-24 08:58:34 +01:00
AC_CHECK_LIB(
[dl],
[dlopen],
[DL_LIBS="-ldl"]
)
AC_SUBST([DL_LIBS])
AC_CHECK_LIB(
[nsl],
[inet_ntoa],
[SOCKETS_LIBS="${SOCKETS_LIBS} -lnsl"]
)
AC_CHECK_LIB(
[socket],
[socket],
[SOCKETS_LIBS="${SOCKETS_LIBS} -lsocket"]
)
AC_CHECK_LIB(
[resolv],
[gethostbyname],
[SOCKETS_LIBS="${SOCKETS_LIBS} -lresolv"]
)
AC_SUBST([SOCKETS_LIBS])
old_LIBS="${LIBS}"
LIBS="${LIBS} ${SOCKETS_LIBS}"
2012-02-29 21:12:17 +01:00
AC_CHECK_FUNCS([sendmsg recvmsg inet_ntop inet_pton])
2012-02-29 21:11:56 +01:00
AC_CHECK_FUNCS(
[res_init],
,
,
[[#include <resolv.h>]]
)
2008-08-05 22:34:43 +02:00
# Windows use stdcall for winsock so we cannot auto detect these
2012-02-29 21:11:56 +01:00
m4_define(
[SOCKET_FUNCS],
[socket recv recvfrom send sendto listen dnl
accept connect bind select gethostbyname inet_ntoa]dnl
)
m4_define(
[SOCKET_OPT_FUNCS],
[setsockopt getsockopt getsockname poll]dnl
)
2008-05-12 22:31:43 +02:00
if test "${WIN32}" = "yes"; then
2012-02-29 21:11:56 +01:00
m4_foreach(
[F],
m4_split(SOCKET_FUNCS SOCKET_OPT_FUNCS),
m4_define([UF], [[m4_join([_], [HAVE], m4_toupper(F))]])
AC_DEFINE([UF], [1], [Win32 builtin])
)
2008-05-12 22:31:43 +02:00
else
2012-02-29 21:11:56 +01:00
AC_CHECK_FUNCS(
SOCKET_FUNCS,
,
[AC_MSG_ERROR([Required library function not found])]
)
AC_CHECK_FUNCS(SOCKET_OPT_FUNCS)
fi
2012-03-24 08:58:34 +01:00
LIBS="${old_LIBS}"
2012-02-29 21:12:03 +01:00
2012-03-26 23:26:36 +02:00
AC_ARG_VAR([TAP_CFLAGS], [C compiler flags for tap])
old_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} ${TAP_CFLAGS}"
AC_CHECK_HEADERS(
[ \
net/if_tun.h net/tun/if_tun.h \
linux/if_tun.h \
tap-windows.h \
],
[have_tap_header="yes"]
)
2012-04-08 21:21:47 +02:00
AC_CHECK_DECLS(
[TUNSETPERSIST],
[AC_DEFINE([ENABLE_FEATURE_TUN_PERSIST], [1], [We have persist tun capability])],
,
[[
#ifdef HAVE_LINUX_IF_TUN_H
#include <linux/if_tun.h>
#endif
]]
)
2012-03-26 23:26:36 +02:00
CFLAGS="${old_CFLAGS}"
test "${have_tap_header}" = "yes" || AC_MSG_ERROR([no tap header could be found])
2012-02-29 21:12:05 +01:00
AC_CHECK_LIB(
[selinux],
[setcon],
[SELINUX_LIBS="-lselinux"]
)
AC_SUBST([SELINUX_LIBS])
2012-05-15 00:42:03 +02:00
AC_ARG_VAR([LIBPAM_CFLAGS], [C compiler flags for libpam])
AC_ARG_VAR([LIBPAM_LIBS], [linker flags for libpam])
if test -z "${LIBPAM_LIBS}"; then
AC_CHECK_LIB(
[pam],
[pam_start],
[LIBPAM_LIBS="-lpam"]
)
fi
2012-02-29 21:11:56 +01:00
case "${with_mem_check}" in
valgrind)
2014-01-15 17:36:04 +01:00
AC_CHECK_HEADERS(
2012-02-29 21:11:56 +01:00
[valgrind/memcheck.h],
[
CFLAGS="${CFLAGS} -g -fno-inline"
AC_DEFINE(
[USE_VALGRIND],
[1],
[Use valgrind memory debugging library]
)
],
[AC_MSG_ERROR([valgrind headers not found.])]
)
;;
dmalloc)
2014-01-15 17:36:04 +01:00
AC_CHECK_HEADERS(
2012-02-29 21:11:56 +01:00
[dmalloc.h],
[AC_CHECK_LIB(
[dmalloc],
[malloc],
[
2012-02-29 21:11:57 +01:00
LIBS="${LIBS} -ldmalloc"
2012-02-29 21:11:56 +01:00
AC_DEFINE(
[DMALLOC],
[1],
[Use dmalloc memory debugging library]
)
],
[AC_MSG_ERROR([dmalloc library not found.])]
)],
[AC_MSG_ERROR([dmalloc headers not found.])]
)
;;
ssl)
AC_CHECK_LIB(
[ssl],
[CRYPTO_mem_ctrl],
[
AC_DEFINE(
[CRYPTO_MDEBUG],
[1],
[Use memory debugging function in OpenSSL]
)
AC_MSG_NOTICE([NOTE: OpenSSL library must be compiled with CRYPTO_MDEBUG])
],
[AC_MSG_ERROR([Memory Debugging function in OpenSSL library not found.])]
)
;;
esac
2005-09-26 07:28:27 +02:00
2013-03-22 09:54:25 +01:00
PKG_CHECK_MODULES(
[PKCS11_HELPER],
2013-11-11 23:36:06 +01:00
[libpkcs11-helper-1 >= 1.11],
2013-03-22 09:54:25 +01:00
[have_pkcs11_helper="yes"],
[]
)
2012-02-29 21:12:10 +01:00
PKG_CHECK_MODULES(
[OPENSSL_CRYPTO],
2014-03-23 14:53:01 +01:00
[libcrypto >= 0.9.8],
2012-02-29 21:12:10 +01:00
[have_openssl_crypto="yes"],
[AC_CHECK_LIB(
[crypto],
[RSA_new],
[
have_openssl_crypto="yes"
OPENSSL_CRYPTO_LIBS="-lcrypto"
]
)]
)
PKG_CHECK_MODULES(
[OPENSSL_SSL],
2014-03-23 14:53:01 +01:00
[libssl >= 0.9.8],
2012-02-29 21:12:10 +01:00
[have_openssl_ssl="yes"],
[AC_CHECK_LIB(
[ssl],
[SSL_CTX_new],
[
have_openssl_ssl="yes"
OPENSSL_SSL_LIBS="-lssl"
2013-08-23 11:02:05 +02:00
],
[],
[-lcrypto]
2012-02-29 21:12:10 +01:00
)]
)
if test "${have_openssl_crypto}" = "yes"; then
saved_CFLAGS="${CFLAGS}"
saved_LIBS="${LIBS}"
CFLAGS="${CFLAGS} ${OPENSSL_CRYPTO_CFLAGS}"
LIBS="${LIBS} ${OPENSSL_CRYPTO_LIBS}"
AC_CHECK_FUNCS([EVP_CIPHER_CTX_set_key_length])
have_openssl_engine="yes"
AC_CHECK_FUNCS(
[ \
ENGINE_load_builtin_engines \
ENGINE_register_all_complete \
ENGINE_cleanup \
],
,
[have_openssl_engine="no"; break]
)
CFLAGS="${saved_CFLAGS}"
LIBS="${saved_LIBS}"
fi
AC_ARG_VAR([POLARSSL_CFLAGS], [C compiler flags for polarssl])
AC_ARG_VAR([POLARSSL_LIBS], [linker flags for polarssl])
have_polarssl_ssl="yes"
have_polarssl_crypto="yes"
if test -z "${POLARSSL_LIBS}"; then
AC_CHECK_LIB(
[polarssl],
[ssl_init],
[POLARSSL_LIBS="-lpolarssl"],
[
have_polarssl_ssl="no"
AC_CHECK_LIB(
[polarssl],
[aes_crypt_cbc],
,
2013-03-22 09:54:25 +01:00
[have_polarssl_crypto="no"],
[${PKCS11_HELPER_LIBS}]
2012-02-29 21:12:10 +01:00
)
2013-03-22 09:54:25 +01:00
],
[${PKCS11_HELPER_LIBS}]
2012-02-29 21:12:10 +01:00
)
fi
2012-05-21 13:04:14 +02:00
if test "${with_crypto_library}" = "polarssl" ; then
AC_MSG_CHECKING([polarssl version])
old_CFLAGS="${CFLAGS}"
CFLAGS="${POLARSSL_CFLAGS} ${CFLAGS}"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[
#include <polarssl/version.h>
]],
[[
2014-02-04 13:57:15 +01:00
#if POLARSSL_VERSION_NUMBER < 0x01030300 || POLARSSL_VERSION_NUMBER >= 0x01040000
2013-03-22 09:54:25 +01:00
#error invalid version
2012-05-21 13:04:14 +02:00
#endif
]]
)],
[AC_MSG_RESULT([ok])],
2014-02-04 13:57:15 +01:00
[AC_MSG_ERROR([PolarSSL 1.3.x required and must be 1.3.3 or later])]
2012-05-21 13:04:14 +02:00
)
2013-03-22 09:54:25 +01:00
polarssl_with_pkcs11="no"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[
#include <polarssl/config.h>
]],
[[
#ifndef POLARSSL_PKCS11_C
#error pkcs11 wrapper missing
#endif
]]
)],
polarssl_with_pkcs11="yes")
2012-05-21 13:04:14 +02:00
CFLAGS="${old_CFLAGS}"
2013-03-22 09:54:25 +01:00
AC_MSG_CHECKING([polarssl pkcs11 support])
if test "${enable_pkcs11}" = "yes"; then
if test "${polarssl_with_pkcs11}" = "yes"; then
AC_MSG_RESULT([ok])
else
AC_MSG_ERROR([polarssl has no pkcs11 wrapper compiled in])
fi
else
if test "${polarssl_with_pkcs11}" != "yes"; then
AC_MSG_RESULT([ok])
else
AC_MSG_ERROR([PolarSSL compiled with PKCS11, while OpenVPN is not])
fi
fi
2012-05-21 13:04:14 +02:00
fi
2012-02-29 21:12:09 +01:00
AC_ARG_VAR([LZO_CFLAGS], [C compiler flags for lzo])
AC_ARG_VAR([LZO_LIBS], [linker flags for lzo])
have_lzo="yes"
if test -z "${LZO_LIBS}"; then
AC_CHECK_LIB(
[lzo2],
[lzo1x_1_15_compress],
[LZO_LIBS="-llzo2"],
[AC_CHECK_LIB(
[lzo],
[lzo1x_1_15_compress],
[LZO_LIBS="-llzo"],
[have_lzo="no"]
)]
)
fi
if test "${have_lzo}" = "yes"; then
saved_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} ${LZO_CFLAGS}"
AC_CHECK_HEADERS(
[lzo/lzoutil.h],
,
[AC_CHECK_HEADERS(
[lzoutil.h],
,
[AC_MSG_ERROR([lzoutil.h is missing])]
)]
)
AC_CHECK_HEADERS(
[lzo/lzo1x.h],
,
[AC_CHECK_HEADERS(
[lzo1x.h],
,
[AC_MSG_ERROR([lzo1x.h is missing])]
)]
)
CFLAGS="${saved_CFLAGS}"
2005-09-26 07:28:27 +02:00
fi
2012-09-18 08:33:34 +02:00
dnl
dnl check for Snappy library
dnl
AC_ARG_VAR([SNAPPY_CFLAGS], [C compiler flags for snappy])
AC_ARG_VAR([SNAPPY_LIBS], [linker flags for snappy])
if test "$enable_snappy" = "yes" && test "$enable_comp_stub" = "no"; then
AC_CHECKING([for Snappy Library and Header files])
havesnappylib=1
# if SNAPPY_LIBS is set, we assume it will work, otherwise test
if test -z "${SNAPPY_LIBS}"; then
AC_CHECK_LIB(snappy, snappy_compress,
[ SNAPPY_LIBS="-lsnappy" ],
[
AC_MSG_RESULT([Snappy library not found.])
havesnappylib=0
])
fi
saved_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} ${SNAPPY_CFLAGS}"
2014-01-15 17:36:04 +01:00
AC_CHECK_HEADERS(snappy-c.h,
2012-09-18 08:33:34 +02:00
,
[
AC_MSG_RESULT([Snappy headers not found.])
havesnappylib=0
])
if test $havesnappylib = 0 ; then
AC_MSG_RESULT([Snappy library available from http://code.google.com/p/snappy/])
AC_MSG_ERROR([Or try ./configure --disable-snappy OR ./configure --enable-comp-stub])
fi
OPTIONAL_SNAPPY_CFLAGS="${SNAPPY_CFLAGS}"
OPTIONAL_SNAPPY_LIBS="${SNAPPY_LIBS}"
AC_DEFINE(ENABLE_SNAPPY, 1, [Enable Snappy compression library])
CFLAGS="${saved_CFLAGS}"
fi
2014-01-01 22:57:58 +01:00
dnl
dnl check for LZ4 library
dnl
AC_ARG_VAR([LZ4_CFLAGS], [C compiler flags for lz4])
AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4])
if test "$enable_lz4" = "yes" && test "$enable_comp_stub" = "no"; then
AC_CHECKING([for LZ4 Library and Header files])
havelz4lib=1
# if LZ4_LIBS is set, we assume it will work, otherwise test
if test -z "${LZ4_LIBS}"; then
AC_CHECK_LIB(lz4, LZ4_compress,
[ LZ4_LIBS="-llz4" ],
[
AC_MSG_RESULT([LZ4 library not found.])
havelz4lib=0
])
fi
saved_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} ${LZ4_CFLAGS}"
2014-01-15 17:36:04 +01:00
AC_CHECK_HEADERS(lz4.h,
2014-01-01 22:57:58 +01:00
,
[
AC_MSG_RESULT([LZ4 headers not found.])
havelz4lib=0
])
if test $havelz4lib = 0 ; then
2014-01-01 22:57:59 +01:00
AC_MSG_RESULT([LZ4 library or header not found, using version in src/compat/compat-lz4.*])
AC_DEFINE([NEED_COMPAT_LZ4], [1], [use copy of LZ4 source in compat/])
LZ4_LIBS=""
2014-01-01 22:57:58 +01:00
fi
OPTIONAL_LZ4_CFLAGS="${LZ4_CFLAGS}"
OPTIONAL_LZ4_LIBS="${LZ4_LIBS}"
AC_DEFINE(ENABLE_LZ4, 1, [Enable LZ4 compression library])
CFLAGS="${saved_CFLAGS}"
fi
2014-10-03 19:16:07 +02:00
dnl
dnl Check for systemd
dnl
if test "$enable_systemd" = "yes" ; then
PKG_CHECK_MODULES([libsystemd], [systemd libsystemd],
[],
[PKG_CHECK_MODULES([libsystemd], [libsystemd-daemon])]
)
AC_CHECK_HEADERS(systemd/sd-daemon.h,
,
[
AC_MSG_ERROR([systemd development headers not found.])
])
saved_LIBS="${LIBS}"
LIBS="${LIBS} ${libsystemd_LIBS}"
AC_CHECK_FUNCS([sd_booted], [], [AC_MSG_ERROR([systemd library is missing sd_booted()])])
OPTIONAL_SYSTEMD_LIBS="${libsystemd_LIBS}"
AC_DEFINE(ENABLE_SYSTEMD, 1, [Enable systemd integration])
LIBS="${saved_LIBS}"
fi
2014-01-01 22:57:58 +01:00
2012-09-18 08:33:34 +02:00
2012-05-05 08:39:42 +02:00
AC_MSG_CHECKING([git checkout])
GIT_CHECKOUT="no"
if test -n "${GIT}" -a -d "${srcdir}/.git"; then
AC_DEFINE([HAVE_CONFIG_VERSION_H], [1], [extra version available in config-version.h])
GIT_CHECKOUT="yes"
fi
AC_MSG_RESULT([${GIT_CHECKOUT}])
2012-02-29 21:11:56 +01:00
if test -n "${SP_PLATFORM_WINDOWS}"; then
AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ['\\\\'], [Path separator]) #"
AC_DEFINE_UNQUOTED([PATH_SEPARATOR_STR], ["\\\\"], [Path separator]) #"
else
AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ['/'], [Path separator])
AC_DEFINE_UNQUOTED([PATH_SEPARATOR_STR], ["/"], [Path separator])
fi
dnl enable --x509-username-field feature if requested
if test "${enable_x509_alt_username}" = "yes"; then
2012-02-29 21:12:10 +01:00
if test "${with_crypto_library}" = "polarssl" ; then
2012-02-29 21:11:56 +01:00
AC_MSG_ERROR([PolarSSL does not support the --x509-username-field feature])
fi
AC_DEFINE([ENABLE_X509ALTUSERNAME], [1], [Enable --x509-username-field feature])
fi
test "${ac_cv_header_sys_uio_h}" = "yes" && AC_DEFINE([HAVE_IOVEC], [1], [struct iovec needed for IPv6 support])
test "${enable_multi}" = "yes" && AC_DEFINE([ENABLE_CLIENT_SERVER], [1], [Enable client/server capability])
test "${enable_server}" = "no" && AC_DEFINE([ENABLE_CLIENT_ONLY], [1], [Enable client capability only])
test "${enable_management}" = "yes" && AC_DEFINE([ENABLE_MANAGEMENT], [1], [Enable management server capability])
test "${enable_multihome}" = "yes" && AC_DEFINE([ENABLE_MULTIHOME], [1], [Enable multi-homed UDP server capability])
test "${enable_debug}" = "yes" && AC_DEFINE([ENABLE_DEBUG], [1], [Enable debugging support])
test "${enable_small}" = "yes" && AC_DEFINE([ENABLE_SMALL], [1], [Enable smaller executable size])
test "${enable_fragment}" = "yes" && AC_DEFINE([ENABLE_FRAGMENT], [1], [Enable internal fragmentation support])
test "${enable_port_share}" = "yes" && AC_DEFINE([ENABLE_PORT_SHARE], [1], [Enable TCP Server port sharing])
test "${enable_def_auth}" = "yes" && AC_DEFINE([ENABLE_DEF_AUTH], [1], [Enable deferred authentication])
test "${enable_pf}" = "yes" && AC_DEFINE([ENABLE_PF], [1], [Enable internal packet filter])
test "${enable_strict_options}" = "yes" && AC_DEFINE([ENABLE_STRICT_OPTIONS_CHECK], [1], [Enable strict options check between peers])
test "${enable_password_save}" = "yes" && AC_DEFINE([ENABLE_PASSWORD_SAVE], [1], [Allow --askpass and --auth-user-pass passwords to be read from a file])
2012-02-29 21:12:01 +01:00
2012-02-29 21:12:10 +01:00
case "${with_crypto_library}" in
openssl)
have_crypto_crypto="${have_openssl_crypto}"
have_crypto_ssl="${have_openssl_ssl}"
CRYPTO_CRYPTO_CFLAGS="${OPENSSL_CRYPTO_CFLAGS}"
CRYPTO_CRYPTO_LIBS="${OPENSSL_CRYPTO_LIBS}"
CRYPTO_SSL_CFLAGS="${OPENSSL_SSL_CFLAGS}"
CRYPTO_SSL_LIBS="${OPENSSL_SSL_LIBS}"
AC_DEFINE([ENABLE_CRYPTO_OPENSSL], [1], [Use OpenSSL library])
test "${have_openssl_engine}" = "yes" && AC_DEFINE([HAVE_OPENSSL_ENGINE], [1], [Use crypto library])
;;
polarssl)
have_crypto_crypto="${have_polarssl_crypto}"
have_crypto_ssl="${have_polarssl_ssl}"
2012-04-02 09:28:04 +02:00
CRYPTO_CRYPTO_CFLAGS="${POLARSSL_CFLAGS}"
2012-02-29 21:12:10 +01:00
CRYPTO_CRYPTO_LIBS="${POLARSSL_LIBS}"
AC_DEFINE([ENABLE_CRYPTO_POLARSSL], [1], [Use PolarSSL library])
;;
esac
if test "${enable_ssl}" = "yes"; then
test "${enable_crypto}" != "yes" && AC_MSG_ERROR([crypto must be enabled for ssl])
test "${have_crypto_ssl}" != "yes" && AC_MSG_ERROR([${with_ssl_library} ssl is required but missing])
OPTIONAL_CRYPTO_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${CRYPTO_SSL_CFLAGS}"
OPTIONAL_CRYPTO_LIBS="${OPTIONAL_CRYPTO_LIBS} ${CRYPTO_SSL_LIBS}"
AC_DEFINE([ENABLE_SSL], [1], [Enable ssl library])
fi
if test "${enable_crypto}" = "yes"; then
2012-11-26 15:32:21 +01:00
test "${have_crypto_crypto}" != "yes" && AC_MSG_ERROR([${with_crypto_library} crypto is required but missing])
2014-06-08 18:16:12 +02:00
test "${enable_crypto_ofb_cfb}" = "yes" && AC_DEFINE([ENABLE_OFB_CFB_MODE], [1], [Enable OFB and CFB cipher modes])
2012-02-29 21:12:10 +01:00
OPTIONAL_CRYPTO_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${CRYPTO_CRYPTO_CFLAGS}"
OPTIONAL_CRYPTO_LIBS="${OPTIONAL_CRYPTO_LIBS} ${CRYPTO_CRYPTO_LIBS}"
AC_DEFINE([ENABLE_CRYPTO], [1], [Enable crypto library])
fi
2012-02-29 21:12:02 +01:00
if test "${enable_plugins}" = "yes"; then
OPTIONAL_DL_LIBS="${DL_LIBS}"
2013-06-07 12:15:30 +02:00
AC_DEFINE([ENABLE_PLUGIN], [1], [Enable plug-in support])
2012-05-15 00:42:03 +02:00
else
enable_plugin_auth_pam="no"
enable_plugin_down_root="no"
2012-02-29 21:12:02 +01:00
fi
2012-02-29 21:12:01 +01:00
if test "${enable_iproute2}" = "yes"; then
test -z "${IPROUTE}" && AC_MSG_ERROR([ip utility is required but missing])
AC_DEFINE([ENABLE_IPROUTE], [1], [enable iproute2 support])
else
if test "${WIN32}" != "yes"; then
test -z "${ROUTE}" && AC_MSG_ERROR([route utility is required but missing])
test -z "${IFCONFIG}" && AC_MSG_ERROR([ifconfig utility is required but missing])
fi
fi
2012-02-29 21:11:56 +01:00
2012-02-29 21:12:05 +01:00
if test "${enable_selinux}" = "yes"; then
test -z "${SELINUX_LIBS}" && AC_MSG_ERROR([libselinux required but missing])
OPTIONAL_SELINUX_LIBS="${SELINUX_LIBS}"
AC_DEFINE([ENABLE_SELINUX], [1], [SELinux support])
fi
2012-02-29 21:12:09 +01:00
if test "${enable_lzo}" = "yes"; then
test "${have_lzo}" != "yes" && AC_MSG_ERROR([lzo enabled but missing])
OPTIONAL_LZO_CFLAGS="${LZO_CFLAGS}"
OPTIONAL_LZO_LIBS="${LZO_LIBS}"
AC_DEFINE([ENABLE_LZO], [1], [Enable LZO compression library])
fi
2012-09-18 08:33:34 +02:00
if test "${enable_comp_stub}" = "yes"; then
test "${enable_lzo}" = "yes" && AC_MSG_ERROR([Cannot have both comp stub and lzo enabled (use --disable-lzo)])
test "${enable_snappy}" = "yes" && AC_MSG_ERROR([Cannot have both comp stub and snappy enabled (use --disable-snappy)])
2014-01-01 22:57:58 +01:00
test "${enable_lz4}" = "yes" && AC_MSG_ERROR([Cannot have both comp stub and LZ4 enabled (use --disable-lz4)])
2012-09-18 08:33:34 +02:00
AC_DEFINE([ENABLE_COMP_STUB], [1], [Enable compression stub capability])
2012-02-29 21:12:08 +01:00
fi
2012-02-29 21:12:07 +01:00
if test "${enable_pkcs11}" = "yes"; then
test "${have_pkcs11_helper}" != "yes" && AC_MSG_ERROR([PKCS11 enabled but libpkcs11-helper is missing])
test "${enable_ssl}" != "yes" && AC_MSG_ERROR([PKCS11 can be enabled only if SSL is enabled])
OPTIONAL_PKCS11_HELPER_CFLAGS="${PKCS11_HELPER_CFLAGS}"
OPTIONAL_PKCS11_HELPER_LIBS="${PKCS11_HELPER_LIBS}"
AC_DEFINE([ENABLE_PKCS11], [1], [Enable PKCS11])
fi
2012-02-29 21:11:56 +01:00
if test "${enable_pedantic}" = "yes"; then
enable_strict="yes"
2012-03-28 20:43:15 +02:00
CFLAGS="${CFLAGS} -pedantic"
test "${WIN32}" != "yes" && CFLAGS="${CFLAGS} -ansi"
2012-02-29 21:11:56 +01:00
fi
if test "${enable_strict}" = "yes"; then
CFLAGS="${CFLAGS} -Wall -Wno-unused-parameter -Wno-unused-function"
2009-09-05 01:50:35 +02:00
fi
2014-05-29 12:39:07 +02:00
if test "${enable_werror}" = "yes"; then
CFLAGS="${CFLAGS} -Werror"
fi
2009-09-05 01:50:35 +02:00
2012-02-29 21:12:01 +01:00
if test "${WIN32}" = "yes"; then
test -z "${MAN2HTML}" && AC_MSG_ERROR([man2html is required for win32])
fi
2012-05-15 00:42:03 +02:00
if test "${enable_plugin_auth_pam}" = "yes"; then
PLUGIN_AUTH_PAM_CFLAGS="${LIBPAM_CFLAGS}"
if test "${enable_pam_dlopen}" = "yes"; then
AC_DEFINE([USE_PAM_DLOPEN], [1], [dlopen libpam])
PLUGIN_AUTH_PAM_LIBS="${DL_LIBS}"
else
test -z "${LIBPAM_LIBS}" && AC_MSG_ERROR([libpam required but missing])
PLUGIN_AUTH_PAM_LIBS="${LIBPAM_LIBS}"
fi
fi
2012-02-29 21:11:58 +01:00
CONFIGURE_DEFINES="`set | grep '^enable_.*=' ; set | grep '^with_.*='`"
AC_DEFINE_UNQUOTED([CONFIGURE_DEFINES], ["`echo ${CONFIGURE_DEFINES}`"], [Configuration settings])
2012-02-29 21:11:50 +01:00
TAP_WIN_COMPONENT_ID="PRODUCT_TAP_WIN_COMPONENT_ID"
TAP_WIN_MIN_MAJOR="PRODUCT_TAP_WIN_MIN_MAJOR"
TAP_WIN_MIN_MINOR="PRODUCT_TAP_WIN_MIN_MINOR"
AC_DEFINE_UNQUOTED([TAP_WIN_COMPONENT_ID], ["${TAP_WIN_COMPONENT_ID}"], [The tap-windows id])
AC_DEFINE_UNQUOTED([TAP_WIN_MIN_MAJOR], [${TAP_WIN_MIN_MAJOR}], [The tap-windows version number is required for OpenVPN])
AC_DEFINE_UNQUOTED([TAP_WIN_MIN_MINOR], [${TAP_WIN_MIN_MINOR}], [The tap-windows version number is required for OpenVPN])
AC_SUBST([TAP_WIN_COMPONENT_ID])
AC_SUBST([TAP_WIN_MIN_MAJOR])
AC_SUBST([TAP_WIN_MIN_MINOR])
2008-05-12 22:31:43 +02:00
2012-02-29 21:12:02 +01:00
AC_SUBST([OPTIONAL_DL_LIBS])
2012-02-29 21:12:05 +01:00
AC_SUBST([OPTIONAL_SELINUX_LIBS])
2012-02-29 21:12:10 +01:00
AC_SUBST([OPTIONAL_CRYPTO_CFLAGS])
AC_SUBST([OPTIONAL_CRYPTO_LIBS])
2012-02-29 21:12:09 +01:00
AC_SUBST([OPTIONAL_LZO_CFLAGS])
AC_SUBST([OPTIONAL_LZO_LIBS])
2012-09-18 08:33:34 +02:00
AC_SUBST([OPTIONAL_SNAPPY_CFLAGS])
AC_SUBST([OPTIONAL_SNAPPY_LIBS])
2014-01-01 22:57:58 +01:00
AC_SUBST([OPTIONAL_LZ4_CFLAGS])
AC_SUBST([OPTIONAL_LZ4_LIBS])
2014-10-03 19:16:07 +02:00
AC_SUBST([OPTIONAL_SYSTEMD_LIBS])
2012-02-29 21:12:07 +01:00
AC_SUBST([OPTIONAL_PKCS11_HELPER_CFLAGS])
AC_SUBST([OPTIONAL_PKCS11_HELPER_LIBS])
2012-02-29 21:12:02 +01:00
2012-05-15 00:42:03 +02:00
AC_SUBST([PLUGIN_AUTH_PAM_CFLAGS])
AC_SUBST([PLUGIN_AUTH_PAM_LIBS])
2012-02-29 21:11:56 +01:00
AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
2012-05-05 08:39:42 +02:00
AM_CONDITIONAL([GIT_CHECKOUT], [test "${GIT_CHECKOUT}" = "yes"])
2012-05-15 00:42:03 +02:00
AM_CONDITIONAL([ENABLE_PLUGIN_AUTH_PAM], [test "${enable_plugin_auth_pam}" = "yes"])
AM_CONDITIONAL([ENABLE_PLUGIN_DOWN_ROOT], [test "${enable_plugin_down_root}" = "yes"])
2008-05-12 22:31:43 +02:00
2012-05-15 00:42:03 +02:00
plugindir="${with_plugindir}"
2012-02-29 21:12:21 +01:00
sampledir="\$(docdir)/sample"
2012-05-15 00:42:03 +02:00
AC_SUBST([plugindir])
2012-02-29 21:12:21 +01:00
AC_SUBST([sampledir])
2012-02-29 21:11:56 +01:00
AC_CONFIG_FILES([
2012-02-29 21:12:20 +01:00
version.sh
2008-05-12 22:31:43 +02:00
Makefile
2012-02-29 21:12:00 +01:00
build/Makefile
2012-02-29 21:12:12 +01:00
build/msvc/Makefile
build/msvc/msvc-generate/Makefile
2012-02-29 21:11:59 +01:00
distro/Makefile
distro/rpm/Makefile
distro/rpm/openvpn.spec
include/Makefile
src/Makefile
2012-02-29 21:12:14 +01:00
src/compat/Makefile
2012-02-29 21:11:59 +01:00
src/openvpn/Makefile
src/openvpnserv/Makefile
2012-05-15 00:42:03 +02:00
src/plugins/Makefile
src/plugins/auth-pam/Makefile
src/plugins/down-root/Makefile
2012-02-29 21:11:59 +01:00
tests/Makefile
sample/Makefile
doc/Makefile
2008-05-12 22:31:43 +02:00
])
2012-02-29 21:11:59 +01:00
AC_CONFIG_FILES([tests/t_client.sh], [chmod +x tests/t_client.sh])
2012-02-29 21:11:56 +01:00
AC_OUTPUT