option('lua', type: 'combo', choices: ['auto', 'luajit', 'lua'], value: 'auto', description: 'Lua implementation to use') option('hardening', type: 'feature', value: 'auto', description: 'Compiler security checks') option('hardening-experimental-cf', type: 'combo', choices: ['disabled', 'full', 'branch', 'return', 'check'], value: 'disabled', description: 'Control Flow hardening') option('hardening-experimental-scp', type: 'feature', value: 'disabled', description: 'Stack Clash Protection') option('hardening-fortify-source', type: 'combo', choices: ['auto', 'disabled', '1', '2', '3'], value: '2', description: 'Source fortification level') option('rng-kiss', type: 'boolean', value: false, description: 'Use the unsafe KISS RNG') option('signers-libsodium', type: 'feature', value: 'auto', description: 'Enable libsodium-based signers') option('signers-libdecaf', type: 'feature', value: 'auto', description: 'Enable libdecaf-based signers') option('signers-libcrypto', type: 'feature', value: 'auto', description: 'Enable OpenSSL libcrypto-based signers)') option('signers-libcrypto-path', type: 'string', value: '', description: 'Custom path to find OpenSSL libcrypto') option('tls-libssl', type: 'feature', value: 'auto', description: 'OpenSSL-based TLS') option('tls-gnutls', type: 'feature', value: 'auto', description: 'GnuTLS-based TLS') option('dns-over-tls', type: 'boolean', value: false, description: 'DNS over TLS (requires GnuTLS or OpenSSL)') option('ipcipher', type: 'feature', value: 'auto', description: 'IPcipher (requires libcrypto)') option('unit-tests', type: 'boolean', value: false, description: 'Build and run unit tests') option('unit-tests-backends', type: 'boolean', value: false, description: 'Build and run backend unit tests') option('reproducible', type: 'boolean', value: false, description: 'Reproducible builds (for distro maintainers, makes debugging difficult)') option('fuzz-targets', type: 'boolean', value: false, description: 'Enable fuzzing targets') option('verbose-logging', type: 'boolean', value: false, description: 'Enable verbose logging') option('experimental-pkcs11', type: 'feature', value: 'disabled', description: 'PKCS11 support') option('experimental-gss-tsig', type: 'feature', value: 'disabled', description: 'GSS-TSIG support') option('socket-dir', type: 'string', value: '/var/run', description: 'Where the control socket lives') option('module-bind', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'static', description: 'Bind backend') option('module-pipe', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'dynamic', description: 'Pipe backend') option('module-gmysql', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Generic MySQL backend') option('module-godbc', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Generic ODBC backend') option('module-gpgsql', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Generic PostgreSQL backend') option('module-gsqlite3', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Generic SQLite3 backend') option('module-ldap', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'LDAP backend') option('module-remote', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Remote backend') option('module-remote-zeromq', type: 'boolean', value: false, description: 'Use ZeroMQ in the Remote backend') option('module-tinydns', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'TinyDNS backend') option('module-geoip', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'GeoIP backend') option('module-lmdb', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'LMDB backend') option('module-lua2', type: 'combo', choices: ['disabled', 'static', 'dynamic'], value: 'disabled', description: 'Lua2 backend') option('tools', type: 'boolean', value: false, description: 'Build extra tools') option('tools-ixfrdist', type: 'boolean', value: false, description: 'Build ixfrdist') option('lua-records', type: 'boolean', value: true, description: 'Support Lua records') option('systemd-service-user', type: 'string', value: 'pdns', description: 'Systemd service user (setuid and unit file; user is not created)') option('systemd-service-group', type: 'string', value: 'pdns', description: 'Systemd service group (setgid and unit file; group is not created)') option('auto-var-init', type: 'combo', value: 'disabled', choices: ['zero', 'pattern', 'disabled'], description: 'Enable initialization of automatic variables') option('malloc-trace', type: 'boolean', value: false, description: 'Enable malloc-trace')