1 # This file is part of GNUnet.
2 # (C) 2001--2011 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.1],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.1])
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 -Wl,-no-undefined -Wl,--export-all-symbols"
145 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
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!
186 # libgnurx (regex library for W32)
188 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
189 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
191 AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
196 AM_PATH_LIBGCRYPT(1.2.0, gcrypt=1)
197 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
201 AC_MSG_ERROR([GNUnet needs libgcrypt])
204 # Adam shostack suggests the following for Windows:
205 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
206 AC_ARG_ENABLE(gcc-hardening,
207 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
208 [if test x$enableval = xyes; then
209 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
210 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
211 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
212 LDFLAGS="$LDFLAGS -pie"
215 # Linker hardening options
216 # Currently these options are ELF specific - you can't use this with MacOSX
217 AC_ARG_ENABLE(linker-hardening,
218 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
219 [if test x$enableval = xyes; then
220 LDFLAGS="$LDFLAGS -z relro -z now"
224 extra_logging=GNUNET_NO
225 AC_ARG_ENABLE([logging],
226 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
227 [AS_IF([test "x$enableval" = "xyes"], [],
228 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
229 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
230 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
232 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
234 if test $build = $target
236 AC_MSG_CHECKING([for working HMAC])
238 LIBS="$LIBS $LIBGCRYPT_LIBS"
239 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
241 [AC_LANG_PROGRAM([#include <gcrypt.h>
242 #include <stdio.h>], [[
245 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
246 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
247 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
248 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
249 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
250 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
251 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
252 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
253 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
254 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
256 if (!gcry_check_version (GCRYPT_VERSION))
258 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
262 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
263 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
265 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
267 fprintf (stderr, "gcry_md_open error\n");
271 gcry_md_setkey (mac, key, sizeof (key));
272 gcry_md_write (mac, data, sizeof (data));
274 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
276 fprintf (stderr, "memcmp error\n");
284 [AC_MSG_RESULT([yes])],
289 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.])
293 AC_MSG_FAILURE([HMAC test failed])
297 AC_MSG_FAILURE([libgcrypt header version does not match library version])
301 fi # $build = $target
304 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
309 [AS_HELP_STRING([--enable-ats], [enable ATS code])],
310 [enable_ats=${enableval}],
312 if test x${enable_ats} = xyes
314 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
315 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
316 # GLPK must support atm MLP presolving, version >= 4.32
317 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
318 if test x$gplk = xfalse
320 AM_CONDITIONAL(HAVE_LIBGLPK, false)
321 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
323 AM_CONDITIONAL(HAVE_LIBGLPK, true)
324 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
327 AM_CONDITIONAL(HAVE_LIBGLPK, false)
331 # test for kvm and kstat (for CPU stats under BSD/Solaris)
332 AC_CHECK_LIB([kvm],[kvm_open])
333 AC_CHECK_LIB([kstat],[kstat_open])
335 # test for libextractor
337 AC_MSG_CHECKING(for libextractor)
338 AC_ARG_WITH(extractor,
339 [ --with-extractor=PFX base of libextractor installation],
340 [AC_MSG_RESULT([$with_extractor])
341 case $with_extractor in
345 AC_CHECK_HEADERS(extractor.h,
346 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
350 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
351 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
352 AC_CHECK_HEADERS(extractor.h,
353 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
354 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
359 [AC_MSG_RESULT([--with-extractor not specified])
360 AC_CHECK_HEADERS(extractor.h,
361 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
363 if test "$extractor" != 1
365 AC_MSG_ERROR([GNUnet requires libextractor])
371 # Checks for standard header files.
375 # Check for headers that are ALWAYS required
376 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]))
378 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
379 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])
381 SAVE_LDFLAGS=$LDFLAGS
382 SAVE_CPPFLAGS=$CPPFLAGS
386 AC_MSG_CHECKING(for SQLite)
388 [ --with-sqlite=PFX base of SQLite installation],
389 [AC_MSG_RESULT("$with_sqlite")
394 AC_CHECK_HEADERS(sqlite3.h,
398 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
399 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
400 AC_CHECK_HEADERS(sqlite3.h,
401 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
402 SQLITE_LDFLAGS="-L$with_sqlite/lib"
403 SQLITE_CPPFLAGS="-I$with_sqlite/include"
405 LDFLAGS=$SAVE_LDFLAGS
406 CPPFLAGS=$SAVE_CPPFLAGS
410 [AC_MSG_RESULT([--with-sqlite not specified])
411 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
412 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
413 AC_SUBST(SQLITE_CPPFLAGS)
414 AC_SUBST(SQLITE_LDFLAGS)
418 AC_MSG_CHECKING(for postgres)
419 AC_ARG_WITH(postgres,
420 [ --with-postgres=PFX base of postgres installation],
421 [AC_MSG_RESULT("$with_postgres")
422 case $with_postgres in
426 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
430 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
431 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
432 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
433 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
434 POSTGRES_LDFLAGS="-L$with_postgres/lib"
435 POSTGRES_CPPFLAGS="-I$with_postgres/include"
437 LDFLAGS=$SAVE_LDFLAGS
438 CPPFLAGS=$SAVE_CPPFLAGS
442 [AC_MSG_RESULT([--with-postgres not specified])
443 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
444 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
445 AC_SUBST(POSTGRES_CPPFLAGS)
446 AC_SUBST(POSTGRES_LDFLAGS)
448 # test for libz (maybe required for linking mysql)
450 AC_CHECK_LIB(z, compress,,zlib=0)
451 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
454 AC_MSG_ERROR([GNUnet requires zlib])
458 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
459 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
461 if test "$build_target" = "mingw"
463 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
469 SAVE_LDFLAGS=$LDFLAGS
470 SAVE_CPPFLAGS=$CPPFLAGS
471 AC_MSG_CHECKING(for mysql)
473 [ --with-mysql=PFX base of MySQL installation],
474 [AC_MSG_RESULT("$with_mysql")
475 if test "$with_mysql" != "no"
477 if test "$with_mysql" != "yes"
479 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
480 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
482 AC_CHECK_HEADERS(mysql/mysql.h,
483 AC_CHECK_LIB(mysqlclient, mysql_init,
484 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
485 MYSQL_CPPFLAGS="-I$with_mysql/include"
487 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
490 [AC_MSG_RESULT([--with-mysql not specified])
491 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
492 AC_CHECK_LIB(mysqlclient, mysql_init,
493 [AC_CHECK_HEADERS(mysql/mysql.h,
494 MYSQL_LDFLAGS="-L/usr/lib/mysql"
497 , [], [$CYGWIN_MYSQL_MAGIC])])
500 AC_SUBST(MYSQL_LDFLAGS)
501 AC_SUBST(MYSQL_CPPFLAGS)
503 # additional version check for mysql
504 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
505 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
507 AC_MSG_CHECKING(mysql version)
508 AC_RUN_IFELSE([AC_LANG_PROGRAM(
509 [[$CYGWIN_MYSQL_MAGIC
510 #include <mysql/mysql.h>]],
511 [[if (MYSQL_VERSION_ID < 40100)
516 ],mysql=true,mysql=false)
517 if test "$mysql" = "false"
520 AC_MSG_RESULT([fail, >= 4.1 required])
525 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
526 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
529 LDFLAGS=$SAVE_LDFLAGS
530 CPPFLAGS=$SAVE_CPPFLAGS
532 if test "$sqlite" = 0 -a "$mysql" = 0
534 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
539 AC_MSG_CHECKING([for libmicrohttpd])
540 AC_ARG_WITH(microhttpd,
541 [ --with-microhttpd=PFX base of libmicrohttpd installation],
542 [AC_MSG_RESULT([$with_microhttpd])
543 case $with_microhttpd in
547 AC_CHECK_HEADERS([microhttpd.h],
548 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
549 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
551 [],[#include "src/include/platform.h"
552 #include <microhttpd.h>]),,
553 [#include "src/include/platform.h"])
556 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
557 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
558 AC_CHECK_HEADERS(microhttpd.h,
559 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
560 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
561 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
563 [],[#include "src/include/platform.h"
564 #include <microhttpd.h>]),,
565 [#include "src/include/platform.h"])
569 [AC_MSG_RESULT([--with-microhttpd not specified])
570 AC_CHECK_HEADERS([microhttpd.h],
571 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
572 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
574 [],[#include "src/include/platform.h"
575 #include <microhttpd.h>]),,
576 [#include "src/include/platform.h"])])
577 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
578 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
584 # check for python & pexpect (used for some testcases only)
585 AM_PATH_PYTHON([2.6],, [:])
586 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
588 if test "$PYTHON" != :
590 AC_MSG_CHECKING([for pexpect])
591 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
593 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
598 AC_MSG_RESULT([not found])
601 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
606 AM_GNU_GETTEXT([external])
607 AM_GNU_GETTEXT_VERSION([0.16.1])
612 # Checks for standard typedefs, structures, and compiler characteristics.
621 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
622 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
626 #include <sys/types.h>
627 #include <sys/socket.h>
628 #include <netinet/in.h>
633 # Checks for library functions.
634 AC_FUNC_CLOSEDIR_VOID
636 AC_PROG_GCC_TRADITIONAL
638 AC_FUNC_SELECT_ARGTYPES
648 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 setresuid])
653 gn_user_home_dir="~/.gnunet"
654 AC_ARG_WITH(user-home-dir,
656 [--with-user-home-dir=DIR],
657 [default user home directory (~/.gnunet)]),
658 [gn_user_home_dir=$withval])
659 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
660 gn_daemon_home_dir="/var/lib/gnunet"
661 AC_ARG_WITH(daemon-home-dir,
663 [--with-daemon-home-dir=DIR],
664 [default daemon home directory (/var/lib/gnunet)]),
665 [gn_daemon_home_dir=$withval])
666 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
667 gn_daemon_config_dir="/etc"
668 AC_ARG_WITH(daemon-config-dir,
670 [--with-daemon-config-dir=DIR],
671 [default daemon config directory (/etc)]),
672 [gn_daemon_config_dir=$withval])
673 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
676 GN_LIBINTL="$LTLIBINTL"
677 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
678 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
679 if test x$enable_framework_build = xyes
681 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
682 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
683 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
684 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
687 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
688 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
690 AC_SUBST(GN_LIB_LDFLAGS)
691 AC_SUBST(GN_PLUGIN_LDFLAGS)
692 AC_SUBST(GN_INTLINCL)
698 AC_SUBST(EXT_LIB_PATH)
703 AC_SUBST(EXT_LIB_PATH)
707 AC_MSG_CHECKING(for sudo)
709 [ --with-sudo=PATH path to sudo binary (or just yes)],
710 [AC_MSG_RESULT("$with_sudo")
719 SUDO_BINARY=$with_sudo
723 [AC_MSG_RESULT([no])])
724 AC_SUBST(SUDO_BINARY)
727 # should 'make check' run tests?
728 AC_MSG_CHECKING(whether to run tests)
729 AC_ARG_ENABLE([testruns],
730 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
731 [enable_tests_run=${enableval}],
732 [enable_tests_run=yes])
733 AC_MSG_RESULT($enable_test_run)
734 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
736 # should expensive tests be run?
737 AC_MSG_CHECKING(whether to run expensive tests)
738 AC_ARG_ENABLE([expensivetests],
739 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
740 [enable_expensive=${enableval}],
741 [enable_expensive=no])
742 AC_MSG_RESULT($enable_expensive)
743 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
745 # should benchmarks be run?
746 AC_MSG_CHECKING(whether to run benchmarks during make check)
747 AC_ARG_ENABLE([benchmarks],
748 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
749 [enable_benchmarks=${enableval}],
750 [enable_benchmarks=no])
751 AC_MSG_RESULT($enable_benchmarks)
752 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
754 # should experimental code be compiled (code that may not yet compile)?
755 AC_MSG_CHECKING(whether to compile experimental code)
756 AC_ARG_ENABLE([experimental],
757 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
758 [enable_experimental=${enableval}],
759 [enable_experimental=no])
760 AC_MSG_RESULT($enable_experimental)
761 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
763 # should code be enabled that works around missing OS functionality on Windows?
764 # used for test cases
765 if test $build_target = "mingw"
769 AC_MSG_CHECKING(whether to enable windows workarounds)
770 AC_ARG_ENABLE([windows_workarounds],
771 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
772 [enable_workarounds=${enableval}],
773 [enable_workarounds=no])
774 AC_MSG_RESULT($enable_workarounds)
775 if test x$enable_windows_workarounds = "xyes"
782 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
785 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
786 AC_ARG_ENABLE([coverage],
787 AS_HELP_STRING([--enable-coverage],
788 [compile the library with code coverage support]),
789 [use_gcov=${enableval}],
791 AC_MSG_RESULT($use_gcov)
792 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
807 src/datacache/Makefile
808 src/datastore/Makefile
811 src/fragmentation/Makefile
815 src/include/gnunet_directories.h
816 src/hostlist/Makefile
820 src/peerinfo/Makefile
821 src/peerinfo-tool/Makefile
822 src/statistics/Makefile
823 src/template/Makefile
825 src/topology/Makefile
826 src/transport/Makefile
830 src/integration-tests/Makefile
832 pkgconfig/gnunetarm.pc
833 pkgconfig/gnunetblock.pc
834 pkgconfig/gnunetcore.pc
835 pkgconfig/gnunetdatacache.pc
836 pkgconfig/gnunetdatastore.pc
837 pkgconfig/gnunetdht.pc
838 pkgconfig/gnunetdhtlog.pc
839 pkgconfig/gnunetdv.pc
840 pkgconfig/gnunetfragmentation.pc
841 pkgconfig/gnunetfs.pc
842 pkgconfig/gnunethello.pc
843 pkgconfig/gnunetnat.pc
844 pkgconfig/gnunetnse.pc
845 pkgconfig/gnunetpeerinfo.pc
846 pkgconfig/gnunetstatistics.pc
847 pkgconfig/gnunettesting.pc
848 pkgconfig/gnunettransport.pc
849 pkgconfig/gnunetutil.pc
855 # warn user if mysql found but not used due to version
856 if test "$mysqlfail" = "true"
858 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
862 if test "x$sqlite" = "x0"
864 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
867 if test "x$lmhd" != "x1"
869 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
872 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
874 if test "$enable_framework_build" = "yes"
876 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
879 AC_MSG_NOTICE([********************************************
880 You can compile GNUnet with
882 now. After that, run (if necessary as 'root')
884 to install everything. You may want to create a new user account
885 to run the GNUnet service:
887 You also need to create an configuration file that should
888 specify the path where GNUnet should store data. For example,
889 you could store in "/etc/gnunet.conf" the following lines:
892 SERVICEHOME = /var/lib/gnunet
893 DEFAULTCONFIG = /etc/gnunet.conf
895 Now, in order to start your peer, run as the 'gnunet' user
898 Each GNUnet user should also create an (at least initially) empty
901 touch $HOME/.gnunet/gnunet.conf
903 Optionally, download and compile:
904 - gnunet-gtk to get a GUI for file-sharing and configuration.
905 ********************************************])