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