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.0],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.0])
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 extra_logging=GNUNET_NO
205 AC_ARG_ENABLE([logging],
206 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
207 [AS_IF([test "x$enableval" = "xyes"], [],
208 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
209 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
210 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
212 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
214 if test $build = $target
216 AC_MSG_CHECKING([for working HMAC])
218 LIBS="$LIBS $LIBGCRYPT_LIBS"
219 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
221 [AC_LANG_PROGRAM([#include <gcrypt.h>
222 #include <stdio.h>], [[
225 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
226 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
227 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
228 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
229 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
230 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
231 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
232 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
233 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
234 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
236 if (!gcry_check_version (GCRYPT_VERSION))
238 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
242 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
243 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
245 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
247 fprintf (stderr, "gcry_md_open error\n");
251 gcry_md_setkey (mac, key, sizeof (key));
252 gcry_md_write (mac, data, sizeof (data));
254 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
256 fprintf (stderr, "memcmp error\n");
264 [AC_MSG_RESULT([yes])],
269 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.])
273 AC_MSG_FAILURE([HMAC test failed])
277 AC_MSG_FAILURE([libgcrypt header version does not match library version])
281 fi # $build = $target
284 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
289 [AS_HELP_STRING([--enable-ats], [enable ATS code])],
290 [enable_ats=${enableval}],
292 if test x${enable_ats} = xyes
294 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
295 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
296 # GLPK must support atm MLP presolving, version >= 4.32
297 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
298 if test x$gplk = xfalse
300 AM_CONDITIONAL(HAVE_LIBGLPK, false)
301 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
303 AM_CONDITIONAL(HAVE_LIBGLPK, true)
304 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
307 AM_CONDITIONAL(HAVE_LIBGLPK, false)
311 # test for kvm and kstat (for CPU stats under BSD/Solaris)
312 AC_CHECK_LIB([kvm],[kvm_open])
313 AC_CHECK_LIB([kstat],[kstat_open])
315 # test for libextractor
317 AC_MSG_CHECKING(for libextractor)
318 AC_ARG_WITH(extractor,
319 [ --with-extractor=PFX base of libextractor installation],
320 [AC_MSG_RESULT([$with_extractor])
321 case $with_extractor in
325 AC_CHECK_HEADERS(extractor.h,
326 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
330 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
331 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
332 AC_CHECK_HEADERS(extractor.h,
333 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
334 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
339 [AC_MSG_RESULT([--with-extractor not specified])
340 AC_CHECK_HEADERS(extractor.h,
341 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
343 if test "$extractor" != 1
345 AC_MSG_ERROR([GNUnet requires libextractor])
351 # Checks for standard header files.
355 # Check for headers that are ALWAYS required
356 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]))
358 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
359 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])
361 SAVE_LDFLAGS=$LDFLAGS
362 SAVE_CPPFLAGS=$CPPFLAGS
366 AC_MSG_CHECKING(for SQLite)
368 [ --with-sqlite=PFX base of SQLite installation],
369 [AC_MSG_RESULT("$with_sqlite")
374 AC_CHECK_HEADERS(sqlite3.h,
378 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
379 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
380 AC_CHECK_HEADERS(sqlite3.h,
381 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
382 SQLITE_LDFLAGS="-L$with_sqlite/lib"
383 SQLITE_CPPFLAGS="-I$with_sqlite/include"
385 LDFLAGS=$SAVE_LDFLAGS
386 CPPFLAGS=$SAVE_CPPFLAGS
390 [AC_MSG_RESULT([--with-sqlite not specified])
391 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
392 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
393 AC_SUBST(SQLITE_CPPFLAGS)
394 AC_SUBST(SQLITE_LDFLAGS)
398 AC_MSG_CHECKING(for postgres)
399 AC_ARG_WITH(postgres,
400 [ --with-postgres=PFX base of postgres installation],
401 [AC_MSG_RESULT("$with_postgres")
402 case $with_postgres in
406 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
410 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
411 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
412 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
413 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
414 POSTGRES_LDFLAGS="-L$with_postgres/lib"
415 POSTGRES_CPPFLAGS="-I$with_postgres/include"
417 LDFLAGS=$SAVE_LDFLAGS
418 CPPFLAGS=$SAVE_CPPFLAGS
422 [AC_MSG_RESULT([--with-postgres not specified])
423 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
424 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
425 AC_SUBST(POSTGRES_CPPFLAGS)
426 AC_SUBST(POSTGRES_LDFLAGS)
428 # test for libz (maybe required for linking mysql)
430 AC_CHECK_LIB(z, compress,,zlib=0)
431 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
434 AC_MSG_ERROR([GNUnet requires zlib])
438 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
439 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
441 if test "$build_target" = "mingw"
443 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
449 SAVE_LDFLAGS=$LDFLAGS
450 SAVE_CPPFLAGS=$CPPFLAGS
451 AC_MSG_CHECKING(for mysql)
453 [ --with-mysql=PFX base of MySQL installation],
454 [AC_MSG_RESULT("$with_mysql")
455 if test "$with_mysql" != "no"
457 if test "$with_mysql" != "yes"
459 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
460 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
462 AC_CHECK_HEADERS(mysql/mysql.h,
463 AC_CHECK_LIB(mysqlclient, mysql_init,
464 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
465 MYSQL_CPPFLAGS="-I$with_mysql/include"
467 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
470 [AC_MSG_RESULT([--with-mysql not specified])
471 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
472 AC_CHECK_LIB(mysqlclient, mysql_init,
473 [AC_CHECK_HEADERS(mysql/mysql.h,
474 MYSQL_LDFLAGS="-L/usr/lib/mysql"
477 , [], [$CYGWIN_MYSQL_MAGIC])])
480 AC_SUBST(MYSQL_LDFLAGS)
481 AC_SUBST(MYSQL_CPPFLAGS)
483 # additional version check for mysql
484 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
485 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
487 AC_MSG_CHECKING(mysql version)
488 AC_RUN_IFELSE([AC_LANG_PROGRAM(
489 [[$CYGWIN_MYSQL_MAGIC
490 #include <mysql/mysql.h>]],
491 [[if (MYSQL_VERSION_ID < 40100)
496 ],mysql=true,mysql=false)
497 if test "$mysql" = "false"
500 AC_MSG_RESULT([fail, >= 4.1 required])
505 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
506 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
509 LDFLAGS=$SAVE_LDFLAGS
510 CPPFLAGS=$SAVE_CPPFLAGS
512 if test "$sqlite" = 0 -a "$mysql" = 0
514 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
519 AC_MSG_CHECKING([for libmicrohttpd])
520 AC_ARG_WITH(microhttpd,
521 [ --with-microhttpd=PFX base of libmicrohttpd installation],
522 [AC_MSG_RESULT([$with_microhttpd])
523 case $with_microhttpd in
527 AC_CHECK_HEADERS([microhttpd.h],
528 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
529 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
531 [],[#include "src/include/platform.h"
532 #include <microhttpd.h>]),,
533 [#include "src/include/platform.h"])
536 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
537 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
538 AC_CHECK_HEADERS(microhttpd.h,
539 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
540 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
541 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
543 [],[#include "src/include/platform.h"
544 #include <microhttpd.h>]),,
545 [#include "src/include/platform.h"])
549 [AC_MSG_RESULT([--with-microhttpd not specified])
550 AC_CHECK_HEADERS([microhttpd.h],
551 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
552 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
554 [],[#include "src/include/platform.h"
555 #include <microhttpd.h>]),,
556 [#include "src/include/platform.h"])])
557 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
558 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
564 # check for python & pexpect (used for some testcases only)
565 AM_PATH_PYTHON([2.5],, [:])
566 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
568 if test "$PYTHON" != :
570 AC_MSG_CHECKING([for pexpect])
571 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
573 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
578 AC_MSG_RESULT([not found])
581 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
586 AM_GNU_GETTEXT([external])
587 AM_GNU_GETTEXT_VERSION([0.16.1])
592 # Checks for standard typedefs, structures, and compiler characteristics.
601 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
602 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
606 #include <sys/types.h>
607 #include <sys/socket.h>
608 #include <netinet/in.h>
613 # Checks for library functions.
614 AC_FUNC_CLOSEDIR_VOID
616 AC_PROG_GCC_TRADITIONAL
618 AC_FUNC_SELECT_ARGTYPES
628 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])
633 gn_user_home_dir="~/.gnunet"
634 AC_ARG_WITH(user-home-dir,
636 [--with-user-home-dir=DIR],
637 [default user home directory (~/.gnunet)]),
638 [gn_user_home_dir=$withval])
639 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
640 gn_daemon_home_dir="/var/lib/gnunet"
641 AC_ARG_WITH(daemon-home-dir,
643 [--with-daemon-home-dir=DIR],
644 [default daemon home directory (/var/lib/gnunet)]),
645 [gn_daemon_home_dir=$withval])
646 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
647 gn_daemon_config_dir="/etc"
648 AC_ARG_WITH(daemon-config-dir,
650 [--with-daemon-config-dir=DIR],
651 [default daemon config directory (/etc)]),
652 [gn_daemon_config_dir=$withval])
653 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
656 GN_LIBINTL="$LTLIBINTL"
657 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
658 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
659 if test x$enable_framework_build = xyes
661 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
662 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
663 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
664 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
667 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
668 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
670 AC_SUBST(GN_LIB_LDFLAGS)
671 AC_SUBST(GN_PLUGIN_LDFLAGS)
672 AC_SUBST(GN_INTLINCL)
678 AC_SUBST(EXT_LIB_PATH)
683 AC_SUBST(EXT_LIB_PATH)
687 AC_MSG_CHECKING(for sudo)
689 [ --with-sudo=PATH path to sudo binary (or just yes)],
690 [AC_MSG_RESULT("$with_sudo")
699 SUDO_BINARY=$with_sudo
703 [AC_MSG_RESULT([no])])
704 AC_SUBST(SUDO_BINARY)
707 # should 'make check' run tests?
708 AC_MSG_CHECKING(whether to run tests)
709 AC_ARG_ENABLE([testruns],
710 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
711 [enable_tests_run=${enableval}],
712 [enable_tests_run=yes])
713 AC_MSG_RESULT($enable_test_run)
714 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
716 # should expensive tests be run?
717 AC_MSG_CHECKING(whether to run expensive tests)
718 AC_ARG_ENABLE([expensivetests],
719 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
720 [enable_expensive=${enableval}],
721 [enable_expensive=no])
722 AC_MSG_RESULT($enable_expensive)
723 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
725 # should benchmarks be run?
726 AC_MSG_CHECKING(whether to run benchmarks during make check)
727 AC_ARG_ENABLE([benchmarks],
728 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
729 [enable_benchmarks=${enableval}],
730 [enable_benchmarks=no])
731 AC_MSG_RESULT($enable_benchmarks)
732 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
734 # should experimental code be compiled (code that may not yet compile)?
735 AC_MSG_CHECKING(whether to compile experimental code)
736 AC_ARG_ENABLE([experimental],
737 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
738 [enable_experimental=${enableval}],
739 [enable_experimental=no])
740 AC_MSG_RESULT($enable_experimental)
741 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
743 # should code be enabled that works around missing OS functionality on Windows?
744 # used for test cases
745 if test $build_target = "mingw"
749 AC_MSG_CHECKING(whether to enable windows workarounds)
750 AC_ARG_ENABLE([windows_workarounds],
751 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
752 [enable_workarounds=${enableval}],
753 [enable_workarounds=no])
754 AC_MSG_RESULT($enable_workarounds)
755 if test x$enable_windows_workarounds = "xyes"
762 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
765 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
766 AC_ARG_ENABLE([coverage],
767 AS_HELP_STRING([--enable-coverage],
768 [compile the library with code coverage support]),
769 [use_gcov=${enableval}],
771 AC_MSG_RESULT($use_gcov)
772 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
787 src/datacache/Makefile
788 src/datastore/Makefile
791 src/fragmentation/Makefile
795 src/include/gnunet_directories.h
796 src/hostlist/Makefile
800 src/peerinfo/Makefile
801 src/peerinfo-tool/Makefile
802 src/statistics/Makefile
803 src/template/Makefile
805 src/topology/Makefile
806 src/transport/Makefile
810 src/integration-tests/Makefile
812 pkgconfig/gnunetarm.pc
813 pkgconfig/gnunetblock.pc
814 pkgconfig/gnunetcore.pc
815 pkgconfig/gnunetdatacache.pc
816 pkgconfig/gnunetdatastore.pc
817 pkgconfig/gnunetdht.pc
818 pkgconfig/gnunetdhtlog.pc
819 pkgconfig/gnunetdv.pc
820 pkgconfig/gnunetfragmentation.pc
821 pkgconfig/gnunetfs.pc
822 pkgconfig/gnunethello.pc
823 pkgconfig/gnunetnat.pc
824 pkgconfig/gnunetnse.pc
825 pkgconfig/gnunetpeerinfo.pc
826 pkgconfig/gnunetstatistics.pc
827 pkgconfig/gnunettesting.pc
828 pkgconfig/gnunettransport.pc
829 pkgconfig/gnunetutil.pc
835 # warn user if mysql found but not used due to version
836 if test "$mysqlfail" = "true"
838 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
842 if test "x$sqlite" = "x0"
844 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
847 if test "x$lmhd" != "x1"
849 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
852 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
854 if test "$enable_framework_build" = "yes"
856 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
859 AC_MSG_NOTICE([********************************************
860 You can compile GNUnet with
862 now. After that, run (if necessary as 'root')
864 to install everything. You may want to create a new user account
865 to run the GNUnet service:
867 You also need to create an configuration file that should
868 specify the path where GNUnet should store data. For example,
869 you could store in "/etc/gnunet.conf" the following lines:
872 SERVICEHOME = /var/lib/gnunet
873 DEFAULTCONFIG = /etc/gnunet.conf
875 Now, in order to start your peer, run as the 'gnunet' user
878 Each GNUnet user should also create an (at least initially) empty
881 touch $HOME/.gnunet/gnunet.conf
883 Optionally, download and compile:
884 - gnunet-gtk to get a GUI for file-sharing and configuration.
885 ********************************************])