-stuff
[oweals/gnunet.git] / configure.ac
index 464201f92a976dcdd056edd172af19de12319ddd..d2a6939b33b34d4bf40eb6176d1db0fe76dc9c8e 100644 (file)
 #
 AC_PREREQ(2.61)
 # Checks for programs.
-AC_INIT([gnunet], [0.9.0],[bug-gnunet@gnu.org])
+AC_INIT([gnunet], [0.9.1],[bug-gnunet@gnu.org])
 
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE([gnunet], [0.9.0])
+AM_INIT_AUTOMAKE([gnunet], [0.9.1])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 AC_CONFIG_HEADERS([gnunet_config.h])
 AH_TOP([#define _GNU_SOURCE  1])
@@ -201,6 +201,27 @@ then
   AC_MSG_ERROR([GNUnet needs libgcrypt])
 fi
 
+# Adam shostack suggests the following for Windows:
+# -D_FORTIFY_SOURCE=2 -fstack-protector-all
+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 -fwrapv -fPIE -Wstack-protector"
+    CFLAGS="$CFLAGS --param ssp-buffer-size=1"
+    LDFLAGS="$LDFLAGS -pie"
+fi])
+
+
+# Linker hardening options
+# Currently these options are ELF specific - you can't use this with MacOSX
+AC_ARG_ENABLE(linker-hardening,
+  AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
+[if test x$enableval = xyes; then
+   LDFLAGS="$LDFLAGS -z relro -z now"
+fi])
+
+
 extra_logging=GNUNET_NO
 AC_ARG_ENABLE([logging],
    AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
@@ -347,6 +368,18 @@ fi
 # restore LIBS
 LIBS=$SAVE_LIBS
 
+# test for libunistring
+gl_LIBUNISTRING
+if test $HAVE_LIBUNISTRING != yes; then
+ AC_MSG_ERROR([GNUnet requires libunistring])
+fi
+if test $gl_libunistring_hexversion -le 2305; then
+ AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
+fi
+# restore LIBS
+LIBS=$SAVE_LIBS
+
+
 
 # Checks for standard header files.
 AC_HEADER_DIRENT
@@ -787,6 +820,7 @@ src/core/Makefile
 src/datacache/Makefile
 src/datastore/Makefile
 src/dht/Makefile
+src/dns/Makefile
 src/dv/Makefile
 src/fragmentation/Makefile
 src/fs/Makefile