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>
214 #include <stdio.h>], [[
217 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
218 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
219 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
220 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
221 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
222 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
223 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
224 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
225 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
226 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
228 if (!gcry_check_version (GCRYPT_VERSION))
230 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
234 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
235 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
237 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
239 fprintf (stderr, "gcry_md_open error\n");
243 gcry_md_setkey (mac, key, sizeof (key));
244 gcry_md_write (mac, data, sizeof (data));
246 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
248 fprintf (stderr, "memcmp error\n");
256 [AC_MSG_RESULT([yes])],
261 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.])
265 AC_MSG_FAILURE([HMAC test failed])
269 AC_MSG_FAILURE([libgcrypt header version does not match library version])
273 fi # $build = $target
276 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
281 [AS_HELP_STRING([--enable-ats], [enable ATS code])],
282 [enable_ats=${enableval}],
284 if test x${enable_ats} = xyes
286 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
287 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
288 # GLPK must support atm MLP presolving, version >= 4.32
289 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
290 if test x$gplk = xfalse
292 AM_CONDITIONAL(HAVE_LIBGLPK, false)
293 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
295 AM_CONDITIONAL(HAVE_LIBGLPK, true)
296 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
299 AM_CONDITIONAL(HAVE_LIBGLPK, false)
303 # test for kvm and kstat (for CPU stats under BSD/Solaris)
304 AC_CHECK_LIB([kvm],[kvm_open])
305 AC_CHECK_LIB([kstat],[kstat_open])
307 # test for libextractor
309 AC_MSG_CHECKING(for libextractor)
310 AC_ARG_WITH(extractor,
311 [ --with-extractor=PFX base of libextractor installation],
312 [AC_MSG_RESULT([$with_extractor])
313 case $with_extractor in
317 AC_CHECK_HEADERS(extractor.h,
318 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
322 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
323 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
324 AC_CHECK_HEADERS(extractor.h,
325 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
326 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
331 [AC_MSG_RESULT([--with-extractor not specified])
332 AC_CHECK_HEADERS(extractor.h,
333 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
335 if test "$extractor" != 1
337 AC_MSG_ERROR([GNUnet requires libextractor])
343 # Checks for standard header files.
347 # Check for headers that are ALWAYS required
348 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]))
350 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
351 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])
353 SAVE_LDFLAGS=$LDFLAGS
354 SAVE_CPPFLAGS=$CPPFLAGS
358 AC_MSG_CHECKING(for SQLite)
360 [ --with-sqlite=PFX base of SQLite installation],
361 [AC_MSG_RESULT("$with_sqlite")
366 AC_CHECK_HEADERS(sqlite3.h,
370 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
371 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
372 AC_CHECK_HEADERS(sqlite3.h,
373 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
374 SQLITE_LDFLAGS="-L$with_sqlite/lib"
375 SQLITE_CPPFLAGS="-I$with_sqlite/include"
377 LDFLAGS=$SAVE_LDFLAGS
378 CPPFLAGS=$SAVE_CPPFLAGS
382 [AC_MSG_RESULT([--with-sqlite not specified])
383 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
384 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
385 AC_SUBST(SQLITE_CPPFLAGS)
386 AC_SUBST(SQLITE_LDFLAGS)
390 AC_MSG_CHECKING(for postgres)
391 AC_ARG_WITH(postgres,
392 [ --with-postgres=PFX base of postgres installation],
393 [AC_MSG_RESULT("$with_postgres")
394 case $with_postgres in
398 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
402 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
403 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
404 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
405 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
406 POSTGRES_LDFLAGS="-L$with_postgres/lib"
407 POSTGRES_CPPFLAGS="-I$with_postgres/include"
409 LDFLAGS=$SAVE_LDFLAGS
410 CPPFLAGS=$SAVE_CPPFLAGS
414 [AC_MSG_RESULT([--with-postgres not specified])
415 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
416 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
417 AC_SUBST(POSTGRES_CPPFLAGS)
418 AC_SUBST(POSTGRES_LDFLAGS)
420 # test for libz (maybe required for linking mysql)
422 AC_CHECK_LIB(z, compress,,zlib=0)
423 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
426 AC_MSG_ERROR([GNUnet requires zlib])
430 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
431 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
433 if test "$build_target" = "mingw"
435 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
441 SAVE_LDFLAGS=$LDFLAGS
442 SAVE_CPPFLAGS=$CPPFLAGS
443 AC_MSG_CHECKING(for mysql)
445 [ --with-mysql=PFX base of MySQL installation],
446 [AC_MSG_RESULT("$with_mysql")
447 if test "$with_mysql" != "no"
449 if test "$with_mysql" != "yes"
451 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
452 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
454 AC_CHECK_HEADERS(mysql/mysql.h,
455 AC_CHECK_LIB(mysqlclient, mysql_init,
456 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
457 MYSQL_CPPFLAGS="-I$with_mysql/include"
459 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
462 [AC_MSG_RESULT([--with-mysql not specified])
463 LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
464 AC_CHECK_LIB(mysqlclient, mysql_init,
465 [AC_CHECK_HEADERS(mysql/mysql.h,
466 MYSQL_LDFLAGS="-L/usr/lib/mysql"
469 , [], [$CYGWIN_MYSQL_MAGIC])])
472 AC_SUBST(MYSQL_LDFLAGS)
473 AC_SUBST(MYSQL_CPPFLAGS)
475 # additional version check for mysql
476 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
477 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
479 AC_MSG_CHECKING(mysql version)
480 AC_RUN_IFELSE([AC_LANG_PROGRAM(
481 [[$CYGWIN_MYSQL_MAGIC
482 #include <mysql/mysql.h>]],
483 [[if (MYSQL_VERSION_ID < 40100)
488 ],mysql=true,mysql=false)
489 if test "$mysql" = "false"
492 AC_MSG_RESULT([fail, >= 4.1 required])
497 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
498 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
501 LDFLAGS=$SAVE_LDFLAGS
502 CPPFLAGS=$SAVE_CPPFLAGS
504 if test "$sqlite" = 0 -a "$mysql" = 0
506 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
511 AC_MSG_CHECKING([for libmicrohttpd])
512 AC_ARG_WITH(microhttpd,
513 [ --with-microhttpd=PFX base of libmicrohttpd installation],
514 [AC_MSG_RESULT([$with_microhttpd])
515 case $with_microhttpd in
519 AC_CHECK_HEADERS([microhttpd.h],
520 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
521 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
523 [],[#include "src/include/platform.h"
524 #include <microhttpd.h>]),,
525 [#include "src/include/platform.h"])
528 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
529 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
530 AC_CHECK_HEADERS(microhttpd.h,
531 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
532 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
533 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
535 [],[#include "src/include/platform.h"
536 #include <microhttpd.h>]),,
537 [#include "src/include/platform.h"])
541 [AC_MSG_RESULT([--with-microhttpd not specified])
542 AC_CHECK_HEADERS([microhttpd.h],
543 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
544 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
546 [],[#include "src/include/platform.h"
547 #include <microhttpd.h>]),,
548 [#include "src/include/platform.h"])])
549 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
550 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
556 # check for python & pexpect (used for some testcases only)
557 AM_PATH_PYTHON([2.5],, [:])
558 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
560 if test "$PYTHON" != :
562 AC_MSG_CHECKING([for pexpect])
563 $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
565 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
570 AC_MSG_RESULT([not found])
573 AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
578 AM_GNU_GETTEXT([external])
579 AM_GNU_GETTEXT_VERSION([0.16.1])
584 # Checks for standard typedefs, structures, and compiler characteristics.
593 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
594 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
598 #include <sys/types.h>
599 #include <sys/socket.h>
600 #include <netinet/in.h>
605 # Checks for library functions.
606 AC_FUNC_CLOSEDIR_VOID
609 AC_PROG_GCC_TRADITIONAL
611 AC_FUNC_SELECT_ARGTYPES
621 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])
626 gn_user_home_dir="~/.gnunet"
627 AC_ARG_WITH(user-home-dir,
629 [--with-user-home-dir=DIR],
630 [default user home directory (~/.gnunet)]),
631 [gn_user_home_dir=$withval])
632 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
633 gn_daemon_home_dir="/var/lib/gnunet"
634 AC_ARG_WITH(daemon-home-dir,
636 [--with-daemon-home-dir=DIR],
637 [default daemon home directory (/var/lib/gnunet)]),
638 [gn_daemon_home_dir=$withval])
639 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
640 gn_daemon_config_dir="/etc"
641 AC_ARG_WITH(daemon-config-dir,
643 [--with-daemon-config-dir=DIR],
644 [default daemon config directory (/etc)]),
645 [gn_daemon_config_dir=$withval])
646 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
649 GN_LIBINTL="$LTLIBINTL"
650 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
651 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
652 if test x$enable_framework_build = xyes
654 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
655 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
656 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
657 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
660 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
661 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
663 AC_SUBST(GN_LIB_LDFLAGS)
664 AC_SUBST(GN_PLUGIN_LDFLAGS)
665 AC_SUBST(GN_INTLINCL)
671 AC_SUBST(EXT_LIB_PATH)
676 AC_SUBST(EXT_LIB_PATH)
679 # should 'make check' run tests?
680 AC_MSG_CHECKING(whether to run tests)
681 AC_ARG_ENABLE([testruns],
682 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
683 [enable_tests_run=${enableval}],
684 [enable_tests_run=yes])
685 AC_MSG_RESULT($enable_test_run)
686 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
688 # should expensive tests be run?
689 AC_MSG_CHECKING(whether to run expensive tests)
690 AC_ARG_ENABLE([expensivetests],
691 [AS_HELP_STRING([--enable-expensive-tests], [enable running expensive testcases])],
692 [enable_expensive=${enableval}],
693 [enable_expensive=no])
694 AC_MSG_RESULT($enable_expensive)
695 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
697 # should benchmarks be run?
698 AC_MSG_CHECKING(whether to run benchmarks during make check)
699 AC_ARG_ENABLE([benchmarks],
700 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
701 [enable_benchmarks=${enableval}],
702 [enable_benchmarks=no])
703 AC_MSG_RESULT($enable_benchmarks)
704 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
706 # should experimental code be compiled (code that may not yet compile)?
707 AC_MSG_CHECKING(whether to compile experimental code)
708 AC_ARG_ENABLE([experimental],
709 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
710 [enable_experimental=${enableval}],
711 [enable_experimental=no])
712 AC_MSG_RESULT($enable_experimental)
713 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
715 # should code be enabled that works around missing OS functionality on Windows?
716 # used for test cases
717 if test $build_target = "mingw"
721 AC_MSG_CHECKING(whether to enable windows workarounds)
722 AC_ARG_ENABLE([windows_workarounds],
723 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
724 [enable_workarounds=${enableval}],
725 [enable_workarounds=no])
726 AC_MSG_RESULT($enable_workarounds)
727 if test x$enable_windows_workarounds = "xyes"
734 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
737 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
738 AC_ARG_ENABLE([coverage],
739 AS_HELP_STRING([--enable-coverage],
740 [compile the library with code coverage support]),
741 [use_gcov=${enableval}],
743 AC_MSG_RESULT($use_gcov)
744 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
759 src/datacache/Makefile
760 src/datastore/Makefile
763 src/fragmentation/Makefile
767 src/include/gnunet_directories.h
768 src/hostlist/Makefile
772 src/peerinfo/Makefile
773 src/peerinfo-tool/Makefile
774 src/statistics/Makefile
775 src/template/Makefile
777 src/topology/Makefile
778 src/transport/Makefile
783 pkgconfig/gnunetarm.pc
784 pkgconfig/gnunetblock.pc
785 pkgconfig/gnunetcore.pc
786 pkgconfig/gnunetdatacache.pc
787 pkgconfig/gnunetdatastore.pc
788 pkgconfig/gnunetdht.pc
789 pkgconfig/gnunetdhtlog.pc
790 pkgconfig/gnunetdv.pc
791 pkgconfig/gnunetfragmentation.pc
792 pkgconfig/gnunetfs.pc
793 pkgconfig/gnunethello.pc
794 pkgconfig/gnunetnat.pc
795 pkgconfig/gnunetnse.pc
796 pkgconfig/gnunetpeerinfo.pc
797 pkgconfig/gnunetstatistics.pc
798 pkgconfig/gnunettesting.pc
799 pkgconfig/gnunettransport.pc
800 pkgconfig/gnunetutil.pc
806 # warn user if mysql found but not used due to version
807 if test "$mysqlfail" = "true"
809 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
813 if test "x$sqlite" = "x0"
815 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
818 if test "x$lmhd" != "x1"
820 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
823 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
825 if test "$enable_framework_build" = "yes"
827 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
830 AC_MSG_NOTICE([********************************************
831 You can compile GNUnet with
833 now. After that, run (if necessary as 'root')
835 to install everything. You may want to create a new user account
836 to run the GNUnet service:
838 You also need to create an configuration file that should
839 specify the path where GNUnet should store data. For example,
840 you could store in "/etc/gnunet.conf" the following lines:
843 SERVICEHOME = /var/lib/gnunet
844 DEFAULTCONFIG = /etc/gnunet.conf
846 Now, in order to start your peer, run as the 'gnunet' user
849 Each GNUnet user should also create an (at least initially) empty
852 touch $HOME/.gnunet/gnunet.conf
854 Optionally, download and compile:
855 - gnunet-gtk to get a GUI for file-sharing and configuration.
856 ********************************************])