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\""
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 [AS_HELP_STRING([--enable-ats], [enable ATS code])],
325 [enable_ats=${enableval}],
327 if test x${enable_ats} = xyes
329 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
330 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
331 # GLPK must support atm MLP presolving, version >= 4.32
332 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
333 if test x$gplk = xfalse
335 AM_CONDITIONAL(HAVE_LIBGLPK, false)
336 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
338 AM_CONDITIONAL(HAVE_LIBGLPK, true)
339 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
342 AM_CONDITIONAL(HAVE_LIBGLPK, false)
346 # test for kvm and kstat (for CPU stats under BSD/Solaris)
347 AC_CHECK_LIB([kvm],[kvm_open])
348 AC_CHECK_LIB([kstat],[kstat_open])
350 # test for libextractor
352 AC_MSG_CHECKING(for libextractor)
353 AC_ARG_WITH(extractor,
354 [ --with-extractor=PFX base of libextractor installation],
355 [AC_MSG_RESULT([$with_extractor])
356 case $with_extractor in
360 AC_CHECK_HEADERS(extractor.h,
361 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
365 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
366 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
367 AC_CHECK_HEADERS(extractor.h,
368 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
369 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
374 [AC_MSG_RESULT([--with-extractor not specified])
375 AC_CHECK_HEADERS(extractor.h,
376 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
378 if test "$extractor" != 1
380 AC_MSG_ERROR([GNUnet requires libextractor])
385 # test for libunistring
387 if test $HAVE_LIBUNISTRING != yes; then
388 AC_MSG_ERROR([GNUnet requires libunistring])
390 if test $gl_libunistring_hexversion -le 2305; then
391 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
398 # Checks for standard header files.
402 # Check for headers that are ALWAYS required
403 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]))
405 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
406 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])
408 SAVE_LDFLAGS=$LDFLAGS
409 SAVE_CPPFLAGS=$CPPFLAGS
413 AC_MSG_CHECKING(for SQLite)
415 [ --with-sqlite=PFX base of SQLite installation],
416 [AC_MSG_RESULT("$with_sqlite")
421 AC_CHECK_HEADERS(sqlite3.h,
425 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
426 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
427 AC_CHECK_HEADERS(sqlite3.h,
428 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
429 SQLITE_LDFLAGS="-L$with_sqlite/lib"
430 SQLITE_CPPFLAGS="-I$with_sqlite/include"
432 LDFLAGS=$SAVE_LDFLAGS
433 CPPFLAGS=$SAVE_CPPFLAGS
437 [AC_MSG_RESULT([--with-sqlite not specified])
438 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
439 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
440 AC_SUBST(SQLITE_CPPFLAGS)
441 AC_SUBST(SQLITE_LDFLAGS)
445 AC_MSG_CHECKING(for postgres)
446 AC_ARG_WITH(postgres,
447 [ --with-postgres=PFX base of postgres installation],
448 [AC_MSG_RESULT("$with_postgres")
449 case $with_postgres in
453 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
457 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
458 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
459 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
460 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
461 POSTGRES_LDFLAGS="-L$with_postgres/lib"
462 POSTGRES_CPPFLAGS="-I$with_postgres/include"
464 LDFLAGS=$SAVE_LDFLAGS
465 CPPFLAGS=$SAVE_CPPFLAGS
469 [AC_MSG_RESULT([--with-postgres not specified])
470 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
471 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
472 AC_SUBST(POSTGRES_CPPFLAGS)
473 AC_SUBST(POSTGRES_LDFLAGS)
475 # test for libz (maybe required for linking mysql)
477 AC_CHECK_LIB(z, compress,,zlib=0)
478 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
481 AC_MSG_ERROR([GNUnet requires zlib])
485 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
486 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
488 if test "$build_target" = "mingw"
490 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
496 SAVE_LDFLAGS=$LDFLAGS
497 SAVE_CPPFLAGS=$CPPFLAGS
498 AC_MSG_CHECKING(for mysql)
500 [ --with-mysql=PFX base of MySQL installation],
501 [AC_MSG_RESULT("$with_mysql")
502 if test "$with_mysql" != "no"
504 if test "$with_mysql" != "yes"
506 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
507 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
509 AC_CHECK_HEADERS(mysql/mysql.h,
510 AC_CHECK_LIB(mysqlclient, mysql_init,
511 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
512 MYSQL_CPPFLAGS="-I$with_mysql/include"
514 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
517 [AC_MSG_RESULT([--with-mysql not specified])
518 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
519 AC_CHECK_LIB(mysqlclient, mysql_init,
520 [AC_CHECK_HEADERS(mysql/mysql.h,
521 MYSQL_LDFLAGS="-L/usr/lib/mysql"
524 , [], [$CYGWIN_MYSQL_MAGIC])])
527 AC_SUBST(MYSQL_LDFLAGS)
528 AC_SUBST(MYSQL_CPPFLAGS)
530 # additional version check for mysql
531 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
532 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
534 AC_MSG_CHECKING(mysql version)
535 AC_RUN_IFELSE([AC_LANG_PROGRAM(
536 [[$CYGWIN_MYSQL_MAGIC
537 #include <mysql/mysql.h>]],
538 [[if (MYSQL_VERSION_ID < 40100)
543 ],mysql=true,mysql=false)
544 if test "$mysql" = "false"
547 AC_MSG_RESULT([fail, >= 4.1 required])
552 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
553 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
556 LDFLAGS=$SAVE_LDFLAGS
557 CPPFLAGS=$SAVE_CPPFLAGS
559 if test "$sqlite" = 0 -a "$mysql" = 0
561 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
566 AC_MSG_CHECKING([for libmicrohttpd])
567 AC_ARG_WITH(microhttpd,
568 [ --with-microhttpd=PFX base of libmicrohttpd installation],
569 [AC_MSG_RESULT([$with_microhttpd])
570 case $with_microhttpd in
574 AC_CHECK_HEADERS([microhttpd.h],
575 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
576 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
578 [],[#include "src/include/platform.h"
579 #include <microhttpd.h>]),,
580 [#include "src/include/platform.h"])
583 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
584 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
585 AC_CHECK_HEADERS(microhttpd.h,
586 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
587 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
588 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
590 [],[#include "src/include/platform.h"
591 #include <microhttpd.h>]),,
592 [#include "src/include/platform.h"])
596 [AC_MSG_RESULT([--with-microhttpd not specified])
597 AC_CHECK_HEADERS([microhttpd.h],
598 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
599 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
601 [],[#include "src/include/platform.h"
602 #include <microhttpd.h>]),,
603 [#include "src/include/platform.h"])])
604 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
605 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
611 # check for python & pexpect (used for some testcases only)
612 AM_PATH_PYTHON([2.6],, [:])
613 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
615 if test "$PYTHON" != :
617 AC_MSG_CHECKING([for pexpect])
618 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
620 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
625 AC_MSG_RESULT([not found])
628 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
633 AM_GNU_GETTEXT([external])
634 AM_GNU_GETTEXT_VERSION([0.16.1])
639 # Checks for standard typedefs, structures, and compiler characteristics.
648 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
649 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
653 #include <sys/types.h>
654 #include <sys/socket.h>
655 #include <netinet/in.h>
660 # Checks for library functions.
661 AC_FUNC_CLOSEDIR_VOID
663 AC_PROG_GCC_TRADITIONAL
665 AC_FUNC_SELECT_ARGTYPES
675 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])
680 gn_user_home_dir="~/.gnunet"
681 AC_ARG_WITH(user-home-dir,
683 [--with-user-home-dir=DIR],
684 [default user home directory (~/.gnunet)]),
685 [gn_user_home_dir=$withval])
686 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
687 gn_daemon_home_dir="/var/lib/gnunet"
688 AC_ARG_WITH(daemon-home-dir,
690 [--with-daemon-home-dir=DIR],
691 [default daemon home directory (/var/lib/gnunet)]),
692 [gn_daemon_home_dir=$withval])
693 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
694 gn_daemon_config_dir="/etc"
695 AC_ARG_WITH(daemon-config-dir,
697 [--with-daemon-config-dir=DIR],
698 [default daemon config directory (/etc)]),
699 [gn_daemon_config_dir=$withval])
700 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
703 GN_LIBINTL="$LTLIBINTL"
704 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
705 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
706 if test x$enable_framework_build = xyes
708 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
709 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
710 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
711 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
714 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
715 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
717 AC_SUBST(GN_LIB_LDFLAGS)
718 AC_SUBST(GN_PLUGIN_LDFLAGS)
719 AC_SUBST(GN_INTLINCL)
725 AC_SUBST(EXT_LIB_PATH)
730 AC_SUBST(EXT_LIB_PATH)
734 AC_MSG_CHECKING(for sudo)
736 [ --with-sudo=PATH path to sudo binary (or just yes)],
737 [AC_MSG_RESULT("$with_sudo")
746 SUDO_BINARY=$with_sudo
750 [AC_MSG_RESULT([no])])
751 AC_SUBST(SUDO_BINARY)
754 # test for gnunetdns group name
755 GNUNETDNS_GROUP=gnunetdns
756 AC_MSG_CHECKING(for gnunetdns group name)
757 AC_ARG_WITH(gnunetdns,
758 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
759 [AC_MSG_RESULT("$with_gnunetdns")
760 case $with_gnunetdns in
762 GNUNETDNS_GROUP=gnunet
765 GNUNETDNS_GROUP=gnunetdns
768 GNUNETDNS_GROUP=$with_gnunetdns
772 [AC_MSG_RESULT([gnunetdns])])
773 AC_SUBST(GNUNETDNS_GROUP)
776 # should 'make check' run tests?
777 AC_MSG_CHECKING(whether to run tests)
778 AC_ARG_ENABLE([testruns],
779 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
780 [enable_tests_run=${enableval}],
781 [enable_tests_run=yes])
782 AC_MSG_RESULT($enable_test_run)
783 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
785 # should expensive tests be run?
786 AC_MSG_CHECKING(whether to run expensive tests)
787 AC_ARG_ENABLE([expensivetests],
788 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
789 [enable_expensive=${enableval}],
790 [enable_expensive=no])
791 AC_MSG_RESULT($enable_expensive)
792 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
794 # should benchmarks be run?
795 AC_MSG_CHECKING(whether to run benchmarks during make check)
796 AC_ARG_ENABLE([benchmarks],
797 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
798 [enable_benchmarks=${enableval}],
799 [enable_benchmarks=no])
800 AC_MSG_RESULT($enable_benchmarks)
801 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
803 # should experimental code be compiled (code that may not yet compile)?
804 AC_MSG_CHECKING(whether to compile experimental code)
805 AC_ARG_ENABLE([experimental],
806 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
807 [enable_experimental=${enableval}],
808 [enable_experimental=no])
809 AC_MSG_RESULT($enable_experimental)
810 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
812 # should code be enabled that works around missing OS functionality on Windows?
813 # used for test cases
814 if test $build_target = "mingw"
818 AC_MSG_CHECKING(whether to enable windows workarounds)
819 AC_ARG_ENABLE([windows_workarounds],
820 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
821 [enable_workarounds=${enableval}],
822 [enable_workarounds=no])
823 AC_MSG_RESULT($enable_workarounds)
824 if test x$enable_windows_workarounds = "xyes"
831 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
834 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
835 AC_ARG_ENABLE([coverage],
836 AS_HELP_STRING([--enable-coverage],
837 [compile the library with code coverage support]),
838 [use_gcov=${enableval}],
840 AC_MSG_RESULT($use_gcov)
841 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
861 src/datacache/Makefile
862 src/datastore/Makefile
863 src/datastore/datastore.conf
871 src/fragmentation/Makefile
876 src/include/gnunet_directories.h
877 src/hostlist/Makefile
880 src/namestore/Makefile
881 src/namestore/namestore.conf
885 src/peerinfo/Makefile
886 src/peerinfo/peerinfo.conf
887 src/peerinfo-tool/Makefile
889 src/statistics/Makefile
890 src/statistics/statistics.conf
892 src/template/Makefile
894 src/topology/Makefile
895 src/transport/Makefile
896 src/transport/transport.conf
899 src/util/resolver.conf
902 src/integration-tests/Makefile
904 pkgconfig/gnunetarm.pc
905 pkgconfig/gnunetblock.pc
906 pkgconfig/gnunetcore.pc
907 pkgconfig/gnunetdatacache.pc
908 pkgconfig/gnunetdatastore.pc
909 pkgconfig/gnunetdht.pc
910 pkgconfig/gnunetdhtlog.pc
911 pkgconfig/gnunetdv.pc
912 pkgconfig/gnunetfragmentation.pc
913 pkgconfig/gnunetfs.pc
914 pkgconfig/gnunethello.pc
915 pkgconfig/gnunetnat.pc
916 pkgconfig/gnunetnse.pc
917 pkgconfig/gnunetpeerinfo.pc
918 pkgconfig/gnunetstatistics.pc
919 pkgconfig/gnunettesting.pc
920 pkgconfig/gnunettransport.pc
921 pkgconfig/gnunetutil.pc
927 # warn user if mysql found but not used due to version
928 if test "$mysqlfail" = "true"
930 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
934 if test "x$sqlite" = "x0"
936 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
939 if test "x$lmhd" != "x1"
941 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
944 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
946 if test "$enable_framework_build" = "yes"
948 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
951 AC_MSG_NOTICE([********************************************
952 You can compile GNUnet with
954 now. After that, run (if necessary as 'root')
956 to install everything. You may want to create a new user account
957 to run the GNUnet service:
959 You also need to create an configuration file that should
960 specify the path where GNUnet should store data. For example,
961 you could store in "/etc/gnunet.conf" the following lines:
964 SERVICEHOME = /var/lib/gnunet
965 DEFAULTCONFIG = /etc/gnunet.conf
967 Now, in order to start your peer, run as the 'gnunet' user
970 Each GNUnet user should also create an (at least initially) empty
973 touch $HOME/.gnunet/gnunet.conf
975 Optionally, download and compile:
976 - gnunet-gtk to get a GUI for file-sharing and configuration.
977 ********************************************])