# 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
AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
AC_CHECK_LIB(intl, gettext)
- LDFLAGS="$LDFLAGS -no-undefined"
CFLAGS="-mms-bitfields $CFLAGS"
build_target="cygwin"
LIBPREFIX=lib
AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
AC_CHECK_LIB(intl, gettext)
- LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols"
+ LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
CFLAGS="-mms-bitfields $CFLAGS"
CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
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"
if (!gcry_check_version (GCRYPT_VERSION))
{
fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
- return 1;
+ return 1;
}
gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
LDFLAGS="${LDFLAGS} -L$libidn/lib"
CPPFLAGS="${CPPFLAGS} -I$libidn/include"
fi
- AC_CHECK_HEADER(idna.h,
- AC_CHECK_LIB(idn, stringprep_check_version,
- [libidn=yes LIBS="${LIBS} -lidn"],
- AC_MSG_FAILURE([GNUnet requires libidn])),
- AC_MSG_FAILURE([GNUnet requires libidn]))
+fi
+libidn=no
+AC_CHECK_HEADER(idna.h,
+ AC_CHECK_LIB(idn, stringprep_check_version,
+ [libidn=yes LIBS="${LIBS} -lidn"], []), [])
+if test "$libidn" != "yes"; then
+ AC_MSG_FAILURE([GNUnet requires libidn.
+libidn-1.13 should be sufficient, newer versions work too.])
fi
AC_MSG_RESULT($libidn)
# 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 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
# gnutls
gnutls=0
+gnutls_dane=0
AC_MSG_CHECKING(for gnutls)
AC_ARG_WITH(gnutls,
[ --with-gnutls=PFX base of gnutls installation],
AC_CHECK_HEADERS([gnutls/abstract.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))
;;
*)
LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
AC_CHECK_LIB([gnutls], [gnutls_priority_set],
EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
gnutls=true))
+ AC_CHECK_HEADERS([gnutls/dane.h],
+ AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
+ gnutls_dane=1))
;;
esac
],
[AC_MSG_RESULT([--with-gnutls not specified])
AC_CHECK_HEADERS([gnutls/abstract.h],
AC_CHECK_LIB([gnutls], [gnutls_priority_set],
- gnutls=true))])
+ gnutls=true))
+ AC_CHECK_HEADERS([gnutls/dane.h],
+ 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])
-gnutls_dane=0
-AC_CHECK_HEADERS([gnutls/dane.h],
- AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
- gnutls_dane=1))
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], [$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
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/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/revocation/revocation.conf
src/secretsharing/Makefile
src/secretsharing/secretsharing.conf
+src/sensor/Makefile
+src/sensor/sensor.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/gnunetrevocation.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])
fi
# bluetooth
then
AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
else
-if test x$gnutls_dane != xtrue
+if test "x$gnutls_dane" != "x1"
then
AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
fi
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