Annotation of embedaddon/strongswan/configure.ac, revision 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>