# This file is part of GNUnet.
-# (C) 2001--2013 Christian Grothoff (and other contributing authors)
+# (C) 2001--2014 Christian Grothoff (and other contributing authors)
#
# GNUnet is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
#
AC_PREREQ(2.61)
# Checks for programs.
-AC_INIT([gnunet], [0.10.0], [bug-gnunet@gnu.org])
+AC_INIT([gnunet], [0.10.1], [bug-gnunet@gnu.org])
AC_CANONICAL_TARGET
AC_CANONICAL_HOST
# 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 netinet/in_systm.h netinet/ip.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],,,
+[#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+])
SAVE_LDFLAGS=$LDFLAGS
SAVE_CPPFLAGS=$CPPFLAGS
# 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/ats-tool/Makefile
src/ats-tests/Makefile
src/block/Makefile
+src/cadet/Makefile
+src/cadet/cadet.conf
src/core/Makefile
src/core/core.conf
src/consensus/Makefile
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/include/Makefile
src/integration-tests/Makefile
src/hostlist/Makefile
-src/mesh/Makefile
-src/mesh/mesh.conf
src/multicast/Makefile
src/multicast/multicast.conf
src/mysql/Makefile
src/peerinfo/Makefile
src/peerinfo/peerinfo.conf
src/peerinfo-tool/Makefile
+src/peerstore/Makefile
+src/peerstore/peerstore.conf
src/postgres/Makefile
src/psyc/Makefile
src/psyc/psyc.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
src/set/set.conf
+src/social/Makefile
+src/social/social.conf
src/statistics/Makefile
src/statistics/statistics.conf
src/template/Makefile
pkgconfig/gnunetarm.pc
pkgconfig/gnunetats.pc
pkgconfig/gnunetblock.pc
+pkgconfig/gnunetcadet.pc
pkgconfig/gnunetconsensus.pc
pkgconfig/gnunetconversation.pc
pkgconfig/gnunetcore.pc
pkgconfig/gnunetgns.pc
pkgconfig/gnunethello.pc
pkgconfig/gnunetidentity.pc
-pkgconfig/gnunetmesh.pc
pkgconfig/gnunetmicrophone.pc
pkgconfig/gnunetmulticast.pc
pkgconfig/gnunetmysql.pc
pkgconfig/gnunetpsycstore.pc
pkgconfig/gnunetregex.pc
pkgconfig/gnunetrevocation.pc
+pkgconfig/gnunetrps.pc
pkgconfig/gnunetscalarproduct.pc
pkgconfig/gnunetset.pc
+pkgconfig/gnunetsocial.pc
pkgconfig/gnunetspeaker.pc
pkgconfig/gnunetstatistics.pc
pkgconfig/gnunettestbed.pc
# sqlite
if test "x$sqlite" = "x0"
then
- AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
+ AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])
fi
# 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
Each GNUnet user should be added to the 'gnunet' group (may
require fresh login to come into effect):
- adduser $USERNAME gnunet
+ adduser USERNAME gnunet
(run the above command as root once for each of your users, replacing
-"$USERNAME" with the respective login names). If you have a global IP
+"USERNAME" with the respective login names). If you have a global IP
address, no further configuration is required.
Optionally, download and compile gnunet-gtk to get a GUI for