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.10.0], [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="-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 AC_CHECK_DECLS([_stati64])
215 # 'save' libs; only those libs found so far will be
216 # linked against _everywhere_. For the others, we
217 # will be more selective!
220 # libgnurx (regex library for W32)
222 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
223 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
225 AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
231 NEED_LIBGCRYPT_VERSION=1.6.0
234 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
235 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
241 *** You need libgcrypt to build this program.
242 ** This library is for example available at
243 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
244 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
248 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
250 # Adam shostack suggests the following for Windows:
251 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
252 AC_ARG_ENABLE(gcc-hardening,
253 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
254 [if test x$enableval = xyes; then
255 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
256 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
257 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
258 LDFLAGS="$LDFLAGS -pie"
262 # Linker hardening options
263 # Currently these options are ELF specific - you can't use this with MacOSX
264 AC_ARG_ENABLE(linker-hardening,
265 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
266 [if test x$enableval = xyes; then
267 LDFLAGS="$LDFLAGS -z relro -z now"
271 extra_logging=GNUNET_NO
272 AC_ARG_ENABLE([logging],
273 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
274 [AS_IF([test "x$enableval" = "xyes"], [],
275 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
276 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
277 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
279 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
281 # should memory poisoning be enabled?
282 AC_MSG_CHECKING(whether to poison freed memory)
283 AC_ARG_ENABLE([poisoning],
284 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
285 [enable_poisoning=${enableval}],
287 if test "x$extra_logging" != "xGNUNET_NO"; then
288 enable_poisoning="defaults to yes (extra logging is enabled)"
293 AC_MSG_RESULT($enable_poisoning)
294 if test ! "x$enable_poisoning" = "xno"; then
299 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
301 if test $build = $target
303 AC_MSG_CHECKING([for working HMAC])
305 LIBS="$LIBS $LIBGCRYPT_LIBS"
306 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
308 [AC_LANG_PROGRAM([#include <gcrypt.h>
309 #include <stdio.h>], [[
312 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
313 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
314 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
315 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
316 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
317 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
318 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
319 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
320 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
321 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
323 if (!gcry_check_version (GCRYPT_VERSION))
325 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
329 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
330 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
332 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
334 fprintf (stderr, "gcry_md_open error\n");
338 gcry_md_setkey (mac, key, sizeof (key));
339 gcry_md_write (mac, data, sizeof (data));
341 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
343 fprintf (stderr, "memcmp error\n");
351 [AC_MSG_RESULT([yes])],
356 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.])
360 AC_MSG_FAILURE([HMAC test failed])
364 AC_MSG_FAILURE([libgcrypt header version does not match library version])
368 fi # $build = $target
370 # check for bluetooth library
372 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
373 if test "$bluetooth" = 1
375 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, true)
376 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
378 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, false)
380 if test "$build_target" = "mingw"
385 # check for libpulse(audio) library
387 AC_CHECK_LIB(pulse,pa_stream_peek,
388 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
391 AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])
393 if test "$build_target" = "mingw"
398 # check for libopus(audio) library
400 AC_CHECK_LIB(opus,opus_decode_float,
401 [AC_CHECK_HEADER([opus/opus.h],opus=1)])
404 AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
410 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
416 AC_MSG_RESULT(not found)
420 if test "x$pulse" != "x1" -o "x$opus" != "x1"
422 if test "x$gst" != "x1" -o "x$opus" != "x1"
424 conversation_backend=none
425 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
426 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
428 conversation_backend=gst
429 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
430 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
433 conversation_backend=pulse
434 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
435 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
439 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
442 AM_CONDITIONAL(HAVE_LIBGNURL, true)
443 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
445 AM_CONDITIONAL(HAVE_LIBGNURL, false)
450 AC_MSG_CHECKING([if Libidn can be used])
451 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
452 [Support IDN (needs GNU Libidn)]),
453 libidn=$withval, libidn=yes)
454 if test "$libidn" != "no"; then
455 if test "$libidn" != "yes"; then
456 LDFLAGS="${LDFLAGS} -L$libidn/lib"
457 CPPFLAGS="${CPPFLAGS} -I$libidn/include"
459 AC_CHECK_HEADER(idna.h,
460 AC_CHECK_LIB(idn, stringprep_check_version,
461 [libidn=yes LIBS="${LIBS} -lidn"],
462 AC_MSG_FAILURE([GNUnet requires libidn])),
463 AC_MSG_FAILURE([GNUnet requires libidn]))
465 AC_MSG_RESULT($libidn)
471 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
472 # GLPK must support glpk_init_env, version >= 4.43
473 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
474 # GLPK must support atm MLP presolving, version >= 4.32
475 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
476 if test x$gplk = xfalse
478 AM_CONDITIONAL(HAVE_LIBGLPK, false)
479 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
481 AM_CONDITIONAL(HAVE_LIBGLPK, true)
482 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
487 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
488 if test x$nss = xfalse
490 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
491 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
493 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
498 # test for kvm and kstat (for CPU stats under BSD/Solaris)
499 AC_CHECK_LIB([kvm],[kvm_open])
500 AC_CHECK_LIB([kstat],[kstat_open])
502 # test for libextractor
504 AC_MSG_CHECKING(for libextractor)
505 AC_ARG_WITH(extractor,
506 [ --with-extractor=PFX base of libextractor installation],
507 [AC_MSG_RESULT([$with_extractor])
508 case $with_extractor in
512 AC_CHECK_HEADERS(extractor.h,
513 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
517 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
518 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
519 AC_CHECK_HEADERS(extractor.h,
520 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
521 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
526 [AC_MSG_RESULT([--with-extractor not specified])
527 AC_CHECK_HEADERS(extractor.h,
528 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
530 if test "$extractor" != 1
532 AC_MSG_ERROR([GNUnet requires libextractor])
537 # Check for libltdl header (#2999)
539 AC_MSG_CHECKING(for libltdl)
541 [ --with-ltdl=PFX base of libltdl installation],
542 [AC_MSG_RESULT([$with_ltdl])
547 AC_CHECK_HEADERS(ltdl.h,
548 AC_CHECK_LIB([ltdl], [lt_dlopenext],
552 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
553 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
554 AC_CHECK_HEADERS(ltdl.h,
555 AC_CHECK_LIB([ltdl], [lt_dlopenext],
556 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
561 [AC_MSG_RESULT([--with-ltdl not specified])
562 AC_CHECK_HEADERS(ltdl.h,
563 AC_CHECK_LIB([ltdl], [lt_dlopenext],
567 AC_MSG_RESULT([libltdl found])
569 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
574 # test for libunistring
576 if test $HAVE_LIBUNISTRING != yes; then
577 AC_MSG_ERROR([GNUnet requires libunistring])
579 if test $gl_libunistring_hexversion -le 2305; then
580 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
587 # Checks for standard header files.
591 # Check for headers that are ALWAYS required
592 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]))
596 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
597 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 sys/ucred.h endian.h sys/endian.h execinfo.h])
599 SAVE_LDFLAGS=$LDFLAGS
600 SAVE_CPPFLAGS=$CPPFLAGS
604 AC_MSG_CHECKING(for SQLite)
606 [ --with-sqlite=PFX base of SQLite installation],
607 [AC_MSG_RESULT("$with_sqlite")
612 AC_CHECK_HEADERS(sqlite3.h,
616 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
617 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
618 AC_CHECK_HEADERS(sqlite3.h,
619 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
620 SQLITE_LDFLAGS="-L$with_sqlite/lib"
621 SQLITE_CPPFLAGS="-I$with_sqlite/include"
623 LDFLAGS=$SAVE_LDFLAGS
624 CPPFLAGS=$SAVE_CPPFLAGS
628 [AC_MSG_RESULT([--with-sqlite not specified])
629 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
630 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
631 AC_SUBST(SQLITE_CPPFLAGS)
632 AC_SUBST(SQLITE_LDFLAGS)
636 AC_MSG_CHECKING(for postgres)
637 AC_ARG_WITH(postgres,
638 [ --with-postgres=PFX base of postgres installation],
639 [AC_MSG_RESULT("$with_postgres")
640 case $with_postgres in
644 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
648 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
649 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
650 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
651 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
652 POSTGRES_LDFLAGS="-L$with_postgres/lib"
653 POSTGRES_CPPFLAGS="-I$with_postgres/include"
655 LDFLAGS=$SAVE_LDFLAGS
656 CPPFLAGS=$SAVE_CPPFLAGS
660 [AC_MSG_RESULT([--with-postgres not specified])
661 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
662 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
663 AC_SUBST(POSTGRES_CPPFLAGS)
664 AC_SUBST(POSTGRES_LDFLAGS)
667 SAVE_LDFLAGS=$LDFLAGS
668 SAVE_CPPFLAGS=$CPPFLAGS
670 [ --with-zlib[[=DIR]] use libz in DIR],
671 [AS_IF([test "$withval" = "no"],
672 [AC_MSG_ERROR([GNUnet requires zlib])],
673 [test "$withval" != "yes"],
676 CPPFLAGS="${CPPFLAGS} -I$withval/include"
677 LDFLAGS="${LDFLAGS} -L$withval/lib"
680 AC_CHECK_HEADER(zlib.h,
682 [AC_MSG_ERROR([GNUnet requires zlib])])
683 AC_CHECK_LIB(z, compress2,
685 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
686 if test "x${Z_DIR}" != "x"; then
687 Z_CFLAGS="-I${Z_DIR}/include"
688 Z_LIBS="-L${Z_DIR}/lib -lz"
692 [AC_MSG_ERROR([GNUnet requires zlib])])
696 LDFLAGS=$SAVE_LDFLAGS
697 CPPFLAGS=$SAVE_CPPFLAGS
700 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
701 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
703 if test "$build_target" = "mingw"
705 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
711 SAVE_LDFLAGS=$LDFLAGS
712 SAVE_CPPFLAGS=$CPPFLAGS
713 AC_MSG_CHECKING(for mysql)
715 [ --with-mysql=PFX base of MySQL installation],
716 [AC_MSG_RESULT("$with_mysql")
717 if test "$with_mysql" != "no"
719 if test "$with_mysql" != "yes"
721 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
722 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
724 AC_CHECK_HEADERS(mysql/mysql.h,
725 AC_CHECK_LIB(mysqlclient, mysql_init,
726 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
727 MYSQL_CPPFLAGS="-I$with_mysql/include"
729 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
732 [AC_MSG_RESULT([--with-mysql not specified])
733 if test -d "/usr/lib64/mysql"; then
734 MYSQL_LIBDIR="/usr/lib64/mysql"
735 elif test -d "/usr/lib/mysql"; then
736 MYSQL_LIBDIR="/usr/lib/mysql"
738 MYSQL_LIBDIR="/usr/lib"
740 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
741 AC_CHECK_LIB(mysqlclient, mysql_init,
742 [AC_CHECK_HEADERS(mysql/mysql.h,
743 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
746 , [], [$CYGWIN_MYSQL_MAGIC])])
749 AC_SUBST(MYSQL_LDFLAGS)
750 AC_SUBST(MYSQL_CPPFLAGS)
752 # additional version check for mysql
753 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
754 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
756 AC_MSG_CHECKING(mysql version)
757 AC_RUN_IFELSE([AC_LANG_PROGRAM(
758 [[$CYGWIN_MYSQL_MAGIC
759 #include <mysql/mysql.h>]],
760 [[if (MYSQL_VERSION_ID < 40100)
765 ],mysql=true,mysql=false)
766 if test "$mysql" = "false"
769 AC_MSG_RESULT([fail, >= 4.1 required])
774 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
775 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
778 LDFLAGS=$SAVE_LDFLAGS
779 CPPFLAGS=$SAVE_CPPFLAGS
781 if test "$sqlite" = 0 -a "$mysql" = 0
783 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
788 AC_MSG_CHECKING([for libmicrohttpd])
789 AC_ARG_WITH(microhttpd,
790 [ --with-microhttpd=PFX base of libmicrohttpd installation],
791 [AC_MSG_RESULT([$with_microhttpd])
792 case $with_microhttpd in
796 AC_CHECK_HEADERS([microhttpd.h],
797 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
798 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
799 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
800 AC_RUN_IFELSE([AC_LANG_SOURCE([
801 #include "$native_srcdir/src/include/platform.h"
802 #include <microhttpd.h>
803 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
806 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
807 [],[#include "$native_srcdir/src/include/platform.h"
808 #include <microhttpd.h>]),,
809 [#include "$native_srcdir/src/include/platform.h"])
812 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
813 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
814 AC_CHECK_HEADERS(microhttpd.h,
815 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
816 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
817 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
818 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
819 AC_RUN_IFELSE([AC_LANG_SOURCE([
820 #include "$native_srcdir/src/include/platform.h"
821 #include <microhttpd.h>
822 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
825 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
826 [],[#include "$native_srcdir/src/include/platform.h"
827 #include <microhttpd.h>]),,
828 [#include "$native_srcdir/src/include/platform.h"])
832 [AC_MSG_RESULT([--with-microhttpd not specified])
833 AC_CHECK_HEADERS([microhttpd.h],
834 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
835 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
836 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
837 AC_RUN_IFELSE([AC_LANG_SOURCE([
838 #include "$native_srcdir/src/include/platform.h"
839 #include <microhttpd.h>
840 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
843 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
844 [],[#include "$native_srcdir/src/include/platform.h"
845 #include <microhttpd.h>]),,
846 [#include "$native_srcdir/src/include/platform.h"])])
847 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
848 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
854 # check for python & pexpect (used for some testcases only)
855 AM_PATH_PYTHON([2.6],, [:])
856 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
859 AM_GNU_GETTEXT([external])
860 AM_GNU_GETTEXT_VERSION([0.16.1])
865 # Checks for standard typedefs, structures, and compiler characteristics.
874 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
875 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
879 #include <sys/types.h>
880 #include <sys/socket.h>
881 #include <netinet/in.h>
886 # Checks for library functions.
887 AC_FUNC_CLOSEDIR_VOID
889 AC_PROG_GCC_TRADITIONAL
891 AC_FUNC_SELECT_ARGTYPES
901 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])
907 GN_LIBINTL="$LTLIBINTL"
908 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
909 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
910 if test x$enable_framework_build = xyes
912 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
913 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
914 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
915 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
918 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
919 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
921 AC_SUBST(GN_LIB_LDFLAGS)
922 AC_SUBST(GN_PLUGIN_LDFLAGS)
923 AC_SUBST(GN_INTLINCL)
929 AC_SUBST(EXT_LIB_PATH)
934 AC_SUBST(EXT_LIB_PATH)
938 AC_MSG_CHECKING(for sudo)
940 [ --with-sudo=PATH path to sudo binary (or just yes)],
941 [AC_MSG_RESULT("$with_sudo")
950 SUDO_BINARY=$with_sudo
954 [AC_MSG_RESULT([no])])
955 AC_SUBST(SUDO_BINARY)
956 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
960 AC_MSG_CHECKING(with nssdir)
962 [ --with-nssdir=PATH where to install NSS plugins],
963 [AC_MSG_RESULT("$with_nssdir")
980 if test "x$SUDO_BINARY" != "x" -o -w /
984 AC_MSG_RESULT([yes, to /lib])
992 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
994 # test for gnunetdns group name
995 GNUNETDNS_GROUP=gnunetdns
996 AC_MSG_CHECKING(for gnunetdns group name)
997 AC_ARG_WITH(gnunetdns,
998 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
999 [AC_MSG_RESULT("$with_gnunetdns")
1000 case $with_gnunetdns in
1002 GNUNETDNS_GROUP=gnunet
1005 GNUNETDNS_GROUP=gnunetdns
1008 GNUNETDNS_GROUP=$with_gnunetdns
1012 [AC_MSG_RESULT([gnunetdns])])
1013 AC_SUBST(GNUNETDNS_GROUP)
1019 AC_MSG_CHECKING(for gnutls)
1021 [ --with-gnutls=PFX base of gnutls installation],
1022 [AC_MSG_RESULT([$with_gnutls])
1023 case $with_gnutls in
1027 AC_CHECK_HEADERS([gnutls/abstract.h],
1028 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1032 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1033 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1034 AC_CHECK_HEADERS([gnutls/abstract.h],
1035 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1036 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1041 [AC_MSG_RESULT([--with-gnutls not specified])
1042 AC_CHECK_HEADERS([gnutls/abstract.h],
1043 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1045 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1046 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1049 AC_CHECK_HEADERS([gnutls/dane.h],
1050 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1052 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1053 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1056 # Test if we are building for superMUC
1057 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1058 AC_ARG_ENABLE([supermuc],
1059 [AS_HELP_STRING([--enable-supermuc],
1060 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1061 [if test "x$enable_supermuc" = "xno"
1068 enable_supermuc=no])
1069 AC_MSG_RESULT($enable_SUPERMUC)
1070 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1071 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1073 # Check if NSE has to send timestamp information to testbed logger for
1074 # generating histogram of messages received
1075 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1076 AC_ARG_ENABLE([nse-histogram],
1077 [AS_HELP_STRING([--enable-nse-histogram],
1078 [have NSE send timestamp information to testbed logger for generating
1079 histogram of received messages. NOT useful for production (default is
1081 [if test "x$enableval" = "xno"
1088 enable_nse_histogram=no])
1089 AC_MSG_RESULT($enable_nse_histogram)
1090 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1091 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1092 [have NSE send timestamp information to testbed logger])
1094 # should 'make check' run tests?
1095 AC_MSG_CHECKING(whether to run tests)
1096 AC_ARG_ENABLE([testruns],
1097 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1098 [enable_tests_run=${enableval}],
1099 [enable_tests_run=yes])
1100 AC_MSG_RESULT($enable_test_run)
1101 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1104 # should monkey be used when running (certain) services?
1105 AC_MSG_CHECKING(whether to run with monkey)
1106 AC_ARG_ENABLE([monkey],
1107 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1108 [enable_monkey=${enableval}],
1110 AC_MSG_RESULT($enable_monkey)
1111 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1112 if test "x$enable_monkey" = "xyes"
1114 MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1118 AC_SUBST(MONKEYPREFIX)
1121 # should expensive tests be run?
1122 AC_MSG_CHECKING(whether to run expensive tests)
1123 AC_ARG_ENABLE([expensivetests],
1124 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1125 [enable_expensive=${enableval}],
1126 [enable_expensive=no])
1127 AC_MSG_RESULT($enable_expensive)
1128 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1130 # should ports be open for Java services?
1131 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1132 AC_ARG_ENABLE([javaports],
1133 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1134 [enable_java_ports=${enableval}],
1135 [enable_java_ports=no])
1136 AC_MSG_RESULT($enable_java_ports)
1137 if test "x$enable_java_ports" = "xyes"
1141 JAVAPORT="$UNIXONLY"
1145 # should benchmarks be run?
1146 AC_MSG_CHECKING(whether to run benchmarks during make check)
1147 AC_ARG_ENABLE([benchmarks],
1148 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1149 [enable_benchmarks=${enableval}],
1150 [enable_benchmarks=no])
1151 AC_MSG_RESULT($enable_benchmarks)
1152 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1154 # should gnunet-testing be compiled
1155 AC_MSG_CHECKING(wether to compile gnunet-testing)
1156 AC_ARG_ENABLE([testing],
1157 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1158 [enable_testing=${enableval}],
1159 [enable_testing=yes])
1160 AC_MSG_RESULT($enable_testing)
1161 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1163 # should experimental code be compiled (code that may not yet compile)?
1164 AC_MSG_CHECKING(whether to compile experimental code)
1165 AC_ARG_ENABLE([experimental],
1166 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1167 [enable_experimental=${enableval}],
1168 [enable_experimental=no])
1169 AC_MSG_RESULT($enable_experimental)
1170 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1172 # should services be started by default when a peer starts? Some services may
1173 # choose to never start by default and it is upto the service/module developer to
1174 # decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART" in
1175 # the service/module's conf.in file.
1177 AC_MSG_CHECKING(whether to auto-start peer's services by default)
1178 AC_ARG_ENABLE([autostart],
1179 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1180 [enable_autostart=${enableval}
1181 if test "x$enable_autostart" == "xno"
1186 [enable_autostart=yes])
1187 AC_MSG_RESULT($enable_autostart)
1188 #AM_CONDITIONAL([HAVE_AUTOSTART], [test "x$enable_autostart" = "xyes"])
1191 # should memory statistics be kept (very expensive CPU-wise!)
1192 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1193 AC_ARG_ENABLE([heapstats],
1194 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1195 [enable_heapstats=1],
1196 [enable_heapstats=0])
1197 AC_MSG_RESULT($enable_heapstats)
1198 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1200 # should code be enabled that works around missing OS functionality on Windows?
1201 # used for test cases
1202 if test $build_target = "mingw"
1208 [#include <ws2tcpip.h>
1210 int s = socket (0, 0, 0);])
1212 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1214 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1219 [#include <ws2tcpip.h>
1221 int s = select (0, NULL, NULL, NULL, NULL);])
1223 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1225 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1230 [#include <ws2tcpip.h>
1233 char *s = inet_ntoa (i);])
1235 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1237 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1242 [#include <ws2tcpip.h>
1244 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1246 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1248 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1253 [#include <ws2tcpip.h>
1255 int s = gethostname (NULL, 0);])
1257 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1259 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1264 [#include <ws2tcpip.h>
1266 void *s = gethostbyname (NULL);])
1268 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1270 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1275 [#include <ws2tcpip.h>
1277 void *s = gethostbyaddr (NULL, 0, 0);])
1279 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1281 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1286 [#include <ws2tcpip.h>
1288 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1290 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1292 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1296 AC_MSG_CHECKING(whether to enable windows workarounds)
1297 AC_ARG_ENABLE([windows_workarounds],
1298 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1299 [enable_workarounds=${enableval}],
1300 [enable_workarounds=no])
1301 AC_MSG_RESULT($enable_workarounds)
1302 if test x$enable_windows_workarounds = "xyes"
1309 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1312 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1313 AC_ARG_ENABLE([coverage],
1314 AS_HELP_STRING([--enable-coverage],
1315 [compile the library with code coverage support]),
1316 [use_gcov=${enableval}],
1318 AC_MSG_RESULT($use_gcov)
1319 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1323 AC_PATH_PROG(svnversioncommand, svnversion)
1324 AC_PATH_PROG(gitcommand, git)
1325 AC_MSG_CHECKING(for source being under a VCS)
1328 AS_IF([test ! "X$svnversioncommand" = "X"],
1330 svn_version=$(cd $srcdir ; $svnversioncommand -n 2>/dev/null)
1332 AS_IF([test ! "X$gitcommand" = "X"],
1334 gitsvn_version=$(cd $srcdir ; git log -1 2>/dev/null | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1336 AS_IF([test "X$svn_version" = "X" -o "X$svn_version" = "Xexported" -o "X$svn_version" = "XUnversioned directory"],
1338 AS_IF([test "X$gitsvn_version" = "X"],
1341 vcs_version="\"release\""
1344 vcs_name="yes, git-svn"
1345 vcs_version="\"svn-r$gitsvn_version\""
1350 vcs_version="\"svn-r$svn_version\""
1352 AC_MSG_RESULT($vcs_name)
1354 AC_MSG_CHECKING(VCS version)
1355 AC_MSG_RESULT($vcs_version)
1356 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1363 doc/doxygen/Makefile
1371 src/ats-tool/Makefile
1372 src/ats-tests/Makefile
1376 src/consensus/Makefile
1377 src/consensus/consensus.conf
1378 src/conversation/Makefile
1379 src/conversation/conversation.conf
1380 src/datacache/Makefile
1381 src/datastore/Makefile
1382 src/datastore/datastore.conf
1391 src/experimentation/Makefile
1392 src/experimentation/experimentation.conf
1393 src/fragmentation/Makefile
1398 src/gns/nss/Makefile
1399 src/gnsrecord/Makefile
1401 src/identity/Makefile
1402 src/identity/identity.conf
1403 src/include/Makefile
1404 src/integration-tests/Makefile
1405 src/hostlist/Makefile
1408 src/multicast/Makefile
1409 src/multicast/multicast.conf
1411 src/namecache/Makefile
1412 src/namecache/namecache.conf
1413 src/namestore/Makefile
1414 src/namestore/namestore.conf
1418 src/peerinfo/Makefile
1419 src/peerinfo/peerinfo.conf
1420 src/peerinfo-tool/Makefile
1421 src/postgres/Makefile
1424 src/psycstore/Makefile
1425 src/psycstore/psycstore.conf
1428 src/regex/regex.conf
1429 src/revocation/Makefile
1430 src/revocation/revocation.conf
1431 src/secretsharing/Makefile
1432 src/secretsharing/secretsharing.conf
1433 src/scalarproduct/Makefile
1434 src/scalarproduct/scalarproduct.conf
1437 src/statistics/Makefile
1438 src/statistics/statistics.conf
1439 src/template/Makefile
1440 src/testbed/Makefile
1441 src/testbed/testbed.conf
1442 src/testing/Makefile
1443 src/topology/Makefile
1444 src/transport/Makefile
1445 src/transport/transport.conf
1448 src/util/resolver.conf
1452 pkgconfig/gnunetarm.pc
1453 pkgconfig/gnunetats.pc
1454 pkgconfig/gnunetblock.pc
1455 pkgconfig/gnunetconsensus.pc
1456 pkgconfig/gnunetconversation.pc
1457 pkgconfig/gnunetcore.pc
1458 pkgconfig/gnunetdatacache.pc
1459 pkgconfig/gnunetdatastore.pc
1460 pkgconfig/gnunetdht.pc
1461 pkgconfig/gnunetdns.pc
1462 pkgconfig/gnunetdnsparser.pc
1463 pkgconfig/gnunetdnsstub.pc
1464 pkgconfig/gnunetdv.pc
1465 pkgconfig/gnunetenv.pc
1466 pkgconfig/gnunetfragmentation.pc
1467 pkgconfig/gnunetfs.pc
1468 pkgconfig/gnunetgns.pc
1469 pkgconfig/gnunethello.pc
1470 pkgconfig/gnunetidentity.pc
1471 pkgconfig/gnunetmesh.pc
1472 pkgconfig/gnunetmicrophone.pc
1473 pkgconfig/gnunetmulticast.pc
1474 pkgconfig/gnunetmysql.pc
1475 pkgconfig/gnunetnamestore.pc
1476 pkgconfig/gnunetnat.pc
1477 pkgconfig/gnunetnse.pc
1478 pkgconfig/gnunetpeerinfo.pc
1479 pkgconfig/gnunetpostgres.pc
1480 pkgconfig/gnunetpsyc.pc
1481 pkgconfig/gnunetpsycstore.pc
1482 pkgconfig/gnunetregex.pc
1483 pkgconfig/gnunetrevocation.pc
1484 pkgconfig/gnunetscalarproduct.pc
1485 pkgconfig/gnunetset.pc
1486 pkgconfig/gnunetspeaker.pc
1487 pkgconfig/gnunetstatistics.pc
1488 pkgconfig/gnunettestbed.pc
1489 pkgconfig/gnunettesting.pc
1490 pkgconfig/gnunettransport.pc
1491 pkgconfig/gnunettun.pc
1492 pkgconfig/gnunetutil.pc
1493 pkgconfig/gnunetvpn.pc
1499 # warn user if mysql found but not used due to version
1500 if test "$mysqlfail" = "true"
1502 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1506 if test "x$sqlite" = "x0"
1508 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
1512 if test "x$gnurl" = "x0"
1514 AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
1518 if test "x$bluetooth" = "x0"
1520 AC_MSG_NOTICE([NOTICE: bluetooth library not found. bluetooth support will not be compiled.])
1524 if test x$gnutls != xtrue
1526 AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
1528 if test x$gnutls_dane != xtrue
1530 AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
1535 if test "x$enable_java_ports" = "xyes"
1537 AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1541 if test "x$lmhd" != "x1"
1543 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1547 if test "x$conversation_backend" == "xnone"
1549 if test "x$pulse" != "x1"
1551 AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.])
1553 if test "x$opus" != "x1"
1555 AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.])
1557 if test "x$gst" != "x1"
1559 AC_MSG_NOTICE([NOTICE: GStreamer not found, conversation will not be built.])
1564 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1566 if test "$enable_framework_build" = "yes"
1568 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1571 if test "x$SUDO_BINARY" = "x" -a ! -w /
1573 AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1577 AC_MSG_NOTICE([********************************************
1578 Please make sure NOW that you have created a user and group 'gnunet'
1579 and additionally a group 'gnunetdns':
1583 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1584 'gnunet'. Then, you can compile GNUnet with
1587 After that, run (if necessary as 'root')
1589 to install everything.
1591 Each GNUnet user should be added to the 'gnunet' group (may
1592 require fresh login to come into effect):
1593 adduser $USERNAME gnunet
1594 (run the above command as root once for each of your users, replacing
1595 "$USERNAME" with the respective login names). If you have a global IP
1596 address, no further configuration is required.
1598 Optionally, download and compile gnunet-gtk to get a GUI for
1599 file-sharing and configuration. This is particularly recommended
1600 if your network setup is non-trivial, as gnunet-setup can be
1601 used to test in the GUI if your network configuration is working.
1602 gnunet-setup should be run as the "gnunet" user under X. As it
1603 does very little with the network, running it as "root" is likely
1604 also harmless. You can also run it as a normal user, but then
1605 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1606 home directory in the end.
1608 Once you have configured your peer, run (as the 'gnunet' user)
1610 to start the peer. You can then run the various GNUnet-tools as
1611 your "normal" user (who should only be in the group 'gnunet').
1612 ********************************************])