AC_PROG_CXX
AC_LANG([C++])
-PDNS_CHECK_TIME_T
-
AC_DEFINE([DNSDIST], [1],
[This is dnsdist]
)
LT_PREREQ([2.2.2])
LT_INIT([disable-static])
-CFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter $CFLAGS"
-CXXFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls $CXXFLAGS"
+CFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter -fvisibility=hidden $CFLAGS"
+CXXFLAGS="-g -O3 -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls -fvisibility=hidden $CXXFLAGS"
PDNS_WITH_LIBSODIUM
PDNS_CHECK_DNSTAP([auto])
PDNS_CHECK_RAGEL([dnslabeltext.cc], [www.dnsdist.org])
-PDNS_CHECK_LIBEDIT
+PDNS_WITH_LIBEDIT
PDNS_CHECK_CLOCK_GETTIME
PDNS_CHECK_OS
PDNS_CHECK_NETWORK_LIBS
PDNS_CHECK_PTHREAD_NP
PDNS_CHECK_SECURE_MEMSET
+AC_FUNC_STRERROR_R
BOOST_REQUIRE([1.42])
dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is
dnl using the defines.
AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r])
+AC_CHECK_FUNCS_ONCE([getrandom getentropy arc4random arc4random_uniform arc4random_buf])
AC_SUBST([YAHTTP_CFLAGS], ['-I$(top_srcdir)/ext/yahttp'])
AC_SUBST([YAHTTP_LIBS], ['$(top_builddir)/ext/yahttp/yahttp/libyahttp.la'])
AC_SUBST([IPCRYPT_CFLAGS], ['-I$(top_srcdir)/ext/ipcrypt'])
AC_SUBST([IPCRYPT_LIBS], ['$(top_builddir)/ext/ipcrypt/libipcrypt.la'])
+AC_SUBST([ARC4RANDOM_LIBS], ['$(top_builddir)/ext/arc4random/libarc4random.la'])
PDNS_WITH_LUA([mandatory])
AS_IF([test "x$LUAPC" = "xluajit"], [
- # export all symbols to be able to use the Lua FFI interface
+ # export all symbols with default visibility, to be able to use the Lua FFI interface
AC_MSG_NOTICE([Adding -rdynamic to export all symbols for the Lua FFI interface])
LDFLAGS="$LDFLAGS -rdynamic"
])
PDNS_CHECK_LIBCRYPTO
+DNSDIST_ENABLE_TLS_PROVIDERS
+
PDNS_ENABLE_DNS_OVER_TLS
DNSDIST_ENABLE_DNS_OVER_HTTPS
PDNS_WITH_NGHTTP2
-PDNS_CHECK_CDB
+DNSDIST_WITH_CDB
PDNS_CHECK_LMDB
+PDNS_ENABLE_IPCIPHER
AX_CXX_COMPILE_STDCXX_17([noext], [mandatory])
AC_LD_RELRO
])
+PDNS_INIT_AUTO_VARS
+
PDNS_ENABLE_SANITIZERS
+PDNS_ENABLE_LTO
PDNS_CHECK_PYTHON_VENV
CFLAGS="$SANITIZER_FLAGS $PIE_CFLAGS $CFLAGS"
CXXFLAGS="$SANITIZER_FLAGS $PIE_CFLAGS $CXXFLAGS"
+CCVERSION=`$CC --version | head -1`
+CXXVERSION=`$CXX --version | head -1`
+
PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS"
AC_SUBST([PROGRAM_LDFLAGS])
)
AC_CONFIG_FILES([Makefile
+ ext/arc4random/Makefile
ext/yahttp/Makefile
ext/yahttp/yahttp/Makefile
ext/ipcrypt/Makefile])
)
AC_MSG_NOTICE([dnsdist configured with: $summary_conf_opts])
AC_MSG_NOTICE([])
-AC_MSG_NOTICE([CC: $CC])
-AC_MSG_NOTICE([CXX: $CXX])
+AC_MSG_NOTICE([CC: $CC ($CCVERSION)])
+AC_MSG_NOTICE([CXX: $CXX ($CXXVERSION)])
AC_MSG_NOTICE([LD: $LD])
AC_MSG_NOTICE([CFLAGS: $CFLAGS])
AC_MSG_NOTICE([CPPFLAGS: $CPPFLAGS])
[AC_MSG_NOTICE([systemd: yes])],
[AC_MSG_NOTICE([systemd: no])]
)
-AS_IF([test "x$LIBCRYPTO_LIBS" != "x"],
+AS_IF([test "x$HAVE_IPCIPHER" = "x1"],
[AC_MSG_NOTICE([ipcipher: yes])],
[AC_MSG_NOTICE([ipcipher: no])]
)
+AS_IF([test "x$LIBEDIT_LIBS" != "x"],
+ [AC_MSG_NOTICE([libedit: yes])],
+ [AC_MSG_NOTICE([libedit: no])]
+)
AS_IF([test "x$LIBSODIUM_LIBS" != "x"],
[AC_MSG_NOTICE([libsodium: yes])],
[AC_MSG_NOTICE([libsodium: no])]