1 # This file is part of GNUnet.
2 # (C) 2001--2012 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.2],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.2])
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\""
85 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
93 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
94 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
95 CFLAGS="-D_THREAD_SAFE $CFLAGS"
96 build_target="freebsd"
102 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
103 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
104 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
105 build_target="openbsd"
111 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
112 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
118 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
119 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
120 AC_CHECK_LIB(resolv, res_init)
121 AC_CHECK_LIB(rt, nanosleep)
122 build_target="solaris"
128 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
129 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
136 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
137 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
138 AC_CHECK_LIB(intl, gettext)
139 LDFLAGS="$LDFLAGS -no-undefined"
140 CFLAGS="-mms-bitfields $CFLAGS"
141 build_target="cygwin"
148 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
149 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
150 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
151 AC_CHECK_LIB(intl, gettext)
152 LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols"
153 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
154 CFLAGS="-mms-bitfields $CFLAGS"
155 CPPFLAGS="-D_WIN32_WINNT=0x0501 $CPPFLAGS"
163 AC_MSG_RESULT(Unrecognised OS $host_os)
164 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
168 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
169 AC_SUBST(DEFAULT_INTERFACE)
171 # Disable TCP-based IPC on systems that support UNIX domain
172 # sockets in default configuratin:
175 AC_MSG_CHECKING([for build target])
176 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
177 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
178 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
179 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
180 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
181 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
182 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
184 AC_MSG_RESULT([$build_target])
185 AC_SUBST(build_target)
186 AM_CONDITIONAL([am__fastdepOBJC], false)
187 AC_UNALIGNED_64_ACCESS
189 # some other checks for standard libs
190 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
191 AC_CHECK_LIB(socket, socket)
193 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
195 # 'save' libs; only those libs found so far will be
196 # linked against _everywhere_. For the others, we
197 # will be more selective!
200 # libgnurx (regex library for W32)
202 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
203 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
205 AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
210 AM_PATH_LIBGCRYPT(1.2.0, gcrypt=1)
211 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
215 AC_MSG_ERROR([GNUnet needs libgcrypt])
218 # Adam shostack suggests the following for Windows:
219 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
220 AC_ARG_ENABLE(gcc-hardening,
221 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
222 [if test x$enableval = xyes; then
223 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
224 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
225 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
226 LDFLAGS="$LDFLAGS -pie"
230 # Linker hardening options
231 # Currently these options are ELF specific - you can't use this with MacOSX
232 AC_ARG_ENABLE(linker-hardening,
233 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
234 [if test x$enableval = xyes; then
235 LDFLAGS="$LDFLAGS -z relro -z now"
239 extra_logging=GNUNET_NO
240 AC_ARG_ENABLE([logging],
241 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
242 [AS_IF([test "x$enableval" = "xyes"], [],
243 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
244 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
245 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
247 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
249 if test $build = $target
251 AC_MSG_CHECKING([for working HMAC])
253 LIBS="$LIBS $LIBGCRYPT_LIBS"
254 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
256 [AC_LANG_PROGRAM([#include <gcrypt.h>
257 #include <stdio.h>], [[
260 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
261 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
262 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
263 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
264 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
265 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
266 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
267 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
268 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
269 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
271 if (!gcry_check_version (GCRYPT_VERSION))
273 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
277 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
278 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
280 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
282 fprintf (stderr, "gcry_md_open error\n");
286 gcry_md_setkey (mac, key, sizeof (key));
287 gcry_md_write (mac, data, sizeof (data));
289 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
291 fprintf (stderr, "memcmp error\n");
299 [AC_MSG_RESULT([yes])],
304 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.])
308 AC_MSG_FAILURE([HMAC test failed])
312 AC_MSG_FAILURE([libgcrypt header version does not match library version])
316 fi # $build = $target
319 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
324 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
325 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
326 # GLPK must support atm MLP presolving, version >= 4.32
327 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
328 if test x$gplk = xfalse
330 AM_CONDITIONAL(HAVE_LIBGLPK, false)
331 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
333 AM_CONDITIONAL(HAVE_LIBGLPK, true)
334 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
338 # test for kvm and kstat (for CPU stats under BSD/Solaris)
339 AC_CHECK_LIB([kvm],[kvm_open])
340 AC_CHECK_LIB([kstat],[kstat_open])
342 # test for libextractor
344 AC_MSG_CHECKING(for libextractor)
345 AC_ARG_WITH(extractor,
346 [ --with-extractor=PFX base of libextractor installation],
347 [AC_MSG_RESULT([$with_extractor])
348 case $with_extractor in
352 AC_CHECK_HEADERS(extractor.h,
353 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
357 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
358 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
359 AC_CHECK_HEADERS(extractor.h,
360 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
361 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
366 [AC_MSG_RESULT([--with-extractor not specified])
367 AC_CHECK_HEADERS(extractor.h,
368 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
370 if test "$extractor" != 1
372 AC_MSG_ERROR([GNUnet requires libextractor])
377 # test for libunistring
379 if test $HAVE_LIBUNISTRING != yes; then
380 AC_MSG_ERROR([GNUnet requires libunistring])
382 if test $gl_libunistring_hexversion -le 2305; then
383 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
390 # Checks for standard header files.
394 # Check for headers that are ALWAYS required
395 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]))
397 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
398 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])
400 SAVE_LDFLAGS=$LDFLAGS
401 SAVE_CPPFLAGS=$CPPFLAGS
405 AC_MSG_CHECKING(for SQLite)
407 [ --with-sqlite=PFX base of SQLite installation],
408 [AC_MSG_RESULT("$with_sqlite")
413 AC_CHECK_HEADERS(sqlite3.h,
417 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
418 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
419 AC_CHECK_HEADERS(sqlite3.h,
420 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
421 SQLITE_LDFLAGS="-L$with_sqlite/lib"
422 SQLITE_CPPFLAGS="-I$with_sqlite/include"
424 LDFLAGS=$SAVE_LDFLAGS
425 CPPFLAGS=$SAVE_CPPFLAGS
429 [AC_MSG_RESULT([--with-sqlite not specified])
430 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
431 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
432 AC_SUBST(SQLITE_CPPFLAGS)
433 AC_SUBST(SQLITE_LDFLAGS)
437 AC_MSG_CHECKING(for postgres)
438 AC_ARG_WITH(postgres,
439 [ --with-postgres=PFX base of postgres installation],
440 [AC_MSG_RESULT("$with_postgres")
441 case $with_postgres in
445 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
449 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
450 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
451 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
452 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
453 POSTGRES_LDFLAGS="-L$with_postgres/lib"
454 POSTGRES_CPPFLAGS="-I$with_postgres/include"
456 LDFLAGS=$SAVE_LDFLAGS
457 CPPFLAGS=$SAVE_CPPFLAGS
461 [AC_MSG_RESULT([--with-postgres not specified])
462 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
463 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
464 AC_SUBST(POSTGRES_CPPFLAGS)
465 AC_SUBST(POSTGRES_LDFLAGS)
467 # test for libz (maybe required for linking mysql)
469 AC_CHECK_LIB(z, compress,,zlib=0)
470 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
473 AC_MSG_ERROR([GNUnet requires zlib])
477 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
478 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
480 if test "$build_target" = "mingw"
482 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
488 SAVE_LDFLAGS=$LDFLAGS
489 SAVE_CPPFLAGS=$CPPFLAGS
490 AC_MSG_CHECKING(for mysql)
492 [ --with-mysql=PFX base of MySQL installation],
493 [AC_MSG_RESULT("$with_mysql")
494 if test "$with_mysql" != "no"
496 if test "$with_mysql" != "yes"
498 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
499 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
501 AC_CHECK_HEADERS(mysql/mysql.h,
502 AC_CHECK_LIB(mysqlclient, mysql_init,
503 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
504 MYSQL_CPPFLAGS="-I$with_mysql/include"
506 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
509 [AC_MSG_RESULT([--with-mysql not specified])
510 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
511 AC_CHECK_LIB(mysqlclient, mysql_init,
512 [AC_CHECK_HEADERS(mysql/mysql.h,
513 MYSQL_LDFLAGS="-L/usr/lib/mysql"
516 , [], [$CYGWIN_MYSQL_MAGIC])])
519 AC_SUBST(MYSQL_LDFLAGS)
520 AC_SUBST(MYSQL_CPPFLAGS)
522 # additional version check for mysql
523 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
524 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
526 AC_MSG_CHECKING(mysql version)
527 AC_RUN_IFELSE([AC_LANG_PROGRAM(
528 [[$CYGWIN_MYSQL_MAGIC
529 #include <mysql/mysql.h>]],
530 [[if (MYSQL_VERSION_ID < 40100)
535 ],mysql=true,mysql=false)
536 if test "$mysql" = "false"
539 AC_MSG_RESULT([fail, >= 4.1 required])
544 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
545 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
548 LDFLAGS=$SAVE_LDFLAGS
549 CPPFLAGS=$SAVE_CPPFLAGS
551 if test "$sqlite" = 0 -a "$mysql" = 0
553 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
558 AC_MSG_CHECKING([for libmicrohttpd])
559 AC_ARG_WITH(microhttpd,
560 [ --with-microhttpd=PFX base of libmicrohttpd installation],
561 [AC_MSG_RESULT([$with_microhttpd])
562 case $with_microhttpd in
566 AC_CHECK_HEADERS([microhttpd.h],
567 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
568 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
570 [],[#include "src/include/platform.h"
571 #include <microhttpd.h>]),,
572 [#include "src/include/platform.h"])
575 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
576 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
577 AC_CHECK_HEADERS(microhttpd.h,
578 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
579 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
580 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
582 [],[#include "src/include/platform.h"
583 #include <microhttpd.h>]),,
584 [#include "src/include/platform.h"])
588 [AC_MSG_RESULT([--with-microhttpd not specified])
589 AC_CHECK_HEADERS([microhttpd.h],
590 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
591 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
593 [],[#include "src/include/platform.h"
594 #include <microhttpd.h>]),,
595 [#include "src/include/platform.h"])])
596 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
597 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
603 # check for python & pexpect (used for some testcases only)
604 AM_PATH_PYTHON([2.6],, [:])
605 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
607 if test "$PYTHON" != :
609 AC_MSG_CHECKING([for pexpect])
610 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
612 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
617 AC_MSG_RESULT([not found])
620 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
625 AM_GNU_GETTEXT([external])
626 AM_GNU_GETTEXT_VERSION([0.16.1])
631 # Checks for standard typedefs, structures, and compiler characteristics.
640 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
641 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
645 #include <sys/types.h>
646 #include <sys/socket.h>
647 #include <netinet/in.h>
652 # Checks for library functions.
653 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 setresuid])
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)
726 AC_MSG_CHECKING(for sudo)
728 [ --with-sudo=PATH path to sudo binary (or just yes)],
729 [AC_MSG_RESULT("$with_sudo")
738 SUDO_BINARY=$with_sudo
742 [AC_MSG_RESULT([no])])
743 AC_SUBST(SUDO_BINARY)
746 # test for gnunetdns group name
747 GNUNETDNS_GROUP=gnunetdns
748 AC_MSG_CHECKING(for gnunetdns group name)
749 AC_ARG_WITH(gnunetdns,
750 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
751 [AC_MSG_RESULT("$with_gnunetdns")
752 case $with_gnunetdns in
754 GNUNETDNS_GROUP=gnunet
757 GNUNETDNS_GROUP=gnunetdns
760 GNUNETDNS_GROUP=$with_gnunetdns
764 [AC_MSG_RESULT([gnunetdns])])
765 AC_SUBST(GNUNETDNS_GROUP)
768 # should 'make check' run tests?
769 AC_MSG_CHECKING(whether to run tests)
770 AC_ARG_ENABLE([testruns],
771 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
772 [enable_tests_run=${enableval}],
773 [enable_tests_run=yes])
774 AC_MSG_RESULT($enable_test_run)
775 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
777 # should expensive tests be run?
778 AC_MSG_CHECKING(whether to run expensive tests)
779 AC_ARG_ENABLE([expensivetests],
780 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
781 [enable_expensive=${enableval}],
782 [enable_expensive=no])
783 AC_MSG_RESULT($enable_expensive)
784 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
786 # should benchmarks be run?
787 AC_MSG_CHECKING(whether to run benchmarks during make check)
788 AC_ARG_ENABLE([benchmarks],
789 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
790 [enable_benchmarks=${enableval}],
791 [enable_benchmarks=no])
792 AC_MSG_RESULT($enable_benchmarks)
793 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
795 # should experimental code be compiled (code that may not yet compile)?
796 AC_MSG_CHECKING(whether to compile experimental code)
797 AC_ARG_ENABLE([experimental],
798 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
799 [enable_experimental=${enableval}],
800 [enable_experimental=no])
801 AC_MSG_RESULT($enable_experimental)
802 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
804 # should code be enabled that works around missing OS functionality on Windows?
805 # used for test cases
806 if test $build_target = "mingw"
810 AC_MSG_CHECKING(whether to enable windows workarounds)
811 AC_ARG_ENABLE([windows_workarounds],
812 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
813 [enable_workarounds=${enableval}],
814 [enable_workarounds=no])
815 AC_MSG_RESULT($enable_workarounds)
816 if test x$enable_windows_workarounds = "xyes"
823 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
826 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
827 AC_ARG_ENABLE([coverage],
828 AS_HELP_STRING([--enable-coverage],
829 [compile the library with code coverage support]),
830 [use_gcov=${enableval}],
832 AC_MSG_RESULT($use_gcov)
833 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
853 src/datacache/Makefile
854 src/datastore/Makefile
855 src/datastore/datastore.conf
863 src/fragmentation/Makefile
869 src/include/gnunet_directories.h
870 src/hostlist/Makefile
873 src/namestore/Makefile
874 src/namestore/namestore.conf
878 src/peerinfo/Makefile
879 src/peerinfo/peerinfo.conf
880 src/peerinfo-tool/Makefile
882 src/statistics/Makefile
883 src/statistics/statistics.conf
885 src/template/Makefile
887 src/topology/Makefile
888 src/transport/Makefile
889 src/transport/transport.conf
892 src/util/resolver.conf
895 src/integration-tests/Makefile
897 pkgconfig/gnunetarm.pc
898 pkgconfig/gnunetblock.pc
899 pkgconfig/gnunetcore.pc
900 pkgconfig/gnunetdatacache.pc
901 pkgconfig/gnunetdatastore.pc
902 pkgconfig/gnunetdht.pc
903 pkgconfig/gnunetdhtlog.pc
904 pkgconfig/gnunetdv.pc
905 pkgconfig/gnunetfragmentation.pc
906 pkgconfig/gnunetfs.pc
907 pkgconfig/gnunethello.pc
908 pkgconfig/gnunetnat.pc
909 pkgconfig/gnunetnse.pc
910 pkgconfig/gnunetpeerinfo.pc
911 pkgconfig/gnunetstatistics.pc
912 pkgconfig/gnunettesting.pc
913 pkgconfig/gnunettransport.pc
914 pkgconfig/gnunetutil.pc
920 # warn user if mysql found but not used due to version
921 if test "$mysqlfail" = "true"
923 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
927 if test "x$sqlite" = "x0"
929 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
932 if test "x$lmhd" != "x1"
934 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
937 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
939 if test "$enable_framework_build" = "yes"
941 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
944 AC_MSG_NOTICE([********************************************
945 You can compile GNUnet with
947 now. After that, run (if necessary as 'root')
949 to install everything. You may want to create a new user account
950 to run the GNUnet service:
952 You also need to create an configuration file that should
953 specify the path where GNUnet should store data. For example,
954 you could store in "/etc/gnunet.conf" the following lines:
957 SERVICEHOME = /var/lib/gnunet
958 DEFAULTCONFIG = /etc/gnunet.conf
960 Now, in order to start your peer, run as the 'gnunet' user
963 Each GNUnet user should also create an (at least initially) empty
966 touch $HOME/.gnunet/gnunet.conf
968 Optionally, download and compile:
969 - gnunet-gtk to get a GUI for file-sharing and configuration.
970 ********************************************])