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]))
251 #AC_CHECK_HEADERS(glpk.h, glpk=true)
252 #AM_CONDITIONAL(HAVE_GLPK, test x$glpk = xtrue)
253 #AC_CHECK_LIB([glpk],[glp_create_prob])
256 AC_CHECK_HEADERS(glpk.h, ,[a=false])
257 AC_CHECK_LIB([glpk],[glp_create_prob], , [a=false])
260 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
261 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$a != x$a])
263 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
264 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$a = x$a])
267 # test for kvm and kstat (for CPU stats under BSD/Solaris)
268 AC_CHECK_LIB([kvm],[kvm_open])
269 AC_CHECK_LIB([kstat],[kstat_open])
271 # test for libextractor
273 AC_MSG_CHECKING(for libextractor)
274 AC_ARG_WITH(extractor,
275 [ --with-extractor=PFX base of libextractor installation],
276 [AC_MSG_RESULT([$with_extractor])
277 case $with_extractor in
281 AC_CHECK_HEADERS(extractor.h,
282 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
286 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
287 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
288 AC_CHECK_HEADERS(extractor.h,
289 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
290 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
295 [AC_MSG_RESULT([--with-extractor not specified])
296 AC_CHECK_HEADERS(extractor.h,
297 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
299 if test "$extractor" != 1
301 AC_MSG_ERROR([GNUnet requires libextractor])
307 # Checks for standard header files.
311 # Check for headers that are ALWAYS required
312 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]))
314 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
315 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])
317 SAVE_LDFLAGS=$LDFLAGS
318 SAVE_CPPFLAGS=$CPPFLAGS
322 AC_MSG_CHECKING(for SQLite)
324 [ --with-sqlite=PFX base of SQLite installation],
325 [AC_MSG_RESULT("$with_sqlite")
330 AC_CHECK_HEADERS(sqlite3.h,
334 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
335 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
336 AC_CHECK_HEADERS(sqlite3.h,
337 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
338 SQLITE_LDFLAGS="-L$with_sqlite/lib"
339 SQLITE_CPPFLAGS="-I$with_sqlite/include"
341 LDFLAGS=$SAVE_LDFLAGS
342 CPPFLAGS=$SAVE_CPPFLAGS
346 [AC_MSG_RESULT([--with-sqlite not specified])
347 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
348 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
349 AC_SUBST(SQLITE_CPPFLAGS)
350 AC_SUBST(SQLITE_LDFLAGS)
354 AC_MSG_CHECKING(for postgres)
355 AC_ARG_WITH(postgres,
356 [ --with-postgres=PFX base of postgres installation],
357 [AC_MSG_RESULT("$with_postgres")
358 case $with_postgres in
362 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
366 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
367 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
368 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
369 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
370 POSTGRES_LDFLAGS="-L$with_postgres/lib"
371 POSTGRES_CPPFLAGS="-I$with_postgres/include"
373 LDFLAGS=$SAVE_LDFLAGS
374 CPPFLAGS=$SAVE_CPPFLAGS
378 [AC_MSG_RESULT([--with-postgres not specified])
379 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
380 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
381 AC_SUBST(POSTGRES_CPPFLAGS)
382 AC_SUBST(POSTGRES_LDFLAGS)
386 AC_MSG_CHECKING(for libpcap)
388 [ --with-pcap=PFX base of pcap installation],
389 [AC_MSG_RESULT("$with_pcap")
394 AC_CHECK_HEADERS(pcap.h,
398 LDFLAGS="-L$with_pcap/lib $LDFLAGS"
399 CPPFLAGS="-I$with_pcap/include $CPPFLAGS"
400 AC_CHECK_HEADERS(pcap.h,
401 EXT_LIB_PATH="-L$with_pcap/lib $EXT_LIB_PATH"
402 PCAP_LDFLAGS="-L$with_pcap/lib"
403 PCAP_CPPFLAGS="-I$with_pcap/include"
405 LDFLAGS=$SAVE_LDFLAGS
406 CPPFLAGS=$SAVE_CPPFLAGS
410 [AC_MSG_RESULT([--with-pcap not specified])
411 AC_CHECK_HEADERS(pcap.h, pcap=1)])
412 AM_CONDITIONAL(HAVE_PCAP, test x$pcap = x1)
413 AC_SUBST(PCAP_CPPFLAGS)
414 AC_SUBST(PCAP_LDFLAGS)
417 # test for libz (maybe required for linking mysql)
419 AC_CHECK_LIB(z, compress,,zlib=0)
420 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
423 AC_MSG_ERROR([GNUnet requires zlib])
427 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
428 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
430 if test "$build_target" = "mingw"
432 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
438 SAVE_LDFLAGS=$LDFLAGS
439 SAVE_CPPFLAGS=$CPPFLAGS
440 AC_MSG_CHECKING(for mysql)
442 [ --with-mysql=PFX base of MySQL installation],
443 [AC_MSG_RESULT("$with_mysql")
444 if test "$with_mysql" != "no"
446 if test "$with_mysql" != "yes"
448 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
449 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
451 AC_CHECK_HEADERS(mysql/mysql.h,
452 AC_CHECK_LIB(mysqlclient, mysql_init,
453 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
454 MYSQL_CPPFLAGS="-I$with_mysql/include"
456 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
459 [AC_MSG_RESULT([--with-mysql not specified])
460 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
461 AC_CHECK_LIB(mysqlclient, mysql_init,
462 [AC_CHECK_HEADERS(mysql/mysql.h,
463 MYSQL_LDFLAGS="-L/usr/lib/mysql"
466 , [], [$CYGWIN_MYSQL_MAGIC])])
469 AC_SUBST(MYSQL_LDFLAGS)
470 AC_SUBST(MYSQL_CPPFLAGS)
472 # additional version check for mysql
473 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
474 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
476 AC_MSG_CHECKING(mysql version)
477 AC_RUN_IFELSE([AC_LANG_PROGRAM(
478 [[$CYGWIN_MYSQL_MAGIC
479 #include <mysql/mysql.h>]],
480 [[if (MYSQL_VERSION_ID < 40100)
485 ],mysql=true,mysql=false)
486 if test "$mysql" = "false"
489 AC_MSG_RESULT([fail, >= 4.1 required])
494 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
495 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
498 LDFLAGS=$SAVE_LDFLAGS
499 CPPFLAGS=$SAVE_CPPFLAGS
501 if test "$sqlite" = 0 -a "$mysql" = 0
503 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
508 AC_MSG_CHECKING([for libmicrohttpd])
509 AC_ARG_WITH(microhttpd,
510 [ --with-microhttpd=PFX base of libmicrohttpd installation],
511 [AC_MSG_RESULT([$with_microhttpd])
512 case $with_microhttpd in
516 AC_CHECK_HEADERS([microhttpd.h],
517 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
518 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
520 [],[#include "src/include/platform.h"
521 #include <microhttpd.h>]),,
522 [#include "src/include/platform.h"])
525 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
526 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
527 AC_CHECK_HEADERS(microhttpd.h,
528 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
529 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
530 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
532 [],[#include "src/include/platform.h"
533 #include <microhttpd.h>]),,
534 [#include "src/include/platform.h"])
538 [AC_MSG_RESULT([--with-microhttpd not specified])
539 AC_CHECK_HEADERS([microhttpd.h],
540 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
541 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
543 [],[#include "src/include/platform.h"
544 #include <microhttpd.h>]),,
545 [#include "src/include/platform.h"])])
546 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
547 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
552 AC_MSG_CHECKING([for openssl])
554 [ --with-openssl=PFX base of openssl installation],
555 [AC_MSG_RESULT([$with_openssl])
556 case $with_openssl in
560 AC_CHECK_HEADERS([openssl/ssl.h],
561 AC_CHECK_LIB([ssl], [SSL_new],
565 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
566 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
567 AC_CHECK_HEADERS([openssl/ssl.h],
568 AC_CHECK_LIB([ssl], [SSL_new],
569 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
574 [AC_MSG_RESULT([--with-openssl not specified])
575 AC_CHECK_HEADERS([openssl/ssl.h],
576 AC_CHECK_LIB([ssl], [SSL_new],
578 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
579 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
589 # check for python & pexpect (used for some testcases only)
590 AM_PATH_PYTHON([2.5],, [:])
591 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
593 if test "$PYTHON" != :
595 AC_MSG_CHECKING([for pexpect])
596 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
598 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
603 AC_MSG_RESULT([not found])
606 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
611 AC_MSG_CHECKING([for libesmtp])
613 [ --with-esmtp=PFX base of libesmtp installation],
614 [AC_MSG_RESULT([$with_esmtp])
619 AC_CHECK_HEADERS(libesmtp.h,
620 AC_CHECK_LIB([esmtp], [smtp_start_session],
624 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
625 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
626 AC_CHECK_HEADERS(libesmtp.h,
627 AC_CHECK_LIB([esmtp], [smtp_start_session],
628 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
633 [AC_MSG_RESULT([--with-esmtp not specified])
634 AC_CHECK_HEADERS(libesmtp.h,
635 AC_CHECK_LIB([esmtp], [smtp_start_session],
637 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
638 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
645 AM_GNU_GETTEXT([external])
646 AM_GNU_GETTEXT_VERSION([0.16.1])
651 # Checks for standard typedefs, structures, and compiler characteristics.
660 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
661 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
665 #include <sys/types.h>
666 #include <sys/socket.h>
667 #include <netinet/in.h>
672 # Checks for library functions.
673 AC_FUNC_CLOSEDIR_VOID
676 AC_PROG_GCC_TRADITIONAL
678 AC_FUNC_SELECT_ARGTYPES
688 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])
693 gn_user_home_dir="~/.gnunet"
694 AC_ARG_WITH(user-home-dir,
696 [--with-user-home-dir=DIR],
697 [default user home directory (~/.gnunet)]),
698 [gn_user_home_dir=$withval])
699 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
700 gn_daemon_home_dir="/var/lib/gnunet"
701 AC_ARG_WITH(daemon-home-dir,
703 [--with-daemon-home-dir=DIR],
704 [default daemon home directory (/var/lib/gnunet)]),
705 [gn_daemon_home_dir=$withval])
706 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
707 gn_daemon_config_dir="/etc"
708 AC_ARG_WITH(daemon-config-dir,
710 [--with-daemon-config-dir=DIR],
711 [default daemon config directory (/etc)]),
712 [gn_daemon_config_dir=$withval])
713 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
716 GN_LIBINTL="$LTLIBINTL"
717 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
718 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
719 if test x$enable_framework_build = xyes
721 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
722 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
723 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
724 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
727 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
728 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
730 AC_SUBST(GN_LIB_LDFLAGS)
731 AC_SUBST(GN_PLUGIN_LDFLAGS)
732 AC_SUBST(GN_INTLINCL)
738 AC_SUBST(EXT_LIB_PATH)
743 AC_SUBST(EXT_LIB_PATH)
746 # should 'make check' run tests?
747 AC_MSG_CHECKING(whether to run tests)
748 AC_ARG_ENABLE(testruns,
749 [AS_HELP_STRING([--enable-testruns=yes/no],
750 [disable running tests on make check (default is YES)])],
751 [enable_tests_run=$enableval],
752 [enable_tests_run="yes"])
753 AC_MSG_RESULT($enable_test_run)
754 AM_CONDITIONAL([DISABLE_TEST_RUN], [test "x$enable_tests_run" = "xno"])
756 # should experimental code be compiled (code that may not yet compile)?
757 disable_experimental=yes
758 AC_MSG_CHECKING(whether to compile experimental code)
759 AC_ARG_ENABLE(experimental,
760 [AS_HELP_STRING([--enable-experimental],
761 [enable compiling experimental code])],
762 [enable_experimental=$enableval],
763 [enable_experimental="no"])
764 AC_MSG_RESULT($enable_experimental)
765 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
767 # should malicious code be compiled (code used for testing with malicious peers)
769 AC_MSG_CHECKING(whether to compile malicious code)
770 AC_ARG_ENABLE(malicious,
771 [AS_HELP_STRING([--enable-malicious],
772 [enable compiling malicious code (only for developers for testing)])],
773 [enable_malicious=1],
774 [enable_malicious=0])
775 AC_MSG_RESULT($enable_malicious)
776 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
777 AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
779 # should code be enabled that works around missing OS functionality on Windows?
780 # used for test cases
781 AC_ARG_ENABLE(windows_workarounds, [AS_HELP_STRING([--enable-windows_workarounds],
782 [enable workarounds used on Windows (only useful for test cases)])])
783 if test $build_target = "mingw"
787 if test x$enable_windows_workarounds = "xyes"
794 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
798 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
799 [Compile the library with code coverage support (default is NO)]),
800 [use_gcov=yes], [use_gcov=no])
801 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
812 src/datacache/Makefile
813 src/datastore/Makefile
816 src/fragmentation/Makefile
820 src/include/gnunet_directories.h
821 src/hostlist/Makefile
825 src/peerinfo/Makefile
826 src/peerinfo-tool/Makefile
827 src/statistics/Makefile
828 src/template/Makefile
830 src/topology/Makefile
831 src/transport/Makefile
836 pkgconfig/gnunetarm.pc
837 pkgconfig/gnunetblock.pc
838 pkgconfig/gnunetcore.pc
839 pkgconfig/gnunetdatacache.pc
840 pkgconfig/gnunetdatastore.pc
841 pkgconfig/gnunetdht.pc
842 pkgconfig/gnunetdhtlog.pc
843 pkgconfig/gnunetdv.pc
844 pkgconfig/gnunetfragmentation.pc
845 pkgconfig/gnunetfs.pc
846 pkgconfig/gnunethello.pc
847 pkgconfig/gnunetpeerinfo.pc
848 pkgconfig/gnunetstatistics.pc
849 pkgconfig/gnunettesting.pc
850 pkgconfig/gnunettransport.pc
851 pkgconfig/gnunetutil.pc
857 # warn user if mysql found but not used due to version
858 if test "$mysqlfail" = "true"
860 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
864 if test "x$sqlite" = "x0"
866 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
869 if test "x$lmhd" != "x1"
871 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
874 if test "x$esmtp" != "x1"
876 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
879 if test "x$pcap" != "x1"
881 AC_MSG_NOTICE([NOTICE: libpcap not found, WiFi support will not be installed.])
884 if test "x$openssl" != "x1"
886 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
889 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
891 if test "$enable_framework_build" = "yes"
893 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
896 AC_MSG_NOTICE([********************************************
897 You can compile GNUnet with
899 now. After that, run (if necessary as 'root')
901 to install everything. You may want to create a new user account
902 to run the GNUnet service:
904 You also need to create an configuration file that should
905 specify the path where GNUnet should store data. For example,
906 you could store in "/etc/gnunet.conf" the following lines:
909 SERVICEHOME = /var/lib/gnunet
910 DEFAULTCONFIG = /etc/gnunet.conf
912 Now, in order to start your peer, run as the 'gnunet' user
915 Each GNUnet user should also create an (at least initially) empty
918 touch $HOME/.gnunet/gnunet.conf
920 Optionally, download and compile gnunet-gtk to get a GUI.
921 ********************************************])