]>
Commit | Line | Data |
---|---|---|
d9122321 RK |
1 | AC_PREREQ([2.61]) |
2 | ||
831525d2 | 3 | AC_INIT([dnsdist], m4_esyscmd(build-aux/gen-version)) |
50bed881 | 4 | AM_INIT_AUTOMAKE([foreign dist-bzip2 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++]) |
89265bd3 RK |
11 | |
12 | LT_PREREQ([2.2.2]) | |
13 | LT_INIT([disable-static]) | |
14 | ||
49ba8993 | 15 | PDNS_CHECK_LIBSODIUM |
30bfe7f6 | 16 | DNSDIST_CHECK_RAGEL |
289351c3 | 17 | PDNS_CHECK_LIBEDIT |
bcd17c71 | 18 | PDNS_CHECK_CLOCK_GETTIME |
2d8a1c75 | 19 | |
65613131 PL |
20 | PDNS_CHECK_OS |
21 | PDNS_CHECK_NETWORK_LIBS | |
22 | ||
2d8a1c75 PL |
23 | boost_required_version=1.35 |
24 | ||
25 | PDNS_WITH_PROTOBUF | |
26 | AS_IF([test "x$PROTOBUF_LIBS" != "x" -a x"$PROTOC" != "x"], | |
27 | # The protobuf code needs boost::uuid, which is available from 1.42 onward | |
d778e06d PL |
28 | [AC_MSG_WARN([Bumping minimal Boost requirement to 1.42. To keep the requirement at 1.35, disable protobuf support]) |
29 | boost_required_version=1.42] | |
2d8a1c75 PL |
30 | ) |
31 | ||
32 | BOOST_REQUIRE([$boost_required_version]) | |
2d8a1c75 | 33 | |
ca404e94 | 34 | PDNS_ENABLE_UNIT_TESTS |
4ed8dfeb | 35 | PDNS_CHECK_RE2 |
11e1e08b | 36 | DNSDIST_ENABLE_DNSCRYPT |
87b515ed | 37 | PDNS_WITH_EBPF |
9f4eb5cc | 38 | PDNS_WITH_NET_SNMP |
11e1e08b | 39 | |
6ab65223 PL |
40 | AX_AVAILABLE_SYSTEMD |
41 | AM_CONDITIONAL([HAVE_SYSTEMD], [ test x"$systemd" = "xy" ]) | |
42 | ||
f8204e9e | 43 | AC_SUBST([YAHTTP_CFLAGS], ['-I$(top_srcdir)/ext/yahttp']) |
23448838 | 44 | AC_SUBST([YAHTTP_LIBS], ['$(top_builddir)/ext/yahttp/yahttp/libyahttp.la']) |
15e9de5a RG |
45 | |
46 | PDNS_WITH_LUAJIT | |
47 | AS_IF([test "x$with_luajit" = "xno"], [ | |
48 | PDNS_WITH_LUA | |
49 | ]) | |
50 | AS_IF([test "x$LUAPC" = "x" -a "x$LUAJITPC" = "x"], [ | |
51 | AC_MSG_ERROR([Neither Lua nor LuaJIT found, Lua support is not optional]) | |
52 | ]) | |
9a927586 | 53 | PDNS_CHECK_LUA_HPP |
15e9de5a | 54 | |
8c8b9197 | 55 | AX_CXX_COMPILE_STDCXX_11([ext], [mandatory]) |
bbfefc98 | 56 | |
bfb7cc84 RG |
57 | AC_MSG_CHECKING([whether we will enable compiler security checks]) |
58 | AC_ARG_ENABLE([hardening], | |
8c8b9197 | 59 | [AS_HELP_STRING([--disable-hardening], [disable compiler security checks @<:@default=no@:>@])], |
bfb7cc84 RG |
60 | [enable_hardening=$enableval], |
61 | [enable_hardening=yes] | |
62 | ) | |
63 | AC_MSG_RESULT([$enable_hardening]) | |
64 | ||
65 | AS_IF([test "x$enable_hardening" != "xno"], [ | |
66 | AC_CC_PIE | |
67 | AC_CC_STACK_PROTECTOR | |
68 | AC_CC_PARAM_SSP_BUFFER_SIZE([4]) | |
69 | AC_CC_D_FORTIFY_SOURCE | |
70 | AC_LD_RELRO | |
71 | ]) | |
72 | ||
e85e4d88 RG |
73 | PDNS_ENABLE_SANITIZERS |
74 | ||
20d81666 | 75 | PDNS_CHECK_VIRTUALENV |
f68a9074 | 76 | |
bfb7cc84 RG |
77 | LDFLAGS="$RELRO_LDFLAGS $LDFLAGS" |
78 | ||
b0e68161 RK |
79 | CFLAGS="$PIE_CFLAGS $CFLAGS" |
80 | CXXFLAGS="$PIE_CFLAGS $CXXFLAGS" | |
81 | PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS" | |
bfb7cc84 RG |
82 | AC_SUBST([PROGRAM_LDFLAGS]) |
83 | ||
4649d67b RK |
84 | AC_SUBST([AM_CPPFLAGS], |
85 | ["AS_ESCAPE([-I$(top_builddir) -I$(top_srcdir)]) -Wall -O3 -pthread $BOOST_CPPFLAGS"] | |
86 | ) | |
87 | ||
50bed881 | 88 | AC_CONFIG_FILES([Makefile |
f8204e9e PL |
89 | ext/yahttp/Makefile |
90 | ext/yahttp/yahttp/Makefile]) | |
23448838 | 91 | |
50bed881 | 92 | AC_OUTPUT |
8ee8668e PL |
93 | |
94 | AC_MSG_NOTICE([]) | |
95 | AC_MSG_NOTICE([Configuration summary]) | |
96 | AC_MSG_NOTICE([=====================]) | |
97 | AC_MSG_NOTICE([]) | |
98 | AS_IF([test "x$ac_configure_args" != "x"], | |
99 | [summary_conf_opts=$ac_configure_args], | |
100 | [summary_conf_opts="(no options)"] | |
101 | ) | |
102 | AC_MSG_NOTICE([dnsdist configured with: $summary_conf_opts]) | |
103 | AC_MSG_NOTICE([]) | |
104 | AC_MSG_NOTICE([CC: $CC]) | |
105 | AC_MSG_NOTICE([CXX: $CXX]) | |
106 | AC_MSG_NOTICE([LD: $LD]) | |
107 | AC_MSG_NOTICE([CFLAGS: $CFLAGS]) | |
108 | AC_MSG_NOTICE([CPPFLAGS: $CPPFLAGS]) | |
109 | AC_MSG_NOTICE([CXXFLAGS: $CXXFLAGS]) | |
110 | AC_MSG_NOTICE([LDFLAGS: $LDFLAGS]) | |
111 | AC_MSG_NOTICE([LIBS: $LIBS]) | |
112 | AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS]) | |
113 | AC_MSG_NOTICE([]) | |
114 | AC_MSG_NOTICE([Features enabled]) | |
115 | AC_MSG_NOTICE([----------------]) | |
116 | AS_IF([test "x$LUAPC" != "x"], | |
117 | [AC_MSG_NOTICE([Lua: $LUAPC])], | |
118 | [AS_IF([test "x$LUAJITPC" != "x"], | |
119 | [AC_MSG_NOTICE([LuaJit: $LUAJITPC])], | |
120 | [AC_MSG_NOTICE([Lua/LuaJit: no])]) | |
121 | ]) | |
122 | AS_IF([test "x$PROTOBUF_LIBS" != "x" -a x"$PROTOC" != "x"], | |
123 | [AC_MSG_NOTICE([Protobuf: yes])], | |
124 | [AC_MSG_NOTICE([Protobuf: no])] | |
125 | ) | |
126 | AS_IF([test "x$systemd" != "xn"], | |
127 | [AC_MSG_NOTICE([systemd: yes])], | |
128 | [AC_MSG_NOTICE([systemd: no])] | |
129 | ) | |
130 | AS_IF([test "x$LIBSODIUM_LIBS" != "x"], | |
131 | [AC_MSG_NOTICE([libsodium: yes])], | |
132 | [AC_MSG_NOTICE([libsodium: no])] | |
133 | ) | |
134 | AS_IF([test "x$enable_dnscrypt" != "xno"], | |
135 | [AC_MSG_NOTICE([DNSCrypt: yes])], | |
136 | [AC_MSG_NOTICE([DNSCrypt: no])] | |
137 | ) | |
138 | AS_IF([test "x$RE2_LIBS" != "x"], | |
139 | [AC_MSG_NOTICE([re2: yes])], | |
140 | [AC_MSG_NOTICE([re2: no])] | |
141 | ) | |
9f4eb5cc RG |
142 | AS_IF([test "x$NET_SNMP_LIBS" != "x"], |
143 | [AC_MSG_NOTICE([SNMP: yes])], | |
144 | [AC_MSG_NOTICE([SNMP: no])] | |
145 | ) | |
8ee8668e | 146 | AC_MSG_NOTICE([]) |