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.0pre3],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.0pre3])
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 extra_logging=GNUNET_NO
197 AC_ARG_ENABLE([logging],
198 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
199 [AS_IF([test "x$enableval" = "xyes"], [],
200 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
201 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
202 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
204 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
206 if test $build = $target
208 AC_MSG_CHECKING([for working HMAC])
210 LIBS="$LIBS $LIBGCRYPT_LIBS"
211 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
213 [AC_LANG_PROGRAM([#include <gcrypt.h>], [[
216 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
217 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
218 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
219 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
220 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
221 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
222 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
223 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
224 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
225 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
227 if (!gcry_check_version (GCRYPT_VERSION))
230 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
231 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
233 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
236 gcry_md_setkey (mac, key, sizeof (key));
237 gcry_md_write (mac, data, sizeof (data));
239 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
246 [AC_MSG_RESULT([yes])],
250 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.])
252 AC_MSG_FAILURE([HMAC test failed])
256 fi # $build = $target
259 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
264 [AS_HELP_STRING([--enable-ats], [enable ATS code])],
265 [enable_ats=${enableval}],
267 if test x${enable_ats} = xyes
269 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
270 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
271 # GLPK must support atm MLP presolving, version >= 4.32
272 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
273 if test x$gplk = xfalse
275 AM_CONDITIONAL(HAVE_LIBGLPK, false)
276 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
278 AM_CONDITIONAL(HAVE_LIBGLPK, true)
279 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
282 AM_CONDITIONAL(HAVE_LIBGLPK, false)
286 # test for kvm and kstat (for CPU stats under BSD/Solaris)
287 AC_CHECK_LIB([kvm],[kvm_open])
288 AC_CHECK_LIB([kstat],[kstat_open])
290 # test for libextractor
292 AC_MSG_CHECKING(for libextractor)
293 AC_ARG_WITH(extractor,
294 [ --with-extractor=PFX base of libextractor installation],
295 [AC_MSG_RESULT([$with_extractor])
296 case $with_extractor in
300 AC_CHECK_HEADERS(extractor.h,
301 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
305 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
306 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
307 AC_CHECK_HEADERS(extractor.h,
308 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
309 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
314 [AC_MSG_RESULT([--with-extractor not specified])
315 AC_CHECK_HEADERS(extractor.h,
316 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
318 if test "$extractor" != 1
320 AC_MSG_ERROR([GNUnet requires libextractor])
326 # Checks for standard header files.
330 # Check for headers that are ALWAYS required
331 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]))
333 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
334 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])
336 SAVE_LDFLAGS=$LDFLAGS
337 SAVE_CPPFLAGS=$CPPFLAGS
341 AC_MSG_CHECKING(for SQLite)
343 [ --with-sqlite=PFX base of SQLite installation],
344 [AC_MSG_RESULT("$with_sqlite")
349 AC_CHECK_HEADERS(sqlite3.h,
353 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
354 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
355 AC_CHECK_HEADERS(sqlite3.h,
356 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
357 SQLITE_LDFLAGS="-L$with_sqlite/lib"
358 SQLITE_CPPFLAGS="-I$with_sqlite/include"
360 LDFLAGS=$SAVE_LDFLAGS
361 CPPFLAGS=$SAVE_CPPFLAGS
365 [AC_MSG_RESULT([--with-sqlite not specified])
366 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
367 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
368 AC_SUBST(SQLITE_CPPFLAGS)
369 AC_SUBST(SQLITE_LDFLAGS)
373 AC_MSG_CHECKING(for postgres)
374 AC_ARG_WITH(postgres,
375 [ --with-postgres=PFX base of postgres installation],
376 [AC_MSG_RESULT("$with_postgres")
377 case $with_postgres in
381 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
385 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
386 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
387 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
388 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
389 POSTGRES_LDFLAGS="-L$with_postgres/lib"
390 POSTGRES_CPPFLAGS="-I$with_postgres/include"
392 LDFLAGS=$SAVE_LDFLAGS
393 CPPFLAGS=$SAVE_CPPFLAGS
397 [AC_MSG_RESULT([--with-postgres not specified])
398 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
399 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
400 AC_SUBST(POSTGRES_CPPFLAGS)
401 AC_SUBST(POSTGRES_LDFLAGS)
403 # test for libz (maybe required for linking mysql)
405 AC_CHECK_LIB(z, compress,,zlib=0)
406 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
409 AC_MSG_ERROR([GNUnet requires zlib])
413 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
414 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
416 if test "$build_target" = "mingw"
418 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
424 SAVE_LDFLAGS=$LDFLAGS
425 SAVE_CPPFLAGS=$CPPFLAGS
426 AC_MSG_CHECKING(for mysql)
428 [ --with-mysql=PFX base of MySQL installation],
429 [AC_MSG_RESULT("$with_mysql")
430 if test "$with_mysql" != "no"
432 if test "$with_mysql" != "yes"
434 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
435 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
437 AC_CHECK_HEADERS(mysql/mysql.h,
438 AC_CHECK_LIB(mysqlclient, mysql_init,
439 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
440 MYSQL_CPPFLAGS="-I$with_mysql/include"
442 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
445 [AC_MSG_RESULT([--with-mysql not specified])
446 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
447 AC_CHECK_LIB(mysqlclient, mysql_init,
448 [AC_CHECK_HEADERS(mysql/mysql.h,
449 MYSQL_LDFLAGS="-L/usr/lib/mysql"
452 , [], [$CYGWIN_MYSQL_MAGIC])])
455 AC_SUBST(MYSQL_LDFLAGS)
456 AC_SUBST(MYSQL_CPPFLAGS)
458 # additional version check for mysql
459 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
460 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
462 AC_MSG_CHECKING(mysql version)
463 AC_RUN_IFELSE([AC_LANG_PROGRAM(
464 [[$CYGWIN_MYSQL_MAGIC
465 #include <mysql/mysql.h>]],
466 [[if (MYSQL_VERSION_ID < 40100)
471 ],mysql=true,mysql=false)
472 if test "$mysql" = "false"
475 AC_MSG_RESULT([fail, >= 4.1 required])
480 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
481 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
484 LDFLAGS=$SAVE_LDFLAGS
485 CPPFLAGS=$SAVE_CPPFLAGS
487 if test "$sqlite" = 0 -a "$mysql" = 0
489 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
494 AC_MSG_CHECKING([for libmicrohttpd])
495 AC_ARG_WITH(microhttpd,
496 [ --with-microhttpd=PFX base of libmicrohttpd installation],
497 [AC_MSG_RESULT([$with_microhttpd])
498 case $with_microhttpd in
502 AC_CHECK_HEADERS([microhttpd.h],
503 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
504 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
506 [],[#include "src/include/platform.h"
507 #include <microhttpd.h>]),,
508 [#include "src/include/platform.h"])
511 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
512 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
513 AC_CHECK_HEADERS(microhttpd.h,
514 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
515 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
516 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
518 [],[#include "src/include/platform.h"
519 #include <microhttpd.h>]),,
520 [#include "src/include/platform.h"])
524 [AC_MSG_RESULT([--with-microhttpd not specified])
525 AC_CHECK_HEADERS([microhttpd.h],
526 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
527 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
529 [],[#include "src/include/platform.h"
530 #include <microhttpd.h>]),,
531 [#include "src/include/platform.h"])])
532 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
533 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
539 # check for python & pexpect (used for some testcases only)
540 AM_PATH_PYTHON([2.5],, [:])
541 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
543 if test "$PYTHON" != :
545 AC_MSG_CHECKING([for pexpect])
546 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
548 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
553 AC_MSG_RESULT([not found])
556 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
561 AM_GNU_GETTEXT([external])
562 AM_GNU_GETTEXT_VERSION([0.16.1])
567 # Checks for standard typedefs, structures, and compiler characteristics.
576 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
577 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
581 #include <sys/types.h>
582 #include <sys/socket.h>
583 #include <netinet/in.h>
588 # Checks for library functions.
589 AC_FUNC_CLOSEDIR_VOID
592 AC_PROG_GCC_TRADITIONAL
594 AC_FUNC_SELECT_ARGTYPES
604 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])
609 gn_user_home_dir="~/.gnunet"
610 AC_ARG_WITH(user-home-dir,
612 [--with-user-home-dir=DIR],
613 [default user home directory (~/.gnunet)]),
614 [gn_user_home_dir=$withval])
615 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
616 gn_daemon_home_dir="/var/lib/gnunet"
617 AC_ARG_WITH(daemon-home-dir,
619 [--with-daemon-home-dir=DIR],
620 [default daemon home directory (/var/lib/gnunet)]),
621 [gn_daemon_home_dir=$withval])
622 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
623 gn_daemon_config_dir="/etc"
624 AC_ARG_WITH(daemon-config-dir,
626 [--with-daemon-config-dir=DIR],
627 [default daemon config directory (/etc)]),
628 [gn_daemon_config_dir=$withval])
629 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
632 GN_LIBINTL="$LTLIBINTL"
633 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
634 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
635 if test x$enable_framework_build = xyes
637 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
638 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
639 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
640 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
643 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
644 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
646 AC_SUBST(GN_LIB_LDFLAGS)
647 AC_SUBST(GN_PLUGIN_LDFLAGS)
648 AC_SUBST(GN_INTLINCL)
654 AC_SUBST(EXT_LIB_PATH)
659 AC_SUBST(EXT_LIB_PATH)
662 # should 'make check' run tests?
663 AC_MSG_CHECKING(whether to run tests)
664 AC_ARG_ENABLE([testruns],
665 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
666 [enable_tests_run=${enableval}],
667 [enable_tests_run=yes])
668 AC_MSG_RESULT($enable_test_run)
669 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
671 # should expensive tests be run?
672 AC_MSG_CHECKING(whether to run expensive tests)
673 AC_ARG_ENABLE([expensivetests],
674 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
675 [enable_expensive=${enableval}],
676 [enable_expensive=no])
677 AC_MSG_RESULT($enable_expensive)
678 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
680 # should benchmarks be run?
681 AC_MSG_CHECKING(whether to run benchmarks during make check)
682 AC_ARG_ENABLE([benchmarks],
683 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
684 [enable_benchmarks=${enableval}],
685 [enable_benchmarks=no])
686 AC_MSG_RESULT($enable_benchmarks)
687 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
689 # should experimental code be compiled (code that may not yet compile)?
690 AC_MSG_CHECKING(whether to compile experimental code)
691 AC_ARG_ENABLE([experimental],
692 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
693 [enable_experimental=${enableval}],
694 [enable_experimental=no])
695 AC_MSG_RESULT($enable_experimental)
696 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
698 # should malicious code be compiled (code used for testing with malicious peers)
699 AC_MSG_CHECKING(whether to compile malicious code)
700 AC_ARG_ENABLE([malicious],
701 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code (only for developers for testing)])],
702 [enable_malicious=${enableval}],
703 [enable_malicious=no])
704 AC_MSG_RESULT($enable_malicious)
705 AM_CONDITIONAL([HAVE_MALICIOUS], [test "x$enable_malicious" = "xyes"])
706 if test "$enable_malicious" = "yes"
708 AC_DEFINE([HAVE_MALICIOUS],[1],[include malicious code])
710 AC_DEFINE([HAVE_MALICIOUS],[0],[disable malicious code])
713 # should code be enabled that works around missing OS functionality on Windows?
714 # used for test cases
715 if test $build_target = "mingw"
719 AC_MSG_CHECKING(whether to enable windows workarounds)
720 AC_ARG_ENABLE([windows_workarounds],
721 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
722 [enable_workarounds=${enableval}],
723 [enable_workarounds=no])
724 AC_MSG_RESULT($enable_workarounds)
725 if test x$enable_windows_workarounds = "xyes"
732 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
735 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
736 AC_ARG_ENABLE([coverage],
737 AS_HELP_STRING([--enable-coverage],
738 [compile the library with code coverage support]),
739 [use_gcov=${enableval}],
741 AC_MSG_RESULT($use_gcov)
742 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
757 src/datacache/Makefile
758 src/datastore/Makefile
761 src/fragmentation/Makefile
765 src/include/gnunet_directories.h
766 src/hostlist/Makefile
770 src/peerinfo/Makefile
771 src/peerinfo-tool/Makefile
772 src/statistics/Makefile
773 src/template/Makefile
775 src/topology/Makefile
776 src/transport/Makefile
781 pkgconfig/gnunetarm.pc
782 pkgconfig/gnunetblock.pc
783 pkgconfig/gnunetcore.pc
784 pkgconfig/gnunetdatacache.pc
785 pkgconfig/gnunetdatastore.pc
786 pkgconfig/gnunetdht.pc
787 pkgconfig/gnunetdhtlog.pc
788 pkgconfig/gnunetdv.pc
789 pkgconfig/gnunetfragmentation.pc
790 pkgconfig/gnunetfs.pc
791 pkgconfig/gnunethello.pc
792 pkgconfig/gnunetnat.pc
793 pkgconfig/gnunetnse.pc
794 pkgconfig/gnunetpeerinfo.pc
795 pkgconfig/gnunetstatistics.pc
796 pkgconfig/gnunettesting.pc
797 pkgconfig/gnunettransport.pc
798 pkgconfig/gnunetutil.pc
804 # warn user if mysql found but not used due to version
805 if test "$mysqlfail" = "true"
807 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
811 if test "x$sqlite" = "x0"
813 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
816 if test "x$lmhd" != "x1"
818 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
821 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
823 if test "$enable_framework_build" = "yes"
825 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
828 AC_MSG_NOTICE([********************************************
829 You can compile GNUnet with
831 now. After that, run (if necessary as 'root')
833 to install everything. You may want to create a new user account
834 to run the GNUnet service:
836 You also need to create an configuration file that should
837 specify the path where GNUnet should store data. For example,
838 you could store in "/etc/gnunet.conf" the following lines:
841 SERVICEHOME = /var/lib/gnunet
842 DEFAULTCONFIG = /etc/gnunet.conf
844 Now, in order to start your peer, run as the 'gnunet' user
847 Each GNUnet user should also create an (at least initially) empty
850 touch $HOME/.gnunet/gnunet.conf
852 Optionally, download and compile:
853 - gnunet-gtk to get a GUI for file-sharing.
854 - gnunet-setup to get a GUI for configuration.
855 ********************************************])