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 AC_INIT([gnunet], [0.9.0pre2],[bug-gnunet@gnu.org])
25 AM_INIT_AUTOMAKE([gnunet], [0.9.0pre2])
26 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 AC_CONFIG_HEADERS([gnunet_config.h])
29 AH_TOP([#define _GNU_SOURCE 1])
31 # Checks for programs.
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 AC_MSG_CHECKING([for working HMAC])
198 LIBS="$LIBS $LIBGCRYPT_LIBS"
199 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
201 [AC_LANG_PROGRAM([#include <gcrypt.h>], [[
204 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
205 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
206 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
207 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
208 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
209 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
210 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
211 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
212 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
213 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
215 if (!gcry_check_version (GCRYPT_VERSION))
218 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
219 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
221 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
224 gcry_md_setkey (mac, key, sizeof (key));
225 gcry_md_write (mac, data, sizeof (data));
227 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
234 [AC_MSG_RESULT([yes])],
238 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.])
240 AC_MSG_FAILURE([HMAC test failed])
246 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
250 # test for kvm and kstat (for CPU stats under BSD/Solaris)
251 AC_CHECK_LIB([kvm],[kvm_open])
252 AC_CHECK_LIB([kstat],[kstat_open])
254 # test for libextractor
256 AC_MSG_CHECKING(for libextractor)
257 AC_ARG_WITH(extractor,
258 [ --with-extractor=PFX base of libextractor installation],
259 [AC_MSG_RESULT([$with_extractor])
260 case $with_extractor in
264 AC_CHECK_HEADERS(extractor.h,
265 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
269 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
270 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
271 AC_CHECK_HEADERS(extractor.h,
272 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
273 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
278 [AC_MSG_RESULT([--with-extractor not specified])
279 AC_CHECK_HEADERS(extractor.h,
280 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
282 if test "$extractor" != 1
284 AC_MSG_ERROR([GNUnet requires libextractor])
290 # Checks for standard header files.
294 # Check for headers that are ALWAYS required
295 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]))
297 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
298 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])
300 SAVE_LDFLAGS=$LDFLAGS
301 SAVE_CPPFLAGS=$CPPFLAGS
305 AC_MSG_CHECKING(for SQLite)
307 [ --with-sqlite=PFX base of SQLite installation],
308 [AC_MSG_RESULT("$with_sqlite")
313 AC_CHECK_HEADERS(sqlite3.h,
317 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
318 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
319 AC_CHECK_HEADERS(sqlite3.h,
320 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
321 SQLITE_LDFLAGS="-L$with_sqlite/lib"
322 SQLITE_CPPFLAGS="-I$with_sqlite/include"
324 LDFLAGS=$SAVE_LDFLAGS
325 CPPFLAGS=$SAVE_CPPFLAGS
329 [AC_MSG_RESULT([--with-sqlite not specified])
330 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
331 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
332 AC_SUBST(SQLITE_CPPFLAGS)
333 AC_SUBST(SQLITE_LDFLAGS)
337 AC_MSG_CHECKING(for postgres)
338 AC_ARG_WITH(postgres,
339 [ --with-postgres=PFX base of postgres installation],
340 [AC_MSG_RESULT("$with_postgres")
341 case $with_postgres in
345 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
349 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
350 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
351 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
352 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
353 POSTGRES_LDFLAGS="-L$with_postgres/lib"
354 POSTGRES_CPPFLAGS="-I$with_postgres/include"
356 LDFLAGS=$SAVE_LDFLAGS
357 CPPFLAGS=$SAVE_CPPFLAGS
361 [AC_MSG_RESULT([--with-postgres not specified])
362 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
363 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
364 AC_SUBST(POSTGRES_CPPFLAGS)
365 AC_SUBST(POSTGRES_LDFLAGS)
369 AC_MSG_CHECKING(for libpcap)
371 [ --with-pcap=PFX base of pcap installation],
372 [AC_MSG_RESULT("$with_pcap")
377 AC_CHECK_HEADERS(pcap.h,
381 LDFLAGS="-L$with_pcap/lib $LDFLAGS"
382 CPPFLAGS="-I$with_pcap/include $CPPFLAGS"
383 AC_CHECK_HEADERS(pcap.h,
384 EXT_LIB_PATH="-L$with_pcap/lib $EXT_LIB_PATH"
385 PCAP_LDFLAGS="-L$with_pcap/lib"
386 PCAP_CPPFLAGS="-I$with_pcap/include"
388 LDFLAGS=$SAVE_LDFLAGS
389 CPPFLAGS=$SAVE_CPPFLAGS
393 [AC_MSG_RESULT([--with-pcap not specified])
394 AC_CHECK_HEADERS(pcap.h, pcap=1)])
395 AM_CONDITIONAL(HAVE_PCAP, test x$pcap = x1)
396 AC_SUBST(PCAP_CPPFLAGS)
397 AC_SUBST(PCAP_LDFLAGS)
400 # test for libz (maybe required for linking mysql)
402 AC_CHECK_LIB(z, compress,,zlib=0)
403 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
406 AC_MSG_ERROR([GNUnet requires zlib])
410 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
411 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
413 if test "$build_target" = "mingw"
415 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
421 SAVE_LDFLAGS=$LDFLAGS
422 SAVE_CPPFLAGS=$CPPFLAGS
423 AC_MSG_CHECKING(for mysql)
425 [ --with-mysql=PFX base of MySQL installation],
426 [AC_MSG_RESULT("$with_mysql")
427 if test "$with_mysql" != "no"
429 if test "$with_mysql" != "yes"
431 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
432 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
434 AC_CHECK_HEADERS(mysql/mysql.h,
435 AC_CHECK_LIB(mysqlclient, mysql_init,
436 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
437 MYSQL_CPPFLAGS="-I$with_mysql/include"
439 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
442 [AC_MSG_RESULT([--with-mysql not specified])
443 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
444 AC_CHECK_LIB(mysqlclient, mysql_init,
445 [AC_CHECK_HEADERS(mysql/mysql.h,
446 MYSQL_LDFLAGS="-L/usr/lib/mysql"
449 , [], [$CYGWIN_MYSQL_MAGIC])])
452 AC_SUBST(MYSQL_LDFLAGS)
453 AC_SUBST(MYSQL_CPPFLAGS)
455 # additional version check for mysql
456 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
457 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
459 AC_MSG_CHECKING(mysql version)
460 AC_RUN_IFELSE([AC_LANG_PROGRAM(
461 [[$CYGWIN_MYSQL_MAGIC
462 #include <mysql/mysql.h>]],
463 [[if (MYSQL_VERSION_ID < 40100)
468 ],mysql=true,mysql=false)
469 if test "$mysql" = "false"
472 AC_MSG_RESULT([fail, >= 4.1 required])
477 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
478 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
481 LDFLAGS=$SAVE_LDFLAGS
482 CPPFLAGS=$SAVE_CPPFLAGS
484 if test "$sqlite" = 0 -a "$mysql" = 0
486 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
491 AC_MSG_CHECKING([for libmicrohttpd])
492 AC_ARG_WITH(microhttpd,
493 [ --with-microhttpd=PFX base of libmicrohttpd installation],
494 [AC_MSG_RESULT([$with_microhttpd])
495 case $with_microhttpd in
499 AC_CHECK_HEADERS([microhttpd.h],
500 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
501 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
503 [],[#include "src/include/platform.h"
504 #include <microhttpd.h>]),,
505 [#include "src/include/platform.h"])
508 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
509 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
510 AC_CHECK_HEADERS(microhttpd.h,
511 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
512 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
513 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
515 [],[#include "src/include/platform.h"
516 #include <microhttpd.h>]),,
517 [#include "src/include/platform.h"])
521 [AC_MSG_RESULT([--with-microhttpd not specified])
522 AC_CHECK_HEADERS([microhttpd.h],
523 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
524 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
526 [],[#include "src/include/platform.h"
527 #include <microhttpd.h>]),,
528 [#include "src/include/platform.h"])])
529 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
530 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
535 AC_MSG_CHECKING([for openssl])
537 [ --with-openssl=PFX base of openssl installation],
538 [AC_MSG_RESULT([$with_openssl])
539 case $with_openssl in
543 AC_CHECK_HEADERS([openssl/ssl.h],
544 AC_CHECK_LIB([ssl], [SSL_new],
548 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
549 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
550 AC_CHECK_HEADERS([openssl/ssl.h],
551 AC_CHECK_LIB([ssl], [SSL_new],
552 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
557 [AC_MSG_RESULT([--with-openssl not specified])
558 AC_CHECK_HEADERS([openssl/ssl.h],
559 AC_CHECK_LIB([ssl], [SSL_new],
561 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
562 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
572 # check for python & pexpect (used for some testcases only)
573 AM_PATH_PYTHON([2.5],, [:])
574 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
576 if test "$PYTHON" != :
578 AC_MSG_CHECKING([for pexpect])
579 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
581 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
586 AC_MSG_RESULT([not found])
589 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
594 AC_MSG_CHECKING([for libesmtp])
596 [ --with-esmtp=PFX base of libesmtp installation],
597 [AC_MSG_RESULT([$with_esmtp])
602 AC_CHECK_HEADERS(libesmtp.h,
603 AC_CHECK_LIB([esmtp], [smtp_start_session],
607 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
608 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
609 AC_CHECK_HEADERS(libesmtp.h,
610 AC_CHECK_LIB([esmtp], [smtp_start_session],
611 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
616 [AC_MSG_RESULT([--with-esmtp not specified])
617 AC_CHECK_HEADERS(libesmtp.h,
618 AC_CHECK_LIB([esmtp], [smtp_start_session],
620 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
621 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
626 AM_GNU_GETTEXT([external])
627 AM_GNU_GETTEXT_VERSION([0.16.1])
632 # Checks for standard typedefs, structures, and compiler characteristics.
641 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
642 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
646 #include <sys/types.h>
647 #include <sys/socket.h>
648 #include <netinet/in.h>
653 # Checks for library functions.
654 AC_FUNC_CLOSEDIR_VOID
657 AC_PROG_GCC_TRADITIONAL
659 AC_FUNC_SELECT_ARGTYPES
669 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])
674 gn_user_home_dir="~/.gnunet"
675 AC_ARG_WITH(user-home-dir,
677 [--with-user-home-dir=DIR],
678 [default user home directory (~/.gnunet)]),
679 [gn_user_home_dir=$withval])
680 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
681 gn_daemon_home_dir="/var/lib/gnunet"
682 AC_ARG_WITH(daemon-home-dir,
684 [--with-daemon-home-dir=DIR],
685 [default daemon home directory (/var/lib/gnunet)]),
686 [gn_daemon_home_dir=$withval])
687 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
688 gn_daemon_config_dir="/etc"
689 AC_ARG_WITH(daemon-config-dir,
691 [--with-daemon-config-dir=DIR],
692 [default daemon config directory (/etc)]),
693 [gn_daemon_config_dir=$withval])
694 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
697 GN_LIBINTL="$LTLIBINTL"
698 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
699 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
700 if test x$enable_framework_build = xyes
702 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
703 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
704 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
705 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
708 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
709 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
711 AC_SUBST(GN_LIB_LDFLAGS)
712 AC_SUBST(GN_PLUGIN_LDFLAGS)
713 AC_SUBST(GN_INTLINCL)
719 AC_SUBST(EXT_LIB_PATH)
724 AC_SUBST(EXT_LIB_PATH)
727 # should 'make check' run tests?
728 AC_MSG_CHECKING(whether to run tests)
729 AC_ARG_ENABLE(testruns,
730 [AS_HELP_STRING([--enable-testruns=yes/no],
731 [disable running tests on make check (default is YES)])],
732 [enable_tests_run=$enableval],
733 [enable_tests_run="yes"])
734 AC_MSG_RESULT($enable_test_run)
735 AM_CONDITIONAL([DISABLE_TEST_RUN], [test "x$enable_tests_run" = "xno"])
737 # should experimental code be compiled (code that may not yet compile)?
738 disable_experimental=yes
739 AC_MSG_CHECKING(whether to compile experimental code)
740 AC_ARG_ENABLE(experimental,
741 [AS_HELP_STRING([--enable-experimental],
742 [enable compiling experimental code])],
743 [enable_experimental=$enableval],
744 [enable_experimental="no"])
745 AC_MSG_RESULT($enable_experimental)
746 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
748 # should malicious code be compiled (code used for testing with malicious peers)
750 AC_MSG_CHECKING(whether to compile malicious code)
751 AC_ARG_ENABLE(malicious,
752 [AS_HELP_STRING([--enable-malicious],
753 [enable compiling malicious code (only for developers for testing)])],
754 [enable_malicious=1],
755 [enable_malicious=0])
756 AC_MSG_RESULT($enable_malicious)
757 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
758 AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
760 # should code be enabled that works around missing OS functionality on Windows?
761 # used for test cases
762 AC_ARG_ENABLE(windows_workarounds, [AS_HELP_STRING([--enable-windows_workarounds],
763 [enable workarounds used on Windows (only useful for test cases)])])
764 if test $build_target = "mingw"
768 if test x$enable_windows_workarounds = "xyes"
775 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
779 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
780 [Compile the library with code coverage support (default is NO)]),
781 [use_gcov=yes], [use_gcov=no])
782 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
793 src/datacache/Makefile
794 src/datastore/Makefile
797 src/fragmentation/Makefile
801 src/include/gnunet_directories.h
802 src/hostlist/Makefile
806 src/peerinfo/Makefile
807 src/peerinfo-tool/Makefile
808 src/statistics/Makefile
809 src/template/Makefile
811 src/topology/Makefile
812 src/transport/Makefile
814 src/util/libgnu/Makefile
818 pkgconfig/gnunetarm.pc
819 pkgconfig/gnunetblock.pc
820 pkgconfig/gnunetcore.pc
821 pkgconfig/gnunetdatacache.pc
822 pkgconfig/gnunetdatastore.pc
823 pkgconfig/gnunetdht.pc
824 pkgconfig/gnunetdhtlog.pc
825 pkgconfig/gnunetdv.pc
826 pkgconfig/gnunetfragmentation.pc
827 pkgconfig/gnunetfs.pc
828 pkgconfig/gnunethello.pc
829 pkgconfig/gnunetpeerinfo.pc
830 pkgconfig/gnunetstatistics.pc
831 pkgconfig/gnunettesting.pc
832 pkgconfig/gnunettransport.pc
833 pkgconfig/gnunetutil.pc
839 # warn user if mysql found but not used due to version
840 if test "$mysqlfail" = "true"
842 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
846 if test "x$sqlite" = "x0"
848 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
851 if test "x$lmhd" != "x1"
853 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
856 if test "x$esmtp" != "x1"
858 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
861 if test "x$pcap" != "x1"
863 AC_MSG_NOTICE([NOTICE: libpcap not found, WiFi support will not be installed.])
866 if test "x$openssl" != "x1"
868 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
871 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
873 if test "$enable_framework_build" = "yes"
875 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
878 AC_MSG_NOTICE([********************************************
879 You can compile GNUnet with
881 now. After that, run (if necessary as 'root')
883 to install everything. You may want to create a new user account
884 to run the GNUnet service:
886 You also need to create an configuration file that should
887 specify the path where GNUnet should store data. For example,
888 you could store in "/etc/gnunet.conf" the following lines:
891 SERVICEHOME = /var/lib/gnunet
892 DEFAULTCONFIG = /etc/gnunet.conf
894 Now, in order to start your peer, run as the 'gnunet' user
897 Each GNUnet user should also create an (at least initially) empty
900 touch $HOME/.gnunet/gnunet.conf
902 Optionally, download and compile gnunet-gtk to get a GUI.
903 ********************************************])