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 # Checks for programs.
25 AC_INIT([gnunet], [0.9.0pre3],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.0pre3])
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33 AC_CONFIG_HEADERS([gnunet_config.h])
34 AH_TOP([#define _GNU_SOURCE 1])
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])
246 fi # $build = $target
249 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
255 if test x$USE_ATS = xtrue
258 AC_MSG_WARN([ATS enabled])
259 AC_CHECK_HEADERS(glpk.h, ,[gplk=false])
260 AC_CHECK_LIB([glpk],[glp_create_prob], , [gplk=false])
261 # GLPK must support atm MLP presolving, version >= 4.32
262 AC_CHECK_MEMBERS(glp_iocp.presolve, ,[gplk=false],[[#include <glpk.h>]])
263 if test x$gplk = xfalse
265 AM_CONDITIONAL(HAVE_GLPK, [test x$gplk = xtrue])
266 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$gplk != x$gplk])
267 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
269 AM_CONDITIONAL(HAVE_GLPK, [test x$gplk = xtrue])
270 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$gplk = x$gplk])
271 AC_MSG_WARN([GLPK is installed])
274 AC_MSG_WARN([ATS disabled])
275 AM_CONDITIONAL(HAVE_GLPK, false)
276 AM_CONDITIONAL(HAVE_LIBGLPK, false)
279 # test for kvm and kstat (for CPU stats under BSD/Solaris)
280 AC_CHECK_LIB([kvm],[kvm_open])
281 AC_CHECK_LIB([kstat],[kstat_open])
283 # test for libextractor
285 AC_MSG_CHECKING(for libextractor)
286 AC_ARG_WITH(extractor,
287 [ --with-extractor=PFX base of libextractor installation],
288 [AC_MSG_RESULT([$with_extractor])
289 case $with_extractor in
293 AC_CHECK_HEADERS(extractor.h,
294 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
298 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
299 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
300 AC_CHECK_HEADERS(extractor.h,
301 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
302 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
307 [AC_MSG_RESULT([--with-extractor not specified])
308 AC_CHECK_HEADERS(extractor.h,
309 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
311 if test "$extractor" != 1
313 AC_MSG_ERROR([GNUnet requires libextractor])
319 # Checks for standard header files.
323 # Check for headers that are ALWAYS required
324 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]))
326 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
327 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 endian.h sys/endian.h])
329 SAVE_LDFLAGS=$LDFLAGS
330 SAVE_CPPFLAGS=$CPPFLAGS
334 AC_MSG_CHECKING(for SQLite)
336 [ --with-sqlite=PFX base of SQLite installation],
337 [AC_MSG_RESULT("$with_sqlite")
342 AC_CHECK_HEADERS(sqlite3.h,
346 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
347 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
348 AC_CHECK_HEADERS(sqlite3.h,
349 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
350 SQLITE_LDFLAGS="-L$with_sqlite/lib"
351 SQLITE_CPPFLAGS="-I$with_sqlite/include"
353 LDFLAGS=$SAVE_LDFLAGS
354 CPPFLAGS=$SAVE_CPPFLAGS
358 [AC_MSG_RESULT([--with-sqlite not specified])
359 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
360 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
361 AC_SUBST(SQLITE_CPPFLAGS)
362 AC_SUBST(SQLITE_LDFLAGS)
366 AC_MSG_CHECKING(for postgres)
367 AC_ARG_WITH(postgres,
368 [ --with-postgres=PFX base of postgres installation],
369 [AC_MSG_RESULT("$with_postgres")
370 case $with_postgres in
374 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
378 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
379 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
380 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
381 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
382 POSTGRES_LDFLAGS="-L$with_postgres/lib"
383 POSTGRES_CPPFLAGS="-I$with_postgres/include"
385 LDFLAGS=$SAVE_LDFLAGS
386 CPPFLAGS=$SAVE_CPPFLAGS
390 [AC_MSG_RESULT([--with-postgres not specified])
391 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
392 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
393 AC_SUBST(POSTGRES_CPPFLAGS)
394 AC_SUBST(POSTGRES_LDFLAGS)
396 # test for libz (maybe required for linking mysql)
398 AC_CHECK_LIB(z, compress,,zlib=0)
399 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
402 AC_MSG_ERROR([GNUnet requires zlib])
406 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
407 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
409 if test "$build_target" = "mingw"
411 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
417 SAVE_LDFLAGS=$LDFLAGS
418 SAVE_CPPFLAGS=$CPPFLAGS
419 AC_MSG_CHECKING(for mysql)
421 [ --with-mysql=PFX base of MySQL installation],
422 [AC_MSG_RESULT("$with_mysql")
423 if test "$with_mysql" != "no"
425 if test "$with_mysql" != "yes"
427 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
428 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
430 AC_CHECK_HEADERS(mysql/mysql.h,
431 AC_CHECK_LIB(mysqlclient, mysql_init,
432 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
433 MYSQL_CPPFLAGS="-I$with_mysql/include"
435 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
438 [AC_MSG_RESULT([--with-mysql not specified])
439 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
440 AC_CHECK_LIB(mysqlclient, mysql_init,
441 [AC_CHECK_HEADERS(mysql/mysql.h,
442 MYSQL_LDFLAGS="-L/usr/lib/mysql"
445 , [], [$CYGWIN_MYSQL_MAGIC])])
448 AC_SUBST(MYSQL_LDFLAGS)
449 AC_SUBST(MYSQL_CPPFLAGS)
451 # additional version check for mysql
452 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
453 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
455 AC_MSG_CHECKING(mysql version)
456 AC_RUN_IFELSE([AC_LANG_PROGRAM(
457 [[$CYGWIN_MYSQL_MAGIC
458 #include <mysql/mysql.h>]],
459 [[if (MYSQL_VERSION_ID < 40100)
464 ],mysql=true,mysql=false)
465 if test "$mysql" = "false"
468 AC_MSG_RESULT([fail, >= 4.1 required])
473 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
474 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
477 LDFLAGS=$SAVE_LDFLAGS
478 CPPFLAGS=$SAVE_CPPFLAGS
480 if test "$sqlite" = 0 -a "$mysql" = 0
482 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
487 AC_MSG_CHECKING([for libmicrohttpd])
488 AC_ARG_WITH(microhttpd,
489 [ --with-microhttpd=PFX base of libmicrohttpd installation],
490 [AC_MSG_RESULT([$with_microhttpd])
491 case $with_microhttpd in
495 AC_CHECK_HEADERS([microhttpd.h],
496 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
497 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
499 [],[#include "src/include/platform.h"
500 #include <microhttpd.h>]),,
501 [#include "src/include/platform.h"])
504 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
505 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
506 AC_CHECK_HEADERS(microhttpd.h,
507 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
508 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
509 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
511 [],[#include "src/include/platform.h"
512 #include <microhttpd.h>]),,
513 [#include "src/include/platform.h"])
517 [AC_MSG_RESULT([--with-microhttpd not specified])
518 AC_CHECK_HEADERS([microhttpd.h],
519 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
520 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
522 [],[#include "src/include/platform.h"
523 #include <microhttpd.h>]),,
524 [#include "src/include/platform.h"])])
525 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
526 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
531 AC_MSG_CHECKING([for openssl])
533 [ --with-openssl=PFX base of openssl installation],
534 [AC_MSG_RESULT([$with_openssl])
535 case $with_openssl in
539 AC_CHECK_HEADERS([openssl/ssl.h],
540 AC_CHECK_LIB([ssl], [SSL_new],
544 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
545 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
546 AC_CHECK_HEADERS([openssl/ssl.h],
547 AC_CHECK_LIB([ssl], [SSL_new],
548 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
553 [AC_MSG_RESULT([--with-openssl not specified])
554 AC_CHECK_HEADERS([openssl/ssl.h],
555 AC_CHECK_LIB([ssl], [SSL_new],
557 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
558 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
568 # check for python & pexpect (used for some testcases only)
569 AM_PATH_PYTHON([2.5],, [:])
570 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
572 if test "$PYTHON" != :
574 AC_MSG_CHECKING([for pexpect])
575 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
577 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
582 AC_MSG_RESULT([not found])
585 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
590 AC_MSG_CHECKING([for libesmtp])
592 [ --with-esmtp=PFX base of libesmtp installation],
593 [AC_MSG_RESULT([$with_esmtp])
598 AC_CHECK_HEADERS(libesmtp.h,
599 AC_CHECK_LIB([esmtp], [smtp_start_session],
603 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
604 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
605 AC_CHECK_HEADERS(libesmtp.h,
606 AC_CHECK_LIB([esmtp], [smtp_start_session],
607 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
612 [AC_MSG_RESULT([--with-esmtp not specified])
613 AC_CHECK_HEADERS(libesmtp.h,
614 AC_CHECK_LIB([esmtp], [smtp_start_session],
616 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
617 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
624 AM_GNU_GETTEXT([external])
625 AM_GNU_GETTEXT_VERSION([0.16.1])
630 # Checks for standard typedefs, structures, and compiler characteristics.
639 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
640 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
644 #include <sys/types.h>
645 #include <sys/socket.h>
646 #include <netinet/in.h>
651 # Checks for library functions.
652 AC_FUNC_CLOSEDIR_VOID
655 AC_PROG_GCC_TRADITIONAL
657 AC_FUNC_SELECT_ARGTYPES
667 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])
672 gn_user_home_dir="~/.gnunet"
673 AC_ARG_WITH(user-home-dir,
675 [--with-user-home-dir=DIR],
676 [default user home directory (~/.gnunet)]),
677 [gn_user_home_dir=$withval])
678 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
679 gn_daemon_home_dir="/var/lib/gnunet"
680 AC_ARG_WITH(daemon-home-dir,
682 [--with-daemon-home-dir=DIR],
683 [default daemon home directory (/var/lib/gnunet)]),
684 [gn_daemon_home_dir=$withval])
685 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
686 gn_daemon_config_dir="/etc"
687 AC_ARG_WITH(daemon-config-dir,
689 [--with-daemon-config-dir=DIR],
690 [default daemon config directory (/etc)]),
691 [gn_daemon_config_dir=$withval])
692 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
695 GN_LIBINTL="$LTLIBINTL"
696 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
697 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
698 if test x$enable_framework_build = xyes
700 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
701 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
702 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
703 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
706 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
707 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
709 AC_SUBST(GN_LIB_LDFLAGS)
710 AC_SUBST(GN_PLUGIN_LDFLAGS)
711 AC_SUBST(GN_INTLINCL)
717 AC_SUBST(EXT_LIB_PATH)
722 AC_SUBST(EXT_LIB_PATH)
725 # should 'make check' run tests?
726 AC_MSG_CHECKING(whether to run tests)
727 AC_ARG_ENABLE([testruns],
728 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
729 [enable_tests_run=${enableval}],
730 [enable_tests_run=yes])
731 AC_MSG_RESULT($enable_test_run)
732 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
734 # should expensive tests be run?
735 AC_MSG_CHECKING(whether to run expensive tests)
736 AC_ARG_ENABLE([expensivetests],
737 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
738 [enable_expensive=${enableval}],
739 [enable_expensive=no])
740 AC_MSG_RESULT($enable_expensive)
741 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
743 # should benchmarks be run?
744 AC_MSG_CHECKING(whether to run benchmarks during make check)
745 AC_ARG_ENABLE([benchmarks],
746 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
747 [enable_benchmarks=${enableval}],
748 [enable_benchmarks=no])
749 AC_MSG_RESULT($enable_benchmarks)
750 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
752 # should experimental code be compiled (code that may not yet compile)?
753 AC_MSG_CHECKING(whether to compile experimental code)
754 AC_ARG_ENABLE([experimental],
755 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
756 [enable_experimental=${enableval}],
757 [enable_experimental=no])
758 AC_MSG_RESULT($enable_experimental)
759 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
761 # should malicious code be compiled (code used for testing with malicious peers)
762 AC_MSG_CHECKING(whether to compile malicious code)
763 AC_ARG_ENABLE([malicious],
764 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code (only for developers for testing)])],
765 [enable_malicious=${enableval}],
766 [enable_malicious=no])
767 AC_MSG_RESULT($enable_malicious)
768 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "xyes"])
769 if test "$enable_malicious" = "yes"
771 AC_DEFINE([HAVE_MALICIOUS],[1],[include malicious code])
773 AC_DEFINE([HAVE_MALICIOUS],[0],[disable malicious code])
776 # should code be enabled that works around missing OS functionality on Windows?
777 # used for test cases
778 if test $build_target = "mingw"
782 AC_MSG_CHECKING(whether to enable windows workarounds)
783 AC_ARG_ENABLE([windows_workarounds],
784 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
785 [enable_workarounds=${enableval}],
786 [enable_workarounds=no])
787 AC_MSG_RESULT($enable_workarounds)
788 if test x$enable_windows_workarounds = "xyes"
795 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
798 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
799 AC_ARG_ENABLE([coverage],
800 AS_HELP_STRING([--enable-coverage],
801 [compile the library with code coverage support]),
802 [use_gcov=${enableval}],
804 AC_MSG_RESULT($use_gcov)
805 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
819 src/datacache/Makefile
820 src/datastore/Makefile
823 src/fragmentation/Makefile
827 src/include/gnunet_directories.h
828 src/hostlist/Makefile
832 src/peerinfo/Makefile
833 src/peerinfo-tool/Makefile
834 src/statistics/Makefile
835 src/template/Makefile
837 src/topology/Makefile
838 src/transport/Makefile
843 pkgconfig/gnunetarm.pc
844 pkgconfig/gnunetblock.pc
845 pkgconfig/gnunetcore.pc
846 pkgconfig/gnunetdatacache.pc
847 pkgconfig/gnunetdatastore.pc
848 pkgconfig/gnunetdht.pc
849 pkgconfig/gnunetdhtlog.pc
850 pkgconfig/gnunetdv.pc
851 pkgconfig/gnunetfragmentation.pc
852 pkgconfig/gnunetfs.pc
853 pkgconfig/gnunethello.pc
854 pkgconfig/gnunetpeerinfo.pc
855 pkgconfig/gnunetstatistics.pc
856 pkgconfig/gnunettesting.pc
857 pkgconfig/gnunettransport.pc
858 pkgconfig/gnunetutil.pc
864 # warn user if mysql found but not used due to version
865 if test "$mysqlfail" = "true"
867 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
871 if test "x$sqlite" = "x0"
873 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
876 if test "x$lmhd" != "x1"
878 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
881 if test "x$esmtp" != "x1"
883 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
886 if test "x$openssl" != "x1"
888 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
891 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
893 if test "$enable_framework_build" = "yes"
895 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
898 AC_MSG_NOTICE([********************************************
899 You can compile GNUnet with
901 now. After that, run (if necessary as 'root')
903 to install everything. You may want to create a new user account
904 to run the GNUnet service:
906 You also need to create an configuration file that should
907 specify the path where GNUnet should store data. For example,
908 you could store in "/etc/gnunet.conf" the following lines:
911 SERVICEHOME = /var/lib/gnunet
912 DEFAULTCONFIG = /etc/gnunet.conf
914 Now, in order to start your peer, run as the 'gnunet' user
917 Each GNUnet user should also create an (at least initially) empty
920 touch $HOME/.gnunet/gnunet.conf
922 Optionally, download and compile gnunet-gtk to get a GUI.
923 ********************************************])