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

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: 
1.1.1.2 ! misho      22: AC_INIT([strongSwan],[5.9.2])
1.1       misho      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.])
1.1.1.2 ! misho     329: ARG_ENABL_SET([git-version],    [use output of 'git describe' as version information in executables.])
1.1       misho     330: ARG_ENABL_SET([leak-detective], [enable malloc hooks to find memory leaks.])
                    331: ARG_ENABL_SET([lock-profiler],  [enable lock/mutex profiling code.])
                    332: ARG_ENABL_SET([log-thread-ids], [use thread ID, if available, instead of an incremented value starting from 1, to identify threads.])
                    333: ARG_ENABL_SET([monolithic],     [build monolithic version of libstrongswan that includes all enabled plugins. Similarly, the plugins of charon are assembled in libcharon.])
                    334: 
                    335: # ===================================
                    336: #  option to disable default options
                    337: # ===================================
                    338: 
                    339: ARG_DISBL_SET([defaults],       [disable all default plugins (they can be enabled with their respective --enable options)])
                    340: 
                    341: if test x$defaults = xfalse; then
                    342:        for option in $enabled_by_default; do
                    343:                eval test x\${${option}_given} = xtrue && continue
                    344:                eval $option=false
                    345:        done
                    346: fi
                    347: 
                    348: # ==============================
                    349: #  option to enable all options
                    350: # ==============================
                    351: 
                    352: ARG_ENABL_SET([all],            [enable all plugins and features (they can be disabled with their respective --disable options). Mainly for testing.])
                    353: 
                    354: if test x$all_given = xtrue; then
                    355:        for option in $disabled_by_default; do
                    356:                eval test x\${${option}_given} = xtrue && continue
                    357:                eval $option=true
                    358:        done
                    359: fi
                    360: 
                    361: # ===========================
                    362: #  set up compiler and flags
                    363: # ===========================
                    364: 
                    365: if test -z "$CFLAGS"; then
                    366:        CFLAGS="-g -O2 -Wall -Wno-format -Wno-format-security -Wno-pointer-sign"
                    367: fi
                    368: AC_SUBST(PLUGIN_CFLAGS)
                    369: AC_PROG_CC
                    370: AM_PROG_CC_C_O
                    371: 
                    372: AC_LIB_PREFIX
                    373: AC_C_BIGENDIAN
                    374: 
                    375: # =========================
                    376: #  check required programs
                    377: # =========================
                    378: 
                    379: LT_INIT
                    380: AC_PROG_INSTALL
                    381: AC_PROG_EGREP
                    382: AC_PROG_AWK
                    383: AC_PROG_LEX
                    384: AC_PROG_YACC
                    385: AM_PATH_PYTHON(,,[:])
                    386: AC_PATH_PROG([PERL], [perl], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                    387: AC_ARG_VAR([PERL], [the Perl interpreter])
                    388: AC_PATH_PROG([GPERF], [gperf], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                    389: AC_ARG_VAR([GPERF], [the GNU gperf program])
                    390: 
                    391: # because gperf is not needed by end-users we only abort if generated files don't exist
                    392: AC_MSG_CHECKING([gperf len type])
                    393: if test -x "$GPERF"; then
                    394:        GPERF_OUTPUT="`echo foo | ${GPERF}`"
                    395:        AC_COMPILE_IFELSE(
                    396:                [AC_LANG_PROGRAM(
                    397:                        [[#include <string.h>
                    398:                          const char *in_word_set(const char*, size_t); $GPERF_OUTPUT]])],
                    399:                [GPERF_LEN_TYPE=size_t],
                    400:                [AC_COMPILE_IFELSE(
                    401:                        [AC_LANG_PROGRAM(
                    402:                                [[#include <string.h>
                    403:                                  const char *in_word_set(const char*, unsigned); $GPERF_OUTPUT]])],
                    404:                        [GPERF_LEN_TYPE=unsigned],
                    405:                        [AC_MSG_ERROR([unable to determine gperf len type])]
                    406:                )]
                    407:        )
                    408:        AC_SUBST(GPERF_LEN_TYPE)
                    409:        AC_MSG_RESULT([$GPERF_LEN_TYPE])
                    410: else
                    411:        AC_MSG_RESULT([not found])
                    412:        GPERF_TEST_FILE="$srcdir/src/libstrongswan/crypto/proposal/proposal_keywords_static.c"
                    413:        if test ! -f "$GPERF_TEST_FILE"; then
                    414:                AC_MSG_ERROR([GNU gperf required to generate e.g. $GPERF_TEST_FILE])
                    415:        fi
                    416: fi
                    417: 
                    418: # ========================
                    419: #  dependency calculation
                    420: # ========================
                    421: 
                    422: if test x$xauth_generic_given = xfalse -a x$ikev1 = xfalse; then
                    423:        xauth_generic=false;
                    424: fi
                    425: 
                    426: if test x$kernel_libipsec = xtrue; then
                    427:        libipsec=true;
                    428: fi
                    429: 
                    430: if test x$eap_aka_3gpp2 = xtrue; then
                    431:        gmp=true;
                    432: fi
                    433: 
                    434: if test x$eap_aka = xtrue; then
                    435:        fips_prf=true;
                    436:        simaka=true;
                    437: fi
                    438: 
                    439: if test x$eap_sim = xtrue; then
                    440:        fips_prf=true;
                    441:        simaka=true;
                    442: fi
                    443: 
                    444: if test x$eap_radius = xtrue -o x$radattr = xtrue -o x$tnc_pdp = xtrue; then
                    445:        radius=true;
                    446: fi
                    447: 
                    448: 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
                    449:        tnc_tnccs=true;
                    450: fi
                    451: 
                    452: if test x$eap_tls = xtrue -o x$eap_ttls = xtrue -o x$eap_peap = xtrue -o x$tnc_tnccs = xtrue; then
                    453:        tls=true;
                    454: fi
                    455: 
                    456: 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
                    457:        imcv=true;
                    458: fi
                    459: 
                    460: if test x$fips_prf = xtrue; then
                    461:        if test x$openssl = xfalse -a x$wolfssl = xfalse; then
                    462:                sha1=true;
                    463:        fi
                    464: fi
                    465: 
                    466: if test x$swanctl = xtrue; then
                    467:        vici=true
                    468: fi
                    469: 
                    470: if test x$smp = xtrue -o x$tnccs_11 = xtrue -o x$tnc_ifmap = xtrue; then
                    471:        xml=true
                    472: fi
                    473: 
                    474: if test x$manager = xtrue; then
                    475:        fast=true
                    476: fi
                    477: 
                    478: if test x$medsrv = xtrue; then
                    479:        mediation=true
                    480:        fast=true
                    481: fi
                    482: 
                    483: if test x$medcli = xtrue; then
                    484:        mediation=true
                    485: fi
                    486: 
                    487: if test x$ruby_gems_install = xtrue; then
                    488:        ruby_gems=true
                    489: fi
                    490: 
                    491: if test x$python_eggs_install = xtrue; then
                    492:        python_eggs=true
                    493: fi
                    494: 
                    495: if test x$perl_cpan_install = xtrue; then
                    496:        perl_cpan=true
                    497: fi
                    498: 
                    499: if test x$aikgen = xtrue; then
                    500:        tss_trousers=true
                    501: fi
                    502: 
                    503: if test x$gmp = xtrue -o x$ntru = xtrue -o x$bliss = xtrue; then
                    504:        mgf1=true
                    505: fi
                    506: 
                    507: if test x$stroke = xtrue; then
                    508:        counters=true
                    509: fi
                    510: 
                    511: # ===========================================
                    512: #  check required libraries and header files
                    513: # ===========================================
                    514: 
                    515: AC_HEADER_STDBOOL
                    516: AC_FUNC_ALLOCA
                    517: AC_FUNC_STRERROR_R
                    518: 
                    519: #  libraries needed on some platforms but not on others
                    520: # ------------------------------------------------------
                    521: saved_LIBS=$LIBS
                    522: 
                    523: # FreeBSD and Mac OS X have dlopen integrated in libc, Linux needs libdl
                    524: LIBS=""
                    525: AC_SEARCH_LIBS(dlopen, dl, [DLLIB=$LIBS])
                    526: AC_SUBST(DLLIB)
                    527: 
                    528: # glibc's backtrace() can be replicated on FreeBSD with libexecinfo
                    529: LIBS=""
                    530: AC_SEARCH_LIBS(backtrace, execinfo, [BTLIB=$LIBS])
                    531: AC_CHECK_FUNCS(backtrace)
                    532: AC_SUBST(BTLIB)
                    533: 
                    534: # OpenSolaris needs libsocket and libnsl for socket()
                    535: LIBS=""
                    536: AC_SEARCH_LIBS(socket, socket, [SOCKLIB=$LIBS],
                    537:        [AC_CHECK_LIB(nsl, socket, [SOCKLIB="-lsocket -lnsl"], [], [-lsocket])]
                    538: )
                    539: AC_SUBST(SOCKLIB)
                    540: 
                    541: # Android has pthread_* functions in bionic (libc), others need libpthread
                    542: LIBS=$DLLIB
                    543: AC_SEARCH_LIBS(pthread_create, pthread, [PTHREADLIB=$LIBS])
                    544: AC_SUBST(PTHREADLIB)
                    545: 
                    546: # Some architectures require explicit -latomic for __atomic_* operations
                    547: # AC_SEARCH_LIBS() does not work when checking built-ins due to conflicting types
                    548: LIBS=""
                    549: AC_MSG_CHECKING(for library containing __atomic_and_fetch)
                    550: AC_LINK_IFELSE(
                    551:        [AC_LANG_PROGRAM([[]], [[int x; __atomic_and_fetch(&x, 1, __ATOMIC_RELAXED);]])],
                    552:        [AC_MSG_RESULT([none required])],
                    553:        [LIBS="-latomic";
                    554:         AC_LINK_IFELSE(
                    555:                [AC_LANG_PROGRAM([[]], [[int x; __atomic_and_fetch(&x, 1, __ATOMIC_RELAXED);]])],
                    556:                [AC_MSG_RESULT([-latomic]); ATOMICLIB=$LIBS],
                    557:                [AC_MSG_RESULT([no])])
                    558:        ]
                    559: )
                    560: AC_SUBST(ATOMICLIB)
                    561: 
                    562: LIBS=$saved_LIBS
                    563: # ------------------------------------------------------
                    564: 
                    565: AC_MSG_CHECKING(for dladdr)
                    566: AC_COMPILE_IFELSE(
                    567:        [AC_LANG_PROGRAM(
                    568:                [[#define _GNU_SOURCE
                    569:                  #include <dlfcn.h>]],
                    570:                [[Dl_info* info = 0;
                    571:                  dladdr(0, info);]])],
                    572:        [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_DLADDR], [], [have dladdr()])],
                    573:        [AC_MSG_RESULT([no])]
                    574: )
                    575: 
                    576: # check if pthread_condattr_setclock(CLOCK_MONOTONIC) is supported
                    577: saved_LIBS=$LIBS
                    578: LIBS=$PTHREADLIB
                    579: AC_MSG_CHECKING([for pthread_condattr_setclock(CLOCK_MONOTONIC)])
                    580: AC_RUN_IFELSE(
                    581:        [AC_LANG_SOURCE(
                    582:                [[#include <pthread.h>
                    583:                  int main() { pthread_condattr_t attr;
                    584:                        pthread_condattr_init(&attr);
                    585:                        return pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);}]])],
                    586:        [AC_MSG_RESULT([yes]);
                    587:         AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
                    588:                           [pthread_condattr_setclock supports CLOCK_MONOTONIC])],
                    589:        [AC_MSG_RESULT([no])],
                    590:        # Check existence of pthread_condattr_setclock if cross-compiling
                    591:        [AC_MSG_RESULT([unknown]);
                    592:         AC_CHECK_FUNCS(pthread_condattr_setclock,
                    593:                [AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
                    594:                                   [have pthread_condattr_setclock()])]
                    595:        )]
                    596: )
                    597: # check if we actually are able to configure attributes on cond vars
                    598: AC_CHECK_FUNCS(pthread_condattr_init)
                    599: # instead of pthread_condattr_setclock Android has this function
                    600: AC_CHECK_FUNCS(pthread_cond_timedwait_monotonic)
                    601: # check if we can cancel threads
                    602: AC_CHECK_FUNCS(pthread_cancel)
                    603: # check if native rwlocks are available
                    604: AC_CHECK_FUNCS(pthread_rwlock_init)
                    605: # check if pthread spinlocks are available
                    606: AC_CHECK_FUNCS(pthread_spin_init)
                    607: # check if we have POSIX semaphore functions, including timed-wait
                    608: AC_CHECK_FUNCS(sem_timedwait)
                    609: LIBS=$saved_LIBS
                    610: 
                    611: AC_CHECK_FUNC(
                    612:        [gettid],
                    613:        [AC_DEFINE([HAVE_GETTID], [], [have gettid()])],
                    614:        [AC_MSG_CHECKING([for SYS_gettid])
                    615:         AC_COMPILE_IFELSE(
                    616:                [AC_LANG_PROGRAM(
                    617:                        [[#define _GNU_SOURCE
                    618:                          #include <unistd.h>
                    619:                          #include <sys/syscall.h>]],
                    620:                        [[int main() {
                    621:                          return syscall(SYS_gettid);}]])],
                    622:                [AC_MSG_RESULT([yes]);
                    623:                 AC_DEFINE([HAVE_GETTID], [], [have gettid()])
                    624:                 AC_DEFINE([HAVE_SYS_GETTID], [], [have syscall(SYS_gettid)])],
                    625:                [AC_MSG_RESULT([no])]
                    626:        )]
                    627: )
                    628: 
                    629: AC_CHECK_FUNC(
                    630:        [qsort_r],
                    631:        [
                    632:                AC_DEFINE([HAVE_QSORT_R], [], [have qsort_r()])
                    633:                # set -Werror so that we get an error for "argument ... has
                    634:                # incompatible pointer type" warnings
                    635:                save_CFLAGS="$CFLAGS"
                    636:                CFLAGS="$CFLAGS -Werror -Wno-unused-parameter"
                    637:                AC_MSG_CHECKING([for GNU-style qsort_r])
                    638:                AC_COMPILE_IFELSE(
                    639:                        [AC_LANG_PROGRAM(
                    640:                                [[#define _GNU_SOURCE
                    641:                                  #include <stdlib.h>
                    642:                                  int cmp (const void *a, const void *b, void *x) { return 0; }]],
                    643:                                [[int arr[] = { 0, 1 };
                    644:                                  qsort_r(arr, 2, sizeof(int), cmp, arr);]])],
                    645:                [AC_MSG_RESULT([yes]);
                    646:                 AC_DEFINE([HAVE_QSORT_R_GNU], [], [have GNU-style qsort_r()])],
                    647:                [
                    648:                        AC_MSG_RESULT([no]);
                    649:                        AC_MSG_CHECKING([for BSD-style qsort_r])
                    650:                        AC_COMPILE_IFELSE(
                    651:                                [AC_LANG_PROGRAM(
                    652:                                        [[#include <stdlib.h>
                    653:                                          int cmp (void *x, const void *a, const void *b) { return 0; }]],
                    654:                                        [[int arr[] = { 0, 1 };
                    655:                                          qsort_r(arr, 2, sizeof(int), arr, cmp);]])],
                    656:                        [AC_MSG_RESULT([yes]);
                    657:                         AC_DEFINE([HAVE_QSORT_R_BSD], [], [have BSD-style qsort_r()])],
                    658:                        [AC_MSG_RESULT([no]);
                    659:                         AC_MSG_FAILURE([qsort_r has unknown semantics])])
                    660:                ])
                    661:                CFLAGS="$save_CFLAGS"
                    662:        ]
                    663: )
                    664: 
1.1.1.2 ! misho     665: AC_CHECK_FUNCS(prctl mallinfo getpass closefrom getpwnam_r getgrnam_r getpwuid_r chown)
1.1       misho     666: AC_CHECK_FUNCS(fmemopen funopen mmap memrchr setlinebuf strptime dirfd sigwaitinfo explicit_bzero)
                    667: 
                    668: AC_CHECK_FUNC([syslog], [
                    669:        AC_DEFINE([HAVE_SYSLOG], [], [have syslog(3) and friends])
                    670:        syslog=true
                    671: ])
                    672: AM_CONDITIONAL(USE_SYSLOG, [test "x$syslog" = xtrue])
                    673: 
                    674: AC_CHECK_HEADERS(sys/sockio.h sys/syscall.h sys/param.h glob.h net/if_tun.h)
                    675: AC_CHECK_HEADERS(net/pfkeyv2.h netipsec/ipsec.h netinet6/ipsec.h linux/udp.h)
                    676: AC_CHECK_HEADERS([netinet/ip6.h linux/fib_rules.h], [], [],
                    677: [
                    678:        #include <sys/types.h>
                    679:        #include <netinet/in.h>
                    680: ])
                    681: 
                    682: AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [],
                    683: [
                    684:        #include <sys/types.h>
                    685:        #include <sys/socket.h>
                    686: ])
                    687: 
                    688: AC_CHECK_MEMBERS([struct sadb_x_policy.sadb_x_policy_priority], [], [],
                    689: [
                    690:        #include <sys/types.h>
                    691:        #ifdef HAVE_NET_PFKEYV2_H
                    692:        #include <net/pfkeyv2.h>
                    693:        #else
                    694:        #include <stdint.h>
                    695:        #include <linux/pfkeyv2.h>
                    696:        #endif
                    697: ])
                    698: 
                    699: AC_MSG_CHECKING([for in6addr_any])
                    700: AC_COMPILE_IFELSE(
                    701:        [AC_LANG_PROGRAM(
                    702:                [[#include <sys/types.h>
                    703:                  #include <sys/socket.h>
                    704:                  #include <netinet/in.h>]],
                    705:                [[struct in6_addr in6 __attribute__((unused));
                    706:                  in6 = in6addr_any;]])],
                    707:        [AC_MSG_RESULT([yes]);
                    708:         AC_DEFINE([HAVE_IN6ADDR_ANY], [], [have struct in6_addr in6addr_any])],
                    709:        [AC_MSG_RESULT([no])]
                    710: )
                    711: 
                    712: AC_MSG_CHECKING([for in6_pktinfo])
                    713: AC_COMPILE_IFELSE(
                    714:        [AC_LANG_PROGRAM(
                    715:                [[#define _GNU_SOURCE
                    716:                  #include <sys/types.h>
                    717:                  #include <sys/socket.h>
                    718:                  #include <netinet/in.h>]],
                    719:                [[struct in6_pktinfo pi;
                    720:                  if (pi.ipi6_ifindex)
                    721:                  {
                    722:                    return 0;
                    723:                  }]])],
                    724:        [AC_MSG_RESULT([yes]);
                    725:         AC_DEFINE([HAVE_IN6_PKTINFO], [], [have struct in6_pktinfo.ipi6_ifindex])],
                    726:        [AC_MSG_RESULT([no])]
                    727: )
                    728: 
                    729: AC_MSG_CHECKING([for RTM_IFANNOUNCE])
                    730: AC_COMPILE_IFELSE(
                    731:        [AC_LANG_PROGRAM(
                    732:                [[#include <sys/socket.h>
                    733:                  #include <net/if.h>
                    734:                  #include <net/route.h>]],
                    735:                [[return RTM_IFANNOUNCE;]])],
                    736:        [AC_MSG_RESULT([yes]);
                    737:         AC_DEFINE([HAVE_RTM_IFANNOUNCE], [], [have PF_ROUTE RTM_IFANNOUNCE defined])],
                    738:        [AC_MSG_RESULT([no])]
                    739: )
                    740: 
                    741: AC_MSG_CHECKING([for IPSEC_MODE_BEET])
                    742: AC_COMPILE_IFELSE(
                    743:        [AC_LANG_PROGRAM(
                    744:                [[#include <sys/types.h>
                    745:                  #ifdef HAVE_NETIPSEC_IPSEC_H
                    746:                  #include <netipsec/ipsec.h>
                    747:                  #elif defined(HAVE_NETINET6_IPSEC_H)
                    748:                  #include <netinet6/ipsec.h>
                    749:                  #else
                    750:                  #include <stdint.h>
                    751:                  #include <linux/ipsec.h>
                    752:                  #endif]],
                    753:                [[int mode = IPSEC_MODE_BEET;
                    754:                  return mode;]])],
                    755:        [AC_MSG_RESULT([yes]);
                    756:         AC_DEFINE([HAVE_IPSEC_MODE_BEET], [], [have IPSEC_MODE_BEET defined])],
                    757:        [AC_MSG_RESULT([no])]
                    758: )
                    759: 
                    760: AC_MSG_CHECKING([for IPSEC_DIR_FWD])
                    761: AC_COMPILE_IFELSE(
                    762:        [AC_LANG_PROGRAM(
                    763:                [[#include <sys/types.h>
                    764:                  #ifdef HAVE_NETIPSEC_IPSEC_H
                    765:                  #include <netipsec/ipsec.h>
                    766:                  #elif defined(HAVE_NETINET6_IPSEC_H)
                    767:                  #include <netinet6/ipsec.h>
                    768:                  #else
                    769:                  #include <stdint.h>
                    770:                  #include <linux/ipsec.h>
                    771:                  #endif]],
                    772:                [[int dir = IPSEC_DIR_FWD;
                    773:                  return dir;]])],
                    774:        [AC_MSG_RESULT([yes]);
                    775:         AC_DEFINE([HAVE_IPSEC_DIR_FWD], [], [have IPSEC_DIR_FWD defined])],
                    776:        [AC_MSG_RESULT([no])]
                    777: )
                    778: 
                    779: AC_MSG_CHECKING([for RTA_TABLE])
                    780: AC_COMPILE_IFELSE(
                    781:        [AC_LANG_PROGRAM(
                    782:                [[#include <sys/socket.h>
                    783:                  #include <linux/netlink.h>
                    784:                  #include <linux/rtnetlink.h>]],
                    785:                [[int rta_type = RTA_TABLE;
                    786:                  return rta_type;]])],
                    787:        [AC_MSG_RESULT([yes]);
                    788:         AC_DEFINE([HAVE_RTA_TABLE], [], [have netlink RTA_TABLE defined])],
                    789:        [AC_MSG_RESULT([no])]
                    790: )
                    791: 
                    792: AC_MSG_CHECKING([for __int128])
                    793: AC_COMPILE_IFELSE(
                    794:        [AC_LANG_PROGRAM(
                    795:                [[#include <sys/types.h>]],
                    796:                [[__int128 x = 0;
                    797:                  return x;]])],
                    798:        [AC_MSG_RESULT([yes]);
                    799:         AC_DEFINE([HAVE_INT128], [], [have __int128 type support])],
                    800:        [AC_MSG_RESULT([no])]
                    801: )
                    802: 
                    803: AC_MSG_CHECKING([for GCC __sync operations])
                    804: AC_RUN_IFELSE([AC_LANG_SOURCE(
                    805:        [[
                    806:                        int main() {
                    807:                        int ref = 1;
                    808:                        __sync_fetch_and_add (&ref, 1);
                    809:                        __sync_sub_and_fetch (&ref, 1);
                    810:                        __sync_val_compare_and_swap(&ref, 1, 0);
                    811:                        return ref;
                    812:                }
                    813:        ]])],
                    814:        [AC_MSG_RESULT([yes]);
                    815:         AC_DEFINE([HAVE_GCC_SYNC_OPERATIONS], [],
                    816:                   [have GCC __sync_* operations])],
                    817:        [AC_MSG_RESULT([no])],
                    818:        [AC_MSG_RESULT([no])]
                    819: )
                    820: 
                    821: case "$printf_hooks" in
                    822: auto|builtin|glibc|vstr)
                    823:        ;;
                    824: *)
                    825:        AC_MSG_NOTICE([invalid printf hook implementation, defaulting to 'auto'])
                    826:        printf_hooks=auto
                    827:        ;;
                    828: esac
                    829: 
                    830: if test x$printf_hooks = xauto -o x$printf_hooks = xglibc; then
                    831:        # check for the new register_printf_specifier function with len argument,
                    832:        # or the deprecated register_printf_function without
                    833:        AC_CHECK_FUNC(
                    834:                [register_printf_specifier],
                    835:                [AC_DEFINE([HAVE_PRINTF_SPECIFIER], [], [have register_printf_specifier()])],
                    836:                [AC_CHECK_FUNC(
                    837:                        [register_printf_function],
                    838:                        [AC_DEFINE([HAVE_PRINTF_FUNCTION], [], [have register_printf_function()])],
                    839:                        [
                    840:                                AC_MSG_NOTICE([printf(3) does not support custom format specifiers!])
                    841:                                if test x$printf_hooks = xglibc; then
                    842:                                        AC_MSG_ERROR([please select a different printf hook implementation])
                    843:                                else
                    844:                                        # fallback to builtin printf hook implementation
                    845:                                        printf_hooks=builtin
                    846:                                fi
                    847:                        ]
                    848:                )]
                    849:        )
                    850: fi
                    851: 
                    852: AC_MSG_CHECKING([for Windows target])
                    853: AC_COMPILE_IFELSE(
                    854:        [AC_LANG_PROGRAM(
                    855:                [[#include <windows.h>]],
                    856:                [[#ifndef WIN32
                    857:                  # error WIN32 undefined
                    858:                  #endif
                    859:                ]])],
                    860:        [
                    861:                AC_MSG_RESULT([yes])
                    862:                windows=true
                    863: 
                    864:                AC_SUBST(PTHREADLIB, "")
                    865:                # explicitly disable ms-bitfields, as it breaks __attribute__((packed))
                    866:                case "$CFLAGS" in
                    867:                        *ms-bitfields*) ;;
                    868:                        *) CFLAGS="$CFLAGS -mno-ms-bitfields" ;;
                    869:                esac
                    870:        ],
                    871:        [
                    872:                AC_MSG_RESULT([no])
                    873: 
                    874:                # check for clock_gettime() on non-Windows only. Otherwise this
                    875:                # check might find clock_gettime() in libwinpthread, but we don't want
                    876:                # to link against it.
                    877:                saved_LIBS=$LIBS
                    878:                # FreeBSD has clock_gettime in libc, Linux needs librt
                    879:                LIBS=""
                    880:                AC_SEARCH_LIBS(clock_gettime, rt, [RTLIB=$LIBS])
                    881:                AC_CHECK_FUNCS(clock_gettime)
                    882:                AC_SUBST(RTLIB)
                    883:                LIBS=$saved_LIBS
                    884:        ]
                    885: )
                    886: AM_CONDITIONAL(USE_WINDOWS, [test "x$windows" = xtrue])
                    887: 
                    888: AC_MSG_CHECKING([for working __attribute__((packed))])
                    889: AC_COMPILE_IFELSE(
                    890:        [AC_LANG_PROGRAM([], [[
                    891:                struct test { char a; short b; } __attribute__((packed));
                    892:                char x[sizeof(struct test) == sizeof(char) + sizeof(short) ? 1 : -1]
                    893:                        __attribute__((unused));
                    894:                return 0;
                    895:        ]])],
                    896:        [AC_MSG_RESULT([yes])],
                    897:        [AC_MSG_RESULT([no]); AC_MSG_ERROR([__attribute__((packed)) does not work])]
                    898: )
                    899: 
                    900: AC_MSG_CHECKING([clang])
                    901: AC_COMPILE_IFELSE(
                    902:        [AC_LANG_PROGRAM(
                    903:                [], [[
                    904:                 #ifndef __clang__
                    905:                 # error not using LLVM clang
                    906:                 #endif
                    907:                ]])],
                    908:        [
                    909:                AC_MSG_RESULT([yes])
                    910:        ],
                    911:        [
                    912:                AC_MSG_RESULT([no])
                    913:                # GCC, but not MinGW requires -rdynamic for plugins
                    914:                if test x$windows != xtrue; then
                    915:                        PLUGIN_CFLAGS="$PLUGIN_CFLAGS -rdynamic"
                    916:                fi
                    917:        ]
                    918: )
                    919: 
                    920: AC_MSG_CHECKING([x86/x64 target])
                    921: AC_COMPILE_IFELSE(
                    922:        [AC_LANG_PROGRAM(
                    923:                [], [[
                    924:                 #if !defined(__i386__) && !defined(__x86_64__)
                    925:                 # error not on x86/x64
                    926:                 #endif
                    927:                ]])],
                    928:        [
                    929:                x86x64=true
                    930:                AC_MSG_RESULT([yes])
                    931:        ],
                    932:        [AC_MSG_RESULT([no])]
                    933: )
                    934: AM_CONDITIONAL(USE_X86X64, [test "x$x86x64" = xtrue])
                    935: 
                    936: if test x$printf_hooks = xvstr; then
                    937:        AC_CHECK_LIB([vstr],[vstr_init],[LIBS="$LIBS"],[AC_MSG_ERROR([Vstr string library not found])],[])
                    938:        AC_DEFINE([USE_VSTR], [], [use Vstr string library for printf hooks])
                    939: fi
                    940: 
                    941: if test x$printf_hooks = xbuiltin; then
                    942:        AC_DEFINE([USE_BUILTIN_PRINTF], [], [using builtin printf for printf hooks])
                    943: fi
                    944: 
                    945: if test x$gmp = xtrue; then
                    946:        saved_LIBS=$LIBS
                    947:        AC_CHECK_LIB([gmp],[__gmpz_init],[],[AC_MSG_ERROR([GNU Multi Precision library gmp not found])],[])
                    948:        AC_MSG_CHECKING([mpz_powm_sec])
                    949:        if test x$mpz_powm_sec = xyes; then
                    950:                AC_COMPILE_IFELSE(
                    951:                        [AC_LANG_PROGRAM(
                    952:                                [[#include "gmp.h"]],
                    953:                                [[void *x  __attribute__((unused)); x = mpz_powm_sec;]])],
                    954:                        [AC_MSG_RESULT([yes]);
                    955:                         AC_DEFINE([HAVE_MPZ_POWM_SEC], [], [have mpz_powm_sec()])],
                    956:                        [AC_MSG_RESULT([no])]
                    957:                )
                    958:        else
                    959:                AC_MSG_RESULT([disabled])
                    960:        fi
                    961:        LIBS=$saved_LIBS
                    962:        AC_MSG_CHECKING([gmp.h version >= 4.1.4])
                    963:        AC_COMPILE_IFELSE(
                    964:                [AC_LANG_PROGRAM(
                    965:                        [[#include "gmp.h"]],
                    966:                        [[
                    967:                                #if (__GNU_MP_VERSION*100 +  __GNU_MP_VERSION_MINOR*10 + __GNU_MP_VERSION_PATCHLEVEL) < 414
                    968:                                        #error bad gmp
                    969:                                #endif]])],
                    970:                [AC_MSG_RESULT([yes])],
                    971:                [AC_MSG_RESULT([no]); AC_MSG_ERROR([No usable gmp.h found!])]
                    972:        )
                    973: fi
                    974: 
                    975: if test x$ldap = xtrue; then
                    976:        AC_CHECK_LIB([ldap],[ldap_init],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library ldap not found])],[])
                    977:        AC_CHECK_LIB([lber],[ber_free],[LIBS="$LIBS"],[AC_MSG_ERROR([LDAP library lber not found])],[])
                    978:        AC_CHECK_HEADER([ldap.h],,[AC_MSG_ERROR([LDAP header ldap.h not found!])])
                    979: fi
                    980: 
                    981: if test x$curl = xtrue; then
                    982:        AC_CHECK_LIB([curl],[curl_global_init],[LIBS="$LIBS"],[AC_MSG_ERROR([CURL library curl not found])],[])
                    983:        AC_CHECK_HEADER([curl/curl.h],,[AC_MSG_ERROR([CURL header curl/curl.h not found!])])
                    984: fi
                    985: 
                    986: if test x$unbound = xtrue; then
                    987:        AC_CHECK_LIB([ldns],[ldns_rr_get_type],[LIBS="$LIBS"],[AC_MSG_ERROR([UNBOUND library ldns not found])],[])
                    988:        AC_CHECK_HEADER([ldns/ldns.h],,[AC_MSG_ERROR([UNBOUND header ldns/ldns.h not found!])])
                    989:        AC_CHECK_LIB([unbound],[ub_ctx_create],[LIBS="$LIBS"],[AC_MSG_ERROR([UNBOUND library libunbound not found])],[])
                    990:        AC_CHECK_HEADER([unbound.h],,[AC_MSG_ERROR([UNBOUND header unbound.h not found!])])
                    991: fi
                    992: 
                    993: if test x$soup = xtrue; then
                    994:        PKG_CHECK_MODULES(soup, [libsoup-2.4])
                    995:        AC_SUBST(soup_CFLAGS)
                    996:        AC_SUBST(soup_LIBS)
                    997: fi
                    998: 
                    999: if test x$xml = xtrue; then
                   1000:        PKG_CHECK_MODULES(xml, [libxml-2.0])
                   1001:        AC_SUBST(xml_CFLAGS)
                   1002:        AC_SUBST(xml_LIBS)
                   1003: fi
                   1004: 
                   1005: if test x$systemd = xtrue; then
                   1006:        AC_MSG_CHECKING([for systemd system unit directory])
                   1007:        if test -n "$systemdsystemunitdir" -a "x$systemdsystemunitdir" != xno; then
                   1008:                AC_MSG_RESULT([$systemdsystemunitdir])
                   1009:        else
                   1010:                AC_MSG_ERROR([not found (try --with-systemdsystemunitdir)])
                   1011:        fi
                   1012: 
                   1013:        PKG_CHECK_MODULES(systemd, [libsystemd >= 209],
                   1014:                [AC_SUBST(systemd_CFLAGS)
                   1015:                 AC_SUBST(systemd_LIBS)],
                   1016:                [PKG_CHECK_MODULES(systemd_daemon, [libsystemd-daemon])
                   1017:                 AC_SUBST(systemd_daemon_CFLAGS)
                   1018:                 AC_SUBST(systemd_daemon_LIBS)
                   1019:                 PKG_CHECK_MODULES(systemd_journal, [libsystemd-journal])
                   1020:                 AC_SUBST(systemd_journal_CFLAGS)
                   1021:                 AC_SUBST(systemd_journal_LIBS)]
                   1022:        )
                   1023:        saved_LIBS=$LIBS
                   1024:        LIBS="$systemd_LIBS $systemd_daemon_LIBS"
                   1025:        AC_CHECK_FUNCS(sd_listen_fds_with_names)
                   1026:        LIBS=$saved_LIBS
                   1027: fi
                   1028: 
                   1029: if test x$tss_trousers = xtrue; then
                   1030:        AC_CHECK_LIB([tspi],[Tspi_Context_Create],[LIBS="$LIBS"],[AC_MSG_ERROR([TrouSerS library libtspi not found])],[])
                   1031:        AC_CHECK_HEADER([trousers/tss.h],,[AC_MSG_ERROR([TrouSerS header trousers/tss.h not found!])])
                   1032:        AC_DEFINE([TSS_TROUSERS], [], [use TrouSerS library libtspi])
                   1033: fi
                   1034: 
                   1035: if test x$tss_tss2 = xtrue; then
                   1036:        PKG_CHECK_MODULES(tss2_sys, [tss2-sys],
                   1037:                [tss2_sys=true; AC_DEFINE([TSS2_SYS], [], [use TSS2 v2 System API])],
                   1038:                [tss2_sys=false])
                   1039:        PKG_CHECK_MODULES(tss2_esys, [tss2-esys],
                   1040:                [tss2_esys=true; AC_DEFINE([TSS2_ESYS], [], [use TSS2 v2 Extended System API])],
                   1041:                [tss2_esys=false])
                   1042:        if test x$tss2_sys = xtrue; then
                   1043:                AC_DEFINE([TSS_TSS2_V2], [], [use TSS 2.0 v2 libraries])
                   1044:                AC_SUBST(tss2_CFLAGS, "$tss2_sys_CFLAGS")
                   1045:                AC_SUBST(tss2_LIBS, "$tss2_sys_LIBS")
                   1046:        else
                   1047:                PKG_CHECK_MODULES(tss2_tabrmd, [tcti-tabrmd],
                   1048:                        [tss2_tabrmd=true; AC_DEFINE([TSS2_TCTI_TABRMD], [], [use TCTI Access Broker and Resource Manager])],
                   1049:                        [tss2_tabrmd=false])
                   1050:                PKG_CHECK_MODULES(tss2_socket, [tcti-socket],
                   1051:                        [tss2_socket=true; AC_DEFINE([TSS2_TCTI_SOCKET], [], [use TCTI Sockets])],
                   1052:                        [tss2_socket=false])
                   1053:                if test x$tss2_tabrmd = xtrue -o x$tss2_socket = xtrue; then
                   1054:                        AC_DEFINE([TSS_TSS2_V1], [], [use TSS 2.0 v1 libraries])
                   1055:                        AC_SUBST(tss2_CFLAGS, "$tss2_tabrmd_CFLAGS $tss2_socket_CFLAGS")
                   1056:                        AC_SUBST(tss2_LIBS, "$tss2_tabrmd_LIBS $tss2_socket_LIBS")
                   1057:                else
                   1058:                        AC_MSG_FAILURE([no TSS2 TCTI or SAPI libraries detected])
                   1059:                fi
                   1060:        fi
                   1061: fi
                   1062: 
1.1.1.2 ! misho    1063: if test x$imc_swima = xtrue -o x$imv_swima = xtrue; then
1.1       misho    1064:        PKG_CHECK_MODULES(json, [json-c], [],
                   1065:                [PKG_CHECK_MODULES(json, [json])])
                   1066:        AC_SUBST(json_CFLAGS)
                   1067:        AC_SUBST(json_LIBS)
                   1068: fi
                   1069: 
                   1070: if test x$fast = xtrue; then
                   1071:        AC_CHECK_LIB([neo_utl],[hdf_init],[LIBS="$LIBS"],[AC_MSG_ERROR([ClearSilver library neo_utl not found!])],[])
                   1072:        AC_MSG_CHECKING([for -lneo_cgi and dependencies])
                   1073:        saved_CFLAGS=$CFLAGS
                   1074:        saved_LIBS=$LIBS
                   1075:        LIBS="-lneo_cgi -lneo_cs -lneo_utl"
                   1076:        CFLAGS="-I/usr/include/ClearSilver"
                   1077:        AC_LINK_IFELSE(
                   1078:                [AC_LANG_PROGRAM(
                   1079:                        [[#include <cgi/cgi.h>]],
                   1080:                        [[NEOERR *err = cgi_display(NULL, NULL);]])],
                   1081:                [AC_MSG_RESULT([yes])],
                   1082:                [LIBS="$LIBS -lz";
                   1083:                 AC_LINK_IFELSE(
                   1084:                        [AC_LANG_PROGRAM(
                   1085:                                [[#include <cgi/cgi.h>]],
                   1086:                                [[NEOERR *err = cgi_display(NULL, NULL);]])],
                   1087:                        [AC_MSG_RESULT([yes, zlib required])],
                   1088:                        [AC_MSG_ERROR([not found])]
                   1089:                 )]
                   1090:        )
                   1091:        clearsilver_LIBS="$LIBS"
                   1092:        AC_SUBST(clearsilver_LIBS)
                   1093:        LIBS=$saved_LIBS
                   1094:        CFLAGS=$saved_CFLAGS
                   1095: 
                   1096:        AC_CHECK_LIB([fcgi],[FCGX_Init],[LIBS="$LIBS"],[AC_MSG_ERROR([FastCGI library fcgi not found!])],[])
                   1097:        AC_CHECK_HEADER([fcgiapp.h],,[AC_MSG_ERROR([FastCGI header file fcgiapp.h not found!])])
                   1098: fi
                   1099: 
                   1100: if test x$mysql = xtrue; then
                   1101:        if test "x$windows" = xtrue; then
                   1102:                AC_CHECK_HEADER([mysql.h],,[AC_MSG_ERROR([MySQL header file mysql.h not found!])])
                   1103:                AC_CHECK_LIB([mysql],[mysql_database_init],[LIBS="$LIBS"],[AC_MSG_ERROR([MySQL library not found!])],[])
                   1104:                AC_SUBST(MYSQLLIB, -lmysql)
                   1105:        else
                   1106:                AC_PATH_PROG([MYSQLCONFIG], [mysql_config], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1107:                if test x$MYSQLCONFIG = x; then
                   1108:                        AC_MSG_ERROR([mysql_config not found!])
                   1109:                fi
                   1110:                AC_SUBST(MYSQLLIB, `$MYSQLCONFIG --libs_r`)
                   1111:                AC_SUBST(MYSQLCFLAG, `$MYSQLCONFIG --cflags`)
                   1112:        fi
                   1113: fi
                   1114: 
                   1115: if test x$sqlite = xtrue; then
                   1116:        AC_CHECK_LIB([sqlite3],[sqlite3_open],[LIBS="$LIBS"],[AC_MSG_ERROR([SQLite library sqlite3 not found])],[])
                   1117:        AC_CHECK_HEADER([sqlite3.h],,[AC_MSG_ERROR([SQLite header sqlite3.h not found!])])
                   1118:        AC_MSG_CHECKING([sqlite3_prepare_v2])
                   1119:        AC_COMPILE_IFELSE(
                   1120:                [AC_LANG_PROGRAM(
                   1121:                        [[#include <sqlite3.h>]],
                   1122:                        [[void *test = sqlite3_prepare_v2;]])],
                   1123:                [AC_MSG_RESULT([yes]);
                   1124:                 AC_DEFINE([HAVE_SQLITE3_PREPARE_V2], [], [have sqlite3_prepare_v2()])],
                   1125:                [AC_MSG_RESULT([no])]
                   1126:        )
                   1127:        AC_MSG_CHECKING([sqlite3.h version >= 3.3.1])
                   1128:        AC_COMPILE_IFELSE(
                   1129:                [AC_LANG_PROGRAM(
                   1130:                        [[#include <sqlite3.h>]],
                   1131:                        [[
                   1132:                                #if SQLITE_VERSION_NUMBER < 3003001
                   1133:                                        #error bad sqlite
                   1134:                                #endif]])],
                   1135:                [AC_MSG_RESULT([yes])],
                   1136:                [AC_MSG_RESULT([no]); AC_MSG_ERROR([SQLite version >= 3.3.1 required!])]
                   1137:        )
                   1138: fi
                   1139: 
                   1140: if test x$openssl = xtrue; then
                   1141:        if test "x$windows" = xtrue; then
                   1142:                openssl_lib=eay32
                   1143:                AC_CHECK_LIB([$openssl_lib],[EVP_CIPHER_CTX_new],[LIBS="$LIBS"],
                   1144:                        [AC_MSG_RESULT([no]);openssl_lib=""],[$DLLIB])
                   1145:        fi
                   1146:        if test -z "$openssl_lib"; then
                   1147:                openssl_lib=crypto
                   1148:                AC_CHECK_LIB([$openssl_lib],[EVP_CIPHER_CTX_new],[LIBS="$LIBS"],
                   1149:                        [AC_MSG_ERROR([OpenSSL lib$openssl_lib not found])],[$DLLIB])
                   1150:        fi
                   1151:        AC_SUBST(OPENSSL_LIB, [-l$openssl_lib])
                   1152:        AC_CHECK_HEADER([openssl/evp.h],,[AC_MSG_ERROR([OpenSSL header openssl/evp.h not found!])])
                   1153: fi
                   1154: 
                   1155: if test x$wolfssl = xtrue; then
                   1156:        PKG_CHECK_MODULES(wolfssl, [wolfssl])
                   1157:        AC_SUBST(wolfssl_CFLAGS)
                   1158:        AC_SUBST(wolfssl_LIBS)
                   1159: fi
                   1160: 
                   1161: if test x$gcrypt = xtrue; then
                   1162:        AC_CHECK_LIB([gcrypt],[gcry_control],[LIBS="$LIBS"],[AC_MSG_ERROR([gcrypt library not found])],[-lgpg-error])
                   1163:        AC_CHECK_HEADER([gcrypt.h],,[AC_MSG_ERROR([gcrypt header gcrypt.h not found!])])
                   1164:        AC_MSG_CHECKING([gcrypt CAMELLIA cipher])
                   1165:        AC_COMPILE_IFELSE(
                   1166:                [AC_LANG_PROGRAM(
                   1167:                        [[#include <gcrypt.h>]],
                   1168:                        [[enum gcry_cipher_algos alg = GCRY_CIPHER_CAMELLIA128;]])],
                   1169:                [AC_MSG_RESULT([yes]);
                   1170:                 AC_DEFINE([HAVE_GCRY_CIPHER_CAMELLIA], [], [have GCRY_CIPHER_CAMELLIA128])],
                   1171:                [AC_MSG_RESULT([no])]
                   1172:        )
                   1173: fi
                   1174: 
                   1175: if test x$botan = xtrue; then
1.1.1.2 ! misho    1176:        PKG_CHECK_MODULES(botan, [botan-3], [],
        !          1177:                [PKG_CHECK_MODULES(botan, [botan-2])])
1.1       misho    1178:        AC_SUBST(botan_CFLAGS)
                   1179:        AC_SUBST(botan_LIBS)
1.1.1.2 ! misho    1180:        saved_LIBS=$LIBS
        !          1181:        LIBS="$botan_LIBS"
        !          1182:        AC_CHECK_FUNCS(botan_rng_init_custom)
        !          1183:        LIBS=$saved_LIBS
1.1       misho    1184: fi
                   1185: 
                   1186: if test x$uci = xtrue; then
                   1187:        AC_CHECK_LIB([uci],[uci_alloc_context],[LIBS="$LIBS"],[AC_MSG_ERROR([UCI library libuci not found])],[])
                   1188:        AC_CHECK_HEADER([uci.h],,[AC_MSG_ERROR([UCI header uci.h not found!])])
                   1189: fi
                   1190: 
                   1191: if test x$android_dns = xtrue; then
                   1192:        AC_CHECK_LIB([cutils],[property_get],[LIBS="$LIBS"],[AC_MSG_ERROR([Android library libcutils not found])],[])
                   1193:        AC_CHECK_HEADER([cutils/properties.h],,[AC_MSG_ERROR([Android header cutils/properties.h not found!])])
                   1194:        # we have to force the use of libdl here because the autodetection
                   1195:        # above does not work correctly when cross-compiling for android.
                   1196:        DLLIB="-ldl"
                   1197:        AC_SUBST(DLLIB)
                   1198: fi
                   1199: 
                   1200: if test x$eap_sim_pcsc = xtrue; then
                   1201:        PKG_CHECK_MODULES(pcsclite, [libpcsclite])
                   1202:        AC_SUBST(pcsclite_CFLAGS)
                   1203:        AC_SUBST(pcsclite_LIBS)
                   1204: fi
                   1205: 
                   1206: if test x$nm = xtrue; then
                   1207:        PKG_CHECK_MODULES(nm, [gthread-2.0 libnm])
                   1208:        AC_SUBST(nm_CFLAGS)
                   1209:        AC_SUBST(nm_LIBS)
                   1210: 
                   1211:        AC_MSG_CHECKING([for D-Bus policy directory])
                   1212:        if test -n "$dbuspolicydir" -a "x$dbuspolicydir" != xno; then
                   1213:                AC_MSG_RESULT([$dbuspolicydir])
                   1214:        else
                   1215:                AC_MSG_ERROR([not found (try --with-dbuspolicydir)])
                   1216:        fi
                   1217: fi
                   1218: 
                   1219: if test x$xauth_pam = xtrue; then
                   1220:        AC_CHECK_LIB([pam],[pam_start],[LIBS="$LIBS"],[AC_MSG_ERROR([PAM library not found])],[])
                   1221:        AC_CHECK_HEADER([security/pam_appl.h],,[AC_MSG_ERROR([PAM header security/pam_appl.h not found!])])
                   1222: fi
                   1223: 
                   1224: if test x$connmark = xtrue -o x$forecast = xtrue; then
                   1225:        PKG_CHECK_MODULES(libiptc, [libip4tc])
                   1226:        AC_SUBST(libiptc_CFLAGS)
                   1227:        AC_SUBST(libiptc_LIBS)
                   1228: fi
                   1229: 
                   1230: if test x$capabilities = xnative; then
                   1231:        AC_MSG_NOTICE([Usage of the native Linux capabilities interface is deprecated, use libcap instead])
                   1232:        # Linux requires the following for capset(), Android does not have it,
                   1233:        # but defines capset() in unistd.h instead.
                   1234:        AC_CHECK_HEADERS([sys/capability.h])
                   1235:        AC_CHECK_FUNC(capset,,[AC_MSG_ERROR([capset() not found!])])
                   1236:        AC_DEFINE([CAPABILITIES_NATIVE], [], [have native linux capset()])
                   1237: fi
                   1238: 
                   1239: if test x$capabilities = xlibcap; then
                   1240:        AC_CHECK_LIB([cap],[cap_init],[LIBS="$LIBS"],[AC_MSG_ERROR([libcap library not found])],[])
                   1241:        AC_CHECK_HEADER([sys/capability.h],
                   1242:                [AC_DEFINE([HAVE_SYS_CAPABILITY_H], [], [have sys/capability.h])],
                   1243:                [AC_MSG_ERROR([libcap header sys/capability.h not found!])])
                   1244:        AC_DEFINE([CAPABILITIES_LIBCAP], [], [have libpcap library])
                   1245: fi
                   1246: 
                   1247: if test x$integrity_test = xtrue; then
                   1248:        AC_MSG_CHECKING([for dladdr()])
                   1249:        AC_COMPILE_IFELSE(
                   1250:                [AC_LANG_PROGRAM(
                   1251:                        [[#define _GNU_SOURCE
                   1252:                          #include <dlfcn.h>]],
                   1253:                        [[Dl_info info; dladdr(main, &info);]])],
                   1254:                [AC_MSG_RESULT([yes])],
                   1255:                [AC_MSG_RESULT([no]);
                   1256:                 AC_MSG_ERROR([dladdr() not supported, required by integrity-test!])]
                   1257:        )
                   1258:        AC_MSG_CHECKING([for dl_iterate_phdr()])
                   1259:        AC_COMPILE_IFELSE(
                   1260:                [AC_LANG_PROGRAM(
                   1261:                        [[#define _GNU_SOURCE
                   1262:                          #include <link.h>]],
                   1263:                        [[dl_iterate_phdr((void*)0, (void*)0);]])],
                   1264:                [AC_MSG_RESULT([yes])],
                   1265:                [AC_MSG_RESULT([no]);
                   1266:                 AC_MSG_ERROR([dl_iterate_phdr() not supported, required by integrity-test!])]
                   1267:        )
                   1268: fi
                   1269: 
                   1270: if test x$bfd_backtraces = xtrue; then
                   1271:        AC_CHECK_LIB([bfd],[bfd_init],[LIBS="$LIBS"],[AC_MSG_ERROR([binutils libbfd not found!])],[])
                   1272:        AC_CHECK_HEADER([bfd.h],[AC_DEFINE([HAVE_BFD_H],,[have binutils bfd.h])],
                   1273:                [AC_MSG_ERROR([binutils bfd.h header not found!])])
                   1274:        BFDLIB="-lbfd"
                   1275:        AC_SUBST(BFDLIB)
                   1276: fi
                   1277: 
                   1278: if test x$unwind_backtraces = xtrue; then
                   1279:        AC_CHECK_LIB([unwind],[unw_backtrace],[LIBS="$LIBS"],[AC_MSG_ERROR([libunwind not found!])],[])
                   1280:        AC_CHECK_HEADER([libunwind.h],[AC_DEFINE([HAVE_LIBUNWIND_H],,[have libunwind.h])],
                   1281:                [AC_MSG_ERROR([libunwind.h header not found!])])
                   1282:        UNWINDLIB="-lunwind"
                   1283:        AC_SUBST(UNWINDLIB)
                   1284: fi
                   1285: 
                   1286: AM_CONDITIONAL(USE_DEV_HEADERS, [test "x$dev_headers" != xno])
                   1287: if test x$dev_headers = xyes; then
                   1288:        dev_headers="$includedir/strongswan"
                   1289: fi
                   1290: AC_SUBST(dev_headers)
                   1291: 
                   1292: CFLAGS="$CFLAGS -include `pwd`/config.h"
                   1293: 
                   1294: if test x$tkm = xtrue; then
                   1295:        AC_PATH_PROG([GPRBUILD], [gprbuild], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1296:        if test x$GPRBUILD = x; then
                   1297:                AC_MSG_ERROR([gprbuild not found])
                   1298:        fi
                   1299: fi
                   1300: 
                   1301: if test x$coverage = xtrue; then
                   1302:        AC_PATH_PROG([LCOV], [lcov], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1303:        if test x$LCOV = x; then
                   1304:                AC_MSG_ERROR([lcov not found])
                   1305:        fi
                   1306:        AC_PATH_PROG([GENHTML], [genhtml], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1307:        if test x$GENHTML = x; then
                   1308:                AC_MSG_ERROR([genhtml not found])
                   1309:        fi
                   1310: 
                   1311:        COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
                   1312:        COVERAGE_LDFLAGS="-fprofile-arcs"
                   1313:        AC_SUBST(COVERAGE_CFLAGS)
                   1314:        AC_SUBST(COVERAGE_LDFLAGS)
                   1315:        PLUGIN_CFLAGS="$PLUGIN_CFLAGS $COVERAGE_CFLAGS"
                   1316: 
                   1317:        AC_MSG_NOTICE([coverage enabled, adding "-g -O0" to CFLAGS])
                   1318:        CFLAGS="${CFLAGS} -g -O0"
                   1319: fi
                   1320: 
                   1321: if test x$fuzzing = xtrue; then
                   1322:        case "$libfuzzer" in
                   1323:        "")
                   1324:                AC_MSG_NOTICE([fuzz targets enabled without libFuzzer, using local driver])
                   1325:                CFLAGS="${CFLAGS} -fsanitize=address"
                   1326:                libfuzzer="libFuzzerLocal.a"
                   1327:                ;;
                   1328:        "-fsanitize=fuzzer")
                   1329:                libfuzzer=""
                   1330:                FUZZING_CFLAGS="-fsanitize=fuzzer"
                   1331:                AC_SUBST(FUZZING_CFLAGS)
                   1332:                ;;
                   1333:        *)
                   1334:                # required for libFuzzer
                   1335:                FUZZING_LDFLAGS="-stdlib=libc++ -lstdc++"
                   1336:                if test "$SANITIZER" = "coverage"; then
                   1337:                        FUZZING_LDFLAGS="$FUZZING_LDFLAGS -lm"
                   1338:                fi
                   1339:                AC_SUBST(FUZZING_LDFLAGS)
                   1340:                ;;
                   1341:        esac
                   1342: fi
                   1343: 
                   1344: if test x$ruby_gems = xtrue; then
                   1345:        AC_PATH_PROG([GEM], [gem], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1346:        if test x$GEM = x; then
                   1347:                AC_MSG_ERROR(RubyGems package manager not found)
                   1348:        fi
                   1349:        if test "x$rubygemdir" = "xgem environment gemdir"; then
                   1350:                rubygemdir=$($GEM environment gemdir)
                   1351:        fi
                   1352:        AC_SUBST(RUBYGEMDIR, "$rubygemdir")
                   1353: fi
                   1354: AM_CONDITIONAL(RUBY_GEMS_INSTALL, [test "x$ruby_gems_install" = xtrue])
                   1355: 
                   1356: if test x$python_eggs = xtrue; then
                   1357:        PYTHON_PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | $SED 's/dr/.dev/'`
                   1358:        AC_SUBST([PYTHON_PACKAGE_VERSION])
                   1359:        if test x$python_eggs_install = xtrue; then
                   1360:                AC_PATH_PROG([EASY_INSTALL], [easy_install], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1361:                if test x$EASY_INSTALL = x; then
                   1362:                        AC_MSG_ERROR(Python easy_install not found)
                   1363:                fi
                   1364:        fi
                   1365:        if test "x$pythoneggdir" = "xmain site-packages directory"; then
                   1366:                AC_SUBST(PYTHONEGGINSTALLDIR, "")
                   1367:        else
                   1368:                AC_SUBST(PYTHONEGGINSTALLDIR, "--install-dir $pythoneggdir")
                   1369:        fi
                   1370:        AC_PATH_PROG([TOX], [tox], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1371:        AC_PATH_PROG([PY_TEST], [py.test], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
                   1372: fi
                   1373: AM_CONDITIONAL(PYTHON_EGGS_INSTALL, [test "x$python_eggs_install" = xtrue])
                   1374: 
                   1375: AM_CONDITIONAL(PERL_CPAN_INSTALL, [test "x$perl_cpan_install" = xtrue])
                   1376: 
                   1377: AC_CACHE_CHECK(
                   1378:        [if plugin constructors should be resolved statically],
                   1379:        [ss_cv_static_plugin_constructors],
                   1380:        [if test x$monolithic = xtrue -a x$enable_static = xyes; then
                   1381:                ss_cv_static_plugin_constructors=yes
                   1382:         else
                   1383:                ss_cv_static_plugin_constructors="no (enabled for static, monolithic builds)"
                   1384:         fi]
                   1385: )
                   1386: if test "x$ss_cv_static_plugin_constructors" = xyes; then
                   1387:        static_plugin_constructors=true
                   1388:        if test "$PYTHON" = ":"; then
                   1389:                AC_MSG_FAILURE([Python is required to resolve plugin constructors statically])
                   1390:        fi
                   1391: fi
                   1392: 
1.1.1.2 ! misho    1393: AC_MSG_CHECKING([version from Git repository])
        !          1394: AC_SUBST(GIT_VERSION, [$($srcdir/scripts/git-version "$srcdir")])
        !          1395: case "$GIT_VERSION" in
        !          1396:        "$PACKAGE_VERSION"*)
        !          1397:                AC_MSG_RESULT([$GIT_VERSION])
        !          1398:                ;;
        !          1399:        UNKNOWN)
        !          1400:                AC_MSG_RESULT([$GIT_VERSION (could be due to insufficient clone depth)])
        !          1401:                ;;
        !          1402:        *)
        !          1403:                AC_MSG_ERROR([$PACKAGE_VERSION is not a prefix of $GIT_VERSION, tag missing?])
        !          1404:                ;;
        !          1405: esac
        !          1406: 
        !          1407: if test x$git_version = xtrue -a "$GIT_VERSION" != "UNKNOWN"; then
        !          1408:        AC_DEFINE_UNQUOTED(VERSION, ["$GIT_VERSION"])
        !          1409: fi
        !          1410: 
1.1       misho    1411: # ===============================================
                   1412: #  collect plugin list for strongSwan components
                   1413: # ===============================================
                   1414: 
                   1415: m4_include(m4/macros/add-plugin.m4)
                   1416: 
                   1417: # plugin lists for all components
                   1418: charon_plugins=
                   1419: starter_plugins=
                   1420: pool_plugins=
                   1421: attest_plugins=
                   1422: scepclient_plugins=
                   1423: pki_plugins=
                   1424: scripts_plugins=
                   1425: fuzz_plugins=
                   1426: manager_plugins=
                   1427: medsrv_plugins=
                   1428: nm_plugins=
                   1429: cmd_plugins=
                   1430: aikgen_plugins=
                   1431: 
                   1432: # location specific lists for checksumming,
                   1433: # for src/libcharon, src/libstrongswan, src/libtnccs and src/libtpmtss
                   1434: c_plugins=
                   1435: s_plugins=
                   1436: t_plugins=
                   1437: p_plugins=
                   1438: 
                   1439: ADD_PLUGIN([test-vectors],         [s charon scepclient pki])
                   1440: ADD_PLUGIN([unbound],              [s charon scripts])
                   1441: ADD_PLUGIN([ldap],                 [s charon scepclient scripts nm cmd])
                   1442: ADD_PLUGIN([pkcs11],               [s charon pki nm cmd])
                   1443: ADD_PLUGIN([tpm],                  [p charon pki nm cmd])
                   1444: ADD_PLUGIN([aesni],                [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1445: ADD_PLUGIN([aes],                  [s charon scepclient pki scripts nm cmd])
                   1446: ADD_PLUGIN([des],                  [s charon scepclient pki scripts nm cmd])
                   1447: ADD_PLUGIN([blowfish],             [s charon scepclient pki scripts nm cmd])
                   1448: ADD_PLUGIN([rc2],                  [s charon scepclient pki scripts nm cmd])
                   1449: ADD_PLUGIN([sha2],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen fuzz])
                   1450: ADD_PLUGIN([sha3],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen fuzz])
                   1451: ADD_PLUGIN([sha1],                 [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1452: ADD_PLUGIN([md4],                  [s charon scepclient pki nm cmd])
                   1453: ADD_PLUGIN([md5],                  [s charon scepclient pki scripts attest nm cmd aikgen])
                   1454: ADD_PLUGIN([mgf1],                 [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1455: ADD_PLUGIN([rdrand],               [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1456: ADD_PLUGIN([random],               [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1457: ADD_PLUGIN([nonce],                [s charon nm cmd aikgen])
                   1458: ADD_PLUGIN([x509],                 [s charon scepclient pki scripts attest nm cmd aikgen fuzz])
                   1459: ADD_PLUGIN([revocation],           [s charon pki nm cmd])
                   1460: ADD_PLUGIN([constraints],          [s charon nm cmd])
                   1461: ADD_PLUGIN([acert],                [s charon])
                   1462: ADD_PLUGIN([pubkey],               [s charon pki cmd aikgen])
                   1463: ADD_PLUGIN([pkcs1],                [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1464: ADD_PLUGIN([pkcs7],                [s charon scepclient pki scripts nm cmd])
                   1465: ADD_PLUGIN([pkcs8],                [s charon scepclient pki scripts manager medsrv attest nm cmd])
                   1466: ADD_PLUGIN([pkcs12],               [s charon scepclient pki scripts cmd])
                   1467: ADD_PLUGIN([pgp],                  [s charon])
                   1468: ADD_PLUGIN([dnskey],               [s charon pki])
                   1469: ADD_PLUGIN([sshkey],               [s charon pki nm cmd])
                   1470: ADD_PLUGIN([dnscert],              [c charon])
                   1471: ADD_PLUGIN([ipseckey],             [c charon])
                   1472: ADD_PLUGIN([pem],                  [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1473: ADD_PLUGIN([padlock],              [s charon])
                   1474: ADD_PLUGIN([openssl],              [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1475: ADD_PLUGIN([wolfssl],              [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1476: ADD_PLUGIN([gcrypt],               [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1477: ADD_PLUGIN([botan],                [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
                   1478: ADD_PLUGIN([af-alg],               [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
                   1479: ADD_PLUGIN([fips-prf],             [s charon nm cmd])
                   1480: ADD_PLUGIN([gmp],                  [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen fuzz])
                   1481: ADD_PLUGIN([curve25519],           [s charon pki scripts nm cmd])
                   1482: ADD_PLUGIN([agent],                [s charon nm cmd])
                   1483: ADD_PLUGIN([keychain],             [s charon cmd])
                   1484: ADD_PLUGIN([chapoly],              [s charon scripts nm cmd])
                   1485: ADD_PLUGIN([xcbc],                 [s charon nm cmd])
                   1486: ADD_PLUGIN([cmac],                 [s charon nm cmd])
                   1487: ADD_PLUGIN([hmac],                 [s charon pki scripts nm cmd])
                   1488: ADD_PLUGIN([ctr],                  [s charon scripts nm cmd])
                   1489: ADD_PLUGIN([ccm],                  [s charon scripts nm cmd])
                   1490: ADD_PLUGIN([gcm],                  [s charon scripts nm cmd])
                   1491: ADD_PLUGIN([ntru],                 [s charon scripts nm cmd])
                   1492: ADD_PLUGIN([drbg],                 [s charon pki scripts nm cmd])
                   1493: ADD_PLUGIN([newhope],              [s charon scripts nm cmd])
                   1494: ADD_PLUGIN([bliss],                [s charon pki scripts nm cmd])
                   1495: ADD_PLUGIN([curl],                 [s charon scepclient pki scripts nm cmd])
                   1496: ADD_PLUGIN([files],                [s charon scepclient pki scripts nm cmd])
                   1497: ADD_PLUGIN([winhttp],              [s charon pki scripts])
                   1498: ADD_PLUGIN([soup],                 [s charon pki scripts nm cmd])
                   1499: ADD_PLUGIN([mysql],                [s charon pool manager medsrv attest])
                   1500: ADD_PLUGIN([sqlite],               [s charon pool manager medsrv attest])
                   1501: ADD_PLUGIN([attr],                 [c charon])
                   1502: ADD_PLUGIN([attr-sql],             [c charon])
                   1503: ADD_PLUGIN([load-tester],          [c charon])
                   1504: ADD_PLUGIN([kernel-libipsec],      [c charon cmd])
                   1505: ADD_PLUGIN([kernel-wfp],           [c charon])
                   1506: ADD_PLUGIN([kernel-iph],           [c charon])
                   1507: ADD_PLUGIN([kernel-pfkey],         [c charon starter nm cmd])
                   1508: ADD_PLUGIN([kernel-pfroute],       [c charon starter nm cmd])
                   1509: ADD_PLUGIN([kernel-netlink],       [c charon starter nm cmd])
                   1510: ADD_PLUGIN([resolve],              [c charon cmd])
                   1511: ADD_PLUGIN([save-keys],            [c])
                   1512: ADD_PLUGIN([socket-default],       [c charon nm cmd])
                   1513: ADD_PLUGIN([socket-dynamic],       [c charon cmd])
                   1514: ADD_PLUGIN([socket-win],           [c charon])
                   1515: ADD_PLUGIN([bypass-lan],           [c charon nm cmd])
                   1516: ADD_PLUGIN([connmark],             [c charon])
                   1517: ADD_PLUGIN([forecast],             [c charon])
                   1518: ADD_PLUGIN([farp],                 [c charon])
                   1519: ADD_PLUGIN([stroke],               [c charon])
                   1520: ADD_PLUGIN([vici],                 [c charon])
                   1521: ADD_PLUGIN([smp],                  [c charon])
                   1522: ADD_PLUGIN([sql],                  [c charon])
                   1523: ADD_PLUGIN([updown],               [c charon])
                   1524: ADD_PLUGIN([eap-identity],         [c charon nm cmd])
                   1525: ADD_PLUGIN([eap-sim],              [c charon])
                   1526: ADD_PLUGIN([eap-sim-file],         [c charon])
                   1527: ADD_PLUGIN([eap-sim-pcsc],         [c charon])
                   1528: ADD_PLUGIN([eap-aka],              [c charon])
                   1529: ADD_PLUGIN([eap-aka-3gpp],         [c charon])
                   1530: ADD_PLUGIN([eap-aka-3gpp2],        [c charon])
                   1531: ADD_PLUGIN([eap-simaka-sql],       [c charon])
                   1532: ADD_PLUGIN([eap-simaka-pseudonym], [c charon])
                   1533: ADD_PLUGIN([eap-simaka-reauth],    [c charon])
                   1534: ADD_PLUGIN([eap-md5],              [c charon nm cmd])
                   1535: ADD_PLUGIN([eap-gtc],              [c charon nm cmd])
                   1536: ADD_PLUGIN([eap-mschapv2],         [c charon nm cmd])
                   1537: ADD_PLUGIN([eap-dynamic],          [c charon])
                   1538: ADD_PLUGIN([eap-radius],           [c charon])
                   1539: ADD_PLUGIN([eap-tls],              [c charon nm cmd])
                   1540: ADD_PLUGIN([eap-ttls],             [c charon nm cmd])
                   1541: ADD_PLUGIN([eap-peap],             [c charon nm cmd])
                   1542: ADD_PLUGIN([eap-tnc],              [c charon])
                   1543: ADD_PLUGIN([xauth-generic],        [c charon cmd])
                   1544: ADD_PLUGIN([xauth-eap],            [c charon])
                   1545: ADD_PLUGIN([xauth-pam],            [c charon])
                   1546: ADD_PLUGIN([xauth-noauth],         [c charon])
                   1547: ADD_PLUGIN([tnc-ifmap],            [c charon])
                   1548: ADD_PLUGIN([tnc-pdp],              [c charon])
                   1549: ADD_PLUGIN([tnc-imc],              [t charon])
                   1550: ADD_PLUGIN([tnc-imv],              [t charon])
                   1551: ADD_PLUGIN([tnc-tnccs],            [t charon])
                   1552: ADD_PLUGIN([tnccs-20],             [t charon])
                   1553: ADD_PLUGIN([tnccs-11],             [t charon])
                   1554: ADD_PLUGIN([tnccs-dynamic],        [t charon])
                   1555: ADD_PLUGIN([medsrv],               [c charon])
                   1556: ADD_PLUGIN([medcli],               [c charon])
                   1557: ADD_PLUGIN([dhcp],                 [c charon])
                   1558: ADD_PLUGIN([osx-attr],             [c charon cmd])
                   1559: ADD_PLUGIN([p-cscf],               [c charon cmd])
                   1560: ADD_PLUGIN([android-dns],          [c charon])
                   1561: ADD_PLUGIN([android-log],          [c charon])
                   1562: ADD_PLUGIN([ha],                   [c charon])
                   1563: ADD_PLUGIN([whitelist],            [c charon])
                   1564: ADD_PLUGIN([ext-auth],             [c charon])
                   1565: ADD_PLUGIN([lookip],               [c charon])
                   1566: ADD_PLUGIN([error-notify],         [c charon])
                   1567: ADD_PLUGIN([certexpire],           [c charon])
                   1568: ADD_PLUGIN([systime-fix],          [c charon])
                   1569: ADD_PLUGIN([led],                  [c charon])
                   1570: ADD_PLUGIN([duplicheck],           [c charon])
                   1571: ADD_PLUGIN([coupling],             [c charon])
                   1572: ADD_PLUGIN([radattr],              [c charon])
                   1573: ADD_PLUGIN([uci],                  [c charon])
                   1574: ADD_PLUGIN([addrblock],            [c charon])
                   1575: ADD_PLUGIN([unity],                [c charon])
                   1576: ADD_PLUGIN([counters],             [c charon])
                   1577: 
                   1578: AC_SUBST(charon_plugins)
                   1579: AC_SUBST(starter_plugins)
                   1580: AC_SUBST(pool_plugins)
                   1581: AC_SUBST(attest_plugins)
                   1582: AC_SUBST(scepclient_plugins)
                   1583: AC_SUBST(pki_plugins)
                   1584: AC_SUBST(scripts_plugins)
                   1585: AC_SUBST(fuzz_plugins)
                   1586: AC_SUBST(manager_plugins)
                   1587: AC_SUBST(medsrv_plugins)
                   1588: AC_SUBST(nm_plugins)
                   1589: AC_SUBST(cmd_plugins)
                   1590: AC_SUBST(aikgen_plugins)
                   1591: 
                   1592: AC_SUBST(c_plugins)
                   1593: AC_SUBST(p_plugins)
                   1594: AC_SUBST(s_plugins)
                   1595: AC_SUBST(t_plugins)
                   1596: 
                   1597: # ======================
                   1598: #  set Makefile.am vars
                   1599: # ======================
                   1600: 
                   1601: #  libstrongswan plugins
                   1602: # -----------------------
                   1603: AM_CONDITIONAL(USE_TEST_VECTORS, test x$test_vectors = xtrue)
                   1604: AM_CONDITIONAL(USE_CURL, test x$curl = xtrue)
                   1605: AM_CONDITIONAL(USE_FILES, test x$files = xtrue)
                   1606: AM_CONDITIONAL(USE_WINHTTP, test x$winhttp = xtrue)
                   1607: AM_CONDITIONAL(USE_UNBOUND, test x$unbound = xtrue)
                   1608: AM_CONDITIONAL(USE_SOUP, test x$soup = xtrue)
                   1609: AM_CONDITIONAL(USE_LDAP, test x$ldap = xtrue)
                   1610: AM_CONDITIONAL(USE_AES, test x$aes = xtrue)
                   1611: AM_CONDITIONAL(USE_DES, test x$des = xtrue)
                   1612: AM_CONDITIONAL(USE_BLOWFISH, test x$blowfish = xtrue)
                   1613: AM_CONDITIONAL(USE_RC2, test x$rc2 = xtrue)
                   1614: AM_CONDITIONAL(USE_MD4, test x$md4 = xtrue)
                   1615: AM_CONDITIONAL(USE_MD5, test x$md5 = xtrue)
                   1616: AM_CONDITIONAL(USE_SHA1, test x$sha1 = xtrue)
                   1617: AM_CONDITIONAL(USE_SHA2, test x$sha2 = xtrue)
                   1618: AM_CONDITIONAL(USE_SHA3, test x$sha3 = xtrue)
                   1619: AM_CONDITIONAL(USE_MGF1, test x$mgf1 = xtrue)
                   1620: AM_CONDITIONAL(USE_FIPS_PRF, test x$fips_prf = xtrue)
                   1621: AM_CONDITIONAL(USE_GMP, test x$gmp = xtrue)
                   1622: AM_CONDITIONAL(USE_CURVE25519, test x$curve25519 = xtrue)
                   1623: AM_CONDITIONAL(USE_RDRAND, test x$rdrand = xtrue)
                   1624: AM_CONDITIONAL(USE_AESNI, test x$aesni = xtrue)
                   1625: AM_CONDITIONAL(USE_RANDOM, test x$random = xtrue)
                   1626: AM_CONDITIONAL(USE_NONCE, test x$nonce = xtrue)
                   1627: AM_CONDITIONAL(USE_X509, test x$x509 = xtrue)
                   1628: AM_CONDITIONAL(USE_REVOCATION, test x$revocation = xtrue)
                   1629: AM_CONDITIONAL(USE_CONSTRAINTS, test x$constraints = xtrue)
                   1630: AM_CONDITIONAL(USE_ACERT, test x$acert = xtrue)
                   1631: AM_CONDITIONAL(USE_PUBKEY, test x$pubkey = xtrue)
                   1632: AM_CONDITIONAL(USE_PKCS1, test x$pkcs1 = xtrue)
                   1633: AM_CONDITIONAL(USE_PKCS7, test x$pkcs7 = xtrue)
                   1634: AM_CONDITIONAL(USE_PKCS8, test x$pkcs8 = xtrue)
                   1635: AM_CONDITIONAL(USE_PKCS12, test x$pkcs12 = xtrue)
                   1636: AM_CONDITIONAL(USE_PGP, test x$pgp = xtrue)
                   1637: AM_CONDITIONAL(USE_DNSKEY, test x$dnskey = xtrue)
                   1638: AM_CONDITIONAL(USE_SSHKEY, test x$sshkey = xtrue)
                   1639: AM_CONDITIONAL(USE_PEM, test x$pem = xtrue)
                   1640: AM_CONDITIONAL(USE_HMAC, test x$hmac = xtrue)
                   1641: AM_CONDITIONAL(USE_CMAC, test x$cmac = xtrue)
                   1642: AM_CONDITIONAL(USE_XCBC, test x$xcbc = xtrue)
                   1643: AM_CONDITIONAL(USE_MYSQL, test x$mysql = xtrue)
                   1644: AM_CONDITIONAL(USE_SQLITE, test x$sqlite = xtrue)
                   1645: AM_CONDITIONAL(USE_PADLOCK, test x$padlock = xtrue)
                   1646: AM_CONDITIONAL(USE_OPENSSL, test x$openssl = xtrue)
                   1647: AM_CONDITIONAL(USE_WOLFSSL, test x$wolfssl = xtrue)
                   1648: AM_CONDITIONAL(USE_GCRYPT, test x$gcrypt = xtrue)
                   1649: AM_CONDITIONAL(USE_BOTAN, test x$botan = xtrue)
                   1650: AM_CONDITIONAL(USE_AGENT, test x$agent = xtrue)
                   1651: AM_CONDITIONAL(USE_KEYCHAIN, test x$keychain = xtrue)
                   1652: AM_CONDITIONAL(USE_PKCS11, test x$pkcs11 = xtrue)
                   1653: AM_CONDITIONAL(USE_TPM, test x$tpm = xtrue)
                   1654: AM_CONDITIONAL(USE_CHAPOLY, test x$chapoly = xtrue)
                   1655: AM_CONDITIONAL(USE_CTR, test x$ctr = xtrue)
                   1656: AM_CONDITIONAL(USE_CCM, test x$ccm = xtrue)
                   1657: AM_CONDITIONAL(USE_GCM, test x$gcm = xtrue)
                   1658: AM_CONDITIONAL(USE_AF_ALG, test x$af_alg = xtrue)
                   1659: AM_CONDITIONAL(USE_NTRU, test x$ntru = xtrue)
                   1660: AM_CONDITIONAL(USE_NEWHOPE, test x$newhope = xtrue)
                   1661: AM_CONDITIONAL(USE_BLISS, test x$bliss = xtrue)
                   1662: AM_CONDITIONAL(USE_DRBG, test x$drbg = xtrue)
                   1663: 
                   1664: #  charon plugins
                   1665: # ----------------
                   1666: AM_CONDITIONAL(USE_STROKE, test x$stroke = xtrue)
                   1667: AM_CONDITIONAL(USE_VICI, test x$vici = xtrue)
                   1668: AM_CONDITIONAL(USE_MEDSRV, test x$medsrv = xtrue)
                   1669: AM_CONDITIONAL(USE_MEDCLI, test x$medcli = xtrue)
                   1670: AM_CONDITIONAL(USE_UCI, test x$uci = xtrue)
                   1671: AM_CONDITIONAL(USE_OSX_ATTR, test x$osx_attr = xtrue)
                   1672: AM_CONDITIONAL(USE_P_CSCF, test x$p_cscf = xtrue)
                   1673: AM_CONDITIONAL(USE_ANDROID_DNS, test x$android_dns = xtrue)
                   1674: AM_CONDITIONAL(USE_ANDROID_LOG, test x$android_log = xtrue)
                   1675: AM_CONDITIONAL(USE_SMP, test x$smp = xtrue)
                   1676: AM_CONDITIONAL(USE_SQL, test x$sql = xtrue)
                   1677: AM_CONDITIONAL(USE_DNSCERT, test x$dnscert = xtrue)
                   1678: AM_CONDITIONAL(USE_IPSECKEY, test x$ipseckey = xtrue)
                   1679: AM_CONDITIONAL(USE_UPDOWN, test x$updown = xtrue)
                   1680: AM_CONDITIONAL(USE_DHCP, test x$dhcp = xtrue)
                   1681: AM_CONDITIONAL(USE_LOAD_TESTER, test x$load_tester = xtrue)
                   1682: AM_CONDITIONAL(USE_HA, test x$ha = xtrue)
                   1683: AM_CONDITIONAL(USE_KERNEL_NETLINK, test x$kernel_netlink = xtrue)
                   1684: AM_CONDITIONAL(USE_KERNEL_PFKEY, test x$kernel_pfkey = xtrue)
                   1685: AM_CONDITIONAL(USE_KERNEL_PFROUTE, test x$kernel_pfroute = xtrue)
                   1686: AM_CONDITIONAL(USE_KERNEL_LIBIPSEC, test x$kernel_libipsec = xtrue)
                   1687: AM_CONDITIONAL(USE_KERNEL_WFP, test x$kernel_wfp = xtrue)
                   1688: AM_CONDITIONAL(USE_KERNEL_IPH, test x$kernel_iph = xtrue)
                   1689: AM_CONDITIONAL(USE_WHITELIST, test x$whitelist = xtrue)
                   1690: AM_CONDITIONAL(USE_EXT_AUTH, test x$ext_auth = xtrue)
                   1691: AM_CONDITIONAL(USE_LOOKIP, test x$lookip = xtrue)
                   1692: AM_CONDITIONAL(USE_ERROR_NOTIFY, test x$error_notify = xtrue)
                   1693: AM_CONDITIONAL(USE_CERTEXPIRE, test x$certexpire = xtrue)
                   1694: AM_CONDITIONAL(USE_SYSTIME_FIX, test x$systime_fix = xtrue)
                   1695: AM_CONDITIONAL(USE_LED, test x$led = xtrue)
                   1696: AM_CONDITIONAL(USE_DUPLICHECK, test x$duplicheck = xtrue)
                   1697: AM_CONDITIONAL(USE_COUPLING, test x$coupling = xtrue)
                   1698: AM_CONDITIONAL(USE_RADATTR, test x$radattr = xtrue)
                   1699: AM_CONDITIONAL(USE_EAP_SIM, test x$eap_sim = xtrue)
                   1700: AM_CONDITIONAL(USE_EAP_SIM_FILE, test x$eap_sim_file = xtrue)
                   1701: AM_CONDITIONAL(USE_EAP_SIM_PCSC, test x$eap_sim_pcsc = xtrue)
                   1702: AM_CONDITIONAL(USE_EAP_SIMAKA_SQL, test x$eap_simaka_sql = xtrue)
                   1703: AM_CONDITIONAL(USE_EAP_SIMAKA_PSEUDONYM, test x$eap_simaka_pseudonym = xtrue)
                   1704: AM_CONDITIONAL(USE_EAP_SIMAKA_REAUTH, test x$eap_simaka_reauth = xtrue)
                   1705: AM_CONDITIONAL(USE_EAP_IDENTITY, test x$eap_identity = xtrue)
                   1706: AM_CONDITIONAL(USE_EAP_MD5, test x$eap_md5 = xtrue)
                   1707: AM_CONDITIONAL(USE_EAP_GTC, test x$eap_gtc = xtrue)
                   1708: AM_CONDITIONAL(USE_EAP_AKA, test x$eap_aka = xtrue)
                   1709: AM_CONDITIONAL(USE_EAP_AKA_3GPP, test x$eap_aka_3gpp = xtrue)
                   1710: AM_CONDITIONAL(USE_EAP_AKA_3GPP2, test x$eap_aka_3gpp2 = xtrue)
                   1711: AM_CONDITIONAL(USE_EAP_MSCHAPV2, test x$eap_mschapv2 = xtrue)
                   1712: AM_CONDITIONAL(USE_EAP_TLS, test x$eap_tls = xtrue)
                   1713: AM_CONDITIONAL(USE_EAP_TTLS, test x$eap_ttls = xtrue)
                   1714: AM_CONDITIONAL(USE_EAP_PEAP, test x$eap_peap = xtrue)
                   1715: AM_CONDITIONAL(USE_EAP_TNC, test x$eap_tnc = xtrue)
                   1716: AM_CONDITIONAL(USE_EAP_DYNAMIC, test x$eap_dynamic = xtrue)
                   1717: AM_CONDITIONAL(USE_EAP_RADIUS, test x$eap_radius = xtrue)
                   1718: AM_CONDITIONAL(USE_XAUTH_GENERIC, test x$xauth_generic = xtrue)
                   1719: AM_CONDITIONAL(USE_XAUTH_EAP, test x$xauth_eap = xtrue)
                   1720: AM_CONDITIONAL(USE_XAUTH_PAM, test x$xauth_pam = xtrue)
                   1721: AM_CONDITIONAL(USE_XAUTH_NOAUTH, test x$xauth_noauth = xtrue)
                   1722: AM_CONDITIONAL(USE_TNC_IFMAP, test x$tnc_ifmap = xtrue)
                   1723: AM_CONDITIONAL(USE_TNC_PDP, test x$tnc_pdp = xtrue)
                   1724: AM_CONDITIONAL(USE_TNC_IMC, test x$tnc_imc = xtrue)
                   1725: AM_CONDITIONAL(USE_TNC_IMV, test x$tnc_imv = xtrue)
                   1726: AM_CONDITIONAL(USE_TNC_TNCCS, test x$tnc_tnccs = xtrue)
                   1727: AM_CONDITIONAL(USE_TNCCS_11, test x$tnccs_11 = xtrue)
                   1728: AM_CONDITIONAL(USE_TNCCS_20, test x$tnccs_20 = xtrue)
                   1729: AM_CONDITIONAL(USE_TNCCS_DYNAMIC, test x$tnccs_dynamic = xtrue)
                   1730: AM_CONDITIONAL(USE_IMC_TEST, test x$imc_test = xtrue)
                   1731: AM_CONDITIONAL(USE_IMV_TEST, test x$imv_test = xtrue)
                   1732: AM_CONDITIONAL(USE_IMC_SCANNER, test x$imc_scanner = xtrue)
                   1733: AM_CONDITIONAL(USE_IMV_SCANNER, test x$imv_scanner = xtrue)
                   1734: AM_CONDITIONAL(USE_IMC_OS, test x$imc_os = xtrue)
                   1735: AM_CONDITIONAL(USE_IMV_OS, test x$imv_os = xtrue)
                   1736: AM_CONDITIONAL(USE_IMC_ATTESTATION, test x$imc_attestation = xtrue)
                   1737: AM_CONDITIONAL(USE_IMV_ATTESTATION, test x$imv_attestation = xtrue)
                   1738: AM_CONDITIONAL(USE_IMC_SWIMA, test x$imc_swima = xtrue)
                   1739: AM_CONDITIONAL(USE_IMV_SWIMA, test x$imv_swima = xtrue)
                   1740: AM_CONDITIONAL(USE_IMC_HCD, test x$imc_hcd = xtrue)
                   1741: AM_CONDITIONAL(USE_IMV_HCD, test x$imv_hcd = xtrue)
                   1742: AM_CONDITIONAL(USE_SAVE_KEYS, test x$save_keys = xtrue)
                   1743: AM_CONDITIONAL(USE_SOCKET_DEFAULT, test x$socket_default = xtrue)
                   1744: AM_CONDITIONAL(USE_SOCKET_DYNAMIC, test x$socket_dynamic = xtrue)
                   1745: AM_CONDITIONAL(USE_SOCKET_WIN, test x$socket_win = xtrue)
                   1746: AM_CONDITIONAL(USE_BYPASS_LAN, test x$bypass_lan = xtrue)
                   1747: AM_CONDITIONAL(USE_CONNMARK, test x$connmark = xtrue)
                   1748: AM_CONDITIONAL(USE_FORECAST, test x$forecast = xtrue)
                   1749: AM_CONDITIONAL(USE_FARP, test x$farp = xtrue)
                   1750: AM_CONDITIONAL(USE_ADDRBLOCK, test x$addrblock = xtrue)
                   1751: AM_CONDITIONAL(USE_UNITY, test x$unity = xtrue)
                   1752: AM_CONDITIONAL(USE_RESOLVE, test x$resolve = xtrue)
                   1753: AM_CONDITIONAL(USE_ATTR, test x$attr = xtrue)
                   1754: AM_CONDITIONAL(USE_ATTR_SQL, test x$attr_sql = xtrue)
                   1755: AM_CONDITIONAL(USE_COUNTERS, test x$counters = xtrue)
                   1756: 
                   1757: #  other options
                   1758: # ---------------
                   1759: AM_CONDITIONAL(USE_LEAK_DETECTIVE, test x$leak_detective = xtrue)
                   1760: AM_CONDITIONAL(USE_LOCK_PROFILER, test x$lock_profiler = xtrue)
                   1761: AM_CONDITIONAL(USE_FAST, test x$fast = xtrue)
                   1762: AM_CONDITIONAL(USE_MANAGER, test x$manager = xtrue)
                   1763: AM_CONDITIONAL(USE_ME, test x$mediation = xtrue)
                   1764: AM_CONDITIONAL(USE_INTEGRITY_TEST, test x$integrity_test = xtrue)
                   1765: AM_CONDITIONAL(USE_LOAD_WARNING, test x$load_warning = xtrue)
                   1766: AM_CONDITIONAL(USE_IKEV1, test x$ikev1 = xtrue)
                   1767: AM_CONDITIONAL(USE_IKEV2, test x$ikev2 = xtrue)
                   1768: AM_CONDITIONAL(USE_THREADS, test x$threads = xtrue)
                   1769: AM_CONDITIONAL(USE_ADNS, test x$adns = xtrue)
                   1770: AM_CONDITIONAL(USE_CHARON, test x$charon = xtrue)
                   1771: AM_CONDITIONAL(USE_NM, test x$nm = xtrue)
                   1772: AM_CONDITIONAL(USE_PKI, test x$pki = xtrue)
                   1773: AM_CONDITIONAL(USE_SCEPCLIENT, test x$scepclient = xtrue)
                   1774: AM_CONDITIONAL(USE_SCRIPTS, test x$scripts = xtrue)
                   1775: AM_CONDITIONAL(USE_FUZZING, test x$fuzzing = xtrue)
                   1776: AM_CONDITIONAL(USE_CONFTEST, test x$conftest = xtrue)
                   1777: 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)
                   1778: 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)
                   1779: AM_CONDITIONAL(USE_LIBIPSEC, test x$libipsec = xtrue)
                   1780: AM_CONDITIONAL(USE_LIBNTTFFT, test x$bliss = xtrue -o x$newhope = xtrue)
                   1781: AM_CONDITIONAL(USE_LIBTNCIF, test x$tnc_tnccs = xtrue -o x$imcv = xtrue)
                   1782: AM_CONDITIONAL(USE_LIBTNCCS, test x$tnc_tnccs = xtrue)
                   1783: AM_CONDITIONAL(USE_LIBPTTLS, test x$tnc_tnccs = xtrue)
                   1784: 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)
                   1785: AM_CONDITIONAL(USE_FILE_CONFIG, test x$stroke = xtrue)
                   1786: AM_CONDITIONAL(USE_IPSEC_SCRIPT, test x$stroke = xtrue -o x$scepclient = xtrue -o x$conftest = xtrue)
                   1787: AM_CONDITIONAL(USE_LIBCAP, test x$capabilities = xlibcap)
                   1788: AM_CONDITIONAL(USE_VSTR, test x$printf_hooks = xvstr)
                   1789: AM_CONDITIONAL(USE_BUILTIN_PRINTF, test x$printf_hooks = xbuiltin)
                   1790: AM_CONDITIONAL(USE_SIMAKA, test x$simaka = xtrue)
                   1791: AM_CONDITIONAL(USE_TLS, test x$tls = xtrue)
                   1792: AM_CONDITIONAL(USE_RADIUS, test x$radius = xtrue)
                   1793: AM_CONDITIONAL(USE_IMCV, test x$imcv = xtrue)
                   1794: AM_CONDITIONAL(USE_TROUSERS, test x$tss_trousers = xtrue)
                   1795: AM_CONDITIONAL(USE_TSS2, test x$tss_tss2 = xtrue)
                   1796: AM_CONDITIONAL(MONOLITHIC, test x$monolithic = xtrue)
                   1797: AM_CONDITIONAL(STATIC_PLUGIN_CONSTRUCTORS, test x$static_plugin_constructors = xtrue)
                   1798: AM_CONDITIONAL(USE_SILENT_RULES, test x$enable_silent_rules = xyes)
                   1799: AM_CONDITIONAL(COVERAGE, test x$coverage = xtrue)
                   1800: AM_CONDITIONAL(USE_DBGHELP, test x$dbghelp_backtraces = xtrue)
                   1801: AM_CONDITIONAL(USE_TKM, test x$tkm = xtrue)
                   1802: AM_CONDITIONAL(USE_CMD, test x$cmd = xtrue)
                   1803: AM_CONDITIONAL(USE_AIKGEN, test x$aikgen = xtrue)
                   1804: AM_CONDITIONAL(USE_SWANCTL, test x$swanctl = xtrue)
                   1805: AM_CONDITIONAL(USE_SVC, test x$svc = xtrue)
                   1806: AM_CONDITIONAL(USE_SYSTEMD, test x$systemd = xtrue)
                   1807: AM_CONDITIONAL(USE_LEGACY_SYSTEMD, test -n "$systemdsystemunitdir" -a "x$systemdsystemunitdir" != xno)
                   1808: AM_CONDITIONAL(USE_RUBY_GEMS, test x$ruby_gems = xtrue)
                   1809: AM_CONDITIONAL(USE_PYTHON_EGGS, test x$python_eggs = xtrue)
                   1810: AM_CONDITIONAL(USE_PERL_CPAN, test x$perl_cpan = xtrue)
                   1811: AM_CONDITIONAL(USE_TOX, test "x$TOX" != x)
                   1812: AM_CONDITIONAL(USE_PY_TEST, test "x$PY_TEST" != x -a "x$TOX" = x)
                   1813: 
                   1814: # ========================
                   1815: #  set global definitions
                   1816: # ========================
                   1817: 
                   1818: if test x$mediation = xtrue; then
                   1819:        AC_DEFINE([ME], [], [mediation extension support])
                   1820: fi
                   1821: if test x$capabilities = xlibcap -o x$capabilities = xnative; then
                   1822:        AC_DEFINE([CAPABILITIES], [], [capability dropping support])
                   1823: fi
                   1824: if test x$log_thread_ids = xtrue; then
                   1825:        AC_DEFINE([USE_THREAD_IDS], [], [use thread ID for thread identification, if available])
                   1826: fi
                   1827: if test x$monolithic = xtrue; then
                   1828:        AC_DEFINE([MONOLITHIC], [], [monolithic build embedding plugins])
                   1829: fi
                   1830: if test x$static_plugin_constructors = xtrue; then
                   1831:        AC_DEFINE([STATIC_PLUGIN_CONSTRUCTORS], [], [static plugin constructors])
                   1832: fi
                   1833: if test x$ikev1 = xtrue; then
                   1834:        AC_DEFINE([USE_IKEV1], [], [support for IKEv1 protocol])
                   1835: fi
                   1836: if test x$ikev2 = xtrue; then
                   1837:        AC_DEFINE([USE_IKEV2], [], [support for IKEv2 protocol])
                   1838: fi
                   1839: if test x$fuzzing = xtrue; then
                   1840:        AC_DEFINE([USE_FUZZING], [], [build code for fuzzing])
                   1841: fi
                   1842: if test x$imc_swima = xtrue -o x$imv_swima = xtrue; then
                   1843:        AC_DEFINE([USE_JSON], [], [build code for JSON])
                   1844: fi
                   1845: 
                   1846: # ====================================================
                   1847: #  options for enabled modules (see conf/Makefile.am)
                   1848: # ====================================================
                   1849: 
                   1850: strongswan_options=
                   1851: 
                   1852: AM_COND_IF([USE_AIKGEN], [strongswan_options=${strongswan_options}" aikgen"])
                   1853: AM_COND_IF([USE_ATTR_SQL], [strongswan_options=${strongswan_options}" pool"])
                   1854: AM_COND_IF([USE_CHARON], [strongswan_options=${strongswan_options}" charon charon-logging"])
                   1855: AM_COND_IF([USE_FILE_CONFIG], [strongswan_options=${strongswan_options}" starter"])
                   1856: AM_COND_IF([USE_IMV_ATTESTATION], [strongswan_options=${strongswan_options}" attest"])
                   1857: AM_COND_IF([USE_IMCV], [strongswan_options=${strongswan_options}" imcv"])
                   1858: AM_COND_IF([USE_IMV_SWIMA], [strongswan_options=${strongswan_options}" sec-updater"])
                   1859: AM_COND_IF([USE_LIBTNCCS], [strongswan_options=${strongswan_options}" tnc"])
                   1860: AM_COND_IF([USE_MANAGER], [strongswan_options=${strongswan_options}" manager"])
                   1861: AM_COND_IF([USE_MEDSRV], [strongswan_options=${strongswan_options}" medsrv"])
                   1862: AM_COND_IF([USE_SCEPCLIENT], [strongswan_options=${strongswan_options}" scepclient"])
                   1863: AM_COND_IF([USE_PKI], [strongswan_options=${strongswan_options}" pki"])
                   1864: AM_COND_IF([USE_SWANCTL], [strongswan_options=${strongswan_options}" swanctl"])
                   1865: AM_COND_IF([USE_SYSTEMD], [strongswan_options=${strongswan_options}" charon-systemd"])
                   1866: 
                   1867: AC_SUBST(strongswan_options)
                   1868: 
                   1869: # =================
                   1870: #  build Makefiles
                   1871: # =================
                   1872: 
                   1873: AC_CONFIG_FILES([
                   1874:        Makefile
                   1875:        conf/Makefile
                   1876:        fuzz/Makefile
                   1877:        man/Makefile
                   1878:        init/Makefile
                   1879:        init/systemd/Makefile
                   1880:        init/systemd-starter/Makefile
                   1881:        src/Makefile
                   1882:        src/include/Makefile
                   1883:        src/libstrongswan/Makefile
                   1884:        src/libstrongswan/math/libnttfft/Makefile
                   1885:        src/libstrongswan/math/libnttfft/tests/Makefile
                   1886:        src/libstrongswan/plugins/aes/Makefile
                   1887:        src/libstrongswan/plugins/cmac/Makefile
                   1888:        src/libstrongswan/plugins/des/Makefile
                   1889:        src/libstrongswan/plugins/blowfish/Makefile
                   1890:        src/libstrongswan/plugins/rc2/Makefile
                   1891:        src/libstrongswan/plugins/md4/Makefile
                   1892:        src/libstrongswan/plugins/md5/Makefile
                   1893:        src/libstrongswan/plugins/sha1/Makefile
                   1894:        src/libstrongswan/plugins/sha2/Makefile
                   1895:        src/libstrongswan/plugins/sha3/Makefile
                   1896:        src/libstrongswan/plugins/mgf1/Makefile
                   1897:        src/libstrongswan/plugins/fips_prf/Makefile
                   1898:        src/libstrongswan/plugins/gmp/Makefile
                   1899:        src/libstrongswan/plugins/curve25519/Makefile
                   1900:        src/libstrongswan/plugins/rdrand/Makefile
                   1901:        src/libstrongswan/plugins/aesni/Makefile
                   1902:        src/libstrongswan/plugins/random/Makefile
                   1903:        src/libstrongswan/plugins/nonce/Makefile
                   1904:        src/libstrongswan/plugins/hmac/Makefile
                   1905:        src/libstrongswan/plugins/xcbc/Makefile
                   1906:        src/libstrongswan/plugins/x509/Makefile
                   1907:        src/libstrongswan/plugins/revocation/Makefile
                   1908:        src/libstrongswan/plugins/constraints/Makefile
                   1909:        src/libstrongswan/plugins/acert/Makefile
                   1910:        src/libstrongswan/plugins/pubkey/Makefile
                   1911:        src/libstrongswan/plugins/pkcs1/Makefile
                   1912:        src/libstrongswan/plugins/pkcs7/Makefile
                   1913:        src/libstrongswan/plugins/pkcs8/Makefile
                   1914:        src/libstrongswan/plugins/pkcs12/Makefile
                   1915:        src/libstrongswan/plugins/pgp/Makefile
                   1916:        src/libstrongswan/plugins/dnskey/Makefile
                   1917:        src/libstrongswan/plugins/sshkey/Makefile
                   1918:        src/libstrongswan/plugins/pem/Makefile
                   1919:        src/libstrongswan/plugins/curl/Makefile
                   1920:        src/libstrongswan/plugins/files/Makefile
                   1921:        src/libstrongswan/plugins/winhttp/Makefile
                   1922:        src/libstrongswan/plugins/unbound/Makefile
                   1923:        src/libstrongswan/plugins/soup/Makefile
                   1924:        src/libstrongswan/plugins/ldap/Makefile
                   1925:        src/libstrongswan/plugins/mysql/Makefile
                   1926:        src/libstrongswan/plugins/sqlite/Makefile
                   1927:        src/libstrongswan/plugins/padlock/Makefile
                   1928:        src/libstrongswan/plugins/openssl/Makefile
                   1929:        src/libstrongswan/plugins/wolfssl/Makefile
                   1930:        src/libstrongswan/plugins/gcrypt/Makefile
                   1931:        src/libstrongswan/plugins/botan/Makefile
                   1932:        src/libstrongswan/plugins/agent/Makefile
                   1933:        src/libstrongswan/plugins/keychain/Makefile
                   1934:        src/libstrongswan/plugins/pkcs11/Makefile
                   1935:        src/libstrongswan/plugins/chapoly/Makefile
                   1936:        src/libstrongswan/plugins/ctr/Makefile
                   1937:        src/libstrongswan/plugins/ccm/Makefile
                   1938:        src/libstrongswan/plugins/gcm/Makefile
                   1939:        src/libstrongswan/plugins/af_alg/Makefile
                   1940:        src/libstrongswan/plugins/drbg/Makefile
                   1941:        src/libstrongswan/plugins/ntru/Makefile
                   1942:        src/libstrongswan/plugins/bliss/Makefile
                   1943:        src/libstrongswan/plugins/bliss/tests/Makefile
                   1944:        src/libstrongswan/plugins/newhope/Makefile
                   1945:        src/libstrongswan/plugins/newhope/tests/Makefile
                   1946:        src/libstrongswan/plugins/test_vectors/Makefile
                   1947:        src/libstrongswan/tests/Makefile
                   1948:        src/libipsec/Makefile
                   1949:        src/libipsec/tests/Makefile
                   1950:        src/libsimaka/Makefile
                   1951:        src/libtls/Makefile
                   1952:        src/libtls/tests/Makefile
                   1953:        src/libradius/Makefile
                   1954:        src/libtncif/Makefile
                   1955:        src/libtnccs/Makefile
                   1956:        src/libtnccs/plugins/tnc_tnccs/Makefile
                   1957:        src/libtnccs/plugins/tnc_imc/Makefile
                   1958:        src/libtnccs/plugins/tnc_imv/Makefile
                   1959:        src/libtnccs/plugins/tnccs_11/Makefile
                   1960:        src/libtnccs/plugins/tnccs_20/Makefile
                   1961:        src/libtnccs/plugins/tnccs_dynamic/Makefile
                   1962:        src/libpttls/Makefile
                   1963:        src/libimcv/Makefile
                   1964:        src/libimcv/plugins/imc_test/Makefile
                   1965:        src/libimcv/plugins/imv_test/Makefile
                   1966:        src/libimcv/plugins/imc_scanner/Makefile
                   1967:        src/libimcv/plugins/imv_scanner/Makefile
                   1968:        src/libimcv/plugins/imc_os/Makefile
                   1969:        src/libimcv/plugins/imv_os/Makefile
                   1970:        src/libimcv/plugins/imc_attestation/Makefile
                   1971:        src/libimcv/plugins/imv_attestation/Makefile
                   1972:        src/libimcv/plugins/imc_swima/Makefile
                   1973:        src/libimcv/plugins/imv_swima/Makefile
                   1974:        src/libimcv/plugins/imc_hcd/Makefile
                   1975:        src/libimcv/plugins/imv_hcd/Makefile
                   1976:        src/charon/Makefile
                   1977:        src/charon-nm/Makefile
                   1978:        src/charon-tkm/Makefile
                   1979:        src/charon-cmd/Makefile
                   1980:        src/charon-svc/Makefile
                   1981:        src/charon-systemd/Makefile
                   1982:        src/libcharon/Makefile
                   1983:        src/libcharon/plugins/eap_aka/Makefile
                   1984:        src/libcharon/plugins/eap_aka_3gpp/Makefile
                   1985:        src/libcharon/plugins/eap_aka_3gpp/tests/Makefile
                   1986:        src/libcharon/plugins/eap_aka_3gpp2/Makefile
                   1987:        src/libcharon/plugins/eap_dynamic/Makefile
                   1988:        src/libcharon/plugins/eap_identity/Makefile
                   1989:        src/libcharon/plugins/eap_md5/Makefile
                   1990:        src/libcharon/plugins/eap_gtc/Makefile
                   1991:        src/libcharon/plugins/eap_sim/Makefile
                   1992:        src/libcharon/plugins/eap_sim_file/Makefile
                   1993:        src/libcharon/plugins/eap_sim_pcsc/Makefile
                   1994:        src/libcharon/plugins/eap_simaka_sql/Makefile
                   1995:        src/libcharon/plugins/eap_simaka_pseudonym/Makefile
                   1996:        src/libcharon/plugins/eap_simaka_reauth/Makefile
                   1997:        src/libcharon/plugins/eap_mschapv2/Makefile
                   1998:        src/libcharon/plugins/eap_tls/Makefile
                   1999:        src/libcharon/plugins/eap_ttls/Makefile
                   2000:        src/libcharon/plugins/eap_peap/Makefile
                   2001:        src/libcharon/plugins/eap_tnc/Makefile
                   2002:        src/libcharon/plugins/eap_radius/Makefile
                   2003:        src/libcharon/plugins/xauth_generic/Makefile
                   2004:        src/libcharon/plugins/xauth_eap/Makefile
                   2005:        src/libcharon/plugins/xauth_pam/Makefile
                   2006:        src/libcharon/plugins/xauth_noauth/Makefile
                   2007:        src/libcharon/plugins/tnc_ifmap/Makefile
                   2008:        src/libcharon/plugins/tnc_pdp/Makefile
                   2009:        src/libcharon/plugins/save_keys/Makefile
                   2010:        src/libcharon/plugins/socket_default/Makefile
                   2011:        src/libcharon/plugins/socket_dynamic/Makefile
                   2012:        src/libcharon/plugins/socket_win/Makefile
                   2013:        src/libcharon/plugins/bypass_lan/Makefile
                   2014:        src/libcharon/plugins/connmark/Makefile
                   2015:        src/libcharon/plugins/counters/Makefile
                   2016:        src/libcharon/plugins/forecast/Makefile
                   2017:        src/libcharon/plugins/farp/Makefile
                   2018:        src/libcharon/plugins/smp/Makefile
                   2019:        src/libcharon/plugins/sql/Makefile
                   2020:        src/libcharon/plugins/dnscert/Makefile
                   2021:        src/libcharon/plugins/ipseckey/Makefile
                   2022:        src/libcharon/plugins/medsrv/Makefile
                   2023:        src/libcharon/plugins/medcli/Makefile
                   2024:        src/libcharon/plugins/addrblock/Makefile
                   2025:        src/libcharon/plugins/unity/Makefile
                   2026:        src/libcharon/plugins/uci/Makefile
                   2027:        src/libcharon/plugins/ha/Makefile
                   2028:        src/libcharon/plugins/kernel_netlink/Makefile
                   2029:        src/libcharon/plugins/kernel_pfkey/Makefile
                   2030:        src/libcharon/plugins/kernel_pfroute/Makefile
                   2031:        src/libcharon/plugins/kernel_libipsec/Makefile
                   2032:        src/libcharon/plugins/kernel_wfp/Makefile
                   2033:        src/libcharon/plugins/kernel_iph/Makefile
                   2034:        src/libcharon/plugins/whitelist/Makefile
                   2035:        src/libcharon/plugins/ext_auth/Makefile
                   2036:        src/libcharon/plugins/lookip/Makefile
                   2037:        src/libcharon/plugins/error_notify/Makefile
                   2038:        src/libcharon/plugins/certexpire/Makefile
                   2039:        src/libcharon/plugins/systime_fix/Makefile
                   2040:        src/libcharon/plugins/led/Makefile
                   2041:        src/libcharon/plugins/duplicheck/Makefile
                   2042:        src/libcharon/plugins/coupling/Makefile
                   2043:        src/libcharon/plugins/radattr/Makefile
                   2044:        src/libcharon/plugins/osx_attr/Makefile
                   2045:        src/libcharon/plugins/p_cscf/Makefile
                   2046:        src/libcharon/plugins/android_dns/Makefile
                   2047:        src/libcharon/plugins/android_log/Makefile
                   2048:        src/libcharon/plugins/stroke/Makefile
                   2049:        src/libcharon/plugins/vici/Makefile
                   2050:        src/libcharon/plugins/vici/ruby/Makefile
                   2051:        src/libcharon/plugins/vici/perl/Makefile
                   2052:        src/libcharon/plugins/vici/python/Makefile
                   2053:        src/libcharon/plugins/updown/Makefile
                   2054:        src/libcharon/plugins/dhcp/Makefile
                   2055:        src/libcharon/plugins/load_tester/Makefile
                   2056:        src/libcharon/plugins/resolve/Makefile
                   2057:        src/libcharon/plugins/attr/Makefile
                   2058:        src/libcharon/plugins/attr_sql/Makefile
                   2059:        src/libcharon/tests/Makefile
                   2060:        src/libtpmtss/Makefile
                   2061:        src/libtpmtss/plugins/tpm/Makefile
                   2062:        src/stroke/Makefile
                   2063:        src/ipsec/Makefile
                   2064:        src/starter/Makefile
                   2065:        src/starter/tests/Makefile
                   2066:        src/_updown/Makefile
                   2067:        src/_copyright/Makefile
                   2068:        src/scepclient/Makefile
                   2069:        src/aikgen/Makefile
                   2070:        src/tpm_extendpcr/Makefile
                   2071:        src/pki/Makefile
                   2072:        src/pki/man/Makefile
                   2073:        src/pool/Makefile
                   2074:        src/libfast/Makefile
                   2075:        src/manager/Makefile
                   2076:        src/medsrv/Makefile
                   2077:        src/checksum/Makefile
                   2078:        src/conftest/Makefile
                   2079:        src/pt-tls-client/Makefile
                   2080:        src/sw-collector/Makefile
                   2081:        src/sec-updater/Makefile
                   2082:        src/swanctl/Makefile
                   2083:        src/xfrmi/Makefile
                   2084:        scripts/Makefile
                   2085:        testing/Makefile
                   2086: ])
                   2087: 
                   2088: # =================
                   2089: #  build man pages
                   2090: # =================
                   2091: 
                   2092: AC_CONFIG_FILES([
                   2093:        conf/strongswan.conf.5.head
                   2094:        conf/strongswan.conf.5.tail
                   2095:        man/ipsec.conf.5
                   2096:        man/ipsec.secrets.5
                   2097:        src/charon-cmd/charon-cmd.8
                   2098:        src/pki/man/pki.1
                   2099:        src/pki/man/pki---acert.1
                   2100:        src/pki/man/pki---dn.1
                   2101:        src/pki/man/pki---gen.1
                   2102:        src/pki/man/pki---issue.1
                   2103:        src/pki/man/pki---keyid.1
                   2104:        src/pki/man/pki---pkcs12.1
                   2105:        src/pki/man/pki---pkcs7.1
                   2106:        src/pki/man/pki---print.1
                   2107:        src/pki/man/pki---pub.1
                   2108:        src/pki/man/pki---req.1
                   2109:        src/pki/man/pki---self.1
                   2110:        src/pki/man/pki---signcrl.1
                   2111:        src/pki/man/pki---verify.1
                   2112:        src/swanctl/swanctl.8
                   2113:        src/swanctl/swanctl.conf.5.head
                   2114:        src/swanctl/swanctl.conf.5.tail
                   2115:        src/pt-tls-client/pt-tls-client.1
                   2116:        src/sw-collector/sw-collector.8
                   2117:        src/sec-updater/sec-updater.8
                   2118: ])
                   2119: 
                   2120: AC_OUTPUT
                   2121: 
                   2122: # ========================
                   2123: #  report enabled plugins
                   2124: # ========================
                   2125: 
                   2126: AC_MSG_RESULT([])
                   2127: AC_MSG_RESULT([ strongSwan will be built with the following plugins])
                   2128: AC_MSG_RESULT([-----------------------------------------------------])
                   2129: 
                   2130: AC_MSG_RESULT([libstrongswan:$s_plugins])
                   2131: AC_MSG_RESULT([libcharon:    $c_plugins])
                   2132: AC_MSG_RESULT([libtnccs:     $t_plugins])
                   2133: AC_MSG_RESULT([libtpmtss:    $p_plugins])
                   2134: AC_MSG_RESULT([])

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