Annotation of embedaddon/strongswan/configure.ac, revision 1.1.1.1

1.1       misho       1: #
                      2: # Copyright (C) 2007-2017 Tobias Brunner
                      3: # Copyright (C) 2006-2019 Andreas Steffen
                      4: # Copyright (C) 2006-2014 Martin Willi
                      5: # HSR Hochschule fuer Technik Rapperswil
                      6: #
                      7: # This program is free software; you can redistribute it and/or modify it
                      8: # under the terms of the GNU General Public License as published by the
                      9: # Free Software Foundation; either version 2 of the License, or (at your
                     10: # option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
                     11: #
                     12: # This program is distributed in the hope that it will be useful, but
                     13: # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     14: # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
                     15: # for more details.
                     16: #
                     17: 
                     18: # ============================
                     19: #  initialize & set some vars
                     20: # ============================
                     21: 
                     22: AC_INIT([strongSwan],[5.8.4])
                     23: AM_INIT_AUTOMAKE(m4_esyscmd([
                     24:        echo tar-ustar
                     25:        echo subdir-objects
                     26:        case `automake --version | head -n 1` in
                     27:                *" 1.9"*);;
                     28:                *" 1.10"*);;
                     29:                *" 1.11"*);;
                     30:                # don't use parallel test harness in 1.12 and up
                     31:                *) echo serial-tests;;
                     32:        esac
                     33: ]))
                     34: m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
                     35: AC_CONFIG_MACRO_DIR([m4/config])
                     36: AC_CONFIG_HEADERS([config.h])
                     37: AC_DEFINE([CONFIG_H_INCLUDED], [], [defined if config.h included])
                     38: AC_DISABLE_STATIC
                     39: PKG_PROG_PKG_CONFIG
                     40: 
                     41: m4_include(m4/macros/split-package-version.m4)
                     42: SPLIT_PACKAGE_VERSION
                     43: 
                     44: # =================================
                     45: #  check --enable-xxx & --with-xxx
                     46: # =================================
                     47: 
                     48: m4_include(m4/macros/with.m4)
                     49: 
                     50: ARG_WITH_SUBST([random-device],      [/dev/random], [set the device to read real random data from])
                     51: ARG_WITH_SUBST([urandom-device],     [/dev/urandom], [set the device to read pseudo random data from])
                     52: ARG_WITH_SUBST([strongswan-conf],    [${sysconfdir}/strongswan.conf], [set the strongswan.conf file location])
                     53: ARG_WITH_SUBST([resolv-conf],        [${sysconfdir}/resolv.conf], [set the file to use in DNS handler plugin])
                     54: ARG_WITH_SUBST([piddir],             [/var/run], [set path for PID and UNIX socket files])
                     55: ARG_WITH_SUBST([ipsecdir],           [${libexecdir%/}/ipsec], [set installation path for ipsec tools])
                     56: ARG_WITH_SUBST([ipseclibdir],        [${libdir%/}/ipsec], [set installation path for ipsec libraries])
                     57: ARG_WITH_SUBST([plugindir],          [${ipseclibdir%/}/plugins], [set the installation path of plugins])
                     58: ARG_WITH_SUBST([imcvdir],            [${ipseclibdir%/}/imcvs], [set the installation path of IMC and IMV dynamic libraries])
                     59: ARG_WITH_SUBST([nm-ca-dir],          [/usr/share/ca-certificates], [directory the NM backend uses to look up trusted root certificates])
                     60: ARG_WITH_SUBST([swanctldir],         [${sysconfdir}/swanctl], [base directory for swanctl configuration files and credentials])
                     61: ARG_WITH_SUBST([linux-headers],      [\${top_srcdir}/src/include], [set directory of linux header files to use])
                     62: ARG_WITH_SUBST([routing-table],      [220], [set routing table to use for IPsec routes])
                     63: ARG_WITH_SUBST([routing-table-prio], [220], [set priority for IPsec routing table])
                     64: ARG_WITH_SUBST([ipsec-script],       [ipsec], [change the name of the ipsec script])
                     65: ARG_WITH_SUBST([fips-mode],          [0], [set openssl FIPS mode: disabled(0), enabled(1), Suite B enabled(2)])
                     66: ARG_WITH_SUBST([libfuzzer],          [], [-fsanitize=fuzzer or path to libFuzzer.a, a local driver is used if not specified])
                     67: ARG_WITH_SET([capabilities],         [no], [set capability dropping library. Currently supported values are "libcap" and "native"])
                     68: ARG_WITH_SET([mpz_powm_sec],         [yes], [use the more side-channel resistant mpz_powm_sec in libgmp, if available])
                     69: ARG_WITH_SET([dev-headers],          [no], [install strongSwan development headers to directory.])
                     70: ARG_WITH_SET([printf-hooks],         [auto], [force the use of a specific printf hook implementation (auto, builtin, glibc, vstr).])
                     71: ARG_WITH_SET([rubygemdir],           ["gem environment gemdir"], [path to install ruby gems to])
                     72: ARG_WITH_SET([pythoneggdir],         ["main site-packages directory"], [path to install python eggs to to])
                     73: 
                     74: if test -n "$PKG_CONFIG"; then
                     75:        systemdsystemunitdir_default=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
                     76: fi
                     77: ARG_WITH_SET([systemdsystemunitdir], [$systemdsystemunitdir_default], [directory for systemd service files])
                     78: AC_SUBST(systemdsystemunitdir)
                     79: 
                     80: AC_ARG_WITH(
                     81:        [dbuspolicydir],
                     82:        AS_HELP_STRING([--with-dbuspolicydir=arg],[directory for D-Bus policies (default: ${dbusdatadir|datarootdir}/dbus-1/system.d)]),
                     83:        [dbuspolicydir="$withval"],
                     84:        [PKG_CHECK_VAR([dbusdatadir], [dbus-1], [datadir], , [dbusdatadir="${datarootdir}"])
                     85:         dbuspolicydir="${dbusdatadir}/dbus-1/system.d"]
                     86: )
                     87: AC_SUBST(dbuspolicydir)
                     88: 
                     89: AC_ARG_WITH(
                     90:        [user],
                     91:        AS_HELP_STRING([--with-user=user],[change user of the daemons to "user" after startup (default is "root").]),
                     92:        [AC_DEFINE_UNQUOTED([IPSEC_USER], "$withval", [username to run daemon with])
                     93:         AC_SUBST(ipsecuser, "$withval")],
                     94:        [AC_SUBST(ipsecuser, "root")]
                     95: )
                     96: 
                     97: AC_ARG_WITH(
                     98:        [group],
                     99:        AS_HELP_STRING([--with-group=group],[change group of the daemons to "group" after startup (default is "root").]),
                    100:        [AC_DEFINE_UNQUOTED(IPSEC_GROUP, "$withval", [groupname to run daemon with])
                    101:         AC_SUBST(ipsecgroup, "$withval")],
                    102:        [AC_SUBST(ipsecgroup, "root")]
                    103: )
                    104: 
                    105: AC_ARG_WITH(
                    106:        [charon-udp-port],
                    107:        AS_HELP_STRING([--with-charon-udp-port=port],[UDP port used by charon locally (default 500). Set to 0 to allocate randomly.]),
                    108:        [AC_DEFINE_UNQUOTED(CHARON_UDP_PORT, [$withval], [UDP port used by charon locally])
                    109:         AC_SUBST(charon_udp_port, [$withval])],
                    110:        [AC_SUBST(charon_udp_port, 500)]
                    111: )
                    112: 
                    113: AC_ARG_WITH(
                    114:        [charon-natt-port],
                    115:        AS_HELP_STRING([--with-charon-natt-port=port],[UDP port used by charon locally in case a NAT is detected (must be different from charon-udp-port, default 4500). Set to 0 to allocate randomly.]),
                    116:        [AC_DEFINE_UNQUOTED(CHARON_NATT_PORT, [$withval], [UDP post used by charon locally in case a NAT is detected])
                    117:         AC_SUBST(charon_natt_port, [$withval])],
                    118:        [AC_SUBST(charon_natt_port, 4500)]
                    119: )
                    120: 
                    121: AC_MSG_CHECKING([configured UDP ports ($charon_udp_port, $charon_natt_port)])
                    122: if test x$charon_udp_port != x0 -a x$charon_udp_port = x$charon_natt_port; then
                    123:        AC_MSG_ERROR(the ports have to be different)
                    124: else
                    125:        AC_MSG_RESULT(ok)
                    126: fi
                    127: 
                    128: # convert script name to uppercase
                    129: AC_SUBST(ipsec_script_upper, [`echo -n "$ipsec_script" | tr a-z A-Z`])
                    130: 
                    131: m4_include(m4/macros/enable-disable.m4)
                    132: 
                    133: # crypto plugins
                    134: ARG_DISBL_SET([aes],            [disable AES software implementation plugin.])
                    135: ARG_ENABL_SET([af-alg],         [enable AF_ALG crypto interface to Linux Crypto API.])
                    136: ARG_ENABL_SET([bliss],          [enable BLISS software implementation plugin.])
                    137: ARG_ENABL_SET([blowfish],       [enable Blowfish software implementation plugin.])
                    138: ARG_ENABL_SET([botan],          [enables the Botan crypto plugin.])
                    139: ARG_ENABL_SET([ccm],            [enables the CCM AEAD wrapper crypto plugin.])
                    140: ARG_ENABL_SET([chapoly],        [enables the ChaCha20/Poly1305 AEAD plugin.])
                    141: ARG_DISBL_SET([cmac],           [disable CMAC crypto implementation plugin.])
                    142: ARG_ENABL_SET([ctr],            [enables the Counter Mode wrapper crypto plugin.])
                    143: ARG_DISBL_SET([des],            [disable DES/3DES software implementation plugin.])
                    144: ARG_DISBL_SET([drbg],           [disable the NIST Deterministic Random Bit Generator plugin.])
                    145: ARG_DISBL_SET([fips-prf],       [disable FIPS PRF software implementation plugin.])
                    146: ARG_ENABL_SET([gcm],            [enables the GCM AEAD wrapper crypto plugin.])
                    147: ARG_ENABL_SET([gcrypt],         [enables the libgcrypt plugin.])
                    148: ARG_DISBL_SET([gmp],            [disable GNU MP (libgmp) based crypto implementation plugin.])
                    149: ARG_DISBL_SET([curve25519],     [disable Curve25519 Diffie-Hellman plugin.])
                    150: ARG_DISBL_SET([hmac],           [disable HMAC crypto implementation plugin.])
                    151: ARG_ENABL_SET([md4],            [enable MD4 software implementation plugin.])
                    152: ARG_DISBL_SET([md5],            [disable MD5 software implementation plugin.])
                    153: ARG_ENABL_SET([mgf1],           [enable the MGF1 software implementation plugin.])
                    154: ARG_ENABL_SET([newhope],        [enable New Hope crypto plugin.])
                    155: ARG_DISBL_SET([nonce],          [disable nonce generation plugin.])
                    156: ARG_ENABL_SET([ntru],           [enables the NTRU crypto plugin.])
                    157: ARG_ENABL_SET([openssl],        [enables the OpenSSL crypto plugin.])
                    158: ARG_ENABL_SET([wolfssl],        [enables the wolfSSL crypto plugin.])
                    159: ARG_ENABL_SET([padlock],        [enables VIA Padlock crypto plugin.])
                    160: ARG_DISBL_SET([random],         [disable RNG implementation on top of /dev/(u)random.])
                    161: ARG_DISBL_SET([rc2],            [disable RC2 software implementation plugin.])
                    162: ARG_ENABL_SET([rdrand],         [enable Intel RDRAND random generator plugin.])
                    163: ARG_ENABL_SET([aesni],          [enable Intel AES-NI crypto plugin.])
                    164: ARG_DISBL_SET([sha1],           [disable SHA1 software implementation plugin.])
                    165: ARG_DISBL_SET([sha2],           [disable SHA256/SHA384/SHA512 software implementation plugin.])
                    166: ARG_ENABL_SET([sha3],           [enable SHA3_224/SHA3_256/SHA3_384/SHA3_512 software implementation plugin.])
                    167: ARG_DISBL_SET([xcbc],           [disable xcbc crypto implementation plugin.])
                    168: # encoding/decoding plugins
                    169: ARG_DISBL_SET([dnskey],         [disable DNS RR key decoding plugin.])
                    170: ARG_DISBL_SET([pem],            [disable PEM decoding plugin.])
                    171: ARG_DISBL_SET([pgp],            [disable PGP key decoding plugin.])
                    172: ARG_DISBL_SET([pkcs1],          [disable PKCS1 key decoding plugin.])
                    173: ARG_DISBL_SET([pkcs7],          [disable PKCS7 container support plugin.])
                    174: ARG_DISBL_SET([pkcs8],          [disable PKCS8 private key decoding plugin.])
                    175: ARG_DISBL_SET([pkcs12],         [disable PKCS12 container support plugin.])
                    176: ARG_DISBL_SET([pubkey],         [disable RAW public key support plugin.])
                    177: ARG_DISBL_SET([sshkey],         [disable SSH key decoding plugin.])
                    178: ARG_DISBL_SET([x509],           [disable X509 certificate implementation plugin.])
                    179: # fetcher/resolver plugins
                    180: ARG_ENABL_SET([curl],           [enable CURL fetcher plugin to fetch files via libcurl. Requires libcurl.])
                    181: ARG_ENABL_SET([files],          [enable simple file:// URI fetcher.])
                    182: ARG_ENABL_SET([ldap],           [enable LDAP fetching plugin to fetch files via libldap. Requires openLDAP.])
                    183: ARG_ENABL_SET([soup],           [enable soup fetcher plugin to fetch from HTTP via libsoup. Requires libsoup.])
                    184: ARG_ENABL_SET([unbound],        [enable UNBOUND resolver plugin to perform DNS queries via libunbound. Requires libldns and libunbound.])
                    185: ARG_ENABL_SET([winhttp],        [enable WinHTTP based HTTP/HTTPS fetching plugin.])
                    186: # database plugins
                    187: ARG_ENABL_SET([mysql],          [enable MySQL database support. Requires libmysqlclient_r.])
                    188: ARG_ENABL_SET([sqlite],         [enable SQLite database support. Requires libsqlite3.])
                    189: # authentication/credential plugins
                    190: ARG_ENABL_SET([addrblock],      [enables RFC 3779 address block constraint support.])
                    191: ARG_ENABL_SET([acert],          [enable X509 attribute certificate checking plugin.])
                    192: ARG_ENABL_SET([agent],          [enables the ssh-agent signing plugin.])
                    193: ARG_DISBL_SET([constraints],    [disable advanced X509 constraint checking plugin.])
                    194: ARG_ENABL_SET([coupling],       [enable IKEv2 plugin to couple peer certificates permanently to authentication.])
                    195: ARG_ENABL_SET([dnscert],        [enable DNSCERT authentication plugin.])
                    196: ARG_ENABL_SET([eap-sim],        [enable SIM authentication module for EAP.])
                    197: ARG_ENABL_SET([eap-sim-file],   [enable EAP-SIM backend based on a triplet file.])
                    198: ARG_ENABL_SET([eap-sim-pcsc],   [enable EAP-SIM backend based on a smartcard reader. Requires libpcsclite.])
                    199: ARG_ENABL_SET([eap-aka],        [enable EAP AKA authentication module.])
                    200: ARG_ENABL_SET([eap-aka-3gpp],   [enable EAP AKA backend implementing 3GPP MILENAGE algorithms in software.])
                    201: ARG_ENABL_SET([eap-aka-3gpp2],  [enable EAP AKA backend implementing 3GPP2 algorithms in software. Requires libgmp.])
                    202: ARG_ENABL_SET([eap-simaka-sql], [enable EAP-SIM/AKA backend based on a triplet/quintuplet SQL database.])
                    203: ARG_ENABL_SET([eap-simaka-pseudonym], [enable EAP-SIM/AKA pseudonym storage plugin.])
                    204: ARG_ENABL_SET([eap-simaka-reauth],    [enable EAP-SIM/AKA reauthentication data storage plugin.])
                    205: ARG_ENABL_SET([eap-identity],   [enable EAP module providing EAP-Identity helper.])
                    206: ARG_ENABL_SET([eap-md5],        [enable EAP MD5 (CHAP) authentication module.])
                    207: ARG_ENABL_SET([eap-gtc],        [enable EAP GTC authentication module.])
                    208: ARG_ENABL_SET([eap-mschapv2],   [enable EAP MS-CHAPv2 authentication module.])
                    209: ARG_ENABL_SET([eap-tls],        [enable EAP TLS authentication module.])
                    210: ARG_ENABL_SET([eap-ttls],       [enable EAP TTLS authentication module.])
                    211: ARG_ENABL_SET([eap-peap],       [enable EAP PEAP authentication module.])
                    212: ARG_ENABL_SET([eap-tnc],        [enable EAP TNC trusted network connect module.])
                    213: ARG_ENABL_SET([eap-dynamic],    [enable dynamic EAP proxy module.])
                    214: ARG_ENABL_SET([eap-radius],     [enable RADIUS proxy authentication module.])
                    215: ARG_ENABL_SET([ext-auth],       [enable plugin calling an external authorization script.])
                    216: ARG_ENABL_SET([ipseckey],       [enable IPSECKEY authentication plugin.])
                    217: ARG_ENABL_SET([keychain],       [enables OS X Keychain Services credential set.])
                    218: ARG_ENABL_SET([pkcs11],         [enables the PKCS11 token support plugin.])
                    219: ARG_ENABL_SET([tpm],            [enables the TPM plugin.])
                    220: ARG_DISBL_SET([revocation],     [disable X509 CRL/OCSP revocation check plugin.])
                    221: ARG_ENABL_SET([whitelist],      [enable peer identity whitelisting plugin.])
                    222: ARG_DISBL_SET([xauth-generic],  [disable generic XAuth backend.])
                    223: ARG_ENABL_SET([xauth-eap],      [enable XAuth backend using EAP methods to verify passwords.])
                    224: ARG_ENABL_SET([xauth-pam],      [enable XAuth backend using PAM to verify passwords.])
                    225: ARG_ENABL_SET([xauth-noauth],   [enable XAuth pseudo-backend that does not actually verify or even request any credentials.])
                    226: # kernel interfaces / sockets
                    227: ARG_DISBL_SET([kernel-netlink], [disable the netlink kernel interface.])
                    228: ARG_ENABL_SET([kernel-pfkey],   [enable the PF_KEY kernel interface.])
                    229: ARG_ENABL_SET([kernel-pfroute], [enable the PF_ROUTE kernel interface.])
                    230: ARG_ENABL_SET([kernel-iph],     [enable the Windows IP Helper based networking backend.])
                    231: ARG_ENABL_SET([kernel-libipsec],[enable the libipsec kernel interface.])
                    232: ARG_ENABL_SET([kernel-wfp],     [enable the Windows Filtering Platform IPsec backend.])
                    233: ARG_DISBL_SET([socket-default], [disable default socket implementation for charon.])
                    234: ARG_ENABL_SET([socket-dynamic], [enable dynamic socket implementation for charon])
                    235: ARG_ENABL_SET([socket-win],     [enable Winsock2 based socket implementation for charon])
                    236: # configuration/control plugins
                    237: ARG_DISBL_SET([stroke],         [disable charons stroke configuration backend.])
                    238: ARG_ENABL_SET([smp],            [enable SMP configuration and control interface. Requires libxml.])
                    239: ARG_ENABL_SET([sql],            [enable SQL database configuration backend.])
                    240: ARG_ENABL_SET([uci],            [enable OpenWRT UCI configuration plugin.])
                    241: ARG_DISBL_SET([vici],           [disable strongSwan IKE generic IPC interface plugin.])
                    242: # attribute provider/consumer plugins
                    243: ARG_ENABL_SET([android-dns],    [enable Android specific DNS handler.])
                    244: ARG_DISBL_SET([attr],           [disable strongswan.conf based configuration attribute plugin.])
                    245: ARG_ENABL_SET([attr-sql],       [enable SQL based configuration attribute plugin.])
                    246: ARG_ENABL_SET([dhcp],           [enable DHCP based attribute provider plugin.])
                    247: ARG_ENABL_SET([osx-attr],       [enable OS X SystemConfiguration attribute handler.])
                    248: ARG_ENABL_SET([p-cscf],         [enable plugin to request P-CSCF server addresses from an ePDG.])
                    249: ARG_DISBL_SET([resolve],        [disable resolve DNS handler plugin.])
                    250: ARG_ENABL_SET([unity],          [enables Cisco Unity extension plugin.])
                    251: # TNC modules/plugins
                    252: ARG_ENABL_SET([imc-test],       [enable IMC test module.])
                    253: ARG_ENABL_SET([imv-test],       [enable IMV test module.])
                    254: ARG_ENABL_SET([imc-scanner],    [enable IMC port scanner module.])
                    255: ARG_ENABL_SET([imv-scanner],    [enable IMV port scanner module.])
                    256: ARG_ENABL_SET([imc-os],         [enable IMC operating system module.])
                    257: ARG_ENABL_SET([imv-os],         [enable IMV operating system module.])
                    258: ARG_ENABL_SET([imc-attestation],[enable IMC attestation module.])
                    259: ARG_ENABL_SET([imv-attestation],[enable IMV attestation module.])
                    260: ARG_ENABL_SET([imc-swima],      [enable IMC swima module.])
                    261: ARG_ENABL_SET([imv-swima],      [enable IMV swima module.])
                    262: ARG_ENABL_SET([imc-hcd],        [enable IMC hcd module.])
                    263: ARG_ENABL_SET([imv-hcd],        [enable IMV hcd module.])
                    264: ARG_ENABL_SET([tnc-ifmap],      [enable TNC IF-MAP module. Requires libxml])
                    265: ARG_ENABL_SET([tnc-imc],        [enable TNC IMC module.])
                    266: ARG_ENABL_SET([tnc-imv],        [enable TNC IMV module.])
                    267: ARG_ENABL_SET([tnc-pdp],        [enable TNC policy decision point module.])
                    268: ARG_ENABL_SET([tnccs-11],       [enable TNCCS 1.1 protocol module. Requires libxml])
                    269: ARG_ENABL_SET([tnccs-20],       [enable TNCCS 2.0 protocol module.])
                    270: ARG_ENABL_SET([tnccs-dynamic],  [enable dynamic TNCCS protocol discovery module.])
                    271: # misc plugins
                    272: ARG_ENABL_SET([android-log],    [enable Android specific logger plugin.])
                    273: ARG_ENABL_SET([bypass-lan],     [enable plugin to install bypass policies for local subnets.])
                    274: ARG_ENABL_SET([certexpire],     [enable CSV export of expiration dates of used certificates.])
                    275: ARG_ENABL_SET([connmark],       [enable connmark plugin using conntrack based marks to select return path SA.])
                    276: ARG_ENABL_SET([counters],       [enable plugin that collects several performance counters.])
                    277: ARG_ENABL_SET([forecast],       [enable forecast plugin forwarding broadcast/multicast messages.])
                    278: ARG_ENABL_SET([duplicheck],     [advanced duplicate checking plugin using liveness checks.])
                    279: ARG_ENABL_SET([error-notify],   [enable error notification plugin.])
                    280: ARG_ENABL_SET([farp],           [enable ARP faking plugin that responds to ARP requests to peers virtual IP])
                    281: ARG_ENABL_SET([ha],             [enable high availability cluster plugin.])
                    282: ARG_ENABL_SET([led],            [enable plugin to control LEDs on IKEv2 activity using the Linux kernel LED subsystem.])
                    283: ARG_ENABL_SET([load-tester],    [enable load testing plugin for IKEv2 daemon.])
                    284: ARG_ENABL_SET([lookip],         [enable fast virtual IP lookup and notification plugin.])
                    285: ARG_ENABL_SET([radattr],        [enable plugin to inject and process custom RADIUS attributes as IKEv2 client.])
                    286: ARG_ENABL_SET([save-keys],      [enable development/debugging plugin that saves IKE and ESP keys in Wireshark format.])
                    287: ARG_ENABL_SET([systime-fix],    [enable plugin to handle cert lifetimes with invalid system time gracefully.])
                    288: ARG_ENABL_SET([test-vectors],   [enable plugin providing crypto test vectors.])
                    289: ARG_DISBL_SET([updown],         [disable updown firewall script plugin.])
                    290: # programs/components
                    291: ARG_ENABL_SET([aikgen],         [enable AIK generator for TPM 1.2.])
                    292: ARG_DISBL_SET([charon],         [disable the IKEv1/IKEv2 keying daemon charon.])
                    293: ARG_ENABL_SET([cmd],            [enable the command line IKE client charon-cmd.])
                    294: ARG_ENABL_SET([conftest],       [enforce Suite B conformance test framework.])
                    295: ARG_ENABL_SET([fast],           [enable libfast (FastCGI Application Server w/ templates.])
                    296: ARG_ENABL_SET([fuzzing],        [enable fuzzing scripts (found in directory fuzz).])
                    297: ARG_ENABL_SET([libipsec],       [enable user space IPsec implementation.])
                    298: ARG_ENABL_SET([manager],        [enable web management console (proof of concept).])
                    299: ARG_ENABL_SET([medcli],         [enable mediation client configuration database plugin.])
                    300: ARG_ENABL_SET([medsrv],         [enable mediation server web frontend and daemon plugin.])
                    301: ARG_ENABL_SET([nm],             [enable NetworkManager backend.])
                    302: ARG_DISBL_SET([pki],            [disable pki certificate utility.])
                    303: ARG_DISBL_SET([scepclient],     [disable SCEP client tool.])
                    304: ARG_DISBL_SET([scripts],        [disable additional utilities (found in directory scripts).])
                    305: ARG_ENABL_SET([svc],            [enable charon Windows service.])
                    306: ARG_ENABL_SET([systemd],        [enable systemd specific IKE daemon charon-systemd.])
                    307: ARG_DISBL_SET([swanctl],        [disable swanctl configuration and control tool.])
                    308: ARG_ENABL_SET([tkm],            [enable Trusted Key Manager support.])
                    309: # optional features
                    310: ARG_ENABL_SET([bfd-backtraces], [use binutils libbfd to resolve backtraces for memory leaks and segfaults.])
                    311: ARG_ENABL_SET([dbghelp-backtraces],[use dbghlp.dll on Windows to create and print backtraces for memory leaks and segfaults.])
                    312: ARG_DISBL_SET([ikev1],          [disable IKEv1 protocol support in charon.])
                    313: ARG_DISBL_SET([ikev2],          [disable IKEv2 protocol support in charon.])
                    314: ARG_ENABL_SET([integrity-test], [enable integrity testing of libstrongswan and plugins.])
                    315: ARG_DISBL_SET([load-warning],   [disable the charon plugin load option warning in starter.])
                    316: ARG_ENABL_SET([mediation],      [enable IKEv2 Mediation Extension.])
                    317: ARG_ENABL_SET([unwind-backtraces],[use libunwind to create backtraces for memory leaks and segfaults.])
                    318: ARG_ENABL_SET([ruby-gems],      [enable build of provided ruby gems.])
                    319: ARG_ENABL_SET([ruby-gems-install],[enable installation of provided ruby gems.])
                    320: ARG_ENABL_SET([python-eggs],    [enable build of provided python eggs.])
                    321: ARG_ENABL_SET([python-eggs-install],[enable installation of provided python eggs.])
                    322: ARG_ENABL_SET([perl-cpan],      [enable build of provided perl CPAN module.])
                    323: ARG_ENABL_SET([perl-cpan-install],[enable installation of provided CPAN module.])
                    324: ARG_ENABL_SET([tss-trousers],   [enable the use of the TrouSerS Trusted Software Stack])
                    325: ARG_ENABL_SET([tss-tss2],       [enable the use of the TSS 2.0 Trusted Software Stack])
                    326: 
                    327: # compile options
                    328: ARG_ENABL_SET([coverage],       [enable lcov coverage report generation.])
                    329: ARG_ENABL_SET([leak-detective], [enable malloc hooks to find memory leaks.])
                    330: ARG_ENABL_SET([lock-profiler],  [enable lock/mutex profiling code.])
                    331: ARG_ENABL_SET([log-thread-ids], [use thread ID, if available, instead of an incremented value starting from 1, to identify threads.])
                    332: ARG_ENABL_SET([monolithic],     [build monolithic version of libstrongswan that includes all enabled plugins. Similarly, the plugins of charon are assembled in libcharon.])
                    333: 
                    334: # ===================================
                    335: #  option to disable default options
                    336: # ===================================
                    337: 
                    338: ARG_DISBL_SET([defaults],       [disable all default plugins (they can be enabled with their respective --enable options)])
                    339: 
                    340: if test x$defaults = xfalse; then
                    341:        for option in $enabled_by_default; do
                    342:                eval test x\${${option}_given} = xtrue && continue
                    343:                eval $option=false
                    344:        done
                    345: fi
                    346: 
                    347: # ==============================
                    348: #  option to enable all options
                    349: # ==============================
                    350: 
                    351: ARG_ENABL_SET([all],            [enable all plugins and features (they can be disabled with their respective --disable options). Mainly for testing.])
                    352: 
                    353: if test x$all_given = xtrue; then
                    354:        for option in $disabled_by_default; do
                    355:                eval test x\${${option}_given} = xtrue && continue
                    356:                eval $option=true
                    357:        done
                    358: fi
                    359: 
                    360: # ===========================
                    361: #  set up compiler and flags
                    362: # ===========================
                    363: 
                    364: if test -z "$CFLAGS"; then
                    365:        CFLAGS="-g -O2 -Wall -Wno-format -Wno-format-security -Wno-pointer-sign"
                    366: fi
                    367: AC_SUBST(PLUGIN_CFLAGS)
                    368: AC_PROG_CC
                    369: AM_PROG_CC_C_O
                    370: 
                    371: AC_LIB_PREFIX
                    372: AC_C_BIGENDIAN
                    373: 
                    374: # =========================
                    375: #  check required programs
                    376: # =========================
                    377: 
                    378: LT_INIT
                    379: AC_PROG_INSTALL
                    380: AC_PROG_EGREP
                    381: AC_PROG_AWK
                    382: AC_PROG_LEX
                    383: AC_PROG_YACC
                    384: AM_PATH_PYTHON(,,[:])
                    385: AC_PATH_PROG([PERL], [perl], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                    386: AC_ARG_VAR([PERL], [the Perl interpreter])
                    387: AC_PATH_PROG([GPERF], [gperf], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                    388: AC_ARG_VAR([GPERF], [the GNU gperf program])
                    389: 
                    390: # because gperf is not needed by end-users we only abort if generated files don't exist
                    391: AC_MSG_CHECKING([gperf len type])
                    392: if test -x "$GPERF"; then
                    393:        GPERF_OUTPUT="`echo foo | ${GPERF}`"
                    394:        AC_COMPILE_IFELSE(
                    395:                [AC_LANG_PROGRAM(
                    396:                        [[#include <string.h>
                    397:                          const char *in_word_set(const char*, size_t); $GPERF_OUTPUT]])],
                    398:                [GPERF_LEN_TYPE=size_t],
                    399:                [AC_COMPILE_IFELSE(
                    400:                        [AC_LANG_PROGRAM(
                    401:                                [[#include <string.h>
                    402:                                  const char *in_word_set(const char*, unsigned); $GPERF_OUTPUT]])],
                    403:                        [GPERF_LEN_TYPE=unsigned],
                    404:                        [AC_MSG_ERROR([unable to determine gperf len type])]
                    405:                )]
                    406:        )
                    407:        AC_SUBST(GPERF_LEN_TYPE)
                    408:        AC_MSG_RESULT([$GPERF_LEN_TYPE])
                    409: else
                    410:        AC_MSG_RESULT([not found])
                    411:        GPERF_TEST_FILE="$srcdir/src/libstrongswan/crypto/proposal/proposal_keywords_static.c"
                    412:        if test ! -f "$GPERF_TEST_FILE"; then
                    413:                AC_MSG_ERROR([GNU gperf required to generate e.g. $GPERF_TEST_FILE])
                    414:        fi
                    415: fi
                    416: 
                    417: # ========================
                    418: #  dependency calculation
                    419: # ========================
                    420: 
                    421: if test x$xauth_generic_given = xfalse -a x$ikev1 = xfalse; then
                    422:        xauth_generic=false;
                    423: fi
                    424: 
                    425: if test x$kernel_libipsec = xtrue; then
                    426:        libipsec=true;
                    427: fi
                    428: 
                    429: if test x$eap_aka_3gpp2 = xtrue; then
                    430:        gmp=true;
                    431: fi
                    432: 
                    433: if test x$eap_aka = xtrue; then
                    434:        fips_prf=true;
                    435:        simaka=true;
                    436: fi
                    437: 
                    438: if test x$eap_sim = xtrue; then
                    439:        fips_prf=true;
                    440:        simaka=true;
                    441: fi
                    442: 
                    443: if test x$eap_radius = xtrue -o x$radattr = xtrue -o x$tnc_pdp = xtrue; then
                    444:        radius=true;
                    445: fi
                    446: 
                    447: if test x$tnc_imc = xtrue -o x$tnc_imv = xtrue -o x$tnccs_11 = xtrue -o x$tnccs_20 = xtrue -o x$tnccs_dynamic = xtrue -o x$eap_tnc = xtrue; then
                    448:        tnc_tnccs=true;
                    449: fi
                    450: 
                    451: if test x$eap_tls = xtrue -o x$eap_ttls = xtrue -o x$eap_peap = xtrue -o x$tnc_tnccs = xtrue; then
                    452:        tls=true;
                    453: fi
                    454: 
                    455: if test x$imc_test = xtrue -o x$imv_test = xtrue -o x$imc_scanner = xtrue -o x$imv_scanner = xtrue -o x$imc_os = xtrue -o x$imv_os = xtrue -o x$imc_attestation = xtrue -o x$imv_attestation = xtrue -o x$imc_swima = xtrue -o x$imv_swima = xtrue -o x$imc_hcd = xtrue -o x$imv_hcd = xtrue; then
                    456:        imcv=true;
                    457: fi
                    458: 
                    459: if test x$fips_prf = xtrue; then
                    460:        if test x$openssl = xfalse -a x$wolfssl = xfalse; then
                    461:                sha1=true;
                    462:        fi
                    463: fi
                    464: 
                    465: if test x$swanctl = xtrue; then
                    466:        vici=true
                    467: fi
                    468: 
                    469: if test x$smp = xtrue -o x$tnccs_11 = xtrue -o x$tnc_ifmap = xtrue; then
                    470:        xml=true
                    471: fi
                    472: 
                    473: if test x$manager = xtrue; then
                    474:        fast=true
                    475: fi
                    476: 
                    477: if test x$medsrv = xtrue; then
                    478:        mediation=true
                    479:        fast=true
                    480: fi
                    481: 
                    482: if test x$medcli = xtrue; then
                    483:        mediation=true
                    484: fi
                    485: 
                    486: if test x$ruby_gems_install = xtrue; then
                    487:        ruby_gems=true
                    488: fi
                    489: 
                    490: if test x$python_eggs_install = xtrue; then
                    491:        python_eggs=true
                    492: fi
                    493: 
                    494: if test x$perl_cpan_install = xtrue; then
                    495:        perl_cpan=true
                    496: fi
                    497: 
                    498: if test x$aikgen = xtrue; then
                    499:        tss_trousers=true
                    500: fi
                    501: 
                    502: if test x$gmp = xtrue -o x$ntru = xtrue -o x$bliss = xtrue; then
                    503:        mgf1=true
                    504: fi
                    505: 
                    506: if test x$stroke = xtrue; then
                    507:        counters=true
                    508: fi
                    509: 
                    510: # ===========================================
                    511: #  check required libraries and header files
                    512: # ===========================================
                    513: 
                    514: AC_HEADER_STDBOOL
                    515: AC_FUNC_ALLOCA
                    516: AC_FUNC_STRERROR_R
                    517: 
                    518: #  libraries needed on some platforms but not on others
                    519: # ------------------------------------------------------
                    520: saved_LIBS=$LIBS
                    521: 
                    522: # FreeBSD and Mac OS X have dlopen integrated in libc, Linux needs libdl
                    523: LIBS=""
                    524: AC_SEARCH_LIBS(dlopen, dl, [DLLIB=$LIBS])
                    525: AC_SUBST(DLLIB)
                    526: 
                    527: # glibc's backtrace() can be replicated on FreeBSD with libexecinfo
                    528: LIBS=""
                    529: AC_SEARCH_LIBS(backtrace, execinfo, [BTLIB=$LIBS])
                    530: AC_CHECK_FUNCS(backtrace)
                    531: AC_SUBST(BTLIB)
                    532: 
                    533: # OpenSolaris needs libsocket and libnsl for socket()
                    534: LIBS=""
                    535: AC_SEARCH_LIBS(socket, socket, [SOCKLIB=$LIBS],
                    536:        [AC_CHECK_LIB(nsl, socket, [SOCKLIB="-lsocket -lnsl"], [], [-lsocket])]
                    537: )
                    538: AC_SUBST(SOCKLIB)
                    539: 
                    540: # Android has pthread_* functions in bionic (libc), others need libpthread
                    541: LIBS=$DLLIB
                    542: AC_SEARCH_LIBS(pthread_create, pthread, [PTHREADLIB=$LIBS])
                    543: AC_SUBST(PTHREADLIB)
                    544: 
                    545: # Some architectures require explicit -latomic for __atomic_* operations
                    546: # AC_SEARCH_LIBS() does not work when checking built-ins due to conflicting types
                    547: LIBS=""
                    548: AC_MSG_CHECKING(for library containing __atomic_and_fetch)
                    549: AC_LINK_IFELSE(
                    550:        [AC_LANG_PROGRAM([[]], [[int x; __atomic_and_fetch(&x, 1, __ATOMIC_RELAXED);]])],
                    551:        [AC_MSG_RESULT([none required])],
                    552:        [LIBS="-latomic";
                    553:         AC_LINK_IFELSE(
                    554:                [AC_LANG_PROGRAM([[]], [[int x; __atomic_and_fetch(&x, 1, __ATOMIC_RELAXED);]])],
                    555:                [AC_MSG_RESULT([-latomic]); ATOMICLIB=$LIBS],
                    556:                [AC_MSG_RESULT([no])])
                    557:        ]
                    558: )
                    559: AC_SUBST(ATOMICLIB)
                    560: 
                    561: LIBS=$saved_LIBS
                    562: # ------------------------------------------------------
                    563: 
                    564: AC_MSG_CHECKING(for dladdr)
                    565: AC_COMPILE_IFELSE(
                    566:        [AC_LANG_PROGRAM(
                    567:                [[#define _GNU_SOURCE
                    568:                  #include <dlfcn.h>]],
                    569:                [[Dl_info* info = 0;
                    570:                  dladdr(0, info);]])],
                    571:        [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_DLADDR], [], [have dladdr()])],
                    572:        [AC_MSG_RESULT([no])]
                    573: )
                    574: 
                    575: # check if pthread_condattr_setclock(CLOCK_MONOTONIC) is supported
                    576: saved_LIBS=$LIBS
                    577: LIBS=$PTHREADLIB
                    578: AC_MSG_CHECKING([for pthread_condattr_setclock(CLOCK_MONOTONIC)])
                    579: AC_RUN_IFELSE(
                    580:        [AC_LANG_SOURCE(
                    581:                [[#include <pthread.h>
                    582:                  int main() { pthread_condattr_t attr;
                    583:                        pthread_condattr_init(&attr);
                    584:                        return pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);}]])],
                    585:        [AC_MSG_RESULT([yes]);
                    586:         AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
                    587:                           [pthread_condattr_setclock supports CLOCK_MONOTONIC])],
                    588:        [AC_MSG_RESULT([no])],
                    589:        # Check existence of pthread_condattr_setclock if cross-compiling
                    590:        [AC_MSG_RESULT([unknown]);
                    591:         AC_CHECK_FUNCS(pthread_condattr_setclock,
                    592:                [AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
                    593:                                   [have pthread_condattr_setclock()])]
                    594:        )]
                    595: )
                    596: # check if we actually are able to configure attributes on cond vars
                    597: AC_CHECK_FUNCS(pthread_condattr_init)
                    598: # instead of pthread_condattr_setclock Android has this function
                    599: AC_CHECK_FUNCS(pthread_cond_timedwait_monotonic)
                    600: # check if we can cancel threads
                    601: AC_CHECK_FUNCS(pthread_cancel)
                    602: # check if native rwlocks are available
                    603: AC_CHECK_FUNCS(pthread_rwlock_init)
                    604: # check if pthread spinlocks are available
                    605: AC_CHECK_FUNCS(pthread_spin_init)
                    606: # check if we have POSIX semaphore functions, including timed-wait
                    607: AC_CHECK_FUNCS(sem_timedwait)
                    608: LIBS=$saved_LIBS
                    609: 
                    610: AC_CHECK_FUNC(
                    611:        [gettid],
                    612:        [AC_DEFINE([HAVE_GETTID], [], [have gettid()])],
                    613:        [AC_MSG_CHECKING([for SYS_gettid])
                    614:         AC_COMPILE_IFELSE(
                    615:                [AC_LANG_PROGRAM(
                    616:                        [[#define _GNU_SOURCE
                    617:                          #include <unistd.h>
                    618:                          #include <sys/syscall.h>]],
                    619:                        [[int main() {
                    620:                          return syscall(SYS_gettid);}]])],
                    621:                [AC_MSG_RESULT([yes]);
                    622:                 AC_DEFINE([HAVE_GETTID], [], [have gettid()])
                    623:                 AC_DEFINE([HAVE_SYS_GETTID], [], [have syscall(SYS_gettid)])],
                    624:                [AC_MSG_RESULT([no])]
                    625:        )]
                    626: )
                    627: 
                    628: AC_CHECK_FUNC(
                    629:        [qsort_r],
                    630:        [
                    631:                AC_DEFINE([HAVE_QSORT_R], [], [have qsort_r()])
                    632:                # set -Werror so that we get an error for "argument ... has
                    633:                # incompatible pointer type" warnings
                    634:                save_CFLAGS="$CFLAGS"
                    635:                CFLAGS="$CFLAGS -Werror -Wno-unused-parameter"
                    636:                AC_MSG_CHECKING([for GNU-style qsort_r])
                    637:                AC_COMPILE_IFELSE(
                    638:                        [AC_LANG_PROGRAM(
                    639:                                [[#define _GNU_SOURCE
                    640:                                  #include <stdlib.h>
                    641:                                  int cmp (const void *a, const void *b, void *x) { return 0; }]],
                    642:                                [[int arr[] = { 0, 1 };
                    643:                                  qsort_r(arr, 2, sizeof(int), cmp, arr);]])],
                    644:                [AC_MSG_RESULT([yes]);
                    645:                 AC_DEFINE([HAVE_QSORT_R_GNU], [], [have GNU-style qsort_r()])],
                    646:                [
                    647:                        AC_MSG_RESULT([no]);
                    648:                        AC_MSG_CHECKING([for BSD-style qsort_r])
                    649:                        AC_COMPILE_IFELSE(
                    650:                                [AC_LANG_PROGRAM(
                    651:                                        [[#include <stdlib.h>
                    652:                                          int cmp (void *x, const void *a, const void *b) { return 0; }]],
                    653:                                        [[int arr[] = { 0, 1 };
                    654:                                          qsort_r(arr, 2, sizeof(int), arr, cmp);]])],
                    655:                        [AC_MSG_RESULT([yes]);
                    656:                         AC_DEFINE([HAVE_QSORT_R_BSD], [], [have BSD-style qsort_r()])],
                    657:                        [AC_MSG_RESULT([no]);
                    658:                         AC_MSG_FAILURE([qsort_r has unknown semantics])])
                    659:                ])
                    660:                CFLAGS="$save_CFLAGS"
                    661:        ]
                    662: )
                    663: 
                    664: AC_CHECK_FUNCS(prctl mallinfo getpass closefrom getpwnam_r getgrnam_r getpwuid_r)
                    665: AC_CHECK_FUNCS(fmemopen funopen mmap memrchr setlinebuf strptime dirfd sigwaitinfo explicit_bzero)
                    666: 
                    667: AC_CHECK_FUNC([syslog], [
                    668:        AC_DEFINE([HAVE_SYSLOG], [], [have syslog(3) and friends])
                    669:        syslog=true
                    670: ])
                    671: AM_CONDITIONAL(USE_SYSLOG, [test "x$syslog" = xtrue])
                    672: 
                    673: AC_CHECK_HEADERS(sys/sockio.h sys/syscall.h sys/param.h glob.h net/if_tun.h)
                    674: AC_CHECK_HEADERS(net/pfkeyv2.h netipsec/ipsec.h netinet6/ipsec.h linux/udp.h)
                    675: AC_CHECK_HEADERS([netinet/ip6.h linux/fib_rules.h], [], [],
                    676: [
                    677:        #include <sys/types.h>
                    678:        #include <netinet/in.h>
                    679: ])
                    680: 
                    681: AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [],
                    682: [
                    683:        #include <sys/types.h>
                    684:        #include <sys/socket.h>
                    685: ])
                    686: 
                    687: AC_CHECK_MEMBERS([struct sadb_x_policy.sadb_x_policy_priority], [], [],
                    688: [
                    689:        #include <sys/types.h>
                    690:        #ifdef HAVE_NET_PFKEYV2_H
                    691:        #include <net/pfkeyv2.h>
                    692:        #else
                    693:        #include <stdint.h>
                    694:        #include <linux/pfkeyv2.h>
                    695:        #endif
                    696: ])
                    697: 
                    698: AC_MSG_CHECKING([for in6addr_any])
                    699: AC_COMPILE_IFELSE(
                    700:        [AC_LANG_PROGRAM(
                    701:                [[#include <sys/types.h>
                    702:                  #include <sys/socket.h>
                    703:                  #include <netinet/in.h>]],
                    704:                [[struct in6_addr in6 __attribute__((unused));
                    705:                  in6 = in6addr_any;]])],
                    706:        [AC_MSG_RESULT([yes]);
                    707:         AC_DEFINE([HAVE_IN6ADDR_ANY], [], [have struct in6_addr in6addr_any])],
                    708:        [AC_MSG_RESULT([no])]
                    709: )
                    710: 
                    711: AC_MSG_CHECKING([for in6_pktinfo])
                    712: AC_COMPILE_IFELSE(
                    713:        [AC_LANG_PROGRAM(
                    714:                [[#define _GNU_SOURCE
                    715:                  #include <sys/types.h>
                    716:                  #include <sys/socket.h>
                    717:                  #include <netinet/in.h>]],
                    718:                [[struct in6_pktinfo pi;
                    719:                  if (pi.ipi6_ifindex)
                    720:                  {
                    721:                    return 0;
                    722:                  }]])],
                    723:        [AC_MSG_RESULT([yes]);
                    724:         AC_DEFINE([HAVE_IN6_PKTINFO], [], [have struct in6_pktinfo.ipi6_ifindex])],
                    725:        [AC_MSG_RESULT([no])]
                    726: )
                    727: 
                    728: AC_MSG_CHECKING([for RTM_IFANNOUNCE])
                    729: AC_COMPILE_IFELSE(
                    730:        [AC_LANG_PROGRAM(
                    731:                [[#include <sys/socket.h>
                    732:                  #include <net/if.h>
                    733:                  #include <net/route.h>]],
                    734:                [[return RTM_IFANNOUNCE;]])],
                    735:        [AC_MSG_RESULT([yes]);
                    736:         AC_DEFINE([HAVE_RTM_IFANNOUNCE], [], [have PF_ROUTE RTM_IFANNOUNCE defined])],
                    737:        [AC_MSG_RESULT([no])]
                    738: )
                    739: 
                    740: AC_MSG_CHECKING([for IPSEC_MODE_BEET])
                    741: AC_COMPILE_IFELSE(
                    742:        [AC_LANG_PROGRAM(
                    743:                [[#include <sys/types.h>
                    744:                  #ifdef HAVE_NETIPSEC_IPSEC_H
                    745:                  #include <netipsec/ipsec.h>
                    746:                  #elif defined(HAVE_NETINET6_IPSEC_H)
                    747:                  #include <netinet6/ipsec.h>
                    748:                  #else
                    749:                  #include <stdint.h>
                    750:                  #include <linux/ipsec.h>
                    751:                  #endif]],
                    752:                [[int mode = IPSEC_MODE_BEET;
                    753:                  return mode;]])],
                    754:        [AC_MSG_RESULT([yes]);
                    755:         AC_DEFINE([HAVE_IPSEC_MODE_BEET], [], [have IPSEC_MODE_BEET defined])],
                    756:        [AC_MSG_RESULT([no])]
                    757: )
                    758: 
                    759: AC_MSG_CHECKING([for IPSEC_DIR_FWD])
                    760: AC_COMPILE_IFELSE(
                    761:        [AC_LANG_PROGRAM(
                    762:                [[#include <sys/types.h>
                    763:                  #ifdef HAVE_NETIPSEC_IPSEC_H
                    764:                  #include <netipsec/ipsec.h>
                    765:                  #elif defined(HAVE_NETINET6_IPSEC_H)
                    766:                  #include <netinet6/ipsec.h>
                    767:                  #else
                    768:                  #include <stdint.h>
                    769:                  #include <linux/ipsec.h>
                    770:                  #endif]],
                    771:                [[int dir = IPSEC_DIR_FWD;
                    772:                  return dir;]])],
                    773:        [AC_MSG_RESULT([yes]);
                    774:         AC_DEFINE([HAVE_IPSEC_DIR_FWD], [], [have IPSEC_DIR_FWD defined])],
                    775:        [AC_MSG_RESULT([no])]
                    776: )
                    777: 
                    778: AC_MSG_CHECKING([for RTA_TABLE])
                    779: AC_COMPILE_IFELSE(
                    780:        [AC_LANG_PROGRAM(
                    781:                [[#include <sys/socket.h>
                    782:                  #include <linux/netlink.h>
                    783:                  #include <linux/rtnetlink.h>]],
                    784:                [[int rta_type = RTA_TABLE;
                    785:                  return rta_type;]])],
                    786:        [AC_MSG_RESULT([yes]);
                    787:         AC_DEFINE([HAVE_RTA_TABLE], [], [have netlink RTA_TABLE defined])],
                    788:        [AC_MSG_RESULT([no])]
                    789: )
                    790: 
                    791: AC_MSG_CHECKING([for __int128])
                    792: AC_COMPILE_IFELSE(
                    793:        [AC_LANG_PROGRAM(
                    794:                [[#include <sys/types.h>]],
                    795:                [[__int128 x = 0;
                    796:                  return x;]])],
                    797:        [AC_MSG_RESULT([yes]);
                    798:         AC_DEFINE([HAVE_INT128], [], [have __int128 type support])],
                    799:        [AC_MSG_RESULT([no])]
                    800: )
                    801: 
                    802: AC_MSG_CHECKING([for GCC __sync operations])
                    803: AC_RUN_IFELSE([AC_LANG_SOURCE(
                    804:        [[
                    805:                        int main() {
                    806:                        int ref = 1;
                    807:                        __sync_fetch_and_add (&ref, 1);
                    808:                        __sync_sub_and_fetch (&ref, 1);
                    809:                        __sync_val_compare_and_swap(&ref, 1, 0);
                    810:                        return ref;
                    811:                }
                    812:        ]])],
                    813:        [AC_MSG_RESULT([yes]);
                    814:         AC_DEFINE([HAVE_GCC_SYNC_OPERATIONS], [],
                    815:                   [have GCC __sync_* operations])],
                    816:        [AC_MSG_RESULT([no])],
                    817:        [AC_MSG_RESULT([no])]
                    818: )
                    819: 
                    820: case "$printf_hooks" in
                    821: auto|builtin|glibc|vstr)
                    822:        ;;
                    823: *)
                    824:        AC_MSG_NOTICE([invalid printf hook implementation, defaulting to 'auto'])
                    825:        printf_hooks=auto
                    826:        ;;
                    827: esac
                    828: 
                    829: if test x$printf_hooks = xauto -o x$printf_hooks = xglibc; then
                    830:        # check for the new register_printf_specifier function with len argument,
                    831:        # or the deprecated register_printf_function without
                    832:        AC_CHECK_FUNC(
                    833:                [register_printf_specifier],
                    834:                [AC_DEFINE([HAVE_PRINTF_SPECIFIER], [], [have register_printf_specifier()])],
                    835:                [AC_CHECK_FUNC(
                    836:                        [register_printf_function],
                    837:                        [AC_DEFINE([HAVE_PRINTF_FUNCTION], [], [have register_printf_function()])],
                    838:                        [
                    839:                                AC_MSG_NOTICE([printf(3) does not support custom format specifiers!])
                    840:                                if test x$printf_hooks = xglibc; then
                    841:                                        AC_MSG_ERROR([please select a different printf hook implementation])
                    842:                                else
                    843:                                        # fallback to builtin printf hook implementation
                    844:                                        printf_hooks=builtin
                    845:                                fi
                    846:                        ]
                    847:                )]
                    848:        )
                    849: fi
                    850: 
                    851: AC_MSG_CHECKING([for Windows target])
                    852: AC_COMPILE_IFELSE(
                    853:        [AC_LANG_PROGRAM(
                    854:                [[#include <windows.h>]],
                    855:                [[#ifndef WIN32
                    856:                  # error WIN32 undefined
                    857:                  #endif
                    858:                ]])],
                    859:        [
                    860:                AC_MSG_RESULT([yes])
                    861:                windows=true
                    862: 
                    863:                AC_SUBST(PTHREADLIB, "")
                    864:                # explicitly disable ms-bitfields, as it breaks __attribute__((packed))
                    865:                case "$CFLAGS" in
                    866:                        *ms-bitfields*) ;;
                    867:                        *) CFLAGS="$CFLAGS -mno-ms-bitfields" ;;
                    868:                esac
                    869:        ],
                    870:        [
                    871:                AC_MSG_RESULT([no])
                    872: 
                    873:                # check for clock_gettime() on non-Windows only. Otherwise this
                    874:                # check might find clock_gettime() in libwinpthread, but we don't want
                    875:                # to link against it.
                    876:                saved_LIBS=$LIBS
                    877:                # FreeBSD has clock_gettime in libc, Linux needs librt
                    878:                LIBS=""
                    879:                AC_SEARCH_LIBS(clock_gettime, rt, [RTLIB=$LIBS])
                    880:                AC_CHECK_FUNCS(clock_gettime)
                    881:                AC_SUBST(RTLIB)
                    882:                LIBS=$saved_LIBS
                    883:        ]
                    884: )
                    885: AM_CONDITIONAL(USE_WINDOWS, [test "x$windows" = xtrue])
                    886: 
                    887: AC_MSG_CHECKING([for working __attribute__((packed))])
                    888: AC_COMPILE_IFELSE(
                    889:        [AC_LANG_PROGRAM([], [[
                    890:                struct test { char a; short b; } __attribute__((packed));
                    891:                char x[sizeof(struct test) == sizeof(char) + sizeof(short) ? 1 : -1]
                    892:                        __attribute__((unused));
                    893:                return 0;
                    894:        ]])],
                    895:        [AC_MSG_RESULT([yes])],
                    896:        [AC_MSG_RESULT([no]); AC_MSG_ERROR([__attribute__((packed)) does not work])]
                    897: )
                    898: 
                    899: AC_MSG_CHECKING([clang])
                    900: AC_COMPILE_IFELSE(
                    901:        [AC_LANG_PROGRAM(
                    902:                [], [[
                    903:                 #ifndef __clang__
                    904:                 # error not using LLVM clang
                    905:                 #endif
                    906:                ]])],
                    907:        [
                    908:                AC_MSG_RESULT([yes])
                    909:        ],
                    910:        [
                    911:                AC_MSG_RESULT([no])
                    912:                # GCC, but not MinGW requires -rdynamic for plugins
                    913:                if test x$windows != xtrue; then
                    914:                        PLUGIN_CFLAGS="$PLUGIN_CFLAGS -rdynamic"
                    915:                fi
                    916:        ]
                    917: )
                    918: 
                    919: AC_MSG_CHECKING([x86/x64 target])
                    920: AC_COMPILE_IFELSE(
                    921:        [AC_LANG_PROGRAM(
                    922:                [], [[
                    923:                 #if !defined(__i386__) && !defined(__x86_64__)
                    924:                 # error not on x86/x64
                    925:                 #endif
                    926:                ]])],
                    927:        [
                    928:                x86x64=true
                    929:                AC_MSG_RESULT([yes])
                    930:        ],
                    931:        [AC_MSG_RESULT([no])]
                    932: )
                    933: AM_CONDITIONAL(USE_X86X64, [test "x$x86x64" = xtrue])
                    934: 
                    935: if test x$printf_hooks = xvstr; then
                    936:        AC_CHECK_LIB([vstr],[vstr_init],[LIBS="$LIBS"],[AC_MSG_ERROR([Vstr string library not found])],[])
                    937:        AC_DEFINE([USE_VSTR], [], [use Vstr string library for printf hooks])
                    938: fi
                    939: 
                    940: if test x$printf_hooks = xbuiltin; then
                    941:        AC_DEFINE([USE_BUILTIN_PRINTF], [], [using builtin printf for printf hooks])
                    942: fi
                    943: 
                    944: if test x$gmp = xtrue; then
                    945:        saved_LIBS=$LIBS
                    946:        AC_CHECK_LIB([gmp],[__gmpz_init],[],[AC_MSG_ERROR([GNU Multi Precision library gmp not found])],[])
                    947:        AC_MSG_CHECKING([mpz_powm_sec])
                    948:        if test x$mpz_powm_sec = xyes; then
                    949:                AC_COMPILE_IFELSE(
                    950:                        [AC_LANG_PROGRAM(
                    951:                                [[#include "gmp.h"]],
                    952:                                [[void *x  __attribute__((unused)); x = mpz_powm_sec;]])],
                    953:                        [AC_MSG_RESULT([yes]);
                    954:                         AC_DEFINE([HAVE_MPZ_POWM_SEC], [], [have mpz_powm_sec()])],
                    955:                        [AC_MSG_RESULT([no])]
                    956:                )
                    957:        else
                    958:                AC_MSG_RESULT([disabled])
                    959:        fi
                    960:        LIBS=$saved_LIBS
                    961:        AC_MSG_CHECKING([gmp.h version >= 4.1.4])
                    962:        AC_COMPILE_IFELSE(
                    963:                [AC_LANG_PROGRAM(
                    964:                        [[#include "gmp.h"]],
                    965:                        [[
                    966:                                #if (__GNU_MP_VERSION*100 +  __GNU_MP_VERSION_MINOR*10 + __GNU_MP_VERSION_PATCHLEVEL) < 414
                    967:                                        #error bad gmp
                    968:                                #endif]])],
                    969:                [AC_MSG_RESULT([yes])],
                    970:                [AC_MSG_RESULT([no]); AC_MSG_ERROR([No usable gmp.h found!])]
                    971:        )
                    972: fi
                    973: 
                    974: if test x$ldap = xtrue; then
                    975:        AC_CHECK_LIB([ldap],[ldap_init],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library ldap not found])],[])
                    976:        AC_CHECK_LIB([lber],[ber_free],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library lber not found])],[])
                    977:        AC_CHECK_HEADER([ldap.h],,[AC_MSG_ERROR([LDAP header ldap.h not found!])])
                    978: fi
                    979: 
                    980: if test x$curl = xtrue; then
                    981:        AC_CHECK_LIB([curl],[curl_global_init],[LIBS="$LIBS"],[AC_MSG_ERROR([CURL library curl not found])],[])
                    982:        AC_CHECK_HEADER([curl/curl.h],,[AC_MSG_ERROR([CURL header curl/curl.h not found!])])
                    983: fi
                    984: 
                    985: if test x$unbound = xtrue; then
                    986:        AC_CHECK_LIB([ldns],[ldns_rr_get_type],[LIBS="$LIBS"],[AC_MSG_ERROR([UNBOUND library ldns not found])],[])
                    987:        AC_CHECK_HEADER([ldns/ldns.h],,[AC_MSG_ERROR([UNBOUND header ldns/ldns.h not found!])])
                    988:        AC_CHECK_LIB([unbound],[ub_ctx_create],[LIBS="$LIBS"],[AC_MSG_ERROR([UNBOUND library libunbound not found])],[])
                    989:        AC_CHECK_HEADER([unbound.h],,[AC_MSG_ERROR([UNBOUND header unbound.h not found!])])
                    990: fi
                    991: 
                    992: if test x$soup = xtrue; then
                    993:        PKG_CHECK_MODULES(soup, [libsoup-2.4])
                    994:        AC_SUBST(soup_CFLAGS)
                    995:        AC_SUBST(soup_LIBS)
                    996: fi
                    997: 
                    998: if test x$xml = xtrue; then
                    999:        PKG_CHECK_MODULES(xml, [libxml-2.0])
                   1000:        AC_SUBST(xml_CFLAGS)
                   1001:        AC_SUBST(xml_LIBS)
                   1002: fi
                   1003: 
                   1004: if test x$systemd = xtrue; then
                   1005:        AC_MSG_CHECKING([for systemd system unit directory])
                   1006:        if test -n "$systemdsystemunitdir" -a "x$systemdsystemunitdir" != xno; then
                   1007:                AC_MSG_RESULT([$systemdsystemunitdir])
                   1008:        else
                   1009:                AC_MSG_ERROR([not found (try --with-systemdsystemunitdir)])
                   1010:        fi
                   1011: 
                   1012:        PKG_CHECK_MODULES(systemd, [libsystemd >= 209],
                   1013:                [AC_SUBST(systemd_CFLAGS)
                   1014:                 AC_SUBST(systemd_LIBS)],
                   1015:                [PKG_CHECK_MODULES(systemd_daemon, [libsystemd-daemon])
                   1016:                 AC_SUBST(systemd_daemon_CFLAGS)
                   1017:                 AC_SUBST(systemd_daemon_LIBS)
                   1018:                 PKG_CHECK_MODULES(systemd_journal, [libsystemd-journal])
                   1019:                 AC_SUBST(systemd_journal_CFLAGS)
                   1020:                 AC_SUBST(systemd_journal_LIBS)]
                   1021:        )
                   1022:        saved_LIBS=$LIBS
                   1023:        LIBS="$systemd_LIBS $systemd_daemon_LIBS"
                   1024:        AC_CHECK_FUNCS(sd_listen_fds_with_names)
                   1025:        LIBS=$saved_LIBS
                   1026: fi
                   1027: 
                   1028: if test x$tss_trousers = xtrue; then
                   1029:        AC_CHECK_LIB([tspi],[Tspi_Context_Create],[LIBS="$LIBS"],[AC_MSG_ERROR([TrouSerS library libtspi not found])],[])
                   1030:        AC_CHECK_HEADER([trousers/tss.h],,[AC_MSG_ERROR([TrouSerS header trousers/tss.h not found!])])
                   1031:        AC_DEFINE([TSS_TROUSERS], [], [use TrouSerS library libtspi])
                   1032: fi
                   1033: 
                   1034: if test x$tss_tss2 = xtrue; then
                   1035:        PKG_CHECK_MODULES(tss2_sys, [tss2-sys],
                   1036:                [tss2_sys=true; AC_DEFINE([TSS2_SYS], [], [use TSS2 v2 System API])],
                   1037:                [tss2_sys=false])
                   1038:        PKG_CHECK_MODULES(tss2_esys, [tss2-esys],
                   1039:                [tss2_esys=true; AC_DEFINE([TSS2_ESYS], [], [use TSS2 v2 Extended System API])],
                   1040:                [tss2_esys=false])
                   1041:        if test x$tss2_sys = xtrue; then
                   1042:                AC_DEFINE([TSS_TSS2_V2], [], [use TSS 2.0 v2 libraries])
                   1043:                AC_SUBST(tss2_CFLAGS, "$tss2_sys_CFLAGS")
                   1044:                AC_SUBST(tss2_LIBS, "$tss2_sys_LIBS")
                   1045:        else
                   1046:                PKG_CHECK_MODULES(tss2_tabrmd, [tcti-tabrmd],
                   1047:                        [tss2_tabrmd=true; AC_DEFINE([TSS2_TCTI_TABRMD], [], [use TCTI Access Broker and Resource Manager])],
                   1048:                        [tss2_tabrmd=false])
                   1049:                PKG_CHECK_MODULES(tss2_socket, [tcti-socket],
                   1050:                        [tss2_socket=true; AC_DEFINE([TSS2_TCTI_SOCKET], [], [use TCTI Sockets])],
                   1051:                        [tss2_socket=false])
                   1052:                if test x$tss2_tabrmd = xtrue -o x$tss2_socket = xtrue; then
                   1053:                        AC_DEFINE([TSS_TSS2_V1], [], [use TSS 2.0 v1 libraries])
                   1054:                        AC_SUBST(tss2_CFLAGS, "$tss2_tabrmd_CFLAGS $tss2_socket_CFLAGS")
                   1055:                        AC_SUBST(tss2_LIBS, "$tss2_tabrmd_LIBS $tss2_socket_LIBS")
                   1056:                else
                   1057:                        AC_MSG_FAILURE([no TSS2 TCTI or SAPI libraries detected])
                   1058:                fi
                   1059:        fi
                   1060: fi
                   1061: 
                   1062: if test x$imc_swima = xtrue -o $imv_swima = xtrue; then
                   1063:        PKG_CHECK_MODULES(json, [json-c], [],
                   1064:                [PKG_CHECK_MODULES(json, [json])])
                   1065:        AC_SUBST(json_CFLAGS)
                   1066:        AC_SUBST(json_LIBS)
                   1067: fi
                   1068: 
                   1069: if test x$fast = xtrue; then
                   1070:        AC_CHECK_LIB([neo_utl],[hdf_init],[LIBS="$LIBS"],[AC_MSG_ERROR([ClearSilver library neo_utl not found!])],[])
                   1071:        AC_MSG_CHECKING([for -lneo_cgi and dependencies])
                   1072:        saved_CFLAGS=$CFLAGS
                   1073:        saved_LIBS=$LIBS
                   1074:        LIBS="-lneo_cgi -lneo_cs -lneo_utl"
                   1075:        CFLAGS="-I/usr/include/ClearSilver"
                   1076:        AC_LINK_IFELSE(
                   1077:                [AC_LANG_PROGRAM(
                   1078:                        [[#include <cgi/cgi.h>]],
                   1079:                        [[NEOERR *err = cgi_display(NULL, NULL);]])],
                   1080:                [AC_MSG_RESULT([yes])],
                   1081:                [LIBS="$LIBS -lz";
                   1082:                 AC_LINK_IFELSE(
                   1083:                        [AC_LANG_PROGRAM(
                   1084:                                [[#include <cgi/cgi.h>]],
                   1085:                                [[NEOERR *err = cgi_display(NULL, NULL);]])],
                   1086:                        [AC_MSG_RESULT([yes, zlib required])],
                   1087:                        [AC_MSG_ERROR([not found])]
                   1088:                 )]
                   1089:        )
                   1090:        clearsilver_LIBS="$LIBS"
                   1091:        AC_SUBST(clearsilver_LIBS)
                   1092:        LIBS=$saved_LIBS
                   1093:        CFLAGS=$saved_CFLAGS
                   1094: 
                   1095:        AC_CHECK_LIB([fcgi],[FCGX_Init],[LIBS="$LIBS"],[AC_MSG_ERROR([FastCGI library fcgi not found!])],[])
                   1096:        AC_CHECK_HEADER([fcgiapp.h],,[AC_MSG_ERROR([FastCGI header file fcgiapp.h not found!])])
                   1097: fi
                   1098: 
                   1099: if test x$mysql = xtrue; then
                   1100:        if test "x$windows" = xtrue; then
                   1101:                AC_CHECK_HEADER([mysql.h],,[AC_MSG_ERROR([MySQL header file mysql.h not found!])])
                   1102:                AC_CHECK_LIB([mysql],[mysql_database_init],[LIBS="$LIBS"],[AC_MSG_ERROR([MySQL library not found!])],[])
                   1103:                AC_SUBST(MYSQLLIB, -lmysql)
                   1104:        else
                   1105:                AC_PATH_PROG([MYSQLCONFIG], [mysql_config], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1106:                if test x$MYSQLCONFIG = x; then
                   1107:                        AC_MSG_ERROR([mysql_config not found!])
                   1108:                fi
                   1109:                AC_SUBST(MYSQLLIB, `$MYSQLCONFIG --libs_r`)
                   1110:                AC_SUBST(MYSQLCFLAG, `$MYSQLCONFIG --cflags`)
                   1111:        fi
                   1112: fi
                   1113: 
                   1114: if test x$sqlite = xtrue; then
                   1115:        AC_CHECK_LIB([sqlite3],[sqlite3_open],[LIBS="$LIBS"],[AC_MSG_ERROR([SQLite library sqlite3 not found])],[])
                   1116:        AC_CHECK_HEADER([sqlite3.h],,[AC_MSG_ERROR([SQLite header sqlite3.h not found!])])
                   1117:        AC_MSG_CHECKING([sqlite3_prepare_v2])
                   1118:        AC_COMPILE_IFELSE(
                   1119:                [AC_LANG_PROGRAM(
                   1120:                        [[#include <sqlite3.h>]],
                   1121:                        [[void *test = sqlite3_prepare_v2;]])],
                   1122:                [AC_MSG_RESULT([yes]);
                   1123:                 AC_DEFINE([HAVE_SQLITE3_PREPARE_V2], [], [have sqlite3_prepare_v2()])],
                   1124:                [AC_MSG_RESULT([no])]
                   1125:        )
                   1126:        AC_MSG_CHECKING([sqlite3.h version >= 3.3.1])
                   1127:        AC_COMPILE_IFELSE(
                   1128:                [AC_LANG_PROGRAM(
                   1129:                        [[#include <sqlite3.h>]],
                   1130:                        [[
                   1131:                                #if SQLITE_VERSION_NUMBER < 3003001
                   1132:                                        #error bad sqlite
                   1133:                                #endif]])],
                   1134:                [AC_MSG_RESULT([yes])],
                   1135:                [AC_MSG_RESULT([no]); AC_MSG_ERROR([SQLite version >= 3.3.1 required!])]
                   1136:        )
                   1137: fi
                   1138: 
                   1139: if test x$openssl = xtrue; then
                   1140:        if test "x$windows" = xtrue; then
                   1141:                openssl_lib=eay32
                   1142:                AC_CHECK_LIB([$openssl_lib],[EVP_CIPHER_CTX_new],[LIBS="$LIBS"],
                   1143:                        [AC_MSG_RESULT([no]);openssl_lib=""],[$DLLIB])
                   1144:        fi
                   1145:        if test -z "$openssl_lib"; then
                   1146:                openssl_lib=crypto
                   1147:                AC_CHECK_LIB([$openssl_lib],[EVP_CIPHER_CTX_new],[LIBS="$LIBS"],
                   1148:                        [AC_MSG_ERROR([OpenSSL lib$openssl_lib not found])],[$DLLIB])
                   1149:        fi
                   1150:        AC_SUBST(OPENSSL_LIB, [-l$openssl_lib])
                   1151:        AC_CHECK_HEADER([openssl/evp.h],,[AC_MSG_ERROR([OpenSSL header openssl/evp.h not found!])])
                   1152: fi
                   1153: 
                   1154: if test x$wolfssl = xtrue; then
                   1155:        PKG_CHECK_MODULES(wolfssl, [wolfssl])
                   1156:        AC_SUBST(wolfssl_CFLAGS)
                   1157:        AC_SUBST(wolfssl_LIBS)
                   1158: fi
                   1159: 
                   1160: if test x$gcrypt = xtrue; then
                   1161:        AC_CHECK_LIB([gcrypt],[gcry_control],[LIBS="$LIBS"],[AC_MSG_ERROR([gcrypt library not found])],[-lgpg-error])
                   1162:        AC_CHECK_HEADER([gcrypt.h],,[AC_MSG_ERROR([gcrypt header gcrypt.h not found!])])
                   1163:        AC_MSG_CHECKING([gcrypt CAMELLIA cipher])
                   1164:        AC_COMPILE_IFELSE(
                   1165:                [AC_LANG_PROGRAM(
                   1166:                        [[#include <gcrypt.h>]],
                   1167:                        [[enum gcry_cipher_algos alg = GCRY_CIPHER_CAMELLIA128;]])],
                   1168:                [AC_MSG_RESULT([yes]);
                   1169:                 AC_DEFINE([HAVE_GCRY_CIPHER_CAMELLIA], [], [have GCRY_CIPHER_CAMELLIA128])],
                   1170:                [AC_MSG_RESULT([no])]
                   1171:        )
                   1172: fi
                   1173: 
                   1174: if test x$botan = xtrue; then
                   1175:        PKG_CHECK_MODULES(botan, [botan-2])
                   1176:        AC_SUBST(botan_CFLAGS)
                   1177:        AC_SUBST(botan_LIBS)
                   1178: fi
                   1179: 
                   1180: if test x$uci = xtrue; then
                   1181:        AC_CHECK_LIB([uci],[uci_alloc_context],[LIBS="$LIBS"],[AC_MSG_ERROR([UCI library libuci not found])],[])
                   1182:        AC_CHECK_HEADER([uci.h],,[AC_MSG_ERROR([UCI header uci.h not found!])])
                   1183: fi
                   1184: 
                   1185: if test x$android_dns = xtrue; then
                   1186:        AC_CHECK_LIB([cutils],[property_get],[LIBS="$LIBS"],[AC_MSG_ERROR([Android library libcutils not found])],[])
                   1187:        AC_CHECK_HEADER([cutils/properties.h],,[AC_MSG_ERROR([Android header cutils/properties.h not found!])])
                   1188:        # we have to force the use of libdl here because the autodetection
                   1189:        # above does not work correctly when cross-compiling for android.
                   1190:        DLLIB="-ldl"
                   1191:        AC_SUBST(DLLIB)
                   1192: fi
                   1193: 
                   1194: if test x$eap_sim_pcsc = xtrue; then
                   1195:        PKG_CHECK_MODULES(pcsclite, [libpcsclite])
                   1196:        AC_SUBST(pcsclite_CFLAGS)
                   1197:        AC_SUBST(pcsclite_LIBS)
                   1198: fi
                   1199: 
                   1200: if test x$nm = xtrue; then
                   1201:        PKG_CHECK_MODULES(nm, [gthread-2.0 libnm])
                   1202:        AC_SUBST(nm_CFLAGS)
                   1203:        AC_SUBST(nm_LIBS)
                   1204: 
                   1205:        AC_MSG_CHECKING([for D-Bus policy directory])
                   1206:        if test -n "$dbuspolicydir" -a "x$dbuspolicydir" != xno; then
                   1207:                AC_MSG_RESULT([$dbuspolicydir])
                   1208:        else
                   1209:                AC_MSG_ERROR([not found (try --with-dbuspolicydir)])
                   1210:        fi
                   1211: fi
                   1212: 
                   1213: if test x$xauth_pam = xtrue; then
                   1214:        AC_CHECK_LIB([pam],[pam_start],[LIBS="$LIBS"],[AC_MSG_ERROR([PAM library not found])],[])
                   1215:        AC_CHECK_HEADER([security/pam_appl.h],,[AC_MSG_ERROR([PAM header security/pam_appl.h not found!])])
                   1216: fi
                   1217: 
                   1218: if test x$connmark = xtrue -o x$forecast = xtrue; then
                   1219:        PKG_CHECK_MODULES(libiptc, [libip4tc])
                   1220:        AC_SUBST(libiptc_CFLAGS)
                   1221:        AC_SUBST(libiptc_LIBS)
                   1222: fi
                   1223: 
                   1224: if test x$capabilities = xnative; then
                   1225:        AC_MSG_NOTICE([Usage of the native Linux capabilities interface is deprecated, use libcap instead])
                   1226:        # Linux requires the following for capset(), Android does not have it,
                   1227:        # but defines capset() in unistd.h instead.
                   1228:        AC_CHECK_HEADERS([sys/capability.h])
                   1229:        AC_CHECK_FUNC(capset,,[AC_MSG_ERROR([capset() not found!])])
                   1230:        AC_DEFINE([CAPABILITIES_NATIVE], [], [have native linux capset()])
                   1231: fi
                   1232: 
                   1233: if test x$capabilities = xlibcap; then
                   1234:        AC_CHECK_LIB([cap],[cap_init],[LIBS="$LIBS"],[AC_MSG_ERROR([libcap library not found])],[])
                   1235:        AC_CHECK_HEADER([sys/capability.h],
                   1236:                [AC_DEFINE([HAVE_SYS_CAPABILITY_H], [], [have sys/capability.h])],
                   1237:                [AC_MSG_ERROR([libcap header sys/capability.h not found!])])
                   1238:        AC_DEFINE([CAPABILITIES_LIBCAP], [], [have libpcap library])
                   1239: fi
                   1240: 
                   1241: if test x$integrity_test = xtrue; then
                   1242:        AC_MSG_CHECKING([for dladdr()])
                   1243:        AC_COMPILE_IFELSE(
                   1244:                [AC_LANG_PROGRAM(
                   1245:                        [[#define _GNU_SOURCE
                   1246:                          #include <dlfcn.h>]],
                   1247:                        [[Dl_info info; dladdr(main, &info);]])],
                   1248:                [AC_MSG_RESULT([yes])],
                   1249:                [AC_MSG_RESULT([no]);
                   1250:                 AC_MSG_ERROR([dladdr() not supported, required by integrity-test!])]
                   1251:        )
                   1252:        AC_MSG_CHECKING([for dl_iterate_phdr()])
                   1253:        AC_COMPILE_IFELSE(
                   1254:                [AC_LANG_PROGRAM(
                   1255:                        [[#define _GNU_SOURCE
                   1256:                          #include <link.h>]],
                   1257:                        [[dl_iterate_phdr((void*)0, (void*)0);]])],
                   1258:                [AC_MSG_RESULT([yes])],
                   1259:                [AC_MSG_RESULT([no]);
                   1260:                 AC_MSG_ERROR([dl_iterate_phdr() not supported, required by integrity-test!])]
                   1261:        )
                   1262: fi
                   1263: 
                   1264: if test x$bfd_backtraces = xtrue; then
                   1265:        AC_CHECK_LIB([bfd],[bfd_init],[LIBS="$LIBS"],[AC_MSG_ERROR([binutils libbfd not found!])],[])
                   1266:        AC_CHECK_HEADER([bfd.h],[AC_DEFINE([HAVE_BFD_H],,[have binutils bfd.h])],
                   1267:                [AC_MSG_ERROR([binutils bfd.h header not found!])])
                   1268:        BFDLIB="-lbfd"
                   1269:        AC_SUBST(BFDLIB)
                   1270: fi
                   1271: 
                   1272: if test x$unwind_backtraces = xtrue; then
                   1273:        AC_CHECK_LIB([unwind],[unw_backtrace],[LIBS="$LIBS"],[AC_MSG_ERROR([libunwind not found!])],[])
                   1274:        AC_CHECK_HEADER([libunwind.h],[AC_DEFINE([HAVE_LIBUNWIND_H],,[have libunwind.h])],
                   1275:                [AC_MSG_ERROR([libunwind.h header not found!])])
                   1276:        UNWINDLIB="-lunwind"
                   1277:        AC_SUBST(UNWINDLIB)
                   1278: fi
                   1279: 
                   1280: AM_CONDITIONAL(USE_DEV_HEADERS, [test "x$dev_headers" != xno])
                   1281: if test x$dev_headers = xyes; then
                   1282:        dev_headers="$includedir/strongswan"
                   1283: fi
                   1284: AC_SUBST(dev_headers)
                   1285: 
                   1286: CFLAGS="$CFLAGS -include `pwd`/config.h"
                   1287: 
                   1288: if test x$tkm = xtrue; then
                   1289:        AC_PATH_PROG([GPRBUILD], [gprbuild], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1290:        if test x$GPRBUILD = x; then
                   1291:                AC_MSG_ERROR([gprbuild not found])
                   1292:        fi
                   1293: fi
                   1294: 
                   1295: if test x$coverage = xtrue; then
                   1296:        AC_PATH_PROG([LCOV], [lcov], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1297:        if test x$LCOV = x; then
                   1298:                AC_MSG_ERROR([lcov not found])
                   1299:        fi
                   1300:        AC_PATH_PROG([GENHTML], [genhtml], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1301:        if test x$GENHTML = x; then
                   1302:                AC_MSG_ERROR([genhtml not found])
                   1303:        fi
                   1304: 
                   1305:        COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
                   1306:        COVERAGE_LDFLAGS="-fprofile-arcs"
                   1307:        AC_SUBST(COVERAGE_CFLAGS)
                   1308:        AC_SUBST(COVERAGE_LDFLAGS)
                   1309:        PLUGIN_CFLAGS="$PLUGIN_CFLAGS $COVERAGE_CFLAGS"
                   1310: 
                   1311:        AC_MSG_NOTICE([coverage enabled, adding "-g -O0" to CFLAGS])
                   1312:        CFLAGS="${CFLAGS} -g -O0"
                   1313: fi
                   1314: 
                   1315: if test x$fuzzing = xtrue; then
                   1316:        case "$libfuzzer" in
                   1317:        "")
                   1318:                AC_MSG_NOTICE([fuzz targets enabled without libFuzzer, using local driver])
                   1319:                CFLAGS="${CFLAGS} -fsanitize=address"
                   1320:                libfuzzer="libFuzzerLocal.a"
                   1321:                ;;
                   1322:        "-fsanitize=fuzzer")
                   1323:                libfuzzer=""
                   1324:                FUZZING_CFLAGS="-fsanitize=fuzzer"
                   1325:                AC_SUBST(FUZZING_CFLAGS)
                   1326:                ;;
                   1327:        *)
                   1328:                # required for libFuzzer
                   1329:                FUZZING_LDFLAGS="-stdlib=libc++ -lstdc++"
                   1330:                if test "$SANITIZER" = "coverage"; then
                   1331:                        FUZZING_LDFLAGS="$FUZZING_LDFLAGS -lm"
                   1332:                fi
                   1333:                AC_SUBST(FUZZING_LDFLAGS)
                   1334:                ;;
                   1335:        esac
                   1336: fi
                   1337: 
                   1338: if test x$ruby_gems = xtrue; then
                   1339:        AC_PATH_PROG([GEM], [gem], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1340:        if test x$GEM = x; then
                   1341:                AC_MSG_ERROR(RubyGems package manager not found)
                   1342:        fi
                   1343:        if test "x$rubygemdir" = "xgem environment gemdir"; then
                   1344:                rubygemdir=$($GEM environment gemdir)
                   1345:        fi
                   1346:        AC_SUBST(RUBYGEMDIR, "$rubygemdir")
                   1347: fi
                   1348: AM_CONDITIONAL(RUBY_GEMS_INSTALL, [test "x$ruby_gems_install" = xtrue])
                   1349: 
                   1350: if test x$python_eggs = xtrue; then
                   1351:        PYTHON_PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | $SED 's/dr/.dev/'`
                   1352:        AC_SUBST([PYTHON_PACKAGE_VERSION])
                   1353:        if test x$python_eggs_install = xtrue; then
                   1354:                AC_PATH_PROG([EASY_INSTALL], [easy_install], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1355:                if test x$EASY_INSTALL = x; then
                   1356:                        AC_MSG_ERROR(Python easy_install not found)
                   1357:                fi
                   1358:        fi
                   1359:        if test "x$pythoneggdir" = "xmain site-packages directory"; then
                   1360:                AC_SUBST(PYTHONEGGINSTALLDIR, "")
                   1361:        else
                   1362:                AC_SUBST(PYTHONEGGINSTALLDIR, "--install-dir $pythoneggdir")
                   1363:        fi
                   1364:        AC_PATH_PROG([TOX], [tox], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1365:        AC_PATH_PROG([PY_TEST], [py.test], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1366: fi
                   1367: AM_CONDITIONAL(PYTHON_EGGS_INSTALL, [test "x$python_eggs_install" = xtrue])
                   1368: 
                   1369: AM_CONDITIONAL(PERL_CPAN_INSTALL, [test "x$perl_cpan_install" = xtrue])
                   1370: 
                   1371: AC_CACHE_CHECK(
                   1372:        [if plugin constructors should be resolved statically],
                   1373:        [ss_cv_static_plugin_constructors],
                   1374:        [if test x$monolithic = xtrue -a x$enable_static = xyes; then
                   1375:                ss_cv_static_plugin_constructors=yes
                   1376:         else
                   1377:                ss_cv_static_plugin_constructors="no (enabled for static, monolithic builds)"
                   1378:         fi]
                   1379: )
                   1380: if test "x$ss_cv_static_plugin_constructors" = xyes; then
                   1381:        static_plugin_constructors=true
                   1382:        if test "$PYTHON" = ":"; then
                   1383:                AC_MSG_FAILURE([Python is required to resolve plugin constructors statically])
                   1384:        fi
                   1385: fi
                   1386: 
                   1387: # ===============================================
                   1388: #  collect plugin list for strongSwan components
                   1389: # ===============================================
                   1390: 
                   1391: m4_include(m4/macros/add-plugin.m4)
                   1392: 
                   1393: # plugin lists for all components
                   1394: charon_plugins=
                   1395: starter_plugins=
                   1396: pool_plugins=
                   1397: attest_plugins=
                   1398: scepclient_plugins=
                   1399: pki_plugins=
                   1400: scripts_plugins=
                   1401: fuzz_plugins=
                   1402: manager_plugins=
                   1403: medsrv_plugins=
                   1404: nm_plugins=
                   1405: cmd_plugins=
                   1406: aikgen_plugins=
                   1407: 
                   1408: # location specific lists for checksumming,
                   1409: # for src/libcharon, src/libstrongswan, src/libtnccs and src/libtpmtss
                   1410: c_plugins=
                   1411: s_plugins=
                   1412: t_plugins=
                   1413: p_plugins=
                   1414: 
                   1415: ADD_PLUGIN([test-vectors],         [s charon scepclient pki])
                   1416: ADD_PLUGIN([unbound],              [s charon scripts])
                   1417: ADD_PLUGIN([ldap],                 [s charon scepclient scripts nm cmd])
                   1418: ADD_PLUGIN([pkcs11],               [s charon pki nm cmd])
                   1419: ADD_PLUGIN([tpm],                  [p charon pki nm cmd])
                   1420: ADD_PLUGIN([aesni],                [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1421: ADD_PLUGIN([aes],                  [s charon scepclient pki scripts nm cmd])
                   1422: ADD_PLUGIN([des],                  [s charon scepclient pki scripts nm cmd])
                   1423: ADD_PLUGIN([blowfish],             [s charon scepclient pki scripts nm cmd])
                   1424: ADD_PLUGIN([rc2],                  [s charon scepclient pki scripts nm cmd])
                   1425: ADD_PLUGIN([sha2],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen fuzz])
                   1426: ADD_PLUGIN([sha3],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen fuzz])
                   1427: ADD_PLUGIN([sha1],                 [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1428: ADD_PLUGIN([md4],                  [s charon scepclient pki nm cmd])
                   1429: ADD_PLUGIN([md5],                  [s charon scepclient pki scripts attest nm cmd aikgen])
                   1430: ADD_PLUGIN([mgf1],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1431: ADD_PLUGIN([rdrand],               [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1432: ADD_PLUGIN([random],               [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1433: ADD_PLUGIN([nonce],                [s charon nm cmd aikgen])
                   1434: ADD_PLUGIN([x509],                 [s charon scepclient pki scripts attest nm cmd aikgen fuzz])
                   1435: ADD_PLUGIN([revocation],           [s charon pki nm cmd])
                   1436: ADD_PLUGIN([constraints],          [s charon nm cmd])
                   1437: ADD_PLUGIN([acert],                [s charon])
                   1438: ADD_PLUGIN([pubkey],               [s charon pki cmd aikgen])
                   1439: ADD_PLUGIN([pkcs1],                [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1440: ADD_PLUGIN([pkcs7],                [s charon scepclient pki scripts nm cmd])
                   1441: ADD_PLUGIN([pkcs8],                [s charon scepclient pki scripts manager medsrv attest nm cmd])
                   1442: ADD_PLUGIN([pkcs12],               [s charon scepclient pki scripts cmd])
                   1443: ADD_PLUGIN([pgp],                  [s charon])
                   1444: ADD_PLUGIN([dnskey],               [s charon pki])
                   1445: ADD_PLUGIN([sshkey],               [s charon pki nm cmd])
                   1446: ADD_PLUGIN([dnscert],              [c charon])
                   1447: ADD_PLUGIN([ipseckey],             [c charon])
                   1448: ADD_PLUGIN([pem],                  [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1449: ADD_PLUGIN([padlock],              [s charon])
                   1450: ADD_PLUGIN([openssl],              [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1451: ADD_PLUGIN([wolfssl],              [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1452: ADD_PLUGIN([gcrypt],               [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1453: ADD_PLUGIN([botan],                [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1454: ADD_PLUGIN([af-alg],               [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1455: ADD_PLUGIN([fips-prf],             [s charon nm cmd])
                   1456: ADD_PLUGIN([gmp],                  [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1457: ADD_PLUGIN([curve25519],           [s charon pki scripts nm cmd])
                   1458: ADD_PLUGIN([agent],                [s charon nm cmd])
                   1459: ADD_PLUGIN([keychain],             [s charon cmd])
                   1460: ADD_PLUGIN([chapoly],              [s charon scripts nm cmd])
                   1461: ADD_PLUGIN([xcbc],                 [s charon nm cmd])
                   1462: ADD_PLUGIN([cmac],                 [s charon nm cmd])
                   1463: ADD_PLUGIN([hmac],                 [s charon pki scripts nm cmd])
                   1464: ADD_PLUGIN([ctr],                  [s charon scripts nm cmd])
                   1465: ADD_PLUGIN([ccm],                  [s charon scripts nm cmd])
                   1466: ADD_PLUGIN([gcm],                  [s charon scripts nm cmd])
                   1467: ADD_PLUGIN([ntru],                 [s charon scripts nm cmd])
                   1468: ADD_PLUGIN([drbg],                 [s charon pki scripts nm cmd])
                   1469: ADD_PLUGIN([newhope],              [s charon scripts nm cmd])
                   1470: ADD_PLUGIN([bliss],                [s charon pki scripts nm cmd])
                   1471: ADD_PLUGIN([curl],                 [s charon scepclient pki scripts nm cmd])
                   1472: ADD_PLUGIN([files],                [s charon scepclient pki scripts nm cmd])
                   1473: ADD_PLUGIN([winhttp],              [s charon pki scripts])
                   1474: ADD_PLUGIN([soup],                 [s charon pki scripts nm cmd])
                   1475: ADD_PLUGIN([mysql],                [s charon pool manager medsrv attest])
                   1476: ADD_PLUGIN([sqlite],               [s charon pool manager medsrv attest])
                   1477: ADD_PLUGIN([attr],                 [c charon])
                   1478: ADD_PLUGIN([attr-sql],             [c charon])
                   1479: ADD_PLUGIN([load-tester],          [c charon])
                   1480: ADD_PLUGIN([kernel-libipsec],      [c charon cmd])
                   1481: ADD_PLUGIN([kernel-wfp],           [c charon])
                   1482: ADD_PLUGIN([kernel-iph],           [c charon])
                   1483: ADD_PLUGIN([kernel-pfkey],         [c charon starter nm cmd])
                   1484: ADD_PLUGIN([kernel-pfroute],       [c charon starter nm cmd])
                   1485: ADD_PLUGIN([kernel-netlink],       [c charon starter nm cmd])
                   1486: ADD_PLUGIN([resolve],              [c charon cmd])
                   1487: ADD_PLUGIN([save-keys],            [c])
                   1488: ADD_PLUGIN([socket-default],       [c charon nm cmd])
                   1489: ADD_PLUGIN([socket-dynamic],       [c charon cmd])
                   1490: ADD_PLUGIN([socket-win],           [c charon])
                   1491: ADD_PLUGIN([bypass-lan],           [c charon nm cmd])
                   1492: ADD_PLUGIN([connmark],             [c charon])
                   1493: ADD_PLUGIN([forecast],             [c charon])
                   1494: ADD_PLUGIN([farp],                 [c charon])
                   1495: ADD_PLUGIN([stroke],               [c charon])
                   1496: ADD_PLUGIN([vici],                 [c charon])
                   1497: ADD_PLUGIN([smp],                  [c charon])
                   1498: ADD_PLUGIN([sql],                  [c charon])
                   1499: ADD_PLUGIN([updown],               [c charon])
                   1500: ADD_PLUGIN([eap-identity],         [c charon nm cmd])
                   1501: ADD_PLUGIN([eap-sim],              [c charon])
                   1502: ADD_PLUGIN([eap-sim-file],         [c charon])
                   1503: ADD_PLUGIN([eap-sim-pcsc],         [c charon])
                   1504: ADD_PLUGIN([eap-aka],              [c charon])
                   1505: ADD_PLUGIN([eap-aka-3gpp],         [c charon])
                   1506: ADD_PLUGIN([eap-aka-3gpp2],        [c charon])
                   1507: ADD_PLUGIN([eap-simaka-sql],       [c charon])
                   1508: ADD_PLUGIN([eap-simaka-pseudonym], [c charon])
                   1509: ADD_PLUGIN([eap-simaka-reauth],    [c charon])
                   1510: ADD_PLUGIN([eap-md5],              [c charon nm cmd])
                   1511: ADD_PLUGIN([eap-gtc],              [c charon nm cmd])
                   1512: ADD_PLUGIN([eap-mschapv2],         [c charon nm cmd])
                   1513: ADD_PLUGIN([eap-dynamic],          [c charon])
                   1514: ADD_PLUGIN([eap-radius],           [c charon])
                   1515: ADD_PLUGIN([eap-tls],              [c charon nm cmd])
                   1516: ADD_PLUGIN([eap-ttls],             [c charon nm cmd])
                   1517: ADD_PLUGIN([eap-peap],             [c charon nm cmd])
                   1518: ADD_PLUGIN([eap-tnc],              [c charon])
                   1519: ADD_PLUGIN([xauth-generic],        [c charon cmd])
                   1520: ADD_PLUGIN([xauth-eap],            [c charon])
                   1521: ADD_PLUGIN([xauth-pam],            [c charon])
                   1522: ADD_PLUGIN([xauth-noauth],         [c charon])
                   1523: ADD_PLUGIN([tnc-ifmap],            [c charon])
                   1524: ADD_PLUGIN([tnc-pdp],              [c charon])
                   1525: ADD_PLUGIN([tnc-imc],              [t charon])
                   1526: ADD_PLUGIN([tnc-imv],              [t charon])
                   1527: ADD_PLUGIN([tnc-tnccs],            [t charon])
                   1528: ADD_PLUGIN([tnccs-20],             [t charon])
                   1529: ADD_PLUGIN([tnccs-11],             [t charon])
                   1530: ADD_PLUGIN([tnccs-dynamic],        [t charon])
                   1531: ADD_PLUGIN([medsrv],               [c charon])
                   1532: ADD_PLUGIN([medcli],               [c charon])
                   1533: ADD_PLUGIN([dhcp],                 [c charon])
                   1534: ADD_PLUGIN([osx-attr],             [c charon cmd])
                   1535: ADD_PLUGIN([p-cscf],               [c charon cmd])
                   1536: ADD_PLUGIN([android-dns],          [c charon])
                   1537: ADD_PLUGIN([android-log],          [c charon])
                   1538: ADD_PLUGIN([ha],                   [c charon])
                   1539: ADD_PLUGIN([whitelist],            [c charon])
                   1540: ADD_PLUGIN([ext-auth],             [c charon])
                   1541: ADD_PLUGIN([lookip],               [c charon])
                   1542: ADD_PLUGIN([error-notify],         [c charon])
                   1543: ADD_PLUGIN([certexpire],           [c charon])
                   1544: ADD_PLUGIN([systime-fix],          [c charon])
                   1545: ADD_PLUGIN([led],                  [c charon])
                   1546: ADD_PLUGIN([duplicheck],           [c charon])
                   1547: ADD_PLUGIN([coupling],             [c charon])
                   1548: ADD_PLUGIN([radattr],              [c charon])
                   1549: ADD_PLUGIN([uci],                  [c charon])
                   1550: ADD_PLUGIN([addrblock],            [c charon])
                   1551: ADD_PLUGIN([unity],                [c charon])
                   1552: ADD_PLUGIN([counters],             [c charon])
                   1553: 
                   1554: AC_SUBST(charon_plugins)
                   1555: AC_SUBST(starter_plugins)
                   1556: AC_SUBST(pool_plugins)
                   1557: AC_SUBST(attest_plugins)
                   1558: AC_SUBST(scepclient_plugins)
                   1559: AC_SUBST(pki_plugins)
                   1560: AC_SUBST(scripts_plugins)
                   1561: AC_SUBST(fuzz_plugins)
                   1562: AC_SUBST(manager_plugins)
                   1563: AC_SUBST(medsrv_plugins)
                   1564: AC_SUBST(nm_plugins)
                   1565: AC_SUBST(cmd_plugins)
                   1566: AC_SUBST(aikgen_plugins)
                   1567: 
                   1568: AC_SUBST(c_plugins)
                   1569: AC_SUBST(p_plugins)
                   1570: AC_SUBST(s_plugins)
                   1571: AC_SUBST(t_plugins)
                   1572: 
                   1573: # ======================
                   1574: #  set Makefile.am vars
                   1575: # ======================
                   1576: 
                   1577: #  libstrongswan plugins
                   1578: # -----------------------
                   1579: AM_CONDITIONAL(USE_TEST_VECTORS, test x$test_vectors = xtrue)
                   1580: AM_CONDITIONAL(USE_CURL, test x$curl = xtrue)
                   1581: AM_CONDITIONAL(USE_FILES, test x$files = xtrue)
                   1582: AM_CONDITIONAL(USE_WINHTTP, test x$winhttp = xtrue)
                   1583: AM_CONDITIONAL(USE_UNBOUND, test x$unbound = xtrue)
                   1584: AM_CONDITIONAL(USE_SOUP, test x$soup = xtrue)
                   1585: AM_CONDITIONAL(USE_LDAP, test x$ldap = xtrue)
                   1586: AM_CONDITIONAL(USE_AES, test x$aes = xtrue)
                   1587: AM_CONDITIONAL(USE_DES, test x$des = xtrue)
                   1588: AM_CONDITIONAL(USE_BLOWFISH, test x$blowfish = xtrue)
                   1589: AM_CONDITIONAL(USE_RC2, test x$rc2 = xtrue)
                   1590: AM_CONDITIONAL(USE_MD4, test x$md4 = xtrue)
                   1591: AM_CONDITIONAL(USE_MD5, test x$md5 = xtrue)
                   1592: AM_CONDITIONAL(USE_SHA1, test x$sha1 = xtrue)
                   1593: AM_CONDITIONAL(USE_SHA2, test x$sha2 = xtrue)
                   1594: AM_CONDITIONAL(USE_SHA3, test x$sha3 = xtrue)
                   1595: AM_CONDITIONAL(USE_MGF1, test x$mgf1 = xtrue)
                   1596: AM_CONDITIONAL(USE_FIPS_PRF, test x$fips_prf = xtrue)
                   1597: AM_CONDITIONAL(USE_GMP, test x$gmp = xtrue)
                   1598: AM_CONDITIONAL(USE_CURVE25519, test x$curve25519 = xtrue)
                   1599: AM_CONDITIONAL(USE_RDRAND, test x$rdrand = xtrue)
                   1600: AM_CONDITIONAL(USE_AESNI, test x$aesni = xtrue)
                   1601: AM_CONDITIONAL(USE_RANDOM, test x$random = xtrue)
                   1602: AM_CONDITIONAL(USE_NONCE, test x$nonce = xtrue)
                   1603: AM_CONDITIONAL(USE_X509, test x$x509 = xtrue)
                   1604: AM_CONDITIONAL(USE_REVOCATION, test x$revocation = xtrue)
                   1605: AM_CONDITIONAL(USE_CONSTRAINTS, test x$constraints = xtrue)
                   1606: AM_CONDITIONAL(USE_ACERT, test x$acert = xtrue)
                   1607: AM_CONDITIONAL(USE_PUBKEY, test x$pubkey = xtrue)
                   1608: AM_CONDITIONAL(USE_PKCS1, test x$pkcs1 = xtrue)
                   1609: AM_CONDITIONAL(USE_PKCS7, test x$pkcs7 = xtrue)
                   1610: AM_CONDITIONAL(USE_PKCS8, test x$pkcs8 = xtrue)
                   1611: AM_CONDITIONAL(USE_PKCS12, test x$pkcs12 = xtrue)
                   1612: AM_CONDITIONAL(USE_PGP, test x$pgp = xtrue)
                   1613: AM_CONDITIONAL(USE_DNSKEY, test x$dnskey = xtrue)
                   1614: AM_CONDITIONAL(USE_SSHKEY, test x$sshkey = xtrue)
                   1615: AM_CONDITIONAL(USE_PEM, test x$pem = xtrue)
                   1616: AM_CONDITIONAL(USE_HMAC, test x$hmac = xtrue)
                   1617: AM_CONDITIONAL(USE_CMAC, test x$cmac = xtrue)
                   1618: AM_CONDITIONAL(USE_XCBC, test x$xcbc = xtrue)
                   1619: AM_CONDITIONAL(USE_MYSQL, test x$mysql = xtrue)
                   1620: AM_CONDITIONAL(USE_SQLITE, test x$sqlite = xtrue)
                   1621: AM_CONDITIONAL(USE_PADLOCK, test x$padlock = xtrue)
                   1622: AM_CONDITIONAL(USE_OPENSSL, test x$openssl = xtrue)
                   1623: AM_CONDITIONAL(USE_WOLFSSL, test x$wolfssl = xtrue)
                   1624: AM_CONDITIONAL(USE_GCRYPT, test x$gcrypt = xtrue)
                   1625: AM_CONDITIONAL(USE_BOTAN, test x$botan = xtrue)
                   1626: AM_CONDITIONAL(USE_AGENT, test x$agent = xtrue)
                   1627: AM_CONDITIONAL(USE_KEYCHAIN, test x$keychain = xtrue)
                   1628: AM_CONDITIONAL(USE_PKCS11, test x$pkcs11 = xtrue)
                   1629: AM_CONDITIONAL(USE_TPM, test x$tpm = xtrue)
                   1630: AM_CONDITIONAL(USE_CHAPOLY, test x$chapoly = xtrue)
                   1631: AM_CONDITIONAL(USE_CTR, test x$ctr = xtrue)
                   1632: AM_CONDITIONAL(USE_CCM, test x$ccm = xtrue)
                   1633: AM_CONDITIONAL(USE_GCM, test x$gcm = xtrue)
                   1634: AM_CONDITIONAL(USE_AF_ALG, test x$af_alg = xtrue)
                   1635: AM_CONDITIONAL(USE_NTRU, test x$ntru = xtrue)
                   1636: AM_CONDITIONAL(USE_NEWHOPE, test x$newhope = xtrue)
                   1637: AM_CONDITIONAL(USE_BLISS, test x$bliss = xtrue)
                   1638: AM_CONDITIONAL(USE_DRBG, test x$drbg = xtrue)
                   1639: 
                   1640: #  charon plugins
                   1641: # ----------------
                   1642: AM_CONDITIONAL(USE_STROKE, test x$stroke = xtrue)
                   1643: AM_CONDITIONAL(USE_VICI, test x$vici = xtrue)
                   1644: AM_CONDITIONAL(USE_MEDSRV, test x$medsrv = xtrue)
                   1645: AM_CONDITIONAL(USE_MEDCLI, test x$medcli = xtrue)
                   1646: AM_CONDITIONAL(USE_UCI, test x$uci = xtrue)
                   1647: AM_CONDITIONAL(USE_OSX_ATTR, test x$osx_attr = xtrue)
                   1648: AM_CONDITIONAL(USE_P_CSCF, test x$p_cscf = xtrue)
                   1649: AM_CONDITIONAL(USE_ANDROID_DNS, test x$android_dns = xtrue)
                   1650: AM_CONDITIONAL(USE_ANDROID_LOG, test x$android_log = xtrue)
                   1651: AM_CONDITIONAL(USE_SMP, test x$smp = xtrue)
                   1652: AM_CONDITIONAL(USE_SQL, test x$sql = xtrue)
                   1653: AM_CONDITIONAL(USE_DNSCERT, test x$dnscert = xtrue)
                   1654: AM_CONDITIONAL(USE_IPSECKEY, test x$ipseckey = xtrue)
                   1655: AM_CONDITIONAL(USE_UPDOWN, test x$updown = xtrue)
                   1656: AM_CONDITIONAL(USE_DHCP, test x$dhcp = xtrue)
                   1657: AM_CONDITIONAL(USE_LOAD_TESTER, test x$load_tester = xtrue)
                   1658: AM_CONDITIONAL(USE_HA, test x$ha = xtrue)
                   1659: AM_CONDITIONAL(USE_KERNEL_NETLINK, test x$kernel_netlink = xtrue)
                   1660: AM_CONDITIONAL(USE_KERNEL_PFKEY, test x$kernel_pfkey = xtrue)
                   1661: AM_CONDITIONAL(USE_KERNEL_PFROUTE, test x$kernel_pfroute = xtrue)
                   1662: AM_CONDITIONAL(USE_KERNEL_LIBIPSEC, test x$kernel_libipsec = xtrue)
                   1663: AM_CONDITIONAL(USE_KERNEL_WFP, test x$kernel_wfp = xtrue)
                   1664: AM_CONDITIONAL(USE_KERNEL_IPH, test x$kernel_iph = xtrue)
                   1665: AM_CONDITIONAL(USE_WHITELIST, test x$whitelist = xtrue)
                   1666: AM_CONDITIONAL(USE_EXT_AUTH, test x$ext_auth = xtrue)
                   1667: AM_CONDITIONAL(USE_LOOKIP, test x$lookip = xtrue)
                   1668: AM_CONDITIONAL(USE_ERROR_NOTIFY, test x$error_notify = xtrue)
                   1669: AM_CONDITIONAL(USE_CERTEXPIRE, test x$certexpire = xtrue)
                   1670: AM_CONDITIONAL(USE_SYSTIME_FIX, test x$systime_fix = xtrue)
                   1671: AM_CONDITIONAL(USE_LED, test x$led = xtrue)
                   1672: AM_CONDITIONAL(USE_DUPLICHECK, test x$duplicheck = xtrue)
                   1673: AM_CONDITIONAL(USE_COUPLING, test x$coupling = xtrue)
                   1674: AM_CONDITIONAL(USE_RADATTR, test x$radattr = xtrue)
                   1675: AM_CONDITIONAL(USE_EAP_SIM, test x$eap_sim = xtrue)
                   1676: AM_CONDITIONAL(USE_EAP_SIM_FILE, test x$eap_sim_file = xtrue)
                   1677: AM_CONDITIONAL(USE_EAP_SIM_PCSC, test x$eap_sim_pcsc = xtrue)
                   1678: AM_CONDITIONAL(USE_EAP_SIMAKA_SQL, test x$eap_simaka_sql = xtrue)
                   1679: AM_CONDITIONAL(USE_EAP_SIMAKA_PSEUDONYM, test x$eap_simaka_pseudonym = xtrue)
                   1680: AM_CONDITIONAL(USE_EAP_SIMAKA_REAUTH, test x$eap_simaka_reauth = xtrue)
                   1681: AM_CONDITIONAL(USE_EAP_IDENTITY, test x$eap_identity = xtrue)
                   1682: AM_CONDITIONAL(USE_EAP_MD5, test x$eap_md5 = xtrue)
                   1683: AM_CONDITIONAL(USE_EAP_GTC, test x$eap_gtc = xtrue)
                   1684: AM_CONDITIONAL(USE_EAP_AKA, test x$eap_aka = xtrue)
                   1685: AM_CONDITIONAL(USE_EAP_AKA_3GPP, test x$eap_aka_3gpp = xtrue)
                   1686: AM_CONDITIONAL(USE_EAP_AKA_3GPP2, test x$eap_aka_3gpp2 = xtrue)
                   1687: AM_CONDITIONAL(USE_EAP_MSCHAPV2, test x$eap_mschapv2 = xtrue)
                   1688: AM_CONDITIONAL(USE_EAP_TLS, test x$eap_tls = xtrue)
                   1689: AM_CONDITIONAL(USE_EAP_TTLS, test x$eap_ttls = xtrue)
                   1690: AM_CONDITIONAL(USE_EAP_PEAP, test x$eap_peap = xtrue)
                   1691: AM_CONDITIONAL(USE_EAP_TNC, test x$eap_tnc = xtrue)
                   1692: AM_CONDITIONAL(USE_EAP_DYNAMIC, test x$eap_dynamic = xtrue)
                   1693: AM_CONDITIONAL(USE_EAP_RADIUS, test x$eap_radius = xtrue)
                   1694: AM_CONDITIONAL(USE_XAUTH_GENERIC, test x$xauth_generic = xtrue)
                   1695: AM_CONDITIONAL(USE_XAUTH_EAP, test x$xauth_eap = xtrue)
                   1696: AM_CONDITIONAL(USE_XAUTH_PAM, test x$xauth_pam = xtrue)
                   1697: AM_CONDITIONAL(USE_XAUTH_NOAUTH, test x$xauth_noauth = xtrue)
                   1698: AM_CONDITIONAL(USE_TNC_IFMAP, test x$tnc_ifmap = xtrue)
                   1699: AM_CONDITIONAL(USE_TNC_PDP, test x$tnc_pdp = xtrue)
                   1700: AM_CONDITIONAL(USE_TNC_IMC, test x$tnc_imc = xtrue)
                   1701: AM_CONDITIONAL(USE_TNC_IMV, test x$tnc_imv = xtrue)
                   1702: AM_CONDITIONAL(USE_TNC_TNCCS, test x$tnc_tnccs = xtrue)
                   1703: AM_CONDITIONAL(USE_TNCCS_11, test x$tnccs_11 = xtrue)
                   1704: AM_CONDITIONAL(USE_TNCCS_20, test x$tnccs_20 = xtrue)
                   1705: AM_CONDITIONAL(USE_TNCCS_DYNAMIC, test x$tnccs_dynamic = xtrue)
                   1706: AM_CONDITIONAL(USE_IMC_TEST, test x$imc_test = xtrue)
                   1707: AM_CONDITIONAL(USE_IMV_TEST, test x$imv_test = xtrue)
                   1708: AM_CONDITIONAL(USE_IMC_SCANNER, test x$imc_scanner = xtrue)
                   1709: AM_CONDITIONAL(USE_IMV_SCANNER, test x$imv_scanner = xtrue)
                   1710: AM_CONDITIONAL(USE_IMC_OS, test x$imc_os = xtrue)
                   1711: AM_CONDITIONAL(USE_IMV_OS, test x$imv_os = xtrue)
                   1712: AM_CONDITIONAL(USE_IMC_ATTESTATION, test x$imc_attestation = xtrue)
                   1713: AM_CONDITIONAL(USE_IMV_ATTESTATION, test x$imv_attestation = xtrue)
                   1714: AM_CONDITIONAL(USE_IMC_SWIMA, test x$imc_swima = xtrue)
                   1715: AM_CONDITIONAL(USE_IMV_SWIMA, test x$imv_swima = xtrue)
                   1716: AM_CONDITIONAL(USE_IMC_HCD, test x$imc_hcd = xtrue)
                   1717: AM_CONDITIONAL(USE_IMV_HCD, test x$imv_hcd = xtrue)
                   1718: AM_CONDITIONAL(USE_SAVE_KEYS, test x$save_keys = xtrue)
                   1719: AM_CONDITIONAL(USE_SOCKET_DEFAULT, test x$socket_default = xtrue)
                   1720: AM_CONDITIONAL(USE_SOCKET_DYNAMIC, test x$socket_dynamic = xtrue)
                   1721: AM_CONDITIONAL(USE_SOCKET_WIN, test x$socket_win = xtrue)
                   1722: AM_CONDITIONAL(USE_BYPASS_LAN, test x$bypass_lan = xtrue)
                   1723: AM_CONDITIONAL(USE_CONNMARK, test x$connmark = xtrue)
                   1724: AM_CONDITIONAL(USE_FORECAST, test x$forecast = xtrue)
                   1725: AM_CONDITIONAL(USE_FARP, test x$farp = xtrue)
                   1726: AM_CONDITIONAL(USE_ADDRBLOCK, test x$addrblock = xtrue)
                   1727: AM_CONDITIONAL(USE_UNITY, test x$unity = xtrue)
                   1728: AM_CONDITIONAL(USE_RESOLVE, test x$resolve = xtrue)
                   1729: AM_CONDITIONAL(USE_ATTR, test x$attr = xtrue)
                   1730: AM_CONDITIONAL(USE_ATTR_SQL, test x$attr_sql = xtrue)
                   1731: AM_CONDITIONAL(USE_COUNTERS, test x$counters = xtrue)
                   1732: 
                   1733: #  other options
                   1734: # ---------------
                   1735: AM_CONDITIONAL(USE_LEAK_DETECTIVE, test x$leak_detective = xtrue)
                   1736: AM_CONDITIONAL(USE_LOCK_PROFILER, test x$lock_profiler = xtrue)
                   1737: AM_CONDITIONAL(USE_FAST, test x$fast = xtrue)
                   1738: AM_CONDITIONAL(USE_MANAGER, test x$manager = xtrue)
                   1739: AM_CONDITIONAL(USE_ME, test x$mediation = xtrue)
                   1740: AM_CONDITIONAL(USE_INTEGRITY_TEST, test x$integrity_test = xtrue)
                   1741: AM_CONDITIONAL(USE_LOAD_WARNING, test x$load_warning = xtrue)
                   1742: AM_CONDITIONAL(USE_IKEV1, test x$ikev1 = xtrue)
                   1743: AM_CONDITIONAL(USE_IKEV2, test x$ikev2 = xtrue)
                   1744: AM_CONDITIONAL(USE_THREADS, test x$threads = xtrue)
                   1745: AM_CONDITIONAL(USE_ADNS, test x$adns = xtrue)
                   1746: AM_CONDITIONAL(USE_CHARON, test x$charon = xtrue)
                   1747: AM_CONDITIONAL(USE_NM, test x$nm = xtrue)
                   1748: AM_CONDITIONAL(USE_PKI, test x$pki = xtrue)
                   1749: AM_CONDITIONAL(USE_SCEPCLIENT, test x$scepclient = xtrue)
                   1750: AM_CONDITIONAL(USE_SCRIPTS, test x$scripts = xtrue)
                   1751: AM_CONDITIONAL(USE_FUZZING, test x$fuzzing = xtrue)
                   1752: AM_CONDITIONAL(USE_CONFTEST, test x$conftest = xtrue)
                   1753: AM_CONDITIONAL(USE_LIBSTRONGSWAN, test x$charon = xtrue -o x$pki = xtrue -o x$scepclient = xtrue -o x$conftest = xtrue -o x$fast = xtrue -o x$imcv = xtrue -o x$nm = xtrue -o x$tkm = xtrue -o x$cmd = xtrue -o x$tls = xtrue -o x$tnc_tnccs = xtrue -o x$aikgen = xtrue -o x$svc = xtrue -o x$systemd = xtrue)
                   1754: AM_CONDITIONAL(USE_LIBCHARON, test x$charon = xtrue -o x$conftest = xtrue -o x$nm = xtrue -o x$tkm = xtrue -o x$cmd = xtrue -o x$svc = xtrue -o x$systemd = xtrue)
                   1755: AM_CONDITIONAL(USE_LIBIPSEC, test x$libipsec = xtrue)
                   1756: AM_CONDITIONAL(USE_LIBNTTFFT, test x$bliss = xtrue -o x$newhope = xtrue)
                   1757: AM_CONDITIONAL(USE_LIBTNCIF, test x$tnc_tnccs = xtrue -o x$imcv = xtrue)
                   1758: AM_CONDITIONAL(USE_LIBTNCCS, test x$tnc_tnccs = xtrue)
                   1759: AM_CONDITIONAL(USE_LIBPTTLS, test x$tnc_tnccs = xtrue)
                   1760: AM_CONDITIONAL(USE_LIBTPMTSS, test x$tss_trousers = xtrue -o x$tss_tss2 = xtrue -o x$tpm = xtrue -o x$aikgen = xtrue -o x$imcv = xtrue)
                   1761: AM_CONDITIONAL(USE_FILE_CONFIG, test x$stroke = xtrue)
                   1762: AM_CONDITIONAL(USE_IPSEC_SCRIPT, test x$stroke = xtrue -o x$scepclient = xtrue -o x$conftest = xtrue)
                   1763: AM_CONDITIONAL(USE_LIBCAP, test x$capabilities = xlibcap)
                   1764: AM_CONDITIONAL(USE_VSTR, test x$printf_hooks = xvstr)
                   1765: AM_CONDITIONAL(USE_BUILTIN_PRINTF, test x$printf_hooks = xbuiltin)
                   1766: AM_CONDITIONAL(USE_SIMAKA, test x$simaka = xtrue)
                   1767: AM_CONDITIONAL(USE_TLS, test x$tls = xtrue)
                   1768: AM_CONDITIONAL(USE_RADIUS, test x$radius = xtrue)
                   1769: AM_CONDITIONAL(USE_IMCV, test x$imcv = xtrue)
                   1770: AM_CONDITIONAL(USE_TROUSERS, test x$tss_trousers = xtrue)
                   1771: AM_CONDITIONAL(USE_TSS2, test x$tss_tss2 = xtrue)
                   1772: AM_CONDITIONAL(MONOLITHIC, test x$monolithic = xtrue)
                   1773: AM_CONDITIONAL(STATIC_PLUGIN_CONSTRUCTORS, test x$static_plugin_constructors = xtrue)
                   1774: AM_CONDITIONAL(USE_SILENT_RULES, test x$enable_silent_rules = xyes)
                   1775: AM_CONDITIONAL(COVERAGE, test x$coverage = xtrue)
                   1776: AM_CONDITIONAL(USE_DBGHELP, test x$dbghelp_backtraces = xtrue)
                   1777: AM_CONDITIONAL(USE_TKM, test x$tkm = xtrue)
                   1778: AM_CONDITIONAL(USE_CMD, test x$cmd = xtrue)
                   1779: AM_CONDITIONAL(USE_AIKGEN, test x$aikgen = xtrue)
                   1780: AM_CONDITIONAL(USE_SWANCTL, test x$swanctl = xtrue)
                   1781: AM_CONDITIONAL(USE_SVC, test x$svc = xtrue)
                   1782: AM_CONDITIONAL(USE_SYSTEMD, test x$systemd = xtrue)
                   1783: AM_CONDITIONAL(USE_LEGACY_SYSTEMD, test -n "$systemdsystemunitdir" -a "x$systemdsystemunitdir" != xno)
                   1784: AM_CONDITIONAL(USE_RUBY_GEMS, test x$ruby_gems = xtrue)
                   1785: AM_CONDITIONAL(USE_PYTHON_EGGS, test x$python_eggs = xtrue)
                   1786: AM_CONDITIONAL(USE_PERL_CPAN, test x$perl_cpan = xtrue)
                   1787: AM_CONDITIONAL(USE_TOX, test "x$TOX" != x)
                   1788: AM_CONDITIONAL(USE_PY_TEST, test "x$PY_TEST" != x -a "x$TOX" = x)
                   1789: 
                   1790: # ========================
                   1791: #  set global definitions
                   1792: # ========================
                   1793: 
                   1794: if test x$mediation = xtrue; then
                   1795:        AC_DEFINE([ME], [], [mediation extension support])
                   1796: fi
                   1797: if test x$capabilities = xlibcap -o x$capabilities = xnative; then
                   1798:        AC_DEFINE([CAPABILITIES], [], [capability dropping support])
                   1799: fi
                   1800: if test x$log_thread_ids = xtrue; then
                   1801:        AC_DEFINE([USE_THREAD_IDS], [], [use thread ID for thread identification, if available])
                   1802: fi
                   1803: if test x$monolithic = xtrue; then
                   1804:        AC_DEFINE([MONOLITHIC], [], [monolithic build embedding plugins])
                   1805: fi
                   1806: if test x$static_plugin_constructors = xtrue; then
                   1807:        AC_DEFINE([STATIC_PLUGIN_CONSTRUCTORS], [], [static plugin constructors])
                   1808: fi
                   1809: if test x$ikev1 = xtrue; then
                   1810:        AC_DEFINE([USE_IKEV1], [], [support for IKEv1 protocol])
                   1811: fi
                   1812: if test x$ikev2 = xtrue; then
                   1813:        AC_DEFINE([USE_IKEV2], [], [support for IKEv2 protocol])
                   1814: fi
                   1815: if test x$fuzzing = xtrue; then
                   1816:        AC_DEFINE([USE_FUZZING], [], [build code for fuzzing])
                   1817: fi
                   1818: if test x$imc_swima = xtrue -o x$imv_swima = xtrue; then
                   1819:        AC_DEFINE([USE_JSON], [], [build code for JSON])
                   1820: fi
                   1821: 
                   1822: # ====================================================
                   1823: #  options for enabled modules (see conf/Makefile.am)
                   1824: # ====================================================
                   1825: 
                   1826: strongswan_options=
                   1827: 
                   1828: AM_COND_IF([USE_AIKGEN], [strongswan_options=${strongswan_options}" aikgen"])
                   1829: AM_COND_IF([USE_ATTR_SQL], [strongswan_options=${strongswan_options}" pool"])
                   1830: AM_COND_IF([USE_CHARON], [strongswan_options=${strongswan_options}" charon charon-logging"])
                   1831: AM_COND_IF([USE_FILE_CONFIG], [strongswan_options=${strongswan_options}" starter"])
                   1832: AM_COND_IF([USE_IMV_ATTESTATION], [strongswan_options=${strongswan_options}" attest"])
                   1833: AM_COND_IF([USE_IMCV], [strongswan_options=${strongswan_options}" imcv"])
                   1834: AM_COND_IF([USE_IMV_SWIMA], [strongswan_options=${strongswan_options}" sec-updater"])
                   1835: AM_COND_IF([USE_LIBTNCCS], [strongswan_options=${strongswan_options}" tnc"])
                   1836: AM_COND_IF([USE_MANAGER], [strongswan_options=${strongswan_options}" manager"])
                   1837: AM_COND_IF([USE_MEDSRV], [strongswan_options=${strongswan_options}" medsrv"])
                   1838: AM_COND_IF([USE_SCEPCLIENT], [strongswan_options=${strongswan_options}" scepclient"])
                   1839: AM_COND_IF([USE_PKI], [strongswan_options=${strongswan_options}" pki"])
                   1840: AM_COND_IF([USE_SWANCTL], [strongswan_options=${strongswan_options}" swanctl"])
                   1841: AM_COND_IF([USE_SYSTEMD], [strongswan_options=${strongswan_options}" charon-systemd"])
                   1842: 
                   1843: AC_SUBST(strongswan_options)
                   1844: 
                   1845: # =================
                   1846: #  build Makefiles
                   1847: # =================
                   1848: 
                   1849: AC_CONFIG_FILES([
                   1850:        Makefile
                   1851:        conf/Makefile
                   1852:        fuzz/Makefile
                   1853:        man/Makefile
                   1854:        init/Makefile
                   1855:        init/systemd/Makefile
                   1856:        init/systemd-starter/Makefile
                   1857:        src/Makefile
                   1858:        src/include/Makefile
                   1859:        src/libstrongswan/Makefile
                   1860:        src/libstrongswan/math/libnttfft/Makefile
                   1861:        src/libstrongswan/math/libnttfft/tests/Makefile
                   1862:        src/libstrongswan/plugins/aes/Makefile
                   1863:        src/libstrongswan/plugins/cmac/Makefile
                   1864:        src/libstrongswan/plugins/des/Makefile
                   1865:        src/libstrongswan/plugins/blowfish/Makefile
                   1866:        src/libstrongswan/plugins/rc2/Makefile
                   1867:        src/libstrongswan/plugins/md4/Makefile
                   1868:        src/libstrongswan/plugins/md5/Makefile
                   1869:        src/libstrongswan/plugins/sha1/Makefile
                   1870:        src/libstrongswan/plugins/sha2/Makefile
                   1871:        src/libstrongswan/plugins/sha3/Makefile
                   1872:        src/libstrongswan/plugins/mgf1/Makefile
                   1873:        src/libstrongswan/plugins/fips_prf/Makefile
                   1874:        src/libstrongswan/plugins/gmp/Makefile
                   1875:        src/libstrongswan/plugins/curve25519/Makefile
                   1876:        src/libstrongswan/plugins/rdrand/Makefile
                   1877:        src/libstrongswan/plugins/aesni/Makefile
                   1878:        src/libstrongswan/plugins/random/Makefile
                   1879:        src/libstrongswan/plugins/nonce/Makefile
                   1880:        src/libstrongswan/plugins/hmac/Makefile
                   1881:        src/libstrongswan/plugins/xcbc/Makefile
                   1882:        src/libstrongswan/plugins/x509/Makefile
                   1883:        src/libstrongswan/plugins/revocation/Makefile
                   1884:        src/libstrongswan/plugins/constraints/Makefile
                   1885:        src/libstrongswan/plugins/acert/Makefile
                   1886:        src/libstrongswan/plugins/pubkey/Makefile
                   1887:        src/libstrongswan/plugins/pkcs1/Makefile
                   1888:        src/libstrongswan/plugins/pkcs7/Makefile
                   1889:        src/libstrongswan/plugins/pkcs8/Makefile
                   1890:        src/libstrongswan/plugins/pkcs12/Makefile
                   1891:        src/libstrongswan/plugins/pgp/Makefile
                   1892:        src/libstrongswan/plugins/dnskey/Makefile
                   1893:        src/libstrongswan/plugins/sshkey/Makefile
                   1894:        src/libstrongswan/plugins/pem/Makefile
                   1895:        src/libstrongswan/plugins/curl/Makefile
                   1896:        src/libstrongswan/plugins/files/Makefile
                   1897:        src/libstrongswan/plugins/winhttp/Makefile
                   1898:        src/libstrongswan/plugins/unbound/Makefile
                   1899:        src/libstrongswan/plugins/soup/Makefile
                   1900:        src/libstrongswan/plugins/ldap/Makefile
                   1901:        src/libstrongswan/plugins/mysql/Makefile
                   1902:        src/libstrongswan/plugins/sqlite/Makefile
                   1903:        src/libstrongswan/plugins/padlock/Makefile
                   1904:        src/libstrongswan/plugins/openssl/Makefile
                   1905:        src/libstrongswan/plugins/wolfssl/Makefile
                   1906:        src/libstrongswan/plugins/gcrypt/Makefile
                   1907:        src/libstrongswan/plugins/botan/Makefile
                   1908:        src/libstrongswan/plugins/agent/Makefile
                   1909:        src/libstrongswan/plugins/keychain/Makefile
                   1910:        src/libstrongswan/plugins/pkcs11/Makefile
                   1911:        src/libstrongswan/plugins/chapoly/Makefile
                   1912:        src/libstrongswan/plugins/ctr/Makefile
                   1913:        src/libstrongswan/plugins/ccm/Makefile
                   1914:        src/libstrongswan/plugins/gcm/Makefile
                   1915:        src/libstrongswan/plugins/af_alg/Makefile
                   1916:        src/libstrongswan/plugins/drbg/Makefile
                   1917:        src/libstrongswan/plugins/ntru/Makefile
                   1918:        src/libstrongswan/plugins/bliss/Makefile
                   1919:        src/libstrongswan/plugins/bliss/tests/Makefile
                   1920:        src/libstrongswan/plugins/newhope/Makefile
                   1921:        src/libstrongswan/plugins/newhope/tests/Makefile
                   1922:        src/libstrongswan/plugins/test_vectors/Makefile
                   1923:        src/libstrongswan/tests/Makefile
                   1924:        src/libipsec/Makefile
                   1925:        src/libipsec/tests/Makefile
                   1926:        src/libsimaka/Makefile
                   1927:        src/libtls/Makefile
                   1928:        src/libtls/tests/Makefile
                   1929:        src/libradius/Makefile
                   1930:        src/libtncif/Makefile
                   1931:        src/libtnccs/Makefile
                   1932:        src/libtnccs/plugins/tnc_tnccs/Makefile
                   1933:        src/libtnccs/plugins/tnc_imc/Makefile
                   1934:        src/libtnccs/plugins/tnc_imv/Makefile
                   1935:        src/libtnccs/plugins/tnccs_11/Makefile
                   1936:        src/libtnccs/plugins/tnccs_20/Makefile
                   1937:        src/libtnccs/plugins/tnccs_dynamic/Makefile
                   1938:        src/libpttls/Makefile
                   1939:        src/libimcv/Makefile
                   1940:        src/libimcv/plugins/imc_test/Makefile
                   1941:        src/libimcv/plugins/imv_test/Makefile
                   1942:        src/libimcv/plugins/imc_scanner/Makefile
                   1943:        src/libimcv/plugins/imv_scanner/Makefile
                   1944:        src/libimcv/plugins/imc_os/Makefile
                   1945:        src/libimcv/plugins/imv_os/Makefile
                   1946:        src/libimcv/plugins/imc_attestation/Makefile
                   1947:        src/libimcv/plugins/imv_attestation/Makefile
                   1948:        src/libimcv/plugins/imc_swima/Makefile
                   1949:        src/libimcv/plugins/imv_swima/Makefile
                   1950:        src/libimcv/plugins/imc_hcd/Makefile
                   1951:        src/libimcv/plugins/imv_hcd/Makefile
                   1952:        src/charon/Makefile
                   1953:        src/charon-nm/Makefile
                   1954:        src/charon-tkm/Makefile
                   1955:        src/charon-cmd/Makefile
                   1956:        src/charon-svc/Makefile
                   1957:        src/charon-systemd/Makefile
                   1958:        src/libcharon/Makefile
                   1959:        src/libcharon/plugins/eap_aka/Makefile
                   1960:        src/libcharon/plugins/eap_aka_3gpp/Makefile
                   1961:        src/libcharon/plugins/eap_aka_3gpp/tests/Makefile
                   1962:        src/libcharon/plugins/eap_aka_3gpp2/Makefile
                   1963:        src/libcharon/plugins/eap_dynamic/Makefile
                   1964:        src/libcharon/plugins/eap_identity/Makefile
                   1965:        src/libcharon/plugins/eap_md5/Makefile
                   1966:        src/libcharon/plugins/eap_gtc/Makefile
                   1967:        src/libcharon/plugins/eap_sim/Makefile
                   1968:        src/libcharon/plugins/eap_sim_file/Makefile
                   1969:        src/libcharon/plugins/eap_sim_pcsc/Makefile
                   1970:        src/libcharon/plugins/eap_simaka_sql/Makefile
                   1971:        src/libcharon/plugins/eap_simaka_pseudonym/Makefile
                   1972:        src/libcharon/plugins/eap_simaka_reauth/Makefile
                   1973:        src/libcharon/plugins/eap_mschapv2/Makefile
                   1974:        src/libcharon/plugins/eap_tls/Makefile
                   1975:        src/libcharon/plugins/eap_ttls/Makefile
                   1976:        src/libcharon/plugins/eap_peap/Makefile
                   1977:        src/libcharon/plugins/eap_tnc/Makefile
                   1978:        src/libcharon/plugins/eap_radius/Makefile
                   1979:        src/libcharon/plugins/xauth_generic/Makefile
                   1980:        src/libcharon/plugins/xauth_eap/Makefile
                   1981:        src/libcharon/plugins/xauth_pam/Makefile
                   1982:        src/libcharon/plugins/xauth_noauth/Makefile
                   1983:        src/libcharon/plugins/tnc_ifmap/Makefile
                   1984:        src/libcharon/plugins/tnc_pdp/Makefile
                   1985:        src/libcharon/plugins/save_keys/Makefile
                   1986:        src/libcharon/plugins/socket_default/Makefile
                   1987:        src/libcharon/plugins/socket_dynamic/Makefile
                   1988:        src/libcharon/plugins/socket_win/Makefile
                   1989:        src/libcharon/plugins/bypass_lan/Makefile
                   1990:        src/libcharon/plugins/connmark/Makefile
                   1991:        src/libcharon/plugins/counters/Makefile
                   1992:        src/libcharon/plugins/forecast/Makefile
                   1993:        src/libcharon/plugins/farp/Makefile
                   1994:        src/libcharon/plugins/smp/Makefile
                   1995:        src/libcharon/plugins/sql/Makefile
                   1996:        src/libcharon/plugins/dnscert/Makefile
                   1997:        src/libcharon/plugins/ipseckey/Makefile
                   1998:        src/libcharon/plugins/medsrv/Makefile
                   1999:        src/libcharon/plugins/medcli/Makefile
                   2000:        src/libcharon/plugins/addrblock/Makefile
                   2001:        src/libcharon/plugins/unity/Makefile
                   2002:        src/libcharon/plugins/uci/Makefile
                   2003:        src/libcharon/plugins/ha/Makefile
                   2004:        src/libcharon/plugins/kernel_netlink/Makefile
                   2005:        src/libcharon/plugins/kernel_pfkey/Makefile
                   2006:        src/libcharon/plugins/kernel_pfroute/Makefile
                   2007:        src/libcharon/plugins/kernel_libipsec/Makefile
                   2008:        src/libcharon/plugins/kernel_wfp/Makefile
                   2009:        src/libcharon/plugins/kernel_iph/Makefile
                   2010:        src/libcharon/plugins/whitelist/Makefile
                   2011:        src/libcharon/plugins/ext_auth/Makefile
                   2012:        src/libcharon/plugins/lookip/Makefile
                   2013:        src/libcharon/plugins/error_notify/Makefile
                   2014:        src/libcharon/plugins/certexpire/Makefile
                   2015:        src/libcharon/plugins/systime_fix/Makefile
                   2016:        src/libcharon/plugins/led/Makefile
                   2017:        src/libcharon/plugins/duplicheck/Makefile
                   2018:        src/libcharon/plugins/coupling/Makefile
                   2019:        src/libcharon/plugins/radattr/Makefile
                   2020:        src/libcharon/plugins/osx_attr/Makefile
                   2021:        src/libcharon/plugins/p_cscf/Makefile
                   2022:        src/libcharon/plugins/android_dns/Makefile
                   2023:        src/libcharon/plugins/android_log/Makefile
                   2024:        src/libcharon/plugins/stroke/Makefile
                   2025:        src/libcharon/plugins/vici/Makefile
                   2026:        src/libcharon/plugins/vici/ruby/Makefile
                   2027:        src/libcharon/plugins/vici/perl/Makefile
                   2028:        src/libcharon/plugins/vici/python/Makefile
                   2029:        src/libcharon/plugins/updown/Makefile
                   2030:        src/libcharon/plugins/dhcp/Makefile
                   2031:        src/libcharon/plugins/load_tester/Makefile
                   2032:        src/libcharon/plugins/resolve/Makefile
                   2033:        src/libcharon/plugins/attr/Makefile
                   2034:        src/libcharon/plugins/attr_sql/Makefile
                   2035:        src/libcharon/tests/Makefile
                   2036:        src/libtpmtss/Makefile
                   2037:        src/libtpmtss/plugins/tpm/Makefile
                   2038:        src/stroke/Makefile
                   2039:        src/ipsec/Makefile
                   2040:        src/starter/Makefile
                   2041:        src/starter/tests/Makefile
                   2042:        src/_updown/Makefile
                   2043:        src/_copyright/Makefile
                   2044:        src/scepclient/Makefile
                   2045:        src/aikgen/Makefile
                   2046:        src/tpm_extendpcr/Makefile
                   2047:        src/pki/Makefile
                   2048:        src/pki/man/Makefile
                   2049:        src/pool/Makefile
                   2050:        src/libfast/Makefile
                   2051:        src/manager/Makefile
                   2052:        src/medsrv/Makefile
                   2053:        src/checksum/Makefile
                   2054:        src/conftest/Makefile
                   2055:        src/pt-tls-client/Makefile
                   2056:        src/sw-collector/Makefile
                   2057:        src/sec-updater/Makefile
                   2058:        src/swanctl/Makefile
                   2059:        src/xfrmi/Makefile
                   2060:        scripts/Makefile
                   2061:        testing/Makefile
                   2062: ])
                   2063: 
                   2064: # =================
                   2065: #  build man pages
                   2066: # =================
                   2067: 
                   2068: AC_CONFIG_FILES([
                   2069:        conf/strongswan.conf.5.head
                   2070:        conf/strongswan.conf.5.tail
                   2071:        man/ipsec.conf.5
                   2072:        man/ipsec.secrets.5
                   2073:        src/charon-cmd/charon-cmd.8
                   2074:        src/pki/man/pki.1
                   2075:        src/pki/man/pki---acert.1
                   2076:        src/pki/man/pki---dn.1
                   2077:        src/pki/man/pki---gen.1
                   2078:        src/pki/man/pki---issue.1
                   2079:        src/pki/man/pki---keyid.1
                   2080:        src/pki/man/pki---pkcs12.1
                   2081:        src/pki/man/pki---pkcs7.1
                   2082:        src/pki/man/pki---print.1
                   2083:        src/pki/man/pki---pub.1
                   2084:        src/pki/man/pki---req.1
                   2085:        src/pki/man/pki---self.1
                   2086:        src/pki/man/pki---signcrl.1
                   2087:        src/pki/man/pki---verify.1
                   2088:        src/swanctl/swanctl.8
                   2089:        src/swanctl/swanctl.conf.5.head
                   2090:        src/swanctl/swanctl.conf.5.tail
                   2091:        src/pt-tls-client/pt-tls-client.1
                   2092:        src/sw-collector/sw-collector.8
                   2093:        src/sec-updater/sec-updater.8
                   2094: ])
                   2095: 
                   2096: AC_OUTPUT
                   2097: 
                   2098: # ========================
                   2099: #  report enabled plugins
                   2100: # ========================
                   2101: 
                   2102: AC_MSG_RESULT([])
                   2103: AC_MSG_RESULT([ strongSwan will be built with the following plugins])
                   2104: AC_MSG_RESULT([-----------------------------------------------------])
                   2105: 
                   2106: AC_MSG_RESULT([libstrongswan:$s_plugins])
                   2107: AC_MSG_RESULT([libcharon:    $c_plugins])
                   2108: AC_MSG_RESULT([libtnccs:     $t_plugins])
                   2109: AC_MSG_RESULT([libtpmtss:    $p_plugins])
                   2110: AC_MSG_RESULT([])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>