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]))
252 AC_CHECK_HEADERS([glpk.h])
253 if test "$ac_cv_header_glpk_h" = yes; then
254 AM_CONDITIONAL(HAVE_GLPK, 1)
255 AC_DEFINE_UNQUOTED([HAVE_GLPK], test x$glpk = xtrue, [We have GLPK])
257 AM_CONDITIONAL(HAVE_GLPK, test x$glpk = xtrue)
258 AC_MSG_WARN([GLPK not installed.])
261 # test for kvm and kstat (for CPU stats under BSD/Solaris)
262 AC_CHECK_LIB([kvm],[kvm_open])
263 AC_CHECK_LIB([kstat],[kstat_open])
265 # test for libextractor
267 AC_MSG_CHECKING(for libextractor)
268 AC_ARG_WITH(extractor,
269 [ --with-extractor=PFX base of libextractor installation],
270 [AC_MSG_RESULT([$with_extractor])
271 case $with_extractor in
275 AC_CHECK_HEADERS(extractor.h,
276 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
280 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
281 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
282 AC_CHECK_HEADERS(extractor.h,
283 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
284 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
289 [AC_MSG_RESULT([--with-extractor not specified])
290 AC_CHECK_HEADERS(extractor.h,
291 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
293 if test "$extractor" != 1
295 AC_MSG_ERROR([GNUnet requires libextractor])
301 # Checks for standard header files.
305 # Check for headers that are ALWAYS required
306 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]))
308 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
309 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])
311 SAVE_LDFLAGS=$LDFLAGS
312 SAVE_CPPFLAGS=$CPPFLAGS
316 AC_MSG_CHECKING(for SQLite)
318 [ --with-sqlite=PFX base of SQLite installation],
319 [AC_MSG_RESULT("$with_sqlite")
324 AC_CHECK_HEADERS(sqlite3.h,
328 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
329 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
330 AC_CHECK_HEADERS(sqlite3.h,
331 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
332 SQLITE_LDFLAGS="-L$with_sqlite/lib"
333 SQLITE_CPPFLAGS="-I$with_sqlite/include"
335 LDFLAGS=$SAVE_LDFLAGS
336 CPPFLAGS=$SAVE_CPPFLAGS
340 [AC_MSG_RESULT([--with-sqlite not specified])
341 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
342 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
343 AC_SUBST(SQLITE_CPPFLAGS)
344 AC_SUBST(SQLITE_LDFLAGS)
348 AC_MSG_CHECKING(for postgres)
349 AC_ARG_WITH(postgres,
350 [ --with-postgres=PFX base of postgres installation],
351 [AC_MSG_RESULT("$with_postgres")
352 case $with_postgres in
356 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
360 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
361 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
362 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
363 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
364 POSTGRES_LDFLAGS="-L$with_postgres/lib"
365 POSTGRES_CPPFLAGS="-I$with_postgres/include"
367 LDFLAGS=$SAVE_LDFLAGS
368 CPPFLAGS=$SAVE_CPPFLAGS
372 [AC_MSG_RESULT([--with-postgres not specified])
373 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
374 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
375 AC_SUBST(POSTGRES_CPPFLAGS)
376 AC_SUBST(POSTGRES_LDFLAGS)
380 AC_MSG_CHECKING(for libpcap)
382 [ --with-pcap=PFX base of pcap installation],
383 [AC_MSG_RESULT("$with_pcap")
388 AC_CHECK_HEADERS(pcap.h,
392 LDFLAGS="-L$with_pcap/lib $LDFLAGS"
393 CPPFLAGS="-I$with_pcap/include $CPPFLAGS"
394 AC_CHECK_HEADERS(pcap.h,
395 EXT_LIB_PATH="-L$with_pcap/lib $EXT_LIB_PATH"
396 PCAP_LDFLAGS="-L$with_pcap/lib"
397 PCAP_CPPFLAGS="-I$with_pcap/include"
399 LDFLAGS=$SAVE_LDFLAGS
400 CPPFLAGS=$SAVE_CPPFLAGS
404 [AC_MSG_RESULT([--with-pcap not specified])
405 AC_CHECK_HEADERS(pcap.h, pcap=1)])
406 AM_CONDITIONAL(HAVE_PCAP, test x$pcap = x1)
407 AC_SUBST(PCAP_CPPFLAGS)
408 AC_SUBST(PCAP_LDFLAGS)
411 # test for libz (maybe required for linking mysql)
413 AC_CHECK_LIB(z, compress,,zlib=0)
414 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
417 AC_MSG_ERROR([GNUnet requires zlib])
421 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
422 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
424 if test "$build_target" = "mingw"
426 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
432 SAVE_LDFLAGS=$LDFLAGS
433 SAVE_CPPFLAGS=$CPPFLAGS
434 AC_MSG_CHECKING(for mysql)
436 [ --with-mysql=PFX base of MySQL installation],
437 [AC_MSG_RESULT("$with_mysql")
438 if test "$with_mysql" != "no"
440 if test "$with_mysql" != "yes"
442 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
443 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
445 AC_CHECK_HEADERS(mysql/mysql.h,
446 AC_CHECK_LIB(mysqlclient, mysql_init,
447 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
448 MYSQL_CPPFLAGS="-I$with_mysql/include"
450 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
453 [AC_MSG_RESULT([--with-mysql not specified])
454 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
455 AC_CHECK_LIB(mysqlclient, mysql_init,
456 [AC_CHECK_HEADERS(mysql/mysql.h,
457 MYSQL_LDFLAGS="-L/usr/lib/mysql"
460 , [], [$CYGWIN_MYSQL_MAGIC])])
463 AC_SUBST(MYSQL_LDFLAGS)
464 AC_SUBST(MYSQL_CPPFLAGS)
466 # additional version check for mysql
467 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
468 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
470 AC_MSG_CHECKING(mysql version)
471 AC_RUN_IFELSE([AC_LANG_PROGRAM(
472 [[$CYGWIN_MYSQL_MAGIC
473 #include <mysql/mysql.h>]],
474 [[if (MYSQL_VERSION_ID < 40100)
479 ],mysql=true,mysql=false)
480 if test "$mysql" = "false"
483 AC_MSG_RESULT([fail, >= 4.1 required])
488 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
489 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
492 LDFLAGS=$SAVE_LDFLAGS
493 CPPFLAGS=$SAVE_CPPFLAGS
495 if test "$sqlite" = 0 -a "$mysql" = 0
497 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
502 AC_MSG_CHECKING([for libmicrohttpd])
503 AC_ARG_WITH(microhttpd,
504 [ --with-microhttpd=PFX base of libmicrohttpd installation],
505 [AC_MSG_RESULT([$with_microhttpd])
506 case $with_microhttpd in
510 AC_CHECK_HEADERS([microhttpd.h],
511 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
512 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
514 [],[#include "src/include/platform.h"
515 #include <microhttpd.h>]),,
516 [#include "src/include/platform.h"])
519 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
520 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
521 AC_CHECK_HEADERS(microhttpd.h,
522 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
523 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
524 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
526 [],[#include "src/include/platform.h"
527 #include <microhttpd.h>]),,
528 [#include "src/include/platform.h"])
532 [AC_MSG_RESULT([--with-microhttpd not specified])
533 AC_CHECK_HEADERS([microhttpd.h],
534 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
535 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
537 [],[#include "src/include/platform.h"
538 #include <microhttpd.h>]),,
539 [#include "src/include/platform.h"])])
540 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
541 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
546 AC_MSG_CHECKING([for openssl])
548 [ --with-openssl=PFX base of openssl installation],
549 [AC_MSG_RESULT([$with_openssl])
550 case $with_openssl in
554 AC_CHECK_HEADERS([openssl/ssl.h],
555 AC_CHECK_LIB([ssl], [SSL_new],
559 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
560 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
561 AC_CHECK_HEADERS([openssl/ssl.h],
562 AC_CHECK_LIB([ssl], [SSL_new],
563 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
568 [AC_MSG_RESULT([--with-openssl not specified])
569 AC_CHECK_HEADERS([openssl/ssl.h],
570 AC_CHECK_LIB([ssl], [SSL_new],
572 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
573 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
583 # check for python & pexpect (used for some testcases only)
584 AM_PATH_PYTHON([2.5],, [:])
585 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
587 if test "$PYTHON" != :
589 AC_MSG_CHECKING([for pexpect])
590 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
592 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
597 AC_MSG_RESULT([not found])
600 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
605 AC_MSG_CHECKING([for libesmtp])
607 [ --with-esmtp=PFX base of libesmtp installation],
608 [AC_MSG_RESULT([$with_esmtp])
613 AC_CHECK_HEADERS(libesmtp.h,
614 AC_CHECK_LIB([esmtp], [smtp_start_session],
618 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
619 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
620 AC_CHECK_HEADERS(libesmtp.h,
621 AC_CHECK_LIB([esmtp], [smtp_start_session],
622 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
627 [AC_MSG_RESULT([--with-esmtp not specified])
628 AC_CHECK_HEADERS(libesmtp.h,
629 AC_CHECK_LIB([esmtp], [smtp_start_session],
631 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
632 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
639 AM_GNU_GETTEXT([external])
640 AM_GNU_GETTEXT_VERSION([0.16.1])
645 # Checks for standard typedefs, structures, and compiler characteristics.
654 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
655 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
659 #include <sys/types.h>
660 #include <sys/socket.h>
661 #include <netinet/in.h>
666 # Checks for library functions.
667 AC_FUNC_CLOSEDIR_VOID
670 AC_PROG_GCC_TRADITIONAL
672 AC_FUNC_SELECT_ARGTYPES
682 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])
687 gn_user_home_dir="~/.gnunet"
688 AC_ARG_WITH(user-home-dir,
690 [--with-user-home-dir=DIR],
691 [default user home directory (~/.gnunet)]),
692 [gn_user_home_dir=$withval])
693 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
694 gn_daemon_home_dir="/var/lib/gnunet"
695 AC_ARG_WITH(daemon-home-dir,
697 [--with-daemon-home-dir=DIR],
698 [default daemon home directory (/var/lib/gnunet)]),
699 [gn_daemon_home_dir=$withval])
700 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
701 gn_daemon_config_dir="/etc"
702 AC_ARG_WITH(daemon-config-dir,
704 [--with-daemon-config-dir=DIR],
705 [default daemon config directory (/etc)]),
706 [gn_daemon_config_dir=$withval])
707 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
710 GN_LIBINTL="$LTLIBINTL"
711 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
712 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
713 if test x$enable_framework_build = xyes
715 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
716 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
717 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
718 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
721 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
722 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
724 AC_SUBST(GN_LIB_LDFLAGS)
725 AC_SUBST(GN_PLUGIN_LDFLAGS)
726 AC_SUBST(GN_INTLINCL)
732 AC_SUBST(EXT_LIB_PATH)
737 AC_SUBST(EXT_LIB_PATH)
740 # should 'make check' run tests?
741 AC_MSG_CHECKING(whether to run tests)
742 AC_ARG_ENABLE(testruns,
743 [AS_HELP_STRING([--enable-testruns=yes/no],
744 [disable running tests on make check (default is YES)])],
745 [enable_tests_run=$enableval],
746 [enable_tests_run="yes"])
747 AC_MSG_RESULT($enable_test_run)
748 AM_CONDITIONAL([DISABLE_TEST_RUN], [test "x$enable_tests_run" = "xno"])
750 # should experimental code be compiled (code that may not yet compile)?
751 disable_experimental=yes
752 AC_MSG_CHECKING(whether to compile experimental code)
753 AC_ARG_ENABLE(experimental,
754 [AS_HELP_STRING([--enable-experimental],
755 [enable compiling experimental code])],
756 [enable_experimental=$enableval],
757 [enable_experimental="no"])
758 AC_MSG_RESULT($enable_experimental)
759 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
761 # should malicious code be compiled (code used for testing with malicious peers)
763 AC_MSG_CHECKING(whether to compile malicious code)
764 AC_ARG_ENABLE(malicious,
765 [AS_HELP_STRING([--enable-malicious],
766 [enable compiling malicious code (only for developers for testing)])],
767 [enable_malicious=1],
768 [enable_malicious=0])
769 AC_MSG_RESULT($enable_malicious)
770 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
771 AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
773 # should code be enabled that works around missing OS functionality on Windows?
774 # used for test cases
775 AC_ARG_ENABLE(windows_workarounds, [AS_HELP_STRING([--enable-windows_workarounds],
776 [enable workarounds used on Windows (only useful for test cases)])])
777 if test $build_target = "mingw"
781 if test x$enable_windows_workarounds = "xyes"
788 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
792 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
793 [Compile the library with code coverage support (default is NO)]),
794 [use_gcov=yes], [use_gcov=no])
795 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
806 src/datacache/Makefile
807 src/datastore/Makefile
810 src/fragmentation/Makefile
814 src/include/gnunet_directories.h
815 src/hostlist/Makefile
819 src/peerinfo/Makefile
820 src/peerinfo-tool/Makefile
821 src/statistics/Makefile
822 src/template/Makefile
824 src/topology/Makefile
825 src/transport/Makefile
830 pkgconfig/gnunetarm.pc
831 pkgconfig/gnunetblock.pc
832 pkgconfig/gnunetcore.pc
833 pkgconfig/gnunetdatacache.pc
834 pkgconfig/gnunetdatastore.pc
835 pkgconfig/gnunetdht.pc
836 pkgconfig/gnunetdhtlog.pc
837 pkgconfig/gnunetdv.pc
838 pkgconfig/gnunetfragmentation.pc
839 pkgconfig/gnunetfs.pc
840 pkgconfig/gnunethello.pc
841 pkgconfig/gnunetpeerinfo.pc
842 pkgconfig/gnunetstatistics.pc
843 pkgconfig/gnunettesting.pc
844 pkgconfig/gnunettransport.pc
845 pkgconfig/gnunetutil.pc
851 # warn user if mysql found but not used due to version
852 if test "$mysqlfail" = "true"
854 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
858 if test "x$sqlite" = "x0"
860 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
863 if test "x$lmhd" != "x1"
865 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
868 if test "x$esmtp" != "x1"
870 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
873 if test "x$pcap" != "x1"
875 AC_MSG_NOTICE([NOTICE: libpcap not found, WiFi support will not be installed.])
878 if test "x$openssl" != "x1"
880 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
883 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
885 if test "$enable_framework_build" = "yes"
887 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
890 AC_MSG_NOTICE([********************************************
891 You can compile GNUnet with
893 now. After that, run (if necessary as 'root')
895 to install everything. You may want to create a new user account
896 to run the GNUnet service:
898 You also need to create an configuration file that should
899 specify the path where GNUnet should store data. For example,
900 you could store in "/etc/gnunet.conf" the following lines:
903 SERVICEHOME = /var/lib/gnunet
904 DEFAULTCONFIG = /etc/gnunet.conf
906 Now, in order to start your peer, run as the 'gnunet' user
909 Each GNUnet user should also create an (at least initially) empty
912 touch $HOME/.gnunet/gnunet.conf
914 Optionally, download and compile gnunet-gtk to get a GUI.
915 ********************************************])