1 # This file is part of GNUnet.
2 # (C) 2001--2010 Christian Grothoff (and other contributing authors)
4 # GNUnet is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published
6 # by the Free Software Foundation; either version 2, or (at your
7 # option) any later version.
9 # GNUnet is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with GNUnet; see the file COPYING. If not, write to the
16 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 # Boston, MA 02111-1307, USA.
20 # Process this file with autoconf to produce a configure script.
24 # Checks for programs.
25 AC_INIT([gnunet], [0.9.0pre2],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.0pre2])
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33 AC_CONFIG_HEADERS([gnunet_config.h])
34 AH_TOP([#define _GNU_SOURCE 1])
45 LT_INIT([disable-static dlopen win32-dll])
56 if test "$enable_shared" = "no"
58 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
61 CFLAGS="-Wall $CFLAGS"
62 # use '-fno-strict-aliasing', but only if the compiler can take it
63 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
65 CFLAGS="-fno-strict-aliasing $CFLAGS"
68 # Use Linux interface name unless the OS has a different preference
69 DEFAULT_INTERFACE="\"eth0\""
73 *darwin* | *rhapsody* | *macosx*)
74 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
75 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
76 CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
77 AC_MSG_WARN([The VPN application cannot be compiled on your OS])
79 DEFAULT_INTERFACE="\"en0\""
84 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
91 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
92 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
93 CFLAGS="-D_THREAD_SAFE $CFLAGS"
94 build_target="freebsd"
99 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
100 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
101 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
102 build_target="openbsd"
107 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
108 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
113 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
114 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
115 AC_CHECK_LIB(resolv, res_init)
116 AC_CHECK_LIB(rt, nanosleep)
117 build_target="solaris"
122 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
123 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
129 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
130 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
131 AC_CHECK_LIB(intl, gettext)
132 LDFLAGS="$LDFLAGS -no-undefined"
133 CFLAGS="-mms-bitfields $CFLAGS"
134 build_target="cygwin"
140 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
141 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
142 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
143 AC_CHECK_LIB(intl, gettext)
144 LDFLAGS="$LDFLAGS -no-undefined -Wl,--export-all-symbols"
145 LIBS="$LIBS -lws2_32 -lplibc"
146 CFLAGS="-mms-bitfields $CFLAGS"
147 CPPFLAGS="-D_WIN32_WINNT=0x0501 $CPPFLAGS"
154 AC_MSG_RESULT(Unrecognised OS $host_os)
155 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
158 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
159 AC_SUBST(DEFAULT_INTERFACE)
161 AC_MSG_CHECKING([for build target])
162 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
163 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
164 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
165 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
166 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
167 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
168 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
170 AC_MSG_RESULT([$build_target])
171 AC_SUBST(build_target)
172 AM_CONDITIONAL([am__fastdepOBJC], false)
173 AC_UNALIGNED_64_ACCESS
175 # some other checks for standard libs
176 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
177 AC_CHECK_LIB(socket, socket)
179 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
181 # 'save' libs; only those libs found so far will be
182 # linked against _everywhere_. For the others, we
183 # will be more selective!
188 AM_PATH_LIBGCRYPT(1.2.0, gcrypt=1)
189 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
193 AC_MSG_ERROR([GNUnet needs libgcrypt])
196 if test $build = $target
198 AC_MSG_CHECKING([for working HMAC])
200 LIBS="$LIBS $LIBGCRYPT_LIBS"
201 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
203 [AC_LANG_PROGRAM([#include <gcrypt.h>], [[
206 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
207 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
208 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
209 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
210 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
211 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
212 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
213 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
214 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
215 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
217 if (!gcry_check_version (GCRYPT_VERSION))
220 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
221 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
223 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
226 gcry_md_setkey (mac, key, sizeof (key));
227 gcry_md_write (mac, data, sizeof (data));
229 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
236 [AC_MSG_RESULT([yes])],
240 AC_MSG_FAILURE([HMAC test vector does not match. This is a known problem with libgcrypt 1.2.2 on Windows and fixed in 1.4.6.])
242 AC_MSG_FAILURE([HMAC test failed])
246 fi # $build = $target
249 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
255 AC_CHECK_HEADERS(glpk.h, ,[gplk=false])
256 AC_CHECK_LIB([glpk],[glp_create_prob], , [gplk=false])
257 # GLPK must support atm MLP presolving, version >= 4.32
258 AC_CHECK_MEMBERS(glp_iocp.presolve, ,[gplk=false],[[#include <glpk.h>]])
259 if test x$gplk = xfalse
261 AM_CONDITIONAL(HAVE_GLPK, [test x$gplk = xtrue])
262 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$gplk != x$gplk])
263 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
265 AM_CONDITIONAL(HAVE_GLPK, [test x$gplk = xtrue])
266 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$gplk = x$gplk])
269 # test for kvm and kstat (for CPU stats under BSD/Solaris)
270 AC_CHECK_LIB([kvm],[kvm_open])
271 AC_CHECK_LIB([kstat],[kstat_open])
273 # test for libextractor
275 AC_MSG_CHECKING(for libextractor)
276 AC_ARG_WITH(extractor,
277 [ --with-extractor=PFX base of libextractor installation],
278 [AC_MSG_RESULT([$with_extractor])
279 case $with_extractor in
283 AC_CHECK_HEADERS(extractor.h,
284 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
288 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
289 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
290 AC_CHECK_HEADERS(extractor.h,
291 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
292 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
297 [AC_MSG_RESULT([--with-extractor not specified])
298 AC_CHECK_HEADERS(extractor.h,
299 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
301 if test "$extractor" != 1
303 AC_MSG_ERROR([GNUnet requires libextractor])
309 # Checks for standard header files.
313 # Check for headers that are ALWAYS required
314 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]))
316 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
317 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])
319 SAVE_LDFLAGS=$LDFLAGS
320 SAVE_CPPFLAGS=$CPPFLAGS
324 AC_MSG_CHECKING(for SQLite)
326 [ --with-sqlite=PFX base of SQLite installation],
327 [AC_MSG_RESULT("$with_sqlite")
332 AC_CHECK_HEADERS(sqlite3.h,
336 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
337 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
338 AC_CHECK_HEADERS(sqlite3.h,
339 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
340 SQLITE_LDFLAGS="-L$with_sqlite/lib"
341 SQLITE_CPPFLAGS="-I$with_sqlite/include"
343 LDFLAGS=$SAVE_LDFLAGS
344 CPPFLAGS=$SAVE_CPPFLAGS
348 [AC_MSG_RESULT([--with-sqlite not specified])
349 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
350 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
351 AC_SUBST(SQLITE_CPPFLAGS)
352 AC_SUBST(SQLITE_LDFLAGS)
356 AC_MSG_CHECKING(for postgres)
357 AC_ARG_WITH(postgres,
358 [ --with-postgres=PFX base of postgres installation],
359 [AC_MSG_RESULT("$with_postgres")
360 case $with_postgres in
364 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
368 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
369 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
370 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
371 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
372 POSTGRES_LDFLAGS="-L$with_postgres/lib"
373 POSTGRES_CPPFLAGS="-I$with_postgres/include"
375 LDFLAGS=$SAVE_LDFLAGS
376 CPPFLAGS=$SAVE_CPPFLAGS
380 [AC_MSG_RESULT([--with-postgres not specified])
381 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
382 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
383 AC_SUBST(POSTGRES_CPPFLAGS)
384 AC_SUBST(POSTGRES_LDFLAGS)
386 # test for libz (maybe required for linking mysql)
388 AC_CHECK_LIB(z, compress,,zlib=0)
389 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
392 AC_MSG_ERROR([GNUnet requires zlib])
396 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
397 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
399 if test "$build_target" = "mingw"
401 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
407 SAVE_LDFLAGS=$LDFLAGS
408 SAVE_CPPFLAGS=$CPPFLAGS
409 AC_MSG_CHECKING(for mysql)
411 [ --with-mysql=PFX base of MySQL installation],
412 [AC_MSG_RESULT("$with_mysql")
413 if test "$with_mysql" != "no"
415 if test "$with_mysql" != "yes"
417 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
418 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
420 AC_CHECK_HEADERS(mysql/mysql.h,
421 AC_CHECK_LIB(mysqlclient, mysql_init,
422 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
423 MYSQL_CPPFLAGS="-I$with_mysql/include"
425 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
428 [AC_MSG_RESULT([--with-mysql not specified])
429 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
430 AC_CHECK_LIB(mysqlclient, mysql_init,
431 [AC_CHECK_HEADERS(mysql/mysql.h,
432 MYSQL_LDFLAGS="-L/usr/lib/mysql"
435 , [], [$CYGWIN_MYSQL_MAGIC])])
438 AC_SUBST(MYSQL_LDFLAGS)
439 AC_SUBST(MYSQL_CPPFLAGS)
441 # additional version check for mysql
442 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
443 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
445 AC_MSG_CHECKING(mysql version)
446 AC_RUN_IFELSE([AC_LANG_PROGRAM(
447 [[$CYGWIN_MYSQL_MAGIC
448 #include <mysql/mysql.h>]],
449 [[if (MYSQL_VERSION_ID < 40100)
454 ],mysql=true,mysql=false)
455 if test "$mysql" = "false"
458 AC_MSG_RESULT([fail, >= 4.1 required])
463 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
464 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
467 LDFLAGS=$SAVE_LDFLAGS
468 CPPFLAGS=$SAVE_CPPFLAGS
470 if test "$sqlite" = 0 -a "$mysql" = 0
472 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
477 AC_MSG_CHECKING([for libmicrohttpd])
478 AC_ARG_WITH(microhttpd,
479 [ --with-microhttpd=PFX base of libmicrohttpd installation],
480 [AC_MSG_RESULT([$with_microhttpd])
481 case $with_microhttpd in
485 AC_CHECK_HEADERS([microhttpd.h],
486 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
487 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
489 [],[#include "src/include/platform.h"
490 #include <microhttpd.h>]),,
491 [#include "src/include/platform.h"])
494 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
495 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
496 AC_CHECK_HEADERS(microhttpd.h,
497 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
498 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
499 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
501 [],[#include "src/include/platform.h"
502 #include <microhttpd.h>]),,
503 [#include "src/include/platform.h"])
507 [AC_MSG_RESULT([--with-microhttpd not specified])
508 AC_CHECK_HEADERS([microhttpd.h],
509 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
510 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
512 [],[#include "src/include/platform.h"
513 #include <microhttpd.h>]),,
514 [#include "src/include/platform.h"])])
515 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
516 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
521 AC_MSG_CHECKING([for openssl])
523 [ --with-openssl=PFX base of openssl installation],
524 [AC_MSG_RESULT([$with_openssl])
525 case $with_openssl in
529 AC_CHECK_HEADERS([openssl/ssl.h],
530 AC_CHECK_LIB([ssl], [SSL_new],
534 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
535 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
536 AC_CHECK_HEADERS([openssl/ssl.h],
537 AC_CHECK_LIB([ssl], [SSL_new],
538 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
543 [AC_MSG_RESULT([--with-openssl not specified])
544 AC_CHECK_HEADERS([openssl/ssl.h],
545 AC_CHECK_LIB([ssl], [SSL_new],
547 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
548 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
558 # check for python & pexpect (used for some testcases only)
559 AM_PATH_PYTHON([2.5],, [:])
560 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
562 if test "$PYTHON" != :
564 AC_MSG_CHECKING([for pexpect])
565 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
567 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
572 AC_MSG_RESULT([not found])
575 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
580 AC_MSG_CHECKING([for libesmtp])
582 [ --with-esmtp=PFX base of libesmtp installation],
583 [AC_MSG_RESULT([$with_esmtp])
588 AC_CHECK_HEADERS(libesmtp.h,
589 AC_CHECK_LIB([esmtp], [smtp_start_session],
593 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
594 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
595 AC_CHECK_HEADERS(libesmtp.h,
596 AC_CHECK_LIB([esmtp], [smtp_start_session],
597 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
602 [AC_MSG_RESULT([--with-esmtp not specified])
603 AC_CHECK_HEADERS(libesmtp.h,
604 AC_CHECK_LIB([esmtp], [smtp_start_session],
606 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
607 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
614 AM_GNU_GETTEXT([external])
615 AM_GNU_GETTEXT_VERSION([0.16.1])
620 # Checks for standard typedefs, structures, and compiler characteristics.
629 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
630 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
634 #include <sys/types.h>
635 #include <sys/socket.h>
636 #include <netinet/in.h>
641 # Checks for library functions.
642 AC_FUNC_CLOSEDIR_VOID
645 AC_PROG_GCC_TRADITIONAL
647 AC_FUNC_SELECT_ARGTYPES
657 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])
662 gn_user_home_dir="~/.gnunet"
663 AC_ARG_WITH(user-home-dir,
665 [--with-user-home-dir=DIR],
666 [default user home directory (~/.gnunet)]),
667 [gn_user_home_dir=$withval])
668 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
669 gn_daemon_home_dir="/var/lib/gnunet"
670 AC_ARG_WITH(daemon-home-dir,
672 [--with-daemon-home-dir=DIR],
673 [default daemon home directory (/var/lib/gnunet)]),
674 [gn_daemon_home_dir=$withval])
675 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
676 gn_daemon_config_dir="/etc"
677 AC_ARG_WITH(daemon-config-dir,
679 [--with-daemon-config-dir=DIR],
680 [default daemon config directory (/etc)]),
681 [gn_daemon_config_dir=$withval])
682 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
685 GN_LIBINTL="$LTLIBINTL"
686 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
687 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
688 if test x$enable_framework_build = xyes
690 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
691 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
692 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
693 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
696 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
697 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
699 AC_SUBST(GN_LIB_LDFLAGS)
700 AC_SUBST(GN_PLUGIN_LDFLAGS)
701 AC_SUBST(GN_INTLINCL)
707 AC_SUBST(EXT_LIB_PATH)
712 AC_SUBST(EXT_LIB_PATH)
715 # should 'make check' run tests?
716 AC_MSG_CHECKING(whether to run tests)
717 AC_ARG_ENABLE([testruns],
718 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
719 [enable_tests_run=${enableval}],
720 [enable_tests_run=yes])
721 AC_MSG_RESULT($enable_test_run)
722 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
724 # should expensive tests be run?
725 AC_MSG_CHECKING(whether to run expensive tests)
726 AC_ARG_ENABLE([expensivetests],
727 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
728 [enable_expensive=${enableval}],
729 [enable_expensive=no])
730 AC_MSG_RESULT($enable_expensive)
731 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
733 # should benchmarks be run?
734 AC_MSG_CHECKING(whether to run benchmarks during make check)
735 AC_ARG_ENABLE([benchmarks],
736 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
737 [enable_benchmarks=${enableval}],
738 [enable_benchmarks=no])
739 AC_MSG_RESULT($enable_benchmarks)
740 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
742 # should experimental code be compiled (code that may not yet compile)?
743 AC_MSG_CHECKING(whether to compile experimental code)
744 AC_ARG_ENABLE([experimental],
745 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
746 [enable_experimental=${enableval}],
747 [enable_experimental=no])
748 AC_MSG_RESULT($enable_experimental)
749 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
751 # should malicious code be compiled (code used for testing with malicious peers)
752 AC_MSG_CHECKING(whether to compile malicious code)
753 AC_ARG_ENABLE([malicious],
754 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code (only for developers for testing)])],
755 [enable_malicious=${enableval}],
756 [enable_malicious=no])
757 AC_MSG_RESULT($enable_malicious)
758 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "xyes"])
759 if test "$enable_malicious" = "yes"
761 AC_DEFINE([HAVE_MALICIOUS],[1],[include malicious code])
763 AC_DEFINE([HAVE_MALICIOUS],[0],[disable malicious code])
766 # should code be enabled that works around missing OS functionality on Windows?
767 # used for test cases
768 if test $build_target = "mingw"
772 AC_MSG_CHECKING(whether to enable windows workarounds)
773 AC_ARG_ENABLE([windows_workarounds],
774 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
775 [enable_workarounds=${enableval}],
776 [enable_workarounds=no])
777 AC_MSG_RESULT($enable_workarounds)
778 if test x$enable_windows_workarounds = "xyes"
785 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
788 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
789 AC_ARG_ENABLE([coverage],
790 AS_HELP_STRING([--enable-coverage],
791 [compile the library with code coverage support]),
792 [use_gcov=${enableval}],
794 AC_MSG_RESULT($use_gcov)
795 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
831 pkgconfig/gnunetarm.pc
832 pkgconfig/gnunetblock.pc
833 pkgconfig/gnunetcore.pc
834 pkgconfig/gnunetdatacache.pc
835 pkgconfig/gnunetdatastore.pc
836 pkgconfig/gnunetdht.pc
837 pkgconfig/gnunetdhtlog.pc
838 pkgconfig/gnunetdv.pc
839 pkgconfig/gnunetfragmentation.pc
840 pkgconfig/gnunetfs.pc
841 pkgconfig/gnunethello.pc
842 pkgconfig/gnunetpeerinfo.pc
843 pkgconfig/gnunetstatistics.pc
844 pkgconfig/gnunettesting.pc
845 pkgconfig/gnunettransport.pc
846 pkgconfig/gnunetutil.pc
852 # warn user if mysql found but not used due to version
853 if test "$mysqlfail" = "true"
855 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
859 if test "x$sqlite" = "x0"
861 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
864 if test "x$lmhd" != "x1"
866 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
869 if test "x$esmtp" != "x1"
871 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
874 if test "x$openssl" != "x1"
876 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
879 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
881 if test "$enable_framework_build" = "yes"
883 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
886 AC_MSG_NOTICE([********************************************
887 You can compile GNUnet with
889 now. After that, run (if necessary as 'root')
891 to install everything. You may want to create a new user account
892 to run the GNUnet service:
894 You also need to create an configuration file that should
895 specify the path where GNUnet should store data. For example,
896 you could store in "/etc/gnunet.conf" the following lines:
899 SERVICEHOME = /var/lib/gnunet
900 DEFAULTCONFIG = /etc/gnunet.conf
902 Now, in order to start your peer, run as the 'gnunet' user
905 Each GNUnet user should also create an (at least initially) empty
908 touch $HOME/.gnunet/gnunet.conf
910 Optionally, download and compile gnunet-gtk to get a GUI.
911 ********************************************])