]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/dnsdistdist/configure.ac
Merge pull request #9229 from rgacogne/dnsdist-webserver-allow-from
[thirdparty/pdns.git] / pdns / dnsdistdist / configure.ac
CommitLineData
d9122321
RK
1AC_PREREQ([2.61])
2
831525d2 3AC_INIT([dnsdist], m4_esyscmd(build-aux/gen-version))
e2c9d5cf 4AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip parallel-tests 1.11 subdir-objects])
bbfefc98 5AM_SILENT_RULES([yes])
6AC_CONFIG_MACRO_DIR([m4])
7AC_CONFIG_HEADERS([config.h])
8AC_PROG_CC
9AC_PROG_CXX
65613131 10AC_LANG([C++])
f0e4dcba 11AC_GNU_SOURCE
89265bd3 12
519f5484
PL
13AC_DEFINE([DNSDIST], [1],
14 [This is dnsdist]
15)
16
89265bd3
RK
17LT_PREREQ([2.2.2])
18LT_INIT([disable-static])
19
690b86b7 20CFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter $CFLAGS"
1ab9969d 21CXXFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls $CXXFLAGS"
d44335b4 22
cb264691 23PDNS_WITH_LIBSODIUM
e33710de 24PDNS_CHECK_DNSTAP([auto])
29e13421 25PDNS_CHECK_RAGEL([dnslabeltext.cc], [www.dnsdist.org])
289351c3 26PDNS_CHECK_LIBEDIT
bcd17c71 27PDNS_CHECK_CLOCK_GETTIME
2d8a1c75 28
65613131 29PDNS_CHECK_OS
519f5484 30PTHREAD_SET_NAME
65613131 31PDNS_CHECK_NETWORK_LIBS
f0e4dcba 32PDNS_CHECK_PTHREAD_NP
7e81628b 33PDNS_CHECK_SECURE_MEMSET
65613131 34
2d8a1c75
PL
35
36PDNS_WITH_PROTOBUF
2d8a1c75 37
431f0584 38BOOST_REQUIRE([1.42])
2d8a1c75 39
ca404e94 40PDNS_ENABLE_UNIT_TESTS
ae80638a 41PDNS_WITH_RE2
11e1e08b 42DNSDIST_ENABLE_DNSCRYPT
87b515ed 43PDNS_WITH_EBPF
9f4eb5cc 44PDNS_WITH_NET_SNMP
fdc3ea42 45PDNS_WITH_LIBCAP
11e1e08b 46
6ab65223 47AX_AVAILABLE_SYSTEMD
a3dfb540 48AX_CHECK_SYSTEMD_FEATURES
6ab65223 49AM_CONDITIONAL([HAVE_SYSTEMD], [ test x"$systemd" = "xy" ])
f40f664d 50PDNS_WITH_SERVICE_USER([dnsdist])
6ab65223 51
290995c1
OM
52dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is
53dnl using the defines.
54AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r])
f8204e9e 55AC_SUBST([YAHTTP_CFLAGS], ['-I$(top_srcdir)/ext/yahttp'])
23448838 56AC_SUBST([YAHTTP_LIBS], ['$(top_builddir)/ext/yahttp/yahttp/libyahttp.la'])
496151cf
RG
57AC_SUBST([IPCRYPT_CFLAGS], ['-I$(top_srcdir)/ext/ipcrypt'])
58AC_SUBST([IPCRYPT_LIBS], ['$(top_builddir)/ext/ipcrypt/libipcrypt.la'])
15e9de5a 59
026090e8 60PDNS_WITH_LUA([mandatory])
861ce85b
RG
61AS_IF([test "x$LUAPC" = "xluajit"], [
62 # export all symbols to be able to use the Lua FFI interface
63 AC_MSG_NOTICE([Adding -rdynamic to export all symbols for the Lua FFI interface])
64 LDFLAGS="$LDFLAGS -rdynamic"
65])
9a927586 66PDNS_CHECK_LUA_HPP
15e9de5a 67
319271d9
PL
68AM_CONDITIONAL([HAVE_GNUTLS], [false])
69AM_CONDITIONAL([HAVE_LIBSSL], [false])
f441962a 70AM_CONDITIONAL([HAVE_LMDB], [false])
90fe8ae6 71AM_CONDITIONAL([HAVE_CDB], [false])
7d280342 72
73PDNS_CHECK_LIBCRYPTO
74
a227f47d 75DNSDIST_ENABLE_DNS_OVER_TLS
529f261b
PD
76DNSDIST_ENABLE_DNS_OVER_HTTPS
77
78AS_IF([test "x$enable_dns_over_tls" != "xno" -o "x$enable_dns_over_https" != "xno"], [
79 DNSDIST_WITH_LIBSSL
80])
7d280342 81
a227f47d 82AS_IF([test "x$enable_dns_over_tls" != "xno"], [
319271d9 83 DNSDIST_WITH_GNUTLS
fbf14b03 84
529f261b 85 AS_IF([test "x$HAVE_GNUTLS" != "x1" -a "x$HAVE_LIBSSL" != "x1"], [
a227f47d
RG
86 AC_MSG_ERROR([DNS over TLS support requested but neither GnuTLS nor OpenSSL are available])
87 ])
88])
89
fbf14b03
RG
90PDNS_CHECK_LIBH2OEVLOOP
91AS_IF([test "x$enable_dns_over_https" != "xno"], [
529f261b 92 AS_IF([test "x$HAVE_LIBH2OEVLOOP" != "x1"], [
fbf14b03
RG
93 AC_MSG_ERROR([DNS over HTTPS support requested but libh2o-evloop was not found])
94 ])
95
529f261b 96 AS_IF([test "x$HAVE_LIBSSL" != "x1"], [
fbf14b03
RG
97 AC_MSG_ERROR([DNS over HTTPS support requested but OpenSSL was not found])
98 ])
99])
100
90fe8ae6 101PDNS_CHECK_CDB
f441962a
RG
102PDNS_CHECK_LMDB
103
8c8b9197 104AX_CXX_COMPILE_STDCXX_11([ext], [mandatory])
bbfefc98 105
bfb7cc84
RG
106AC_MSG_CHECKING([whether we will enable compiler security checks])
107AC_ARG_ENABLE([hardening],
8c8b9197 108 [AS_HELP_STRING([--disable-hardening], [disable compiler security checks @<:@default=no@:>@])],
bfb7cc84
RG
109 [enable_hardening=$enableval],
110 [enable_hardening=yes]
111)
112AC_MSG_RESULT([$enable_hardening])
113
114AS_IF([test "x$enable_hardening" != "xno"], [
115 AC_CC_PIE
116 AC_CC_STACK_PROTECTOR
117 AC_CC_PARAM_SSP_BUFFER_SIZE([4])
118 AC_CC_D_FORTIFY_SOURCE
119 AC_LD_RELRO
120])
121
e85e4d88
RG
122PDNS_ENABLE_SANITIZERS
123
20d81666 124PDNS_CHECK_VIRTUALENV
f68a9074 125
bfb7cc84
RG
126LDFLAGS="$RELRO_LDFLAGS $LDFLAGS"
127
b0e68161
RK
128CFLAGS="$PIE_CFLAGS $CFLAGS"
129CXXFLAGS="$PIE_CFLAGS $CXXFLAGS"
d44335b4 130
b0e68161 131PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS"
bfb7cc84
RG
132AC_SUBST([PROGRAM_LDFLAGS])
133
4649d67b 134AC_SUBST([AM_CPPFLAGS],
d44335b4 135 ["AS_ESCAPE([-I$(top_builddir) -I$(top_srcdir)]) $THREADFLAGS $BOOST_CPPFLAGS"]
4649d67b
RK
136)
137
555970c9
RG
138AC_ARG_VAR(PACKAGEVERSION, [The version used in secpoll queries])
139AS_IF([test "x$PACKAGEVERSION" != "x"],
140 [AC_DEFINE_UNQUOTED([PACKAGEVERSION], "$PACKAGEVERSION", [Set to the package version used for secpoll])]
141)
142
50bed881 143AC_CONFIG_FILES([Makefile
496151cf
RG
144 ext/yahttp/Makefile
145 ext/yahttp/yahttp/Makefile
146 ext/ipcrypt/Makefile])
23448838 147
50bed881 148AC_OUTPUT
8ee8668e
PL
149
150AC_MSG_NOTICE([])
151AC_MSG_NOTICE([Configuration summary])
152AC_MSG_NOTICE([=====================])
153AC_MSG_NOTICE([])
154AS_IF([test "x$ac_configure_args" != "x"],
155 [summary_conf_opts=$ac_configure_args],
156 [summary_conf_opts="(no options)"]
157)
158AC_MSG_NOTICE([dnsdist configured with: $summary_conf_opts])
159AC_MSG_NOTICE([])
160AC_MSG_NOTICE([CC: $CC])
161AC_MSG_NOTICE([CXX: $CXX])
162AC_MSG_NOTICE([LD: $LD])
163AC_MSG_NOTICE([CFLAGS: $CFLAGS])
164AC_MSG_NOTICE([CPPFLAGS: $CPPFLAGS])
165AC_MSG_NOTICE([CXXFLAGS: $CXXFLAGS])
166AC_MSG_NOTICE([LDFLAGS: $LDFLAGS])
167AC_MSG_NOTICE([LIBS: $LIBS])
168AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS])
169AC_MSG_NOTICE([])
170AC_MSG_NOTICE([Features enabled])
171AC_MSG_NOTICE([----------------])
026090e8 172AC_MSG_NOTICE([Lua: $LUAPC])
8ee8668e
PL
173AS_IF([test "x$PROTOBUF_LIBS" != "x" -a x"$PROTOC" != "x"],
174 [AC_MSG_NOTICE([Protobuf: yes])],
175 [AC_MSG_NOTICE([Protobuf: no])]
176)
177AS_IF([test "x$systemd" != "xn"],
178 [AC_MSG_NOTICE([systemd: yes])],
179 [AC_MSG_NOTICE([systemd: no])]
180)
f4b1f1fd
RG
181AS_IF([test "x$LIBCRYPTO_LIBS" != "x"],
182 [AC_MSG_NOTICE([ipcipher: yes])],
183 [AC_MSG_NOTICE([ipcipher: no])]
184)
8ee8668e
PL
185AS_IF([test "x$LIBSODIUM_LIBS" != "x"],
186 [AC_MSG_NOTICE([libsodium: yes])],
187 [AC_MSG_NOTICE([libsodium: no])]
188)
189AS_IF([test "x$enable_dnscrypt" != "xno"],
190 [AC_MSG_NOTICE([DNSCrypt: yes])],
191 [AC_MSG_NOTICE([DNSCrypt: no])]
192)
82a91ddf 193AS_IF([test "x$FSTRM_LIBS" != "x"],
3bbbeb11
JS
194 [AC_MSG_NOTICE([dnstap: yes])],
195 [AC_MSG_NOTICE([dnstap: no])]
82a91ddf 196)
8ee8668e
PL
197AS_IF([test "x$RE2_LIBS" != "x"],
198 [AC_MSG_NOTICE([re2: yes])],
199 [AC_MSG_NOTICE([re2: no])]
200)
9f4eb5cc
RG
201AS_IF([test "x$NET_SNMP_LIBS" != "x"],
202 [AC_MSG_NOTICE([SNMP: yes])],
203 [AC_MSG_NOTICE([SNMP: no])]
204)
fbf14b03
RG
205AS_IF([test "x$enable_dns_over_tls" != "xno"],
206 [AC_MSG_NOTICE([DNS over TLS: yes])],
207 [AC_MSG_NOTICE([DNS over TLS: no])]
208)
209AS_IF([test "x$enable_dns_over_https" != "xno"],
210 [AC_MSG_NOTICE([DNS over HTTPS (DoH): yes])],
211 [AC_MSG_NOTICE([DNS over HTTPS (DoH): no])]
212)
319271d9 213AS_IF([test "x$enable_dns_over_tls" != "xno"], [
319271d9
PL
214 AS_IF([test "x$GNUTLS_LIBS" != "x"],
215 [AC_MSG_NOTICE([GnuTLS: yes])],
fbf14b03
RG
216 [AC_MSG_NOTICE([GnuTLS: no])]
217 )]
218)
219AS_IF([test "x$enable_dns_over_tls" != "xno" -o "x$enable_dns_over_https" != "xno"], [
319271d9
PL
220 AS_IF([test "x$LIBSSL_LIBS" != "x"],
221 [AC_MSG_NOTICE([OpenSSL: yes])],
fbf14b03
RG
222 [AC_MSG_NOTICE([OpenSSL: no])]
223 )]
a227f47d 224)
90fe8ae6
RG
225AS_IF([test "x$CDB_LIBS" != "x"],
226 [AC_MSG_NOTICE([cdb: yes])],
227 [AC_MSG_NOTICE([cdb: no])]
228)
f441962a
RG
229AS_IF([test "x$LMDB_LIBS" != "x"],
230 [AC_MSG_NOTICE([lmdb: yes])],
231 [AC_MSG_NOTICE([lmdb: no])]
232)
fbf14b03 233
8ee8668e 234AC_MSG_NOTICE([])