]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdistdist/configure.ac
6ee328f24ddc3043cd55c7402fb4690c9a94d94b
[thirdparty/pdns.git] / pdns / dnsdistdist / configure.ac
1 AC_PREREQ([2.61])
2
3 AC_INIT([dnsdist], m4_esyscmd(build-aux/gen-version))
4 AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip parallel-tests 1.11 subdir-objects])
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
10 AC_LANG([C++])
11 AC_GNU_SOURCE
12
13 AC_DEFINE([DNSDIST], [1],
14 [This is dnsdist]
15 )
16
17 LT_PREREQ([2.2.2])
18 LT_INIT([disable-static])
19
20 PDNS_WITH_LIBSODIUM
21 PDNS_CHECK_DNSTAP
22 PDNS_CHECK_RAGEL([dnslabeltext.cc], [www.dnsdist.org])
23 PDNS_CHECK_LIBEDIT
24 PDNS_CHECK_CLOCK_GETTIME
25
26 PDNS_CHECK_OS
27 PTHREAD_SET_NAME
28 PDNS_CHECK_NETWORK_LIBS
29 PDNS_CHECK_PTHREAD_NP
30 PDNS_CHECK_SECURE_MEMSET
31
32
33 PDNS_WITH_PROTOBUF
34
35 boost_required_version=1.42
36 BOOST_REQUIRE([$boost_required_version])
37
38 PDNS_ENABLE_UNIT_TESTS
39 PDNS_WITH_RE2
40 DNSDIST_ENABLE_DNSCRYPT
41 PDNS_WITH_EBPF
42 PDNS_WITH_NET_SNMP
43 PDNS_WITH_LIBCAP
44
45 AX_AVAILABLE_SYSTEMD
46 AM_CONDITIONAL([HAVE_SYSTEMD], [ test x"$systemd" = "xy" ])
47
48 AC_SUBST([YAHTTP_CFLAGS], ['-I$(top_srcdir)/ext/yahttp'])
49 AC_SUBST([YAHTTP_LIBS], ['$(top_builddir)/ext/yahttp/yahttp/libyahttp.la'])
50
51 PDNS_WITH_LUA([mandatory])
52 PDNS_CHECK_LUA_HPP
53
54 DNSDIST_ENABLE_DNS_OVER_TLS
55 DNSDIST_WITH_GNUTLS
56 DNSDIST_WITH_LIBSSL
57 AS_IF([test "x$enable_dns_over_tls" != "xno"], [
58 AS_IF([test "$HAVE_LIBSSL" = "1"], [
59 # we need libcrypto if libssl is enabled
60 PDNS_CHECK_LIBCRYPTO
61 ])
62 AS_IF([test "$HAVE_GNUTLS" = "0" -a "$HAVE_LIBSSL" = "0"], [
63 AC_MSG_ERROR([DNS over TLS support requested but neither GnuTLS nor OpenSSL are available])
64 ])
65 ])
66
67 AX_CXX_COMPILE_STDCXX_11([ext], [mandatory])
68
69 AC_MSG_CHECKING([whether we will enable compiler security checks])
70 AC_ARG_ENABLE([hardening],
71 [AS_HELP_STRING([--disable-hardening], [disable compiler security checks @<:@default=no@:>@])],
72 [enable_hardening=$enableval],
73 [enable_hardening=yes]
74 )
75 AC_MSG_RESULT([$enable_hardening])
76
77 AS_IF([test "x$enable_hardening" != "xno"], [
78 AC_CC_PIE
79 AC_CC_STACK_PROTECTOR
80 AC_CC_PARAM_SSP_BUFFER_SIZE([4])
81 AC_CC_D_FORTIFY_SOURCE
82 AC_LD_RELRO
83 ])
84
85 PDNS_ENABLE_SANITIZERS
86
87 PDNS_CHECK_VIRTUALENV
88
89 LDFLAGS="$RELRO_LDFLAGS $LDFLAGS"
90
91 CFLAGS="$PIE_CFLAGS $CFLAGS"
92 CXXFLAGS="$PIE_CFLAGS $CXXFLAGS"
93 PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS"
94 AC_SUBST([PROGRAM_LDFLAGS])
95
96 AC_SUBST([AM_CPPFLAGS],
97 ["AS_ESCAPE([-I$(top_builddir) -I$(top_srcdir)]) -Wall -O3 -pthread $BOOST_CPPFLAGS"]
98 )
99
100 AC_ARG_VAR(PACKAGEVERSION, [The version used in secpoll queries])
101 AS_IF([test "x$PACKAGEVERSION" != "x"],
102 [AC_DEFINE_UNQUOTED([PACKAGEVERSION], "$PACKAGEVERSION", [Set to the package version used for secpoll])]
103 )
104
105 AC_CONFIG_FILES([Makefile
106 ext/yahttp/Makefile
107 ext/yahttp/yahttp/Makefile])
108
109 AC_OUTPUT
110
111 AC_MSG_NOTICE([])
112 AC_MSG_NOTICE([Configuration summary])
113 AC_MSG_NOTICE([=====================])
114 AC_MSG_NOTICE([])
115 AS_IF([test "x$ac_configure_args" != "x"],
116 [summary_conf_opts=$ac_configure_args],
117 [summary_conf_opts="(no options)"]
118 )
119 AC_MSG_NOTICE([dnsdist configured with: $summary_conf_opts])
120 AC_MSG_NOTICE([])
121 AC_MSG_NOTICE([CC: $CC])
122 AC_MSG_NOTICE([CXX: $CXX])
123 AC_MSG_NOTICE([LD: $LD])
124 AC_MSG_NOTICE([CFLAGS: $CFLAGS])
125 AC_MSG_NOTICE([CPPFLAGS: $CPPFLAGS])
126 AC_MSG_NOTICE([CXXFLAGS: $CXXFLAGS])
127 AC_MSG_NOTICE([LDFLAGS: $LDFLAGS])
128 AC_MSG_NOTICE([LIBS: $LIBS])
129 AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS])
130 AC_MSG_NOTICE([])
131 AC_MSG_NOTICE([Features enabled])
132 AC_MSG_NOTICE([----------------])
133 AC_MSG_NOTICE([Lua: $LUAPC])
134 AS_IF([test "x$PROTOBUF_LIBS" != "x" -a x"$PROTOC" != "x"],
135 [AC_MSG_NOTICE([Protobuf: yes])],
136 [AC_MSG_NOTICE([Protobuf: no])]
137 )
138 AS_IF([test "x$systemd" != "xn"],
139 [AC_MSG_NOTICE([systemd: yes])],
140 [AC_MSG_NOTICE([systemd: no])]
141 )
142 AS_IF([test "x$LIBSODIUM_LIBS" != "x"],
143 [AC_MSG_NOTICE([libsodium: yes])],
144 [AC_MSG_NOTICE([libsodium: no])]
145 )
146 AS_IF([test "x$enable_dnscrypt" != "xno"],
147 [AC_MSG_NOTICE([DNSCrypt: yes])],
148 [AC_MSG_NOTICE([DNSCrypt: no])]
149 )
150 AS_IF([test "x$FSTRM_LIBS" != "x"],
151 [AC_MSG_NOTICE([dnstap: yes])],
152 [AC_MSG_NOTICE([dnstap: no])]
153 )
154 AS_IF([test "x$RE2_LIBS" != "x"],
155 [AC_MSG_NOTICE([re2: yes])],
156 [AC_MSG_NOTICE([re2: no])]
157 )
158 AS_IF([test "x$NET_SNMP_LIBS" != "x"],
159 [AC_MSG_NOTICE([SNMP: yes])],
160 [AC_MSG_NOTICE([SNMP: no])]
161 )
162 AS_IF([test "x$enable_dns_over_tls" != "xno"],
163 [AC_MSG_NOTICE([DNS over TLS: yes])],
164 [AC_MSG_NOTICE([DNS over TLS: no])]
165 )
166 AS_IF([test "x$GNUTLS_LIBS" != "x"],
167 [AC_MSG_NOTICE([GnuTLS: yes])],
168 [AC_MSG_NOTICE([GnuTLS: no])]
169 )
170 AS_IF([test "x$LIBSSL_LIBS" != "x"],
171 [AC_MSG_NOTICE([OpenSSL: yes])],
172 [AC_MSG_NOTICE([OpenSSL: no])]
173 )
174 AC_MSG_NOTICE([])