# will be more selective!
SAVE_LIBS=$LIBS
-# libgnurx (regex library for W32)
-gnurx=0
-AC_CHECK_LIB(gnurx, regexec, gnurx=1)
-if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
+# tests only run on Windows
+if test "x$build_target" = "xmingw"
then
- AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
+ AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
+ AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
fi
# libgcrypt
AC_ARG_ENABLE(gcc-hardening,
AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
[if test x$enableval = xyes; then
- CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
+ CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
CFLAGS="$CFLAGS --param ssp-buffer-size=1"
LDFLAGS="$LDFLAGS -pie"
AM_CONDITIONAL(HAVE_LIBGNURL, false)
fi
+# libcurl-gnutls
+LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
+if test "x$curl" = xtrue
+then
+ AC_CHECK_HEADERS([curl/curl.h],
+ AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
+ [curl=false])
+ # need libcurl-gnutls.so, everything else is not acceptable
+ AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
+ # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
+
+fi
+if test x$curl = xfalse
+then
+ AM_CONDITIONAL(HAVE_LIBCURL, false)
+if test "$gnurl" = 0
+then
+ AC_MSG_WARN([GNUnet requires libcurl-gnutls >= 7.34])
+fi
+else
+ AM_CONDITIONAL(HAVE_LIBCURL, true)
+ AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
+fi
+
# libidn
AC_MSG_CHECKING([if Libidn can be used])
# Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
-AC_CHECK_HEADERS([malloc.h malloc/malloc.h langinfo.h sys/param.h sys/mount.h sys/statvfs.h sys/select.h sockLib.h sys/mman.h sys/msg.h sys/vfs.h arpa/inet.h fcntl.h libintl.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h sys/time.h unistd.h kstat.h sys/sysinfo.h kvm.h sys/file.h sys/resource.h ifaddrs.h mach/mach.h stddef.h sys/timeb.h terminos.h argz.h ucred.h sys/ucred.h endian.h sys/endian.h execinfo.h])
+AC_CHECK_HEADERS([malloc.h malloc/malloc.h malloc/malloc_np.h langinfo.h sys/param.h sys/mount.h sys/statvfs.h sys/select.h sockLib.h sys/mman.h sys/msg.h sys/vfs.h arpa/inet.h fcntl.h libintl.h netdb.h netinet/in.h sys/ioctl.h sys/socket.h sys/time.h unistd.h kstat.h sys/sysinfo.h kvm.h sys/file.h sys/resource.h ifaddrs.h mach/mach.h stddef.h sys/timeb.h terminos.h argz.h ucred.h sys/ucred.h endian.h sys/endian.h execinfo.h])
# FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
# test for postgres
postgres=false
-AC_MSG_CHECKING(for postgres)
-AC_ARG_WITH(postgres,
- [ --with-postgres=PFX base of postgres installation],
- [AC_MSG_RESULT("$with_postgres")
- case $with_postgres in
- no)
- ;;
- yes)
- AC_CHECK_HEADERS(postgresql/libpq-fe.h,
- postgres=true)
- ;;
- *)
- LDFLAGS="-L$with_postgres/lib $LDFLAGS"
- CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
- AC_CHECK_HEADERS(postgresql/libpq-fe.h,
- EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
- POSTGRES_LDFLAGS="-L$with_postgres/lib"
- POSTGRES_CPPFLAGS="-I$with_postgres/include"
- postgres=true)
- LDFLAGS=$SAVE_LDFLAGS
- CPPFLAGS=$SAVE_CPPFLAGS
- ;;
- esac
- ],
- [AC_MSG_RESULT([--with-postgres not specified])
- AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
-AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
-AC_SUBST(POSTGRES_CPPFLAGS)
-AC_SUBST(POSTGRES_LDFLAGS)
+AX_LIB_POSTGRESQL([])
+if test "$found_postgresql" = "yes"; then
+ postgres=true
+fi
+AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
# test for zlib
SAVE_LDFLAGS=$LDFLAGS
yes)
AC_CHECK_HEADERS([microhttpd.h],
AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
+ AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
+ [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
AC_RUN_IFELSE([AC_LANG_SOURCE([
#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>
- int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
+ int main () { return MHD_VERSION >= 0x0093200 ? 0 : 1; }
])], [
AC_MSG_RESULT(ok)
- lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
+ lmhd=1],[AC_MSG_RESULT(failed)],lmhd=0)]),
[],[#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>]),,
[#include "$native_srcdir/src/include/platform.h"])
CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
AC_CHECK_HEADERS(microhttpd.h,
AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
+ AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
+ [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
AC_RUN_IFELSE([AC_LANG_SOURCE([
#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>
- int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
+ int main () { return MHD_VERSION >= 0x0093200 ? 0 : 1; }
])], [
AC_MSG_RESULT(ok)
- lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
+ lmhd=1],[AC_MSG_RESULT(failed)],lmhd=0)]),
[],[#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>]),,
[#include "$native_srcdir/src/include/platform.h"])
[AC_MSG_RESULT([--with-microhttpd not specified])
AC_CHECK_HEADERS([microhttpd.h],
AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
+ AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
+ [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
AC_RUN_IFELSE([AC_LANG_SOURCE([
#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>
- int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
+ int main () { return MHD_VERSION >= 0x0093200 ? 0 : 1; }
])], [
AC_MSG_RESULT(ok)
- lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
+ lmhd=1],[AC_MSG_RESULT(failed)],lmhd=0)]),
[],[#include "$native_srcdir/src/include/platform.h"
#include <microhttpd.h>]),,
[#include "$native_srcdir/src/include/platform.h"])])
AC_CHECK_LIB([gnutls], [gnutls_priority_set],
gnutls=true))
AC_CHECK_HEADERS([gnutls/dane.h],
- AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
- gnutls_dane=1))
+ AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
+ gnutls_dane=1))
])
AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
-
AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
AC_MSG_RESULT($enable_experimental)
AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
+# should malicious code be compiled (should only be used for testing)?
+AC_MSG_CHECKING(whether to compile malicious code)
+AC_ARG_ENABLE([malicious],
+ [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
+ [if test "x$enableval" = "xno"
+ then
+ malicious=0
+ else
+ malicious=1
+ fi],
+ [malicious=0
+ enable_malicious=no])
+AC_MSG_RESULT($enable_malicious)
+AM_CONDITIONAL([ENABLE_MALICIOUS], [1=$malicious])
+AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
+ [enable compilation of malicious code])
+
# should services be started by default when a peer starts? Some services may
# choose to never start by default and it is upto the service/module developer to
-# decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART" in
+# decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART@" in
# the service/module's conf.in file.
AUTOSTART="YES"
AC_MSG_CHECKING(whether to auto-start peer's services by default)
src/dv/dv.conf
src/env/Makefile
src/exit/Makefile
-src/experimentation/Makefile
-src/experimentation/experimentation.conf
src/fragmentation/Makefile
src/fs/Makefile
src/fs/fs.conf
src/regex/regex.conf
src/revocation/Makefile
src/revocation/revocation.conf
+src/rps/Makefile
+src/rps/rps.conf
src/secretsharing/Makefile
src/secretsharing/secretsharing.conf
src/sensor/Makefile
src/sensor/sensor.conf
+src/sensordashboard/Makefile
+src/sensordashboard/sensordashboard.conf
src/scalarproduct/Makefile
src/scalarproduct/scalarproduct.conf
src/set/Makefile
pkgconfig/gnunetpsycstore.pc
pkgconfig/gnunetregex.pc
pkgconfig/gnunetrevocation.pc
+pkgconfig/gnunetrps.pc
pkgconfig/gnunetscalarproduct.pc
pkgconfig/gnunetset.pc
pkgconfig/gnunetsocial.pc
# libgnurl
if test "x$gnurl" = "x0"
then
- AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
- AC_MSG_WARN([libgnurl not found. hostlist daemon will not be compiled, and you probably WANT hostlist daemon])
+ if test "x$curl" = "x0"
+ then
+ AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
+ AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])
+ else
+ AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])
+ fi
fi
+
# bluetooth
if test "x$bluetooth" = "x0"
then