-use flag to check for readyness
[oweals/gnunet.git] / configure.ac
index cefc482436b4c558d473bb83b620428147533f59..8374c5c7e46d9a11bcb66a5f84bb5831ab526677 100644 (file)
@@ -216,12 +216,11 @@ AC_CHECK_DECLS([_stati64])
 # 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
@@ -462,6 +461,30 @@ else
        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])
@@ -614,7 +637,7 @@ AC_CHECK_HEADERS([fcntl.h math.h errno.h ctype.h limits.h stdio.h stdlib.h strin
 
 
 # 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],,,
@@ -804,7 +827,7 @@ AC_ARG_WITH(microhttpd,
       yes)
         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],
               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
               AC_RUN_IFELSE([AC_LANG_SOURCE([
                 #include "$native_srcdir/src/include/platform.h"
@@ -812,7 +835,7 @@ AC_ARG_WITH(microhttpd,
                 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"])
@@ -822,7 +845,7 @@ AC_ARG_WITH(microhttpd,
         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.32])
                AC_RUN_IFELSE([AC_LANG_SOURCE([
@@ -831,7 +854,7 @@ AC_ARG_WITH(microhttpd,
                 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"])
@@ -841,7 +864,7 @@ AC_ARG_WITH(microhttpd,
    [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_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"
@@ -849,7 +872,7 @@ AC_ARG_WITH(microhttpd,
                 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"])])
@@ -1059,12 +1082,11 @@ AC_ARG_WITH(gnutls,
         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])
 
@@ -1198,13 +1220,13 @@ AC_ARG_ENABLE([malicious],
    [malicious=0
     enable_malicious=no])
 AC_MSG_RESULT($enable_malicious)
-AM_CONDITIONAL([ENABLE_MALICIOUS], [$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)
@@ -1423,8 +1445,6 @@ src/dv/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
@@ -1463,6 +1483,8 @@ src/regex/Makefile
 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
@@ -1522,6 +1544,7 @@ pkgconfig/gnunetpsyc.pc
 pkgconfig/gnunetpsycstore.pc
 pkgconfig/gnunetregex.pc
 pkgconfig/gnunetrevocation.pc
+pkgconfig/gnunetrps.pc
 pkgconfig/gnunetscalarproduct.pc
 pkgconfig/gnunetset.pc
 pkgconfig/gnunetsocial.pc
@@ -1553,10 +1576,16 @@ 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