1 # This file is part of GNUnet.
2 # (C) 2001--2010 Christian Grothoff (and other contributing authors)
4 # GNUnet is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published
6 # by the Free Software Foundation; either version 2, or (at your
7 # option) any later version.
9 # GNUnet is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with GNUnet; see the file COPYING. If not, write to the
16 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 # Boston, MA 02111-1307, USA.
20 # Process this file with autoconf to produce a configure script.
24 AC_INIT([gnunet], [0.9.0pre2],[bug-gnunet@gnu.org])
25 AM_INIT_AUTOMAKE([gnunet], [0.9.0pre2])
26 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 AC_CONFIG_HEADERS([gnunet_config.h])
29 AH_TOP([#define _GNU_SOURCE 1])
31 # Checks for programs.
45 LT_INIT([disable-static dlopen win32-dll])
56 if test "$enable_shared" = "no"
58 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
61 CFLAGS="-Wall $CFLAGS"
62 # use '-fno-strict-aliasing', but only if the compiler can take it
63 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
65 CFLAGS="-fno-strict-aliasing $CFLAGS"
68 # Use Linux interface name unless the OS has a different preference
69 DEFAULT_INTERFACE="\"eth0\""
73 *darwin* | *rhapsody* | *macosx*)
74 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
75 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
76 CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
77 AC_MSG_WARN([The VPN application cannot be compiled on your OS])
79 DEFAULT_INTERFACE="\"en0\""
84 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
91 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
92 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
93 CFLAGS="-D_THREAD_SAFE $CFLAGS"
94 build_target="freebsd"
99 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
100 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
101 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
102 build_target="openbsd"
107 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
108 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
113 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
114 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
115 AC_CHECK_LIB(resolv, res_init)
116 AC_CHECK_LIB(rt, nanosleep)
117 build_target="solaris"
122 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
123 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
129 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
130 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
131 AC_CHECK_LIB(intl, gettext)
132 LDFLAGS="$LDFLAGS -no-undefined"
133 CFLAGS="-mms-bitfields $CFLAGS"
134 build_target="cygwin"
140 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
141 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
142 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
143 AC_CHECK_LIB(intl, gettext)
144 LDFLAGS="$LDFLAGS -no-undefined -Wl,--export-all-symbols"
145 LIBS="$LIBS -lws2_32 -lplibc"
146 CFLAGS="-mms-bitfields $CFLAGS"
147 CPPFLAGS="-D_WIN32_WINNT=0x0501 $CPPFLAGS"
154 AC_MSG_RESULT(Unrecognised OS $host_os)
155 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
158 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
159 AC_SUBST(DEFAULT_INTERFACE)
161 AC_MSG_CHECKING([for build target])
162 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
163 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
164 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
165 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
166 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
167 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
168 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
170 AC_MSG_RESULT([$build_target])
171 AC_SUBST(build_target)
172 AM_CONDITIONAL([am__fastdepOBJC], false)
173 AC_UNALIGNED_64_ACCESS
175 # some other checks for standard libs
176 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
177 AC_CHECK_LIB(socket, socket)
179 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
181 # 'save' libs; only those libs found so far will be
182 # linked against _everywhere_. For the others, we
183 # will be more selective!
188 AM_PATH_LIBGCRYPT(1.2.0, gcrypt=1)
189 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
193 AC_MSG_ERROR([GNUnet needs libgcrypt])
196 if test $build = $target
198 AC_MSG_CHECKING([for working HMAC])
200 LIBS="$LIBS $LIBGCRYPT_LIBS"
201 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
203 [AC_LANG_PROGRAM([#include <gcrypt.h>], [[
206 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
207 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
208 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
209 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
210 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
211 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
212 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
213 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
214 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
215 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
217 if (!gcry_check_version (GCRYPT_VERSION))
220 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
221 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
223 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
226 gcry_md_setkey (mac, key, sizeof (key));
227 gcry_md_write (mac, data, sizeof (data));
229 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
236 [AC_MSG_RESULT([yes])],
240 AC_MSG_FAILURE([HMAC test vector does not match. This is a known problem with libgcrypt 1.2.2 on Windows and fixed in 1.4.6.])
242 AC_MSG_FAILURE([HMAC test failed])
248 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
252 fi # $build = $target
255 #AC_CHECK_HEADERS(glpk.h, glpk=true)
256 #AM_CONDITIONAL(HAVE_GLPK, test x$glpk = xtrue)
257 #AC_CHECK_LIB([glpk],[glp_create_prob])
260 AC_CHECK_HEADERS(glpk.h, ,[a=false])
261 AC_CHECK_LIB([glpk],[glp_create_prob], , [a=false])
264 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
265 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$a != x$a])
267 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
268 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$a = x$a])
271 # test for kvm and kstat (for CPU stats under BSD/Solaris)
272 AC_CHECK_LIB([kvm],[kvm_open])
273 AC_CHECK_LIB([kstat],[kstat_open])
275 # test for libextractor
277 AC_MSG_CHECKING(for libextractor)
278 AC_ARG_WITH(extractor,
279 [ --with-extractor=PFX base of libextractor installation],
280 [AC_MSG_RESULT([$with_extractor])
281 case $with_extractor in
285 AC_CHECK_HEADERS(extractor.h,
286 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
290 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
291 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
292 AC_CHECK_HEADERS(extractor.h,
293 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
294 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
299 [AC_MSG_RESULT([--with-extractor not specified])
300 AC_CHECK_HEADERS(extractor.h,
301 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
303 if test "$extractor" != 1
305 AC_MSG_ERROR([GNUnet requires libextractor])
311 # Checks for standard header files.
315 # Check for headers that are ALWAYS required
316 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]))
318 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
319 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 netinet/in_systm.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])
321 SAVE_LDFLAGS=$LDFLAGS
322 SAVE_CPPFLAGS=$CPPFLAGS
326 AC_MSG_CHECKING(for SQLite)
328 [ --with-sqlite=PFX base of SQLite installation],
329 [AC_MSG_RESULT("$with_sqlite")
334 AC_CHECK_HEADERS(sqlite3.h,
338 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
339 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
340 AC_CHECK_HEADERS(sqlite3.h,
341 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
342 SQLITE_LDFLAGS="-L$with_sqlite/lib"
343 SQLITE_CPPFLAGS="-I$with_sqlite/include"
345 LDFLAGS=$SAVE_LDFLAGS
346 CPPFLAGS=$SAVE_CPPFLAGS
350 [AC_MSG_RESULT([--with-sqlite not specified])
351 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
352 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
353 AC_SUBST(SQLITE_CPPFLAGS)
354 AC_SUBST(SQLITE_LDFLAGS)
358 AC_MSG_CHECKING(for postgres)
359 AC_ARG_WITH(postgres,
360 [ --with-postgres=PFX base of postgres installation],
361 [AC_MSG_RESULT("$with_postgres")
362 case $with_postgres in
366 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
370 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
371 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
372 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
373 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
374 POSTGRES_LDFLAGS="-L$with_postgres/lib"
375 POSTGRES_CPPFLAGS="-I$with_postgres/include"
377 LDFLAGS=$SAVE_LDFLAGS
378 CPPFLAGS=$SAVE_CPPFLAGS
382 [AC_MSG_RESULT([--with-postgres not specified])
383 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
384 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
385 AC_SUBST(POSTGRES_CPPFLAGS)
386 AC_SUBST(POSTGRES_LDFLAGS)
390 AC_MSG_CHECKING(for libpcap)
392 [ --with-pcap=PFX base of pcap installation],
393 [AC_MSG_RESULT("$with_pcap")
398 AC_CHECK_HEADERS(pcap.h,
402 LDFLAGS="-L$with_pcap/lib $LDFLAGS"
403 CPPFLAGS="-I$with_pcap/include $CPPFLAGS"
404 AC_CHECK_HEADERS(pcap.h,
405 EXT_LIB_PATH="-L$with_pcap/lib $EXT_LIB_PATH"
406 PCAP_LDFLAGS="-L$with_pcap/lib"
407 PCAP_CPPFLAGS="-I$with_pcap/include"
409 LDFLAGS=$SAVE_LDFLAGS
410 CPPFLAGS=$SAVE_CPPFLAGS
414 [AC_MSG_RESULT([--with-pcap not specified])
415 AC_CHECK_HEADERS(pcap.h, pcap=1)])
416 AM_CONDITIONAL(HAVE_PCAP, test x$pcap = x1)
417 AC_SUBST(PCAP_CPPFLAGS)
418 AC_SUBST(PCAP_LDFLAGS)
421 # test for libz (maybe required for linking mysql)
423 AC_CHECK_LIB(z, compress,,zlib=0)
424 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
427 AC_MSG_ERROR([GNUnet requires zlib])
431 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
432 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
434 if test "$build_target" = "mingw"
436 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
442 SAVE_LDFLAGS=$LDFLAGS
443 SAVE_CPPFLAGS=$CPPFLAGS
444 AC_MSG_CHECKING(for mysql)
446 [ --with-mysql=PFX base of MySQL installation],
447 [AC_MSG_RESULT("$with_mysql")
448 if test "$with_mysql" != "no"
450 if test "$with_mysql" != "yes"
452 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
453 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
455 AC_CHECK_HEADERS(mysql/mysql.h,
456 AC_CHECK_LIB(mysqlclient, mysql_init,
457 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
458 MYSQL_CPPFLAGS="-I$with_mysql/include"
460 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
463 [AC_MSG_RESULT([--with-mysql not specified])
464 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
465 AC_CHECK_LIB(mysqlclient, mysql_init,
466 [AC_CHECK_HEADERS(mysql/mysql.h,
467 MYSQL_LDFLAGS="-L/usr/lib/mysql"
470 , [], [$CYGWIN_MYSQL_MAGIC])])
473 AC_SUBST(MYSQL_LDFLAGS)
474 AC_SUBST(MYSQL_CPPFLAGS)
476 # additional version check for mysql
477 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
478 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
480 AC_MSG_CHECKING(mysql version)
481 AC_RUN_IFELSE([AC_LANG_PROGRAM(
482 [[$CYGWIN_MYSQL_MAGIC
483 #include <mysql/mysql.h>]],
484 [[if (MYSQL_VERSION_ID < 40100)
489 ],mysql=true,mysql=false)
490 if test "$mysql" = "false"
493 AC_MSG_RESULT([fail, >= 4.1 required])
498 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
499 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
502 LDFLAGS=$SAVE_LDFLAGS
503 CPPFLAGS=$SAVE_CPPFLAGS
505 if test "$sqlite" = 0 -a "$mysql" = 0
507 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
512 AC_MSG_CHECKING([for libmicrohttpd])
513 AC_ARG_WITH(microhttpd,
514 [ --with-microhttpd=PFX base of libmicrohttpd installation],
515 [AC_MSG_RESULT([$with_microhttpd])
516 case $with_microhttpd in
520 AC_CHECK_HEADERS([microhttpd.h],
521 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
522 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
524 [],[#include "src/include/platform.h"
525 #include <microhttpd.h>]),,
526 [#include "src/include/platform.h"])
529 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
530 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
531 AC_CHECK_HEADERS(microhttpd.h,
532 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
533 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
534 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
536 [],[#include "src/include/platform.h"
537 #include <microhttpd.h>]),,
538 [#include "src/include/platform.h"])
542 [AC_MSG_RESULT([--with-microhttpd not specified])
543 AC_CHECK_HEADERS([microhttpd.h],
544 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
545 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
547 [],[#include "src/include/platform.h"
548 #include <microhttpd.h>]),,
549 [#include "src/include/platform.h"])])
550 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
551 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
556 AC_MSG_CHECKING([for openssl])
558 [ --with-openssl=PFX base of openssl installation],
559 [AC_MSG_RESULT([$with_openssl])
560 case $with_openssl in
564 AC_CHECK_HEADERS([openssl/ssl.h],
565 AC_CHECK_LIB([ssl], [SSL_new],
569 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
570 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
571 AC_CHECK_HEADERS([openssl/ssl.h],
572 AC_CHECK_LIB([ssl], [SSL_new],
573 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
578 [AC_MSG_RESULT([--with-openssl not specified])
579 AC_CHECK_HEADERS([openssl/ssl.h],
580 AC_CHECK_LIB([ssl], [SSL_new],
582 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
583 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
593 # check for python & pexpect (used for some testcases only)
594 AM_PATH_PYTHON([2.5],, [:])
595 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
597 if test "$PYTHON" != :
599 AC_MSG_CHECKING([for pexpect])
600 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
602 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
607 AC_MSG_RESULT([not found])
610 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
615 AC_MSG_CHECKING([for libesmtp])
617 [ --with-esmtp=PFX base of libesmtp installation],
618 [AC_MSG_RESULT([$with_esmtp])
623 AC_CHECK_HEADERS(libesmtp.h,
624 AC_CHECK_LIB([esmtp], [smtp_start_session],
628 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
629 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
630 AC_CHECK_HEADERS(libesmtp.h,
631 AC_CHECK_LIB([esmtp], [smtp_start_session],
632 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
637 [AC_MSG_RESULT([--with-esmtp not specified])
638 AC_CHECK_HEADERS(libesmtp.h,
639 AC_CHECK_LIB([esmtp], [smtp_start_session],
641 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
642 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
649 AM_GNU_GETTEXT([external])
650 AM_GNU_GETTEXT_VERSION([0.16.1])
655 # Checks for standard typedefs, structures, and compiler characteristics.
664 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
665 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
669 #include <sys/types.h>
670 #include <sys/socket.h>
671 #include <netinet/in.h>
676 # Checks for library functions.
677 AC_FUNC_CLOSEDIR_VOID
680 AC_PROG_GCC_TRADITIONAL
682 AC_FUNC_SELECT_ARGTYPES
692 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 getpeerucred getpeereid])
697 gn_user_home_dir="~/.gnunet"
698 AC_ARG_WITH(user-home-dir,
700 [--with-user-home-dir=DIR],
701 [default user home directory (~/.gnunet)]),
702 [gn_user_home_dir=$withval])
703 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
704 gn_daemon_home_dir="/var/lib/gnunet"
705 AC_ARG_WITH(daemon-home-dir,
707 [--with-daemon-home-dir=DIR],
708 [default daemon home directory (/var/lib/gnunet)]),
709 [gn_daemon_home_dir=$withval])
710 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
711 gn_daemon_config_dir="/etc"
712 AC_ARG_WITH(daemon-config-dir,
714 [--with-daemon-config-dir=DIR],
715 [default daemon config directory (/etc)]),
716 [gn_daemon_config_dir=$withval])
717 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
720 GN_LIBINTL="$LTLIBINTL"
721 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
722 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
723 if test x$enable_framework_build = xyes
725 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
726 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
727 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
728 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
731 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
732 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
734 AC_SUBST(GN_LIB_LDFLAGS)
735 AC_SUBST(GN_PLUGIN_LDFLAGS)
736 AC_SUBST(GN_INTLINCL)
742 AC_SUBST(EXT_LIB_PATH)
747 AC_SUBST(EXT_LIB_PATH)
750 # should 'make check' run tests?
751 AC_MSG_CHECKING(whether to run tests)
752 AC_ARG_ENABLE(testruns,
753 [AS_HELP_STRING([--enable-testruns=yes/no],
754 [disable running tests on make check (default is YES)])],
755 [enable_tests_run=$enableval],
756 [enable_tests_run="yes"])
757 AC_MSG_RESULT($enable_test_run)
758 AM_CONDITIONAL([DISABLE_TEST_RUN], [test "x$enable_tests_run" = "xno"])
760 # should experimental code be compiled (code that may not yet compile)?
761 disable_experimental=yes
762 AC_MSG_CHECKING(whether to compile experimental code)
763 AC_ARG_ENABLE(experimental,
764 [AS_HELP_STRING([--enable-experimental],
765 [enable compiling experimental code])],
766 [enable_experimental=$enableval],
767 [enable_experimental="no"])
768 AC_MSG_RESULT($enable_experimental)
769 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
771 # should malicious code be compiled (code used for testing with malicious peers)
773 AC_MSG_CHECKING(whether to compile malicious code)
774 AC_ARG_ENABLE(malicious,
775 [AS_HELP_STRING([--enable-malicious],
776 [enable compiling malicious code (only for developers for testing)])],
777 [enable_malicious=1],
778 [enable_malicious=0])
779 AC_MSG_RESULT($enable_malicious)
780 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
781 AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
783 # should code be enabled that works around missing OS functionality on Windows?
784 # used for test cases
785 AC_ARG_ENABLE(windows_workarounds, [AS_HELP_STRING([--enable-windows_workarounds],
786 [enable workarounds used on Windows (only useful for test cases)])])
787 if test $build_target = "mingw"
791 if test x$enable_windows_workarounds = "xyes"
798 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
802 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
803 [Compile the library with code coverage support (default is NO)]),
804 [use_gcov=yes], [use_gcov=no])
805 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
816 src/datacache/Makefile
817 src/datastore/Makefile
820 src/fragmentation/Makefile
824 src/include/gnunet_directories.h
825 src/hostlist/Makefile
829 src/peerinfo/Makefile
830 src/peerinfo-tool/Makefile
831 src/statistics/Makefile
832 src/template/Makefile
834 src/topology/Makefile
835 src/transport/Makefile
840 pkgconfig/gnunetarm.pc
841 pkgconfig/gnunetblock.pc
842 pkgconfig/gnunetcore.pc
843 pkgconfig/gnunetdatacache.pc
844 pkgconfig/gnunetdatastore.pc
845 pkgconfig/gnunetdht.pc
846 pkgconfig/gnunetdhtlog.pc
847 pkgconfig/gnunetdv.pc
848 pkgconfig/gnunetfragmentation.pc
849 pkgconfig/gnunetfs.pc
850 pkgconfig/gnunethello.pc
851 pkgconfig/gnunetpeerinfo.pc
852 pkgconfig/gnunetstatistics.pc
853 pkgconfig/gnunettesting.pc
854 pkgconfig/gnunettransport.pc
855 pkgconfig/gnunetutil.pc
861 # warn user if mysql found but not used due to version
862 if test "$mysqlfail" = "true"
864 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
868 if test "x$sqlite" = "x0"
870 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
873 if test "x$lmhd" != "x1"
875 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
878 if test "x$esmtp" != "x1"
880 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
883 if test "x$pcap" != "x1"
885 AC_MSG_NOTICE([NOTICE: libpcap not found, WiFi support will not be installed.])
888 if test "x$openssl" != "x1"
890 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
893 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
895 if test "$enable_framework_build" = "yes"
897 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
900 AC_MSG_NOTICE([********************************************
901 You can compile GNUnet with
903 now. After that, run (if necessary as 'root')
905 to install everything. You may want to create a new user account
906 to run the GNUnet service:
908 You also need to create an configuration file that should
909 specify the path where GNUnet should store data. For example,
910 you could store in "/etc/gnunet.conf" the following lines:
913 SERVICEHOME = /var/lib/gnunet
914 DEFAULTCONFIG = /etc/gnunet.conf
916 Now, in order to start your peer, run as the 'gnunet' user
919 Each GNUnet user should also create an (at least initially) empty
922 touch $HOME/.gnunet/gnunet.conf
924 Optionally, download and compile gnunet-gtk to get a GUI.
925 ********************************************])