1 # This file is part of GNUnet.
2 # (C) 2001--2013 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 3, 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.5a], [bug-gnunet@gnu.org])
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33 AC_CONFIG_HEADERS([gnunet_config.h])
34 AH_TOP([#define _GNU_SOURCE 1])
35 AC_CONFIG_MACRO_DIR([m4])
45 LT_INIT([disable-static dlopen win32-dll])
53 if test "$enable_shared" = "no"
55 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
58 CFLAGS="-Wall $CFLAGS"
59 # use '-fno-strict-aliasing', but only if the compiler can take it
60 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
62 CFLAGS="-fno-strict-aliasing $CFLAGS"
65 # Use Linux interface name unless the OS has a different preference
66 DEFAULT_INTERFACE="\"eth0\""
68 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo"
70 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
75 *darwin* | *rhapsody* | *macosx*)
76 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
77 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
78 CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
79 AC_MSG_WARN([The VPN application cannot be compiled on your OS])
81 DEFAULT_INTERFACE="\"en0\""
87 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
95 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
96 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
97 CFLAGS="-D_THREAD_SAFE $CFLAGS"
98 build_target="freebsd"
104 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
105 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
106 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
107 build_target="openbsd"
113 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
114 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
120 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
121 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
122 AC_CHECK_LIB(resolv, res_init)
123 AC_CHECK_LIB(rt, nanosleep)
124 build_target="solaris"
130 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
131 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
138 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
139 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
140 AC_CHECK_LIB(intl, gettext)
141 LDFLAGS="$LDFLAGS -no-undefined"
142 CFLAGS="-mms-bitfields $CFLAGS"
143 build_target="cygwin"
150 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
151 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
152 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
153 AC_CHECK_LIB(intl, gettext)
154 LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols"
155 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
156 CFLAGS="-mms-bitfields $CFLAGS"
157 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
164 native_srcdir=$(cd $srcdir; pwd -W)
167 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
172 AC_MSG_RESULT(Unrecognised OS $host_os)
173 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
177 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
178 AC_SUBST(DEFAULT_INTERFACE)
180 # Disable TCP-based IPC on systems that support UNIX domain
181 # sockets in default configuratin:
185 AC_MSG_CHECKING([for build target])
186 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
187 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
188 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
189 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
190 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
191 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
192 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
193 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
195 AC_MSG_RESULT([$build_target])
196 AC_SUBST(build_target)
197 AM_CONDITIONAL([am__fastdepOBJC], false)
198 AC_UNALIGNED_64_ACCESS
200 # some other checks for standard libs
201 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
202 AC_CHECK_LIB(socket, socket)
204 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
207 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
208 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
209 [Define if struct tm has the tm_gmtoff member.])],
213 # 'save' libs; only those libs found so far will be
214 # linked against _everywhere_. For the others, we
215 # will be more selective!
218 # libgnurx (regex library for W32)
220 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
221 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
223 AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
229 NEED_LIBGCRYPT_VERSION=1.6.0
232 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
233 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
239 *** You need libgcrypt to build this program.
240 ** This library is for example available at
241 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
242 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
246 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
248 # Adam shostack suggests the following for Windows:
249 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
250 AC_ARG_ENABLE(gcc-hardening,
251 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
252 [if test x$enableval = xyes; then
253 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
254 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
255 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
256 LDFLAGS="$LDFLAGS -pie"
260 # Linker hardening options
261 # Currently these options are ELF specific - you can't use this with MacOSX
262 AC_ARG_ENABLE(linker-hardening,
263 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
264 [if test x$enableval = xyes; then
265 LDFLAGS="$LDFLAGS -z relro -z now"
269 extra_logging=GNUNET_NO
270 AC_ARG_ENABLE([logging],
271 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
272 [AS_IF([test "x$enableval" = "xyes"], [],
273 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
274 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
275 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
277 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
279 # should memory poisoning be enabled?
280 AC_MSG_CHECKING(whether to poison freed memory)
281 AC_ARG_ENABLE([poisoning],
282 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
283 [enable_poisoning=${enableval}],
285 if test "x$extra_logging" != "xGNUNET_NO"; then
286 enable_poisoning="defaults to yes (extra logging is enabled)"
291 AC_MSG_RESULT($enable_poisoning)
292 if test ! "x$enable_poisoning" = "xno"; then
297 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
299 if test $build = $target
301 AC_MSG_CHECKING([for working HMAC])
303 LIBS="$LIBS $LIBGCRYPT_LIBS"
304 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
306 [AC_LANG_PROGRAM([#include <gcrypt.h>
307 #include <stdio.h>], [[
310 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
311 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
312 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
313 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
314 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
315 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
316 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
317 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
318 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
319 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
321 if (!gcry_check_version (GCRYPT_VERSION))
323 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
327 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
328 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
330 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
332 fprintf (stderr, "gcry_md_open error\n");
336 gcry_md_setkey (mac, key, sizeof (key));
337 gcry_md_write (mac, data, sizeof (data));
339 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
341 fprintf (stderr, "memcmp error\n");
349 [AC_MSG_RESULT([yes])],
354 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.])
358 AC_MSG_FAILURE([HMAC test failed])
362 AC_MSG_FAILURE([libgcrypt header version does not match library version])
366 fi # $build = $target
368 # check for bluetooth library
370 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
371 if test "$bluetooth" = 1
373 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, true)
374 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
376 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, false)
378 if test "$build_target" = "mingw"
383 # check for libpulse(audio) library
385 AC_CHECK_LIB(pulse,pa_stream_peek,
386 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
389 AM_CONDITIONAL(HAVE_PULSE, true)
390 AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])
392 AM_CONDITIONAL(HAVE_PULSE, false)
394 if test "$build_target" = "mingw"
399 # check for libopus(audio) library
401 AC_CHECK_LIB(opus,opus_decode_float,
402 [AC_CHECK_HEADER([opus/opus.h],opus=1)])
405 AM_CONDITIONAL(HAVE_OPUS, true)
406 AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
408 AM_CONDITIONAL(HAVE_OPUS, false)
413 LIBGNURL_CHECK_CONFIG(,7.33.0,gnurl=1,gnurl=0)
416 AM_CONDITIONAL(HAVE_LIBGNURL, true)
417 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
419 AM_CONDITIONAL(HAVE_LIBGNURL, false)
424 AC_MSG_CHECKING([if Libidn can be used])
425 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
426 [Support IDN (needs GNU Libidn)]),
427 libidn=$withval, libidn=yes)
428 if test "$libidn" != "no"; then
429 if test "$libidn" != "yes"; then
430 LDFLAGS="${LDFLAGS} -L$libidn/lib"
431 CPPFLAGS="${CPPFLAGS} -I$libidn/include"
433 AC_CHECK_HEADER(idna.h,
434 AC_CHECK_LIB(idn, stringprep_check_version,
435 [libidn=yes LIBS="${LIBS} -lidn"],
436 AC_MSG_FAILURE([GNUnet requires libidn])),
437 AC_MSG_FAILURE([GNUnet requires libidn]))
439 AC_MSG_RESULT($libidn)
445 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
446 # GLPK must support glpk_init_env, version >= 4.43
447 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
448 # GLPK must support atm MLP presolving, version >= 4.32
449 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
450 if test x$gplk = xfalse
452 AM_CONDITIONAL(HAVE_LIBGLPK, false)
453 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
455 AM_CONDITIONAL(HAVE_LIBGLPK, true)
456 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
461 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
462 if test x$nss = xfalse
464 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
465 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
467 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
472 # test for kvm and kstat (for CPU stats under BSD/Solaris)
473 AC_CHECK_LIB([kvm],[kvm_open])
474 AC_CHECK_LIB([kstat],[kstat_open])
476 # test for libextractor
478 AC_MSG_CHECKING(for libextractor)
479 AC_ARG_WITH(extractor,
480 [ --with-extractor=PFX base of libextractor installation],
481 [AC_MSG_RESULT([$with_extractor])
482 case $with_extractor in
486 AC_CHECK_HEADERS(extractor.h,
487 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
491 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
492 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
493 AC_CHECK_HEADERS(extractor.h,
494 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
495 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
500 [AC_MSG_RESULT([--with-extractor not specified])
501 AC_CHECK_HEADERS(extractor.h,
502 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
504 if test "$extractor" != 1
506 AC_MSG_ERROR([GNUnet requires libextractor])
511 # Check for libltdl header (#2999)
513 AC_MSG_CHECKING(for libltdl)
515 [ --with-ltdl=PFX base of libltdl installation],
516 [AC_MSG_RESULT([$with_ltdl])
521 AC_CHECK_HEADERS(ltdl.h,
522 AC_CHECK_LIB([ltdl], [lt_dlopenext],
526 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
527 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
528 AC_CHECK_HEADERS(ltdl.h,
529 AC_CHECK_LIB([ltdl], [lt_dlopenext],
530 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
535 [AC_MSG_RESULT([--with-ltdl not specified])
536 AC_CHECK_HEADERS(ltdl.h,
537 AC_CHECK_LIB([ltdl], [lt_dlopenext],
541 AC_MSG_RESULT([libltdl found])
543 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
548 # test for libunistring
550 if test $HAVE_LIBUNISTRING != yes; then
551 AC_MSG_ERROR([GNUnet requires libunistring])
553 if test $gl_libunistring_hexversion -le 2305; then
554 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
561 # Checks for standard header files.
565 # Check for headers that are ALWAYS required
566 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]))
570 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
571 AC_CHECK_HEADERS([malloc.h malloc/malloc.h 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 netinet/ip.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 execinfo.h])
573 SAVE_LDFLAGS=$LDFLAGS
574 SAVE_CPPFLAGS=$CPPFLAGS
578 AC_MSG_CHECKING(for SQLite)
580 [ --with-sqlite=PFX base of SQLite installation],
581 [AC_MSG_RESULT("$with_sqlite")
586 AC_CHECK_HEADERS(sqlite3.h,
590 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
591 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
592 AC_CHECK_HEADERS(sqlite3.h,
593 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
594 SQLITE_LDFLAGS="-L$with_sqlite/lib"
595 SQLITE_CPPFLAGS="-I$with_sqlite/include"
597 LDFLAGS=$SAVE_LDFLAGS
598 CPPFLAGS=$SAVE_CPPFLAGS
602 [AC_MSG_RESULT([--with-sqlite not specified])
603 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
604 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
605 AC_SUBST(SQLITE_CPPFLAGS)
606 AC_SUBST(SQLITE_LDFLAGS)
610 AC_MSG_CHECKING(for postgres)
611 AC_ARG_WITH(postgres,
612 [ --with-postgres=PFX base of postgres installation],
613 [AC_MSG_RESULT("$with_postgres")
614 case $with_postgres in
618 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
622 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
623 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
624 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
625 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
626 POSTGRES_LDFLAGS="-L$with_postgres/lib"
627 POSTGRES_CPPFLAGS="-I$with_postgres/include"
629 LDFLAGS=$SAVE_LDFLAGS
630 CPPFLAGS=$SAVE_CPPFLAGS
634 [AC_MSG_RESULT([--with-postgres not specified])
635 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
636 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
637 AC_SUBST(POSTGRES_CPPFLAGS)
638 AC_SUBST(POSTGRES_LDFLAGS)
641 SAVE_LDFLAGS=$LDFLAGS
642 SAVE_CPPFLAGS=$CPPFLAGS
644 [ --with-zlib[[=DIR]] use libz in DIR],
645 [AS_IF([test "$withval" = "no"],
646 [AC_MSG_ERROR([GNUnet requires zlib])],
647 [test "$withval" != "yes"],
650 CPPFLAGS="${CPPFLAGS} -I$withval/include"
651 LDFLAGS="${LDFLAGS} -L$withval/lib"
654 AC_CHECK_HEADER(zlib.h,
656 [AC_MSG_ERROR([GNUnet requires zlib])])
657 AC_CHECK_LIB(z, compress2,
659 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
660 if test "x${Z_DIR}" != "x"; then
661 Z_CFLAGS="-I${Z_DIR}/include"
662 Z_LIBS="-L${Z_DIR}/lib -lz"
666 [AC_MSG_ERROR([GNUnet requires zlib])])
670 LDFLAGS=$SAVE_LDFLAGS
671 CPPFLAGS=$SAVE_CPPFLAGS
674 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
675 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
677 if test "$build_target" = "mingw"
679 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
685 SAVE_LDFLAGS=$LDFLAGS
686 SAVE_CPPFLAGS=$CPPFLAGS
687 AC_MSG_CHECKING(for mysql)
689 [ --with-mysql=PFX base of MySQL installation],
690 [AC_MSG_RESULT("$with_mysql")
691 if test "$with_mysql" != "no"
693 if test "$with_mysql" != "yes"
695 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
696 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
698 AC_CHECK_HEADERS(mysql/mysql.h,
699 AC_CHECK_LIB(mysqlclient, mysql_init,
700 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
701 MYSQL_CPPFLAGS="-I$with_mysql/include"
703 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
706 [AC_MSG_RESULT([--with-mysql not specified])
707 if test -d "/usr/lib64/mysql"; then
708 MYSQL_LIBDIR="/usr/lib64/mysql"
709 elif test -d "/usr/lib/mysql"; then
710 MYSQL_LIBDIR="/usr/lib/mysql"
712 MYSQL_LIBDIR="/usr/lib"
714 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
715 AC_CHECK_LIB(mysqlclient, mysql_init,
716 [AC_CHECK_HEADERS(mysql/mysql.h,
717 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
720 , [], [$CYGWIN_MYSQL_MAGIC])])
723 AC_SUBST(MYSQL_LDFLAGS)
724 AC_SUBST(MYSQL_CPPFLAGS)
726 # additional version check for mysql
727 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
728 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
730 AC_MSG_CHECKING(mysql version)
731 AC_RUN_IFELSE([AC_LANG_PROGRAM(
732 [[$CYGWIN_MYSQL_MAGIC
733 #include <mysql/mysql.h>]],
734 [[if (MYSQL_VERSION_ID < 40100)
739 ],mysql=true,mysql=false)
740 if test "$mysql" = "false"
743 AC_MSG_RESULT([fail, >= 4.1 required])
748 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
749 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
752 LDFLAGS=$SAVE_LDFLAGS
753 CPPFLAGS=$SAVE_CPPFLAGS
755 if test "$sqlite" = 0 -a "$mysql" = 0
757 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
762 AC_MSG_CHECKING([for libmicrohttpd])
763 AC_ARG_WITH(microhttpd,
764 [ --with-microhttpd=PFX base of libmicrohttpd installation],
765 [AC_MSG_RESULT([$with_microhttpd])
766 case $with_microhttpd in
770 AC_CHECK_HEADERS([microhttpd.h],
771 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
772 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
773 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
774 AC_RUN_IFELSE([AC_LANG_SOURCE([
775 #include "$native_srcdir/src/include/platform.h"
776 #include <microhttpd.h>
777 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
780 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
781 [],[#include "$native_srcdir/src/include/platform.h"
782 #include <microhttpd.h>]),,
783 [#include "$native_srcdir/src/include/platform.h"])
786 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
787 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
788 AC_CHECK_HEADERS(microhttpd.h,
789 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
790 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
791 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
792 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
793 AC_RUN_IFELSE([AC_LANG_SOURCE([
794 #include "$native_srcdir/src/include/platform.h"
795 #include <microhttpd.h>
796 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
799 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
800 [],[#include "$native_srcdir/src/include/platform.h"
801 #include <microhttpd.h>]),,
802 [#include "$native_srcdir/src/include/platform.h"])
806 [AC_MSG_RESULT([--with-microhttpd not specified])
807 AC_CHECK_HEADERS([microhttpd.h],
808 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
809 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
810 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
811 AC_RUN_IFELSE([AC_LANG_SOURCE([
812 #include "$native_srcdir/src/include/platform.h"
813 #include <microhttpd.h>
814 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
817 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
818 [],[#include "$native_srcdir/src/include/platform.h"
819 #include <microhttpd.h>]),,
820 [#include "$native_srcdir/src/include/platform.h"])])
821 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
822 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
828 # check for python & pexpect (used for some testcases only)
829 AM_PATH_PYTHON([2.6],, [:])
830 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
833 AM_GNU_GETTEXT([external])
834 AM_GNU_GETTEXT_VERSION([0.16.1])
839 # Checks for standard typedefs, structures, and compiler characteristics.
848 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
849 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
853 #include <sys/types.h>
854 #include <sys/socket.h>
855 #include <netinet/in.h>
860 # Checks for library functions.
861 AC_FUNC_CLOSEDIR_VOID
863 AC_PROG_GCC_TRADITIONAL
865 AC_FUNC_SELECT_ARGTYPES
875 AC_CHECK_FUNCS([atoll stat64 strnlen mremap getrlimit setrlimit sysconf initgroups strndup gethostbyname2 getpeerucred getpeereid setresuid $funcstocheck getifaddrs freeifaddrs getresgid mallinfo malloc_size malloc_usable_size getrusage random srandom stat statfs statvfs])
880 gn_user_home_dir="~/.gnunet"
881 AC_ARG_WITH(user-home-dir,
883 [--with-user-home-dir=DIR],
884 [default user home directory (~/.gnunet)]),
885 [gn_user_home_dir=$withval])
886 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
887 gn_daemon_home_dir="/var/lib/gnunet"
888 AC_ARG_WITH(daemon-home-dir,
890 [--with-daemon-home-dir=DIR],
891 [default daemon home directory (/var/lib/gnunet)]),
892 [gn_daemon_home_dir=$withval])
893 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
894 gn_daemon_config_dir="/etc"
895 AC_ARG_WITH(daemon-config-dir,
897 [--with-daemon-config-dir=DIR],
898 [default daemon config directory (/etc)]),
899 [gn_daemon_config_dir=$withval])
900 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
903 GN_LIBINTL="$LTLIBINTL"
904 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
905 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
906 if test x$enable_framework_build = xyes
908 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
909 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
910 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
911 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
914 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
915 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
917 AC_SUBST(GN_LIB_LDFLAGS)
918 AC_SUBST(GN_PLUGIN_LDFLAGS)
919 AC_SUBST(GN_INTLINCL)
925 AC_SUBST(EXT_LIB_PATH)
930 AC_SUBST(EXT_LIB_PATH)
934 AC_MSG_CHECKING(for sudo)
936 [ --with-sudo=PATH path to sudo binary (or just yes)],
937 [AC_MSG_RESULT("$with_sudo")
946 SUDO_BINARY=$with_sudo
950 [AC_MSG_RESULT([no])])
951 AC_SUBST(SUDO_BINARY)
952 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
956 AC_MSG_CHECKING(with nssdir)
958 [ --with-nssdir=PATH where to install NSS plugins],
959 [AC_MSG_RESULT("$with_nssdir")
976 if test "x$SUDO_BINARY" != "x" -o -w /
980 AC_MSG_RESULT([yes, to /lib])
988 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
990 # test for gnunetdns group name
991 GNUNETDNS_GROUP=gnunetdns
992 AC_MSG_CHECKING(for gnunetdns group name)
993 AC_ARG_WITH(gnunetdns,
994 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
995 [AC_MSG_RESULT("$with_gnunetdns")
996 case $with_gnunetdns in
998 GNUNETDNS_GROUP=gnunet
1001 GNUNETDNS_GROUP=gnunetdns
1004 GNUNETDNS_GROUP=$with_gnunetdns
1008 [AC_MSG_RESULT([gnunetdns])])
1009 AC_SUBST(GNUNETDNS_GROUP)
1015 AC_MSG_CHECKING(for gnutls)
1017 [ --with-gnutls=PFX base of gnutls installation],
1018 [AC_MSG_RESULT([$with_gnutls])
1019 case $with_gnutls in
1023 AC_CHECK_HEADERS([gnutls/abstract.h],
1024 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1028 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1029 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1030 AC_CHECK_HEADERS([gnutls/abstract.h],
1031 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1032 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1037 [AC_MSG_RESULT([--with-gnutls not specified])
1038 AC_CHECK_HEADERS([gnutls/abstract.h],
1039 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1041 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1042 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1045 AC_CHECK_HEADERS([gnutls/dane.h],
1046 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1048 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = xtrue)
1049 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1052 # Test if we are building for superMUC
1053 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1054 AC_ARG_ENABLE([supermuc],
1055 [AS_HELP_STRING([--enable-supermuc],
1056 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1057 [if test "x$enable_supermuc" = "xno"
1064 enable_supermuc=no])
1065 AC_MSG_RESULT($enable_SUPERMUC)
1066 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1067 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1069 # Check if NSE has to send timestamp information to testbed logger for
1070 # generating histogram of messages received
1071 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1072 AC_ARG_ENABLE([nse-histogram],
1073 [AS_HELP_STRING([--enable-nse-histogram],
1074 [have NSE send timestamp information to testbed logger for generating
1075 histogram of received messages. NOT useful for production (default is
1077 [if test "x$enableval" = "xno"
1084 enable_nse_histogram=no])
1085 AC_MSG_RESULT($enable_nse_histogram)
1086 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1087 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1088 [have NSE send timestamp information to testbed logger])
1090 # should 'make check' run tests?
1091 AC_MSG_CHECKING(whether to run tests)
1092 AC_ARG_ENABLE([testruns],
1093 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1094 [enable_tests_run=${enableval}],
1095 [enable_tests_run=yes])
1096 AC_MSG_RESULT($enable_test_run)
1097 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1100 # should monkey be used when running (certain) services?
1101 AC_MSG_CHECKING(whether to run with monkey)
1102 AC_ARG_ENABLE([monkey],
1103 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1104 [enable_monkey=${enableval}],
1106 AC_MSG_RESULT($enable_monkey)
1107 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1108 if test "x$enable_monkey" = "xyes"
1110 MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1114 AC_SUBST(MONKEYPREFIX)
1117 # should expensive tests be run?
1118 AC_MSG_CHECKING(whether to run expensive tests)
1119 AC_ARG_ENABLE([expensivetests],
1120 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1121 [enable_expensive=${enableval}],
1122 [enable_expensive=no])
1123 AC_MSG_RESULT($enable_expensive)
1124 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1126 # should ports be open for Java services?
1127 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1128 AC_ARG_ENABLE([javaports],
1129 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1130 [enable_java_ports=${enableval}],
1131 [enable_java_ports=no])
1132 AC_MSG_RESULT($enable_java_ports)
1133 if test "x$enable_java_ports" = "xyes"
1137 JAVAPORT="$UNIXONLY"
1141 # should benchmarks be run?
1142 AC_MSG_CHECKING(whether to run benchmarks during make check)
1143 AC_ARG_ENABLE([benchmarks],
1144 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1145 [enable_benchmarks=${enableval}],
1146 [enable_benchmarks=no])
1147 AC_MSG_RESULT($enable_benchmarks)
1148 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1150 # should gnunet-testing be compiled
1151 AC_MSG_CHECKING(wether to compile gnunet-testing)
1152 AC_ARG_ENABLE([testing],
1153 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1154 [enable_testing=${enableval}],
1155 [enable_testing=yes])
1156 AC_MSG_RESULT($enable_testing)
1157 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1159 # should experimental code be compiled (code that may not yet compile)?
1160 AC_MSG_CHECKING(whether to compile experimental code)
1161 AC_ARG_ENABLE([experimental],
1162 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1163 [enable_experimental=${enableval}],
1164 [enable_experimental=no])
1165 AC_MSG_RESULT($enable_experimental)
1166 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1168 # should services be started by default when a peer starts? Some services may
1169 # choose to never start by default and it is upto the service/module developer to
1170 # decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART" in
1171 # the service/module's conf.in file.
1173 AC_MSG_CHECKING(whether to auto-start peer's services by default)
1174 AC_ARG_ENABLE([autostart],
1175 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1176 [enable_autostart=${enableval}
1177 if test "x$enable_autostart" == "xno"
1182 [enable_autostart=yes])
1183 AC_MSG_RESULT($enable_autostart)
1184 #AM_CONDITIONAL([HAVE_AUTOSTART], [test "x$enable_autostart" = "xyes"])
1187 # should memory statistics be kept (very expensive CPU-wise!)
1188 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1189 AC_ARG_ENABLE([heapstats],
1190 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1191 [enable_heapstats=1],
1192 [enable_heapstats=0])
1193 AC_MSG_RESULT($enable_heapstats)
1194 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1196 # should code be enabled that works around missing OS functionality on Windows?
1197 # used for test cases
1198 if test $build_target = "mingw"
1204 [#include <ws2tcpip.h>
1206 int s = socket (0, 0, 0);])
1208 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1210 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1215 [#include <ws2tcpip.h>
1217 int s = select (0, NULL, NULL, NULL, NULL);])
1219 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1221 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1226 [#include <ws2tcpip.h>
1229 char *s = inet_ntoa (i);])
1231 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1233 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1238 [#include <ws2tcpip.h>
1240 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1242 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1244 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1249 [#include <ws2tcpip.h>
1251 int s = gethostname (NULL, 0);])
1253 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1255 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1260 [#include <ws2tcpip.h>
1262 void *s = gethostbyname (NULL);])
1264 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1266 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1271 [#include <ws2tcpip.h>
1273 void *s = gethostbyaddr (NULL, 0, 0);])
1275 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1277 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1282 [#include <ws2tcpip.h>
1284 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1286 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1288 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1292 AC_MSG_CHECKING(whether to enable windows workarounds)
1293 AC_ARG_ENABLE([windows_workarounds],
1294 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1295 [enable_workarounds=${enableval}],
1296 [enable_workarounds=no])
1297 AC_MSG_RESULT($enable_workarounds)
1298 if test x$enable_windows_workarounds = "xyes"
1305 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1308 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1309 AC_ARG_ENABLE([coverage],
1310 AS_HELP_STRING([--enable-coverage],
1311 [compile the library with code coverage support]),
1312 [use_gcov=${enableval}],
1314 AC_MSG_RESULT($use_gcov)
1315 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1319 AC_PATH_PROG(svnversioncommand, svnversion)
1320 AC_PATH_PROG(gitcommand, git)
1321 AC_MSG_CHECKING(for source being under a VCS)
1324 AS_IF([test ! "X$svnversioncommand" = "X"],
1326 svn_version=$(cd $srcdir ; $svnversioncommand -n 2>/dev/null)
1328 AS_IF([test ! "X$gitcommand" = "X"],
1330 gitsvn_version=$(cd $srcdir ; git log -1 2>/dev/null | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1332 AS_IF([test "X$svn_version" = "X" -o "X$svn_version" = "Xexported" -o "X$svn_version" = "XUnversioned directory"],
1334 AS_IF([test "X$gitsvn_version" = "X"],
1337 vcs_version="\"release\""
1340 vcs_name="yes, git-svn"
1341 vcs_version="\"svn-r$gitsvn_version\""
1346 vcs_version="\"svn-r$svn_version\""
1348 AC_MSG_RESULT($vcs_name)
1350 AC_MSG_CHECKING(VCS version)
1351 AC_MSG_RESULT($vcs_version)
1352 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1359 doc/doxygen/Makefile
1367 src/ats-tool/Makefile
1368 src/ats-tests/Makefile
1372 src/consensus/Makefile
1373 src/consensus/consensus.conf
1374 src/conversation/Makefile
1375 src/conversation/conversation.conf
1376 src/datacache/Makefile
1377 src/datastore/Makefile
1378 src/datastore/datastore.conf
1387 src/experimentation/Makefile
1388 src/experimentation/experimentation.conf
1389 src/fragmentation/Makefile
1394 src/gns/nss/Makefile
1395 src/gnsrecord/Makefile
1397 src/identity/Makefile
1398 src/identity/identity.conf
1399 src/include/Makefile
1400 src/include/gnunet_directories.h
1401 src/integration-tests/Makefile
1402 src/hostlist/Makefile
1405 src/multicast/Makefile
1406 src/multicast/multicast.conf
1408 src/namecache/Makefile
1409 src/namecache/namecache.conf
1410 src/namestore/Makefile
1411 src/namestore/namestore.conf
1415 src/peerinfo/Makefile
1416 src/peerinfo/peerinfo.conf
1417 src/peerinfo-tool/Makefile
1418 src/postgres/Makefile
1421 src/psycstore/Makefile
1422 src/psycstore/psycstore.conf
1425 src/regex/regex.conf
1426 src/revocation/Makefile
1427 src/revocation/revocation.conf
1428 src/secretsharing/Makefile
1429 src/secretsharing/secretsharing.conf
1430 src/scalarproduct/Makefile
1431 src/scalarproduct/scalarproduct.conf
1434 src/statistics/Makefile
1435 src/statistics/statistics.conf
1436 src/template/Makefile
1437 src/testbed/Makefile
1438 src/testbed/testbed.conf
1439 src/testing/Makefile
1440 src/topology/Makefile
1441 src/transport/Makefile
1442 src/transport/transport.conf
1445 src/util/resolver.conf
1449 pkgconfig/gnunetarm.pc
1450 pkgconfig/gnunetats.pc
1451 pkgconfig/gnunetblock.pc
1452 pkgconfig/gnunetconsensus.pc
1453 pkgconfig/gnunetconversation.pc
1454 pkgconfig/gnunetcore.pc
1455 pkgconfig/gnunetdatacache.pc
1456 pkgconfig/gnunetdatastore.pc
1457 pkgconfig/gnunetdht.pc
1458 pkgconfig/gnunetdns.pc
1459 pkgconfig/gnunetdnsparser.pc
1460 pkgconfig/gnunetdnsstub.pc
1461 pkgconfig/gnunetdv.pc
1462 pkgconfig/gnunetenv.pc
1463 pkgconfig/gnunetfragmentation.pc
1464 pkgconfig/gnunetfs.pc
1465 pkgconfig/gnunetgns.pc
1466 pkgconfig/gnunethello.pc
1467 pkgconfig/gnunetidentity.pc
1468 pkgconfig/gnunetmesh.pc
1469 pkgconfig/gnunetmicrophone.pc
1470 pkgconfig/gnunetmulticast.pc
1471 pkgconfig/gnunetmysql.pc
1472 pkgconfig/gnunetnamestore.pc
1473 pkgconfig/gnunetnat.pc
1474 pkgconfig/gnunetnse.pc
1475 pkgconfig/gnunetpeerinfo.pc
1476 pkgconfig/gnunetpostgres.pc
1477 pkgconfig/gnunetpsyc.pc
1478 pkgconfig/gnunetpsycstore.pc
1479 pkgconfig/gnunetregex.pc
1480 pkgconfig/gnunetrevocation.pc
1481 pkgconfig/gnunetscalarproduct.pc
1482 pkgconfig/gnunetset.pc
1483 pkgconfig/gnunetspeaker.pc
1484 pkgconfig/gnunetstatistics.pc
1485 pkgconfig/gnunettestbed.pc
1486 pkgconfig/gnunettesting.pc
1487 pkgconfig/gnunettransport.pc
1488 pkgconfig/gnunettun.pc
1489 pkgconfig/gnunetutil.pc
1490 pkgconfig/gnunetvpn.pc
1496 # warn user if mysql found but not used due to version
1497 if test "$mysqlfail" = "true"
1499 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1503 if test "x$sqlite" = "x0"
1505 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
1509 if test "x$gnurl" = "x0"
1511 AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
1515 if test "x$bluetooth" = "x0"
1517 AC_MSG_NOTICE([NOTICE: bluetooth library not found. bluetooth support will not be compiled.])
1521 if test x$gnutls != xtrue
1523 AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
1525 if test x$gnutls_dane != xtrue
1527 AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
1532 if test "x$enable_java_ports" = "xyes"
1534 AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1538 if test "x$lmhd" != "x1"
1540 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1544 if test "x$pulse" != "x1"
1546 AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.])
1550 if test "x$opus" != "x1"
1552 AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.])
1555 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1557 if test "$enable_framework_build" = "yes"
1559 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1562 if test "x$SUDO_BINARY" = "x" -a ! -w /
1564 AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1568 AC_MSG_NOTICE([********************************************
1569 Please make sure NOW that you have created a user and group 'gnunet'
1570 and additionally a group 'gnunetdns':
1574 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1575 'gnunet'. Then, you can compile GNUnet with
1578 After that, run (if necessary as 'root')
1580 to install everything.
1582 Each GNUnet user should be added to the 'gnunet' group (may
1583 require fresh login to come into effect):
1584 adduser $USERNAME gnunet
1585 (run the above command as root once for each of your users, replacing
1586 "$USERNAME" with the respective login names). If you have a global IP
1587 address, no further configuration is required.
1589 Optionally, download and compile gnunet-gtk to get a GUI for
1590 file-sharing and configuration. This is particularly recommended
1591 if your network setup is non-trivial, as gnunet-setup can be
1592 used to test in the GUI if your network configuration is working.
1593 gnunet-setup should be run as the "gnunet" user under X. As it
1594 does very little with the network, running it as "root" is likely
1595 also harmless. You can also run it as a normal user, but then
1596 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1597 home directory in the end.
1599 Once you have configured your peer, run (as the 'gnunet' user)
1601 to start the peer. You can then run the various GNUnet-tools as
1602 your "normal" user (who should only be in the group 'gnunet').
1603 ********************************************])