Checking for libcurl >= 7.18.0
[oweals/gnunet.git] / configure.ac
index 20bff6c6af1eac69aef12f806805dabe7d90c7bc..19bdb5ee847a53f865b0389fdc0370da3ebb4ae3 100644 (file)
@@ -1,5 +1,5 @@
 # This file is part of GNUnet.
-# (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors)
+# (C) 2001--2010 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
@@ -21,8 +21,8 @@
 #
 #
 AC_PREREQ(2.61)
-AC_INIT([gnunet], [0.9.0pre0],[bug-gnunet@gnu.org])
-AM_INIT_AUTOMAKE([gnunet], [0.9.0pre0])
+AC_INIT([gnunet], [0.9.0pre1],[bug-gnunet@gnu.org])
+AM_INIT_AUTOMAKE([gnunet], [0.9.0pre1])
 AC_CONFIG_HEADERS([gnunet_config.h])
 
 AH_TOP([#define _GNU_SOURCE  1])
@@ -38,7 +38,6 @@ AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 AM_PROG_CC_C_O
-LT_CONFIG_LTDL_DIR([libltdl])
 AC_CANONICAL_HOST
 LT_INIT([disable-static dlopen win32-dll])
 LTDL_INIT
@@ -69,10 +68,11 @@ DEFAULT_INTERFACE="\"eth0\""
 # Check system type
 case "$host_os" in
 *darwin* | *rhapsody* | *macosx*)
-     AC_DEFINE_UNQUOTED(OSX,1,[This is an OS X system])
+     AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
+     CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
      CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
      AC_MSG_WARN([The VPN application cannot be compiled on your OS])
-     build_target="macosx"
+     build_target="darwin"
      DEFAULT_INTERFACE="\"en0\""
      LIBPREFIX=
      DLLDIR=lib
@@ -140,7 +140,7 @@ netbsd*)
      AC_CHECK_LIB(intl, gettext)
      LDFLAGS="$LDFLAGS -no-undefined -Wl,--export-all-symbols"
      LIBS="$LIBS -lws2_32 -lplibc"
-     CFLAGS="-mms-bitfields -I../../libltdl $CFLAGS"
+     CFLAGS="-mms-bitfields $CFLAGS"
      build_target="mingw"
      AC_PROG_CXX
      LIBPREFIX=lib
@@ -155,7 +155,7 @@ AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should
 AC_SUBST(DEFAULT_INTERFACE)
 
 AC_MSG_CHECKING([for build target])
-AM_CONDITIONAL(MACOSX,  test "$build_target" = "macosx")
+AM_CONDITIONAL(DARWIN,  test "$build_target" = "darwin")
 AM_CONDITIONAL(CYGWIN,  test "$build_target" = "cygwin")
 AM_CONDITIONAL(MINGW,   test "$build_target" = "mingw")
 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
@@ -189,7 +189,7 @@ fi
 
 
 # libcurl
-LIBCURL_CHECK_CONFIG(,7.15.4,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.15.4]))
+LIBCURL_CHECK_CONFIG(,7.18.0,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.18.0]))
 # restore LIBS
 LIBS=$SAVE_LIBS
 
@@ -211,14 +211,14 @@ AC_ARG_WITH(extractor,
         ;;
       yes)
         AC_CHECK_HEADERS(extractor.h,
-          AC_CHECK_LIB([extractor], [EXTRACTOR_loadDefaultLibraries],
+          AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
             extractor=1))
         ;;
       *)
         LDFLAGS="-L$with_extractor/lib $LDFLAGS"
         CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
         AC_CHECK_HEADERS(extractor.h,
-          AC_CHECK_LIB([extractor], [EXTRACTOR_loadDefaultLibraries],
+          AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
             EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
             extractor=1))
         ;;
@@ -226,7 +226,7 @@ AC_ARG_WITH(extractor,
    ],
    [AC_MSG_RESULT([--with-extractor not specified])
     AC_CHECK_HEADERS(extractor.h,
-     AC_CHECK_LIB([extractor], [EXTRACTOR_loadDefaultLibraries],
+     AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
       extractor=1))])
 if test "$extractor" != 1
 then
@@ -244,10 +244,7 @@ AC_HEADER_STDC
 AC_CHECK_HEADERS([fcntl.h math.h errno.h ctype.h limits.h stdio.h stdlib.h string.h unistd.h stdarg.h signal.h locale.h sys/stat.h sys/types.h],,AC_MSG_ERROR([Compiling GNUnet requires standard UNIX headers files]))
 
 # 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([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 iconv.h ifaddrs.h mach/mach.h stddef.h sys/timeb.h terminos.h])
-
-# Check for GMP header (and abort if not present)
-AC_CHECK_HEADERS([gmp.h],,AC_MSG_ERROR([Compiling GNUnet requires gmp.h (from the GNU MP library, libgmp)]))
+AC_CHECK_HEADERS([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])
 
 # test for libgmp
 gmp=0
@@ -439,72 +436,6 @@ then
  AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
 fi
 
-# GNUnet Setup
-dialog=0
-LIBS="-lm $LIBS"
-AC_CHECK_LIB([ncursesw],[wmove])
-AC_MSG_CHECKING([for dialog 1.0-20051207])
-AC_ARG_WITH(dialog,
-   [  --with-dialog=PFX       base of dialog installation],
-   [AC_MSG_RESULT([$with_dialog])
-    case $with_dialog in
-      no)
-        ;;
-      yes)
-        AC_CHECK_HEADERS(dialog.h,
-          AC_CHECK_LIB([dialog], [dlg_menu],
-            dialog=1))
-        ;;
-      *)
-        LDFLAGS="-L$with_dialog/lib $LDFLAGS"
-        CPPFLAGS="-I$with_dialog/include $CPPFLAGS"
-        AC_CHECK_HEADERS(dialog.h,
-          AC_CHECK_LIB([dialog], [dlg_menu],
-            EXT_LIB_PATH="-L$with_dialog/lib $EXT_LIB_PATH"
-              dialog=1))
-        ;;
-    esac
-   ],
-   [AC_MSG_RESULT([--with-dialog not specified])
-    AC_CHECK_HEADERS(dialog.h,
-      AC_CHECK_LIB([dialog], [dlg_menu],
-          dialog=1))])
-
-AM_CONDITIONAL(HAVE_DIALOG, test x$dialog = x1)
-AC_DEFINE_UNQUOTED([HAVE_DIALOG], $dialog, [We have dialog])
-
-cdialog=0
-AC_ARG_WITH(cdialog,
-   [  --with-cdialog=PFX      base of cdialog installation],
-   [AC_MSG_RESULT([$with_cdialog])
-    case $with_cdialog in
-      no)
-        ;;
-      yes)
-        AC_CHECK_HEADERS(cdialog/dialog.h,
-          AC_CHECK_LIB([cdialog], [dlg_menu],
-            cdialog=1))
-        ;;
-      *)
-        LDFLAGS="-L$with_cdialog/lib $LDFLAGS"
-        CPPFLAGS="-I$with_cdialog/include $CPPFLAGS"
-        AC_CHECK_HEADERS(cdialog/dialog.h,
-          AC_CHECK_LIB([cdialog], [dlg_menu],
-            EXT_LIB_PATH="-L$with_cdialog/lib $EXT_LIB_PATH"
-              cdialog=1))
-        ;;
-    esac
-   ],
-   [AC_MSG_RESULT([--with-cdialog not specified])
-    AC_CHECK_HEADERS(cdialog/dialog.h,
-      AC_CHECK_LIB([cdialog], [dlg_menu],
-          cdialog=1))])
-
-AM_CONDITIONAL(HAVE_CDIALOG, test x$cdialog = x1)
-AC_DEFINE_UNQUOTED([HAVE_CDIALOG], $cdialog, [We have cdialog])
-# restore LIBS
-LIBS=$SAVE_LIBS
-
 # libmicrohttpd
 lmhd=0
 AC_MSG_CHECKING([for libmicrohttpd])
@@ -547,9 +478,67 @@ AC_ARG_WITH(microhttpd,
        [#include "src/include/platform.h"])])
 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
+
+
+# openssl
+openssl=0
+AC_MSG_CHECKING([for openssl])
+AC_ARG_WITH(openssl,
+   [  --with-openssl=PFX   base of openssl installation],
+   [AC_MSG_RESULT([$with_openssl])
+    case $with_openssl in
+      no)
+        ;;
+      yes)
+        AC_CHECK_HEADERS([openssl/ssl.h],
+            AC_CHECK_LIB([ssl], [SSL_new],
+            openssl=1))
+        ;;
+      *)
+        LDFLAGS="-L$with_openssl/lib $LDFLAGS"
+        CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
+        AC_CHECK_HEADERS([openssl/ssl.h],
+            AC_CHECK_LIB([ssl], [SSL_new],
+              EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
+              openssl=1))
+        ;;
+    esac
+   ],
+   [AC_MSG_RESULT([--with-openssl not specified])
+    AC_CHECK_HEADERS([openssl/ssl.h],
+        AC_CHECK_LIB([ssl], [SSL_new],
+          openssl=1))])
+AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
+AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
+
+
+
+
+
+
 # restore LIBS
 LIBS=$SAVE_LIBS
 
+# check for python & pexpect (used for some testcases only)
+AM_PATH_PYTHON([2.5],, [:])
+AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
+
+if test "$PYTHON" != :
+then
+  AC_MSG_CHECKING([for pexpect])
+  $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
+  PYEX=$?
+  AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
+  if test $PYEX -eq 0
+  then
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([not found])
+  fi
+else
+  AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
+fi
+
 # libesmtp
 esmtp=0
 AC_MSG_CHECKING([for libesmtp])
@@ -584,14 +573,13 @@ AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
 LIBS=$SAVE_LIBS
 
 # check for gettext
-AM_GNU_GETTEXT_VERSION([0.16.1])
 AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.16.1])
 
 # check for iconv
 AM_ICONV
 
 # Checks for standard typedefs, structures, and compiler characteristics.
-AC_C_CONST
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_TYPE_MODE_T
@@ -600,12 +588,22 @@ AC_HEADER_STAT
 AC_HEADER_STDBOOL
 AC_STRUCT_TM
 
+AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
+   [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
+   ],
+   [],
+   [
+      #include <sys/types.h>
+      #include <sys/socket.h>
+      #include <netinet/in.h>
+   ])
 
 
 
 # Checks for library functions.
 AC_FUNC_CLOSEDIR_VOID
 AC_FUNC_FORK
+AC_FUNC_VFORK
 AC_PROG_GCC_TRADITIONAL
 AC_FUNC_MEMCMP
 AC_FUNC_SELECT_ARGTYPES
@@ -618,56 +616,11 @@ AC_FUNC_VPRINTF
 AC_HEADER_SYS_WAIT
 AC_TYPE_OFF_T
 AC_TYPE_UID_T
-AC_CHECK_FUNCS([floor gethostname memmove rmdir strncasecmp strrchr strtol atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo select socket strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk mmap mremap setrlimit gethostbyaddr initgroups getifaddrs freeifaddrs getnameinfo getaddrinfo inet_ntoa localtime_r nl_langinfo putenv realpath strndup gethostbyname2 gethostbyname])
+AC_CHECK_FUNCS([floor gethostname memmove rmdir strncasecmp strrchr strtol atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo select socket strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk mmap mremap setrlimit sysconf gethostbyaddr initgroups getifaddrs freeifaddrs getnameinfo getaddrinfo inet_ntoa localtime_r nl_langinfo putenv realpath strndup gethostbyname2 gethostbyname])
 
 # restore LIBS
 LIBS=$SAVE_LIBS
 
-
-
-# check for guile
-guile=0
-AC_MSG_CHECKING(for guile 1.8)
-AC_ARG_WITH(guile,
-   [  --with-guile=PFX        base of guile installation],
-   [AC_MSG_RESULT([$with_guile])
-    case $with_guile in
-      no)
-        ;;
-      yes)
-        AC_CHECK_HEADERS(libguile.h,
-          AC_CHECK_LIB([guile], [scm_c_define_gsubr],
-            guile=1, [],
-            -lgmp $LIBLTDL))
-        ;;
-      *)
-        LDFLAGS="-L$with_guile/lib $LDFLAGS"
-        CPPFLAGS="-I$with_guile/include $CPPFLAGS"
-        AC_CHECK_HEADERS(libguile.h,
-          AC_CHECK_LIB([guile], [scm_c_define_gsubr],
-            EXT_LIB_PATH="-L$with_guile/lib $EXT_LIB_PATH"
-            guile=1, [],
-            -lgmp $LIBLTDL))
-        ;;
-    esac
-   ],
-   [AC_MSG_RESULT([--with-guile not specified])
-    AC_CHECK_HEADERS(libguile.h,
-     AC_CHECK_LIB([guile], [scm_c_define_gsubr],
-      guile=1, [], -lgmp $LIBLTDL))])
-
-if test "$guile" = 1
-then
- AC_CHECK_LIB([guile], [scm_init_guile], [],
-       AC_MSG_ERROR([Guile doesn't provide scm_init_guile(). Please report to bug-gnunet@gnu.org]), -lgmp $LIBLTDL)
- AC_DEFINE_UNQUOTED([HAVE_GUILE], 1, [We have GUILE])
-else
- AC_DEFINE_UNQUOTED([HAVE_GUILE], 0, [We do NOT have GUILE])
-fi
-AM_CONDITIONAL(HAVE_GUILE, test x$guile = x1)
-# restore LIBS
-LIBS=$SAVE_LIBS
-
 gn_user_home_dir="~/.gnunet"
 AC_ARG_WITH(user-home-dir,
         AC_HELP_STRING(
@@ -689,13 +642,6 @@ AC_ARG_WITH(daemon-config-dir,
                 [default daemon config directory (/etc)]),
         [gn_daemon_config_dir=$withval])
 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
-gn_daemon_pidfile="/var/run/gnunetd/pid"
-AC_ARG_WITH(daemon-pidfile,
-        AC_HELP_STRING(
-                [--with-daemon-pidfile=FILE],
-                [default daemon pidfile (/var/run/gnunetd/pid)]),
-        [gn_daemon_pidfile=$withval])
-AC_SUBST(GN_DAEMON_PIDFILE, $gn_daemon_pidfile)
 
 GN_INTLINCL=""
 GN_LIBINTL="$LTLIBINTL"
@@ -735,8 +681,6 @@ AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
                                         [use_gcov=yes], [use_gcov=no])
 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
 
-
-
 AC_CONFIG_FILES([ 
 Makefile
 contrib/Makefile
@@ -744,24 +688,31 @@ m4/Makefile
 po/Makefile.in 
 src/Makefile
 src/arm/Makefile
+src/block/Makefile
 src/core/Makefile
 src/datacache/Makefile
 src/datastore/Makefile
+src/dht/Makefile
+src/dv/Makefile
 src/fragmentation/Makefile
 src/fs/Makefile
 src/hello/Makefile
 src/include/Makefile
 src/include/gnunet_directories.h
 src/hostlist/Makefile
-src/peer/Makefile
+src/monkey/Makefile
+src/nat/Makefile
+src/nat/libnatpmp/Makefile
+src/nat/miniupnp/Makefile
 src/peerinfo/Makefile
-src/resolver/Makefile
+src/peerinfo-tool/Makefile
 src/statistics/Makefile
 src/template/Makefile
 src/testing/Makefile
 src/topology/Makefile
 src/transport/Makefile
 src/util/Makefile
+src/vpn/Makefile
 ])
 AC_OUTPUT
 
@@ -779,24 +730,23 @@ then
   AC_MSG_NOTICE([NOTICE: sqlite not found.  sqLite support will not be compiled.])
 fi
 
-if test "x$dialog" != "x1" -a "x$cdialog" != "x1"
-then
- AC_MSG_NOTICE([NOTICE: curses based gnunet-setup frontends will not be installed.])
-fi
-
 if test "x$lmhd" != "x1"
 then
  AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
 fi
 
-AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite])
+if test "x$esmtp" != "x1"
+then
+ AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
+fi
 
-# guile
-if test "x$guile" = "x0"
+if test "x$openssl" != "x1"
 then
- AC_MSG_NOTICE([WARNING: Guile not found, gnunet-setup will not be installed.])
+ AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
 fi
 
+AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
+
 if test "$enable_framework_build" = "yes"
 then
   AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])