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 AC_MSG_NOTICE([Feature b0rk is missing.])
261 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
263 AC_MSG_NOTICE([Feature b0rk is present.])
264 AM_CONDITIONAL(HAVE_GLPK, [test x$a = xtrue])
265 AM_CONDITIONAL(HAVE_LIBGLPK, [test x$a = x$a])
268 # test for kvm and kstat (for CPU stats under BSD/Solaris)
269 AC_CHECK_LIB([kvm],[kvm_open])
270 AC_CHECK_LIB([kstat],[kstat_open])
272 # test for libextractor
274 AC_MSG_CHECKING(for libextractor)
275 AC_ARG_WITH(extractor,
276 [ --with-extractor=PFX base of libextractor installation],
277 [AC_MSG_RESULT([$with_extractor])
278 case $with_extractor in
282 AC_CHECK_HEADERS(extractor.h,
283 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
287 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
288 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
289 AC_CHECK_HEADERS(extractor.h,
290 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
291 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
296 [AC_MSG_RESULT([--with-extractor not specified])
297 AC_CHECK_HEADERS(extractor.h,
298 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
300 if test "$extractor" != 1
302 AC_MSG_ERROR([GNUnet requires libextractor])
308 # Checks for standard header files.
312 # Check for headers that are ALWAYS required
313 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]))
315 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
316 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])
318 SAVE_LDFLAGS=$LDFLAGS
319 SAVE_CPPFLAGS=$CPPFLAGS
323 AC_MSG_CHECKING(for SQLite)
325 [ --with-sqlite=PFX base of SQLite installation],
326 [AC_MSG_RESULT("$with_sqlite")
331 AC_CHECK_HEADERS(sqlite3.h,
335 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
336 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
337 AC_CHECK_HEADERS(sqlite3.h,
338 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
339 SQLITE_LDFLAGS="-L$with_sqlite/lib"
340 SQLITE_CPPFLAGS="-I$with_sqlite/include"
342 LDFLAGS=$SAVE_LDFLAGS
343 CPPFLAGS=$SAVE_CPPFLAGS
347 [AC_MSG_RESULT([--with-sqlite not specified])
348 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
349 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
350 AC_SUBST(SQLITE_CPPFLAGS)
351 AC_SUBST(SQLITE_LDFLAGS)
355 AC_MSG_CHECKING(for postgres)
356 AC_ARG_WITH(postgres,
357 [ --with-postgres=PFX base of postgres installation],
358 [AC_MSG_RESULT("$with_postgres")
359 case $with_postgres in
363 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
367 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
368 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
369 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
370 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
371 POSTGRES_LDFLAGS="-L$with_postgres/lib"
372 POSTGRES_CPPFLAGS="-I$with_postgres/include"
374 LDFLAGS=$SAVE_LDFLAGS
375 CPPFLAGS=$SAVE_CPPFLAGS
379 [AC_MSG_RESULT([--with-postgres not specified])
380 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
381 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
382 AC_SUBST(POSTGRES_CPPFLAGS)
383 AC_SUBST(POSTGRES_LDFLAGS)
387 AC_MSG_CHECKING(for libpcap)
389 [ --with-pcap=PFX base of pcap installation],
390 [AC_MSG_RESULT("$with_pcap")
395 AC_CHECK_HEADERS(pcap.h,
399 LDFLAGS="-L$with_pcap/lib $LDFLAGS"
400 CPPFLAGS="-I$with_pcap/include $CPPFLAGS"
401 AC_CHECK_HEADERS(pcap.h,
402 EXT_LIB_PATH="-L$with_pcap/lib $EXT_LIB_PATH"
403 PCAP_LDFLAGS="-L$with_pcap/lib"
404 PCAP_CPPFLAGS="-I$with_pcap/include"
406 LDFLAGS=$SAVE_LDFLAGS
407 CPPFLAGS=$SAVE_CPPFLAGS
411 [AC_MSG_RESULT([--with-pcap not specified])
412 AC_CHECK_HEADERS(pcap.h, pcap=1)])
413 AM_CONDITIONAL(HAVE_PCAP, test x$pcap = x1)
414 AC_SUBST(PCAP_CPPFLAGS)
415 AC_SUBST(PCAP_LDFLAGS)
418 # test for libz (maybe required for linking mysql)
420 AC_CHECK_LIB(z, compress,,zlib=0)
421 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
424 AC_MSG_ERROR([GNUnet requires zlib])
428 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
429 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
431 if test "$build_target" = "mingw"
433 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
439 SAVE_LDFLAGS=$LDFLAGS
440 SAVE_CPPFLAGS=$CPPFLAGS
441 AC_MSG_CHECKING(for mysql)
443 [ --with-mysql=PFX base of MySQL installation],
444 [AC_MSG_RESULT("$with_mysql")
445 if test "$with_mysql" != "no"
447 if test "$with_mysql" != "yes"
449 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
450 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
452 AC_CHECK_HEADERS(mysql/mysql.h,
453 AC_CHECK_LIB(mysqlclient, mysql_init,
454 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
455 MYSQL_CPPFLAGS="-I$with_mysql/include"
457 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
460 [AC_MSG_RESULT([--with-mysql not specified])
461 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
462 AC_CHECK_LIB(mysqlclient, mysql_init,
463 [AC_CHECK_HEADERS(mysql/mysql.h,
464 MYSQL_LDFLAGS="-L/usr/lib/mysql"
467 , [], [$CYGWIN_MYSQL_MAGIC])])
470 AC_SUBST(MYSQL_LDFLAGS)
471 AC_SUBST(MYSQL_CPPFLAGS)
473 # additional version check for mysql
474 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
475 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
477 AC_MSG_CHECKING(mysql version)
478 AC_RUN_IFELSE([AC_LANG_PROGRAM(
479 [[$CYGWIN_MYSQL_MAGIC
480 #include <mysql/mysql.h>]],
481 [[if (MYSQL_VERSION_ID < 40100)
486 ],mysql=true,mysql=false)
487 if test "$mysql" = "false"
490 AC_MSG_RESULT([fail, >= 4.1 required])
495 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
496 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
499 LDFLAGS=$SAVE_LDFLAGS
500 CPPFLAGS=$SAVE_CPPFLAGS
502 if test "$sqlite" = 0 -a "$mysql" = 0
504 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
509 AC_MSG_CHECKING([for libmicrohttpd])
510 AC_ARG_WITH(microhttpd,
511 [ --with-microhttpd=PFX base of libmicrohttpd installation],
512 [AC_MSG_RESULT([$with_microhttpd])
513 case $with_microhttpd in
517 AC_CHECK_HEADERS([microhttpd.h],
518 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
519 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
521 [],[#include "src/include/platform.h"
522 #include <microhttpd.h>]),,
523 [#include "src/include/platform.h"])
526 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
527 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
528 AC_CHECK_HEADERS(microhttpd.h,
529 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
530 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
531 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
533 [],[#include "src/include/platform.h"
534 #include <microhttpd.h>]),,
535 [#include "src/include/platform.h"])
539 [AC_MSG_RESULT([--with-microhttpd not specified])
540 AC_CHECK_HEADERS([microhttpd.h],
541 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
542 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
544 [],[#include "src/include/platform.h"
545 #include <microhttpd.h>]),,
546 [#include "src/include/platform.h"])])
547 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
548 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
553 AC_MSG_CHECKING([for openssl])
555 [ --with-openssl=PFX base of openssl installation],
556 [AC_MSG_RESULT([$with_openssl])
557 case $with_openssl in
561 AC_CHECK_HEADERS([openssl/ssl.h],
562 AC_CHECK_LIB([ssl], [SSL_new],
566 LDFLAGS="-L$with_openssl/lib $LDFLAGS"
567 CPPFLAGS="-I$with_openssl/include $CPPFLAGS"
568 AC_CHECK_HEADERS([openssl/ssl.h],
569 AC_CHECK_LIB([ssl], [SSL_new],
570 EXT_LIB_PATH="-L$with_openssl/lib $EXT_LIB_PATH"
575 [AC_MSG_RESULT([--with-openssl not specified])
576 AC_CHECK_HEADERS([openssl/ssl.h],
577 AC_CHECK_LIB([ssl], [SSL_new],
579 AM_CONDITIONAL(HAVE_OPENSSL, test x$openssl = x1)
580 AC_DEFINE_UNQUOTED([HAVE_OPENSSL], $openssl, [We have openssl])
590 # check for python & pexpect (used for some testcases only)
591 AM_PATH_PYTHON([2.5],, [:])
592 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
594 if test "$PYTHON" != :
596 AC_MSG_CHECKING([for pexpect])
597 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
599 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
604 AC_MSG_RESULT([not found])
607 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
612 AC_MSG_CHECKING([for libesmtp])
614 [ --with-esmtp=PFX base of libesmtp installation],
615 [AC_MSG_RESULT([$with_esmtp])
620 AC_CHECK_HEADERS(libesmtp.h,
621 AC_CHECK_LIB([esmtp], [smtp_start_session],
625 LDFLAGS="-L$with_esmtp/lib $LDFLAGS"
626 CPPFLAGS="-I$with_esmtp/include $CPPFLAGS"
627 AC_CHECK_HEADERS(libesmtp.h,
628 AC_CHECK_LIB([esmtp], [smtp_start_session],
629 EXT_LIB_PATH="-L$with_esmtp/lib $EXT_LIB_PATH"
634 [AC_MSG_RESULT([--with-esmtp not specified])
635 AC_CHECK_HEADERS(libesmtp.h,
636 AC_CHECK_LIB([esmtp], [smtp_start_session],
638 AM_CONDITIONAL(HAVE_ESMTP, test x$esmtp = x1)
639 AC_DEFINE_UNQUOTED([HAVE_ESMTP], $esmtp, [We have libesmtp])
646 AM_GNU_GETTEXT([external])
647 AM_GNU_GETTEXT_VERSION([0.16.1])
652 # Checks for standard typedefs, structures, and compiler characteristics.
661 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
662 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
666 #include <sys/types.h>
667 #include <sys/socket.h>
668 #include <netinet/in.h>
673 # Checks for library functions.
674 AC_FUNC_CLOSEDIR_VOID
677 AC_PROG_GCC_TRADITIONAL
679 AC_FUNC_SELECT_ARGTYPES
689 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])
694 gn_user_home_dir="~/.gnunet"
695 AC_ARG_WITH(user-home-dir,
697 [--with-user-home-dir=DIR],
698 [default user home directory (~/.gnunet)]),
699 [gn_user_home_dir=$withval])
700 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
701 gn_daemon_home_dir="/var/lib/gnunet"
702 AC_ARG_WITH(daemon-home-dir,
704 [--with-daemon-home-dir=DIR],
705 [default daemon home directory (/var/lib/gnunet)]),
706 [gn_daemon_home_dir=$withval])
707 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
708 gn_daemon_config_dir="/etc"
709 AC_ARG_WITH(daemon-config-dir,
711 [--with-daemon-config-dir=DIR],
712 [default daemon config directory (/etc)]),
713 [gn_daemon_config_dir=$withval])
714 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
717 GN_LIBINTL="$LTLIBINTL"
718 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
719 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
720 if test x$enable_framework_build = xyes
722 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
723 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
724 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
725 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
728 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
729 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
731 AC_SUBST(GN_LIB_LDFLAGS)
732 AC_SUBST(GN_PLUGIN_LDFLAGS)
733 AC_SUBST(GN_INTLINCL)
739 AC_SUBST(EXT_LIB_PATH)
744 AC_SUBST(EXT_LIB_PATH)
747 # should 'make check' run tests?
748 AC_MSG_CHECKING(whether to run tests)
749 AC_ARG_ENABLE(testruns,
750 [AS_HELP_STRING([--enable-testruns=yes/no],
751 [disable running tests on make check (default is YES)])],
752 [enable_tests_run=$enableval],
753 [enable_tests_run="yes"])
754 AC_MSG_RESULT($enable_test_run)
755 AM_CONDITIONAL([DISABLE_TEST_RUN], [test "x$enable_tests_run" = "xno"])
757 # should experimental code be compiled (code that may not yet compile)?
758 disable_experimental=yes
759 AC_MSG_CHECKING(whether to compile experimental code)
760 AC_ARG_ENABLE(experimental,
761 [AS_HELP_STRING([--enable-experimental],
762 [enable compiling experimental code])],
763 [enable_experimental=$enableval],
764 [enable_experimental="no"])
765 AC_MSG_RESULT($enable_experimental)
766 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
768 # should malicious code be compiled (code used for testing with malicious peers)
770 AC_MSG_CHECKING(whether to compile malicious code)
771 AC_ARG_ENABLE(malicious,
772 [AS_HELP_STRING([--enable-malicious],
773 [enable compiling malicious code (only for developers for testing)])],
774 [enable_malicious=1],
775 [enable_malicious=0])
776 AC_MSG_RESULT($enable_malicious)
777 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "x1"])
778 AC_DEFINE_UNQUOTED([HAVE_MALICIOUS], $enable_malicious, [Compile malicious code])
780 # should code be enabled that works around missing OS functionality on Windows?
781 # used for test cases
782 AC_ARG_ENABLE(windows_workarounds, [AS_HELP_STRING([--enable-windows_workarounds],
783 [enable workarounds used on Windows (only useful for test cases)])])
784 if test $build_target = "mingw"
788 if test x$enable_windows_workarounds = "xyes"
795 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
799 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage],
800 [Compile the library with code coverage support (default is NO)]),
801 [use_gcov=yes], [use_gcov=no])
802 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
813 src/datacache/Makefile
814 src/datastore/Makefile
817 src/fragmentation/Makefile
821 src/include/gnunet_directories.h
822 src/hostlist/Makefile
826 src/peerinfo/Makefile
827 src/peerinfo-tool/Makefile
828 src/statistics/Makefile
829 src/template/Makefile
831 src/topology/Makefile
832 src/transport/Makefile
837 pkgconfig/gnunetarm.pc
838 pkgconfig/gnunetblock.pc
839 pkgconfig/gnunetcore.pc
840 pkgconfig/gnunetdatacache.pc
841 pkgconfig/gnunetdatastore.pc
842 pkgconfig/gnunetdht.pc
843 pkgconfig/gnunetdhtlog.pc
844 pkgconfig/gnunetdv.pc
845 pkgconfig/gnunetfragmentation.pc
846 pkgconfig/gnunetfs.pc
847 pkgconfig/gnunethello.pc
848 pkgconfig/gnunetpeerinfo.pc
849 pkgconfig/gnunetstatistics.pc
850 pkgconfig/gnunettesting.pc
851 pkgconfig/gnunettransport.pc
852 pkgconfig/gnunetutil.pc
858 # warn user if mysql found but not used due to version
859 if test "$mysqlfail" = "true"
861 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
865 if test "x$sqlite" = "x0"
867 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
870 if test "x$lmhd" != "x1"
872 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
875 if test "x$esmtp" != "x1"
877 AC_MSG_NOTICE([NOTICE: libesmtp not found, monkey will not be installed.])
880 if test "x$pcap" != "x1"
882 AC_MSG_NOTICE([NOTICE: libpcap not found, WiFi support will not be installed.])
885 if test "x$openssl" != "x1"
887 AC_MSG_NOTICE([NOTICE: OpenSSL not found, monkey will not be installed.])
890 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
892 if test "$enable_framework_build" = "yes"
894 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
897 AC_MSG_NOTICE([********************************************
898 You can compile GNUnet with
900 now. After that, run (if necessary as 'root')
902 to install everything. You may want to create a new user account
903 to run the GNUnet service:
905 You also need to create an configuration file that should
906 specify the path where GNUnet should store data. For example,
907 you could store in "/etc/gnunet.conf" the following lines:
910 SERVICEHOME = /var/lib/gnunet
911 DEFAULTCONFIG = /etc/gnunet.conf
913 Now, in order to start your peer, run as the 'gnunet' user
916 Each GNUnet user should also create an (at least initially) empty
919 touch $HOME/.gnunet/gnunet.conf
921 Optionally, download and compile gnunet-gtk to get a GUI.
922 ********************************************])