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],
402 [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
408 AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
414 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
420 AC_MSG_RESULT(not found)
424 if test "x$pulse" != "x1" -o "x$opus" != "x1"
426 if test "x$gst" != "x1" -o "x$opus" != "x1"
428 conversation_backend=none
429 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
430 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
432 conversation_backend=gst
433 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
434 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
437 conversation_backend=pulse
438 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
439 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
443 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
446 AM_CONDITIONAL(HAVE_LIBGNURL, true)
447 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
449 AM_CONDITIONAL(HAVE_LIBGNURL, false)
454 AC_MSG_CHECKING([if Libidn can be used])
455 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
456 [Support IDN (needs GNU Libidn)]),
457 libidn=$withval, libidn=yes)
458 if test "$libidn" != "no"; then
459 if test "$libidn" != "yes"; then
460 LDFLAGS="${LDFLAGS} -L$libidn/lib"
461 CPPFLAGS="${CPPFLAGS} -I$libidn/include"
463 AC_CHECK_HEADER(idna.h,
464 AC_CHECK_LIB(idn, stringprep_check_version,
465 [libidn=yes LIBS="${LIBS} -lidn"],
466 AC_MSG_FAILURE([GNUnet requires libidn])),
467 AC_MSG_FAILURE([GNUnet requires libidn]))
469 AC_MSG_RESULT($libidn)
475 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
476 # GLPK must support glpk_init_env, version >= 4.43
477 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
478 # GLPK must support atm MLP presolving, version >= 4.32
479 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
480 if test x$gplk = xfalse
482 AM_CONDITIONAL(HAVE_LIBGLPK, false)
483 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
485 AM_CONDITIONAL(HAVE_LIBGLPK, true)
486 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
491 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
492 if test x$nss = xfalse
494 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
495 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
497 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
502 # test for kvm and kstat (for CPU stats under BSD/Solaris)
503 AC_CHECK_LIB([kvm],[kvm_open])
504 AC_CHECK_LIB([kstat],[kstat_open])
506 # test for libextractor
508 AC_MSG_CHECKING(for libextractor)
509 AC_ARG_WITH(extractor,
510 [ --with-extractor=PFX base of libextractor installation],
511 [AC_MSG_RESULT([$with_extractor])
512 case $with_extractor in
516 AC_CHECK_HEADERS(extractor.h,
517 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
521 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
522 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
523 AC_CHECK_HEADERS(extractor.h,
524 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
525 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
530 [AC_MSG_RESULT([--with-extractor not specified])
531 AC_CHECK_HEADERS(extractor.h,
532 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
534 if test "$extractor" != 1
536 AC_MSG_ERROR([GNUnet requires libextractor])
541 # Check for libltdl header (#2999)
543 AC_MSG_CHECKING(for libltdl)
545 [ --with-ltdl=PFX base of libltdl installation],
546 [AC_MSG_RESULT([$with_ltdl])
551 AC_CHECK_HEADERS(ltdl.h,
552 AC_CHECK_LIB([ltdl], [lt_dlopenext],
556 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
557 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
558 AC_CHECK_HEADERS(ltdl.h,
559 AC_CHECK_LIB([ltdl], [lt_dlopenext],
560 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
565 [AC_MSG_RESULT([--with-ltdl not specified])
566 AC_CHECK_HEADERS(ltdl.h,
567 AC_CHECK_LIB([ltdl], [lt_dlopenext],
571 AC_MSG_RESULT([libltdl found])
573 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
578 # test for libunistring
580 if test $HAVE_LIBUNISTRING != yes; then
581 AC_MSG_ERROR([GNUnet requires libunistring])
583 if test $gl_libunistring_hexversion -le 2305; then
584 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
591 # Checks for standard header files.
595 # Check for headers that are ALWAYS required
596 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]))
600 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
601 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])
603 SAVE_LDFLAGS=$LDFLAGS
604 SAVE_CPPFLAGS=$CPPFLAGS
608 AC_MSG_CHECKING(for SQLite)
610 [ --with-sqlite=PFX base of SQLite installation],
611 [AC_MSG_RESULT("$with_sqlite")
616 AC_CHECK_HEADERS(sqlite3.h,
620 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
621 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
622 AC_CHECK_HEADERS(sqlite3.h,
623 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
624 SQLITE_LDFLAGS="-L$with_sqlite/lib"
625 SQLITE_CPPFLAGS="-I$with_sqlite/include"
627 LDFLAGS=$SAVE_LDFLAGS
628 CPPFLAGS=$SAVE_CPPFLAGS
632 [AC_MSG_RESULT([--with-sqlite not specified])
633 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
634 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
635 AC_SUBST(SQLITE_CPPFLAGS)
636 AC_SUBST(SQLITE_LDFLAGS)
640 AC_MSG_CHECKING(for postgres)
641 AC_ARG_WITH(postgres,
642 [ --with-postgres=PFX base of postgres installation],
643 [AC_MSG_RESULT("$with_postgres")
644 case $with_postgres in
648 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
652 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
653 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
654 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
655 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
656 POSTGRES_LDFLAGS="-L$with_postgres/lib"
657 POSTGRES_CPPFLAGS="-I$with_postgres/include"
659 LDFLAGS=$SAVE_LDFLAGS
660 CPPFLAGS=$SAVE_CPPFLAGS
664 [AC_MSG_RESULT([--with-postgres not specified])
665 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
666 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
667 AC_SUBST(POSTGRES_CPPFLAGS)
668 AC_SUBST(POSTGRES_LDFLAGS)
671 SAVE_LDFLAGS=$LDFLAGS
672 SAVE_CPPFLAGS=$CPPFLAGS
674 [ --with-zlib[[=DIR]] use libz in DIR],
675 [AS_IF([test "$withval" = "no"],
676 [AC_MSG_ERROR([GNUnet requires zlib])],
677 [test "$withval" != "yes"],
680 CPPFLAGS="${CPPFLAGS} -I$withval/include"
681 LDFLAGS="${LDFLAGS} -L$withval/lib"
684 AC_CHECK_HEADER(zlib.h,
686 [AC_MSG_ERROR([GNUnet requires zlib])])
687 AC_CHECK_LIB(z, compress2,
689 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
690 if test "x${Z_DIR}" != "x"; then
691 Z_CFLAGS="-I${Z_DIR}/include"
692 Z_LIBS="-L${Z_DIR}/lib -lz"
696 [AC_MSG_ERROR([GNUnet requires zlib])])
700 LDFLAGS=$SAVE_LDFLAGS
701 CPPFLAGS=$SAVE_CPPFLAGS
704 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
705 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
707 if test "$build_target" = "mingw"
709 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
715 SAVE_LDFLAGS=$LDFLAGS
716 SAVE_CPPFLAGS=$CPPFLAGS
717 AC_MSG_CHECKING(for mysql)
719 [ --with-mysql=PFX base of MySQL installation],
720 [AC_MSG_RESULT("$with_mysql")
721 if test "$with_mysql" != "no"
723 if test "$with_mysql" != "yes"
725 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
726 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
728 AC_CHECK_HEADERS(mysql/mysql.h,
729 AC_CHECK_LIB(mysqlclient, mysql_init,
730 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
731 MYSQL_CPPFLAGS="-I$with_mysql/include"
733 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
736 [AC_MSG_RESULT([--with-mysql not specified])
737 if test -d "/usr/lib64/mysql"; then
738 MYSQL_LIBDIR="/usr/lib64/mysql"
739 elif test -d "/usr/lib/mysql"; then
740 MYSQL_LIBDIR="/usr/lib/mysql"
742 MYSQL_LIBDIR="/usr/lib"
744 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
745 AC_CHECK_LIB(mysqlclient, mysql_init,
746 [AC_CHECK_HEADERS(mysql/mysql.h,
747 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
750 , [], [$CYGWIN_MYSQL_MAGIC])])
753 AC_SUBST(MYSQL_LDFLAGS)
754 AC_SUBST(MYSQL_CPPFLAGS)
756 # additional version check for mysql
757 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
758 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
760 AC_MSG_CHECKING(mysql version)
761 AC_RUN_IFELSE([AC_LANG_PROGRAM(
762 [[$CYGWIN_MYSQL_MAGIC
763 #include <mysql/mysql.h>]],
764 [[if (MYSQL_VERSION_ID < 40100)
769 ],mysql=true,mysql=false)
770 if test "$mysql" = "false"
773 AC_MSG_RESULT([fail, >= 4.1 required])
778 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
779 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
782 LDFLAGS=$SAVE_LDFLAGS
783 CPPFLAGS=$SAVE_CPPFLAGS
785 if test "$sqlite" = 0 -a "$mysql" = 0
787 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
792 AC_MSG_CHECKING([for libmicrohttpd])
793 AC_ARG_WITH(microhttpd,
794 [ --with-microhttpd=PFX base of libmicrohttpd installation],
795 [AC_MSG_RESULT([$with_microhttpd])
796 case $with_microhttpd in
800 AC_CHECK_HEADERS([microhttpd.h],
801 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
802 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
803 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
804 AC_RUN_IFELSE([AC_LANG_SOURCE([
805 #include "$native_srcdir/src/include/platform.h"
806 #include <microhttpd.h>
807 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
810 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
811 [],[#include "$native_srcdir/src/include/platform.h"
812 #include <microhttpd.h>]),,
813 [#include "$native_srcdir/src/include/platform.h"])
816 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
817 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
818 AC_CHECK_HEADERS(microhttpd.h,
819 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
820 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
821 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
822 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
823 AC_RUN_IFELSE([AC_LANG_SOURCE([
824 #include "$native_srcdir/src/include/platform.h"
825 #include <microhttpd.h>
826 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
829 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
830 [],[#include "$native_srcdir/src/include/platform.h"
831 #include <microhttpd.h>]),,
832 [#include "$native_srcdir/src/include/platform.h"])
836 [AC_MSG_RESULT([--with-microhttpd not specified])
837 AC_CHECK_HEADERS([microhttpd.h],
838 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
839 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
840 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
841 AC_RUN_IFELSE([AC_LANG_SOURCE([
842 #include "$native_srcdir/src/include/platform.h"
843 #include <microhttpd.h>
844 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
847 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
848 [],[#include "$native_srcdir/src/include/platform.h"
849 #include <microhttpd.h>]),,
850 [#include "$native_srcdir/src/include/platform.h"])])
851 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
852 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
858 # check for python & pexpect (used for some testcases only)
859 AM_PATH_PYTHON([2.6],, [:])
860 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
863 AM_GNU_GETTEXT([external])
864 AM_GNU_GETTEXT_VERSION([0.16.1])
869 # Checks for standard typedefs, structures, and compiler characteristics.
878 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
879 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
883 #include <sys/types.h>
884 #include <sys/socket.h>
885 #include <netinet/in.h>
890 # Checks for library functions.
891 AC_FUNC_CLOSEDIR_VOID
893 AC_PROG_GCC_TRADITIONAL
895 AC_FUNC_SELECT_ARGTYPES
905 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])
911 GN_LIBINTL="$LTLIBINTL"
912 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
913 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
914 if test x$enable_framework_build = xyes
916 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
917 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
918 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
919 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
922 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
923 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
925 AC_SUBST(GN_LIB_LDFLAGS)
926 AC_SUBST(GN_PLUGIN_LDFLAGS)
927 AC_SUBST(GN_INTLINCL)
933 AC_SUBST(EXT_LIB_PATH)
938 AC_SUBST(EXT_LIB_PATH)
942 AC_MSG_CHECKING(for sudo)
944 [ --with-sudo=PATH path to sudo binary (or just yes)],
945 [AC_MSG_RESULT("$with_sudo")
954 SUDO_BINARY=$with_sudo
958 [AC_MSG_RESULT([no])])
959 AC_SUBST(SUDO_BINARY)
960 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
964 AC_MSG_CHECKING(with nssdir)
966 [ --with-nssdir=PATH where to install NSS plugins],
967 [AC_MSG_RESULT("$with_nssdir")
984 if test "x$SUDO_BINARY" != "x" -o -w /
988 AC_MSG_RESULT([yes, to /lib])
996 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
998 # test for gnunetdns group name
999 GNUNETDNS_GROUP=gnunetdns
1000 AC_MSG_CHECKING(for gnunetdns group name)
1001 AC_ARG_WITH(gnunetdns,
1002 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1003 [AC_MSG_RESULT("$with_gnunetdns")
1004 case $with_gnunetdns in
1006 GNUNETDNS_GROUP=gnunet
1009 GNUNETDNS_GROUP=gnunetdns
1012 GNUNETDNS_GROUP=$with_gnunetdns
1016 [AC_MSG_RESULT([gnunetdns])])
1017 AC_SUBST(GNUNETDNS_GROUP)
1023 AC_MSG_CHECKING(for gnutls)
1025 [ --with-gnutls=PFX base of gnutls installation],
1026 [AC_MSG_RESULT([$with_gnutls])
1027 case $with_gnutls in
1031 AC_CHECK_HEADERS([gnutls/abstract.h],
1032 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1036 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1037 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1038 AC_CHECK_HEADERS([gnutls/abstract.h],
1039 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1040 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1045 [AC_MSG_RESULT([--with-gnutls not specified])
1046 AC_CHECK_HEADERS([gnutls/abstract.h],
1047 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1049 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1050 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1053 AC_CHECK_HEADERS([gnutls/dane.h],
1054 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1056 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1057 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1060 # Test if we are building for superMUC
1061 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1062 AC_ARG_ENABLE([supermuc],
1063 [AS_HELP_STRING([--enable-supermuc],
1064 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1065 [if test "x$enable_supermuc" = "xno"
1072 enable_supermuc=no])
1073 AC_MSG_RESULT($enable_SUPERMUC)
1074 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1075 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1077 # Check if NSE has to send timestamp information to testbed logger for
1078 # generating histogram of messages received
1079 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1080 AC_ARG_ENABLE([nse-histogram],
1081 [AS_HELP_STRING([--enable-nse-histogram],
1082 [have NSE send timestamp information to testbed logger for generating
1083 histogram of received messages. NOT useful for production (default is
1085 [if test "x$enableval" = "xno"
1092 enable_nse_histogram=no])
1093 AC_MSG_RESULT($enable_nse_histogram)
1094 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1095 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1096 [have NSE send timestamp information to testbed logger])
1098 # should 'make check' run tests?
1099 AC_MSG_CHECKING(whether to run tests)
1100 AC_ARG_ENABLE([testruns],
1101 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1102 [enable_tests_run=${enableval}],
1103 [enable_tests_run=yes])
1104 AC_MSG_RESULT($enable_test_run)
1105 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1108 # should monkey be used when running (certain) services?
1109 AC_MSG_CHECKING(whether to run with monkey)
1110 AC_ARG_ENABLE([monkey],
1111 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1112 [enable_monkey=${enableval}],
1114 AC_MSG_RESULT($enable_monkey)
1115 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1116 if test "x$enable_monkey" = "xyes"
1118 MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1122 AC_SUBST(MONKEYPREFIX)
1125 # should expensive tests be run?
1126 AC_MSG_CHECKING(whether to run expensive tests)
1127 AC_ARG_ENABLE([expensivetests],
1128 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1129 [enable_expensive=${enableval}],
1130 [enable_expensive=no])
1131 AC_MSG_RESULT($enable_expensive)
1132 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1134 # should ports be open for Java services?
1135 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1136 AC_ARG_ENABLE([javaports],
1137 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1138 [enable_java_ports=${enableval}],
1139 [enable_java_ports=no])
1140 AC_MSG_RESULT($enable_java_ports)
1141 if test "x$enable_java_ports" = "xyes"
1145 JAVAPORT="$UNIXONLY"
1149 # should benchmarks be run?
1150 AC_MSG_CHECKING(whether to run benchmarks during make check)
1151 AC_ARG_ENABLE([benchmarks],
1152 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1153 [enable_benchmarks=${enableval}],
1154 [enable_benchmarks=no])
1155 AC_MSG_RESULT($enable_benchmarks)
1156 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1158 # should gnunet-testing be compiled
1159 AC_MSG_CHECKING(wether to compile gnunet-testing)
1160 AC_ARG_ENABLE([testing],
1161 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1162 [enable_testing=${enableval}],
1163 [enable_testing=yes])
1164 AC_MSG_RESULT($enable_testing)
1165 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1167 # should experimental code be compiled (code that may not yet compile)?
1168 AC_MSG_CHECKING(whether to compile experimental code)
1169 AC_ARG_ENABLE([experimental],
1170 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1171 [enable_experimental=${enableval}],
1172 [enable_experimental=no])
1173 AC_MSG_RESULT($enable_experimental)
1174 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1176 # should services be started by default when a peer starts? Some services may
1177 # choose to never start by default and it is upto the service/module developer to
1178 # decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART" in
1179 # the service/module's conf.in file.
1181 AC_MSG_CHECKING(whether to auto-start peer's services by default)
1182 AC_ARG_ENABLE([autostart],
1183 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1184 [enable_autostart=${enableval}
1185 if test "x$enable_autostart" == "xno"
1190 [enable_autostart=yes])
1191 AC_MSG_RESULT($enable_autostart)
1192 #AM_CONDITIONAL([HAVE_AUTOSTART], [test "x$enable_autostart" = "xyes"])
1195 # should memory statistics be kept (very expensive CPU-wise!)
1196 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1197 AC_ARG_ENABLE([heapstats],
1198 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1199 [enable_heapstats=1],
1200 [enable_heapstats=0])
1201 AC_MSG_RESULT($enable_heapstats)
1202 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1204 # should code be enabled that works around missing OS functionality on Windows?
1205 # used for test cases
1206 if test $build_target = "mingw"
1212 [#include <ws2tcpip.h>
1214 int s = socket (0, 0, 0);])
1216 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1218 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1223 [#include <ws2tcpip.h>
1225 int s = select (0, NULL, NULL, NULL, NULL);])
1227 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1229 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1234 [#include <ws2tcpip.h>
1237 char *s = inet_ntoa (i);])
1239 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1241 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1246 [#include <ws2tcpip.h>
1248 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1250 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1252 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1257 [#include <ws2tcpip.h>
1259 int s = gethostname (NULL, 0);])
1261 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1263 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1268 [#include <ws2tcpip.h>
1270 void *s = gethostbyname (NULL);])
1272 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1274 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1279 [#include <ws2tcpip.h>
1281 void *s = gethostbyaddr (NULL, 0, 0);])
1283 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1285 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1290 [#include <ws2tcpip.h>
1292 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1294 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1296 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1300 AC_MSG_CHECKING(whether to enable windows workarounds)
1301 AC_ARG_ENABLE([windows_workarounds],
1302 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1303 [enable_workarounds=${enableval}],
1304 [enable_workarounds=no])
1305 AC_MSG_RESULT($enable_workarounds)
1306 if test x$enable_windows_workarounds = "xyes"
1313 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1316 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1317 AC_ARG_ENABLE([coverage],
1318 AS_HELP_STRING([--enable-coverage],
1319 [compile the library with code coverage support]),
1320 [use_gcov=${enableval}],
1322 AC_MSG_RESULT($use_gcov)
1323 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1327 AC_PATH_PROG(svnversioncommand, svnversion)
1328 AC_PATH_PROG(gitcommand, git)
1329 AC_MSG_CHECKING(for source being under a VCS)
1332 AS_IF([test ! "X$svnversioncommand" = "X"],
1334 svn_version=$(cd $srcdir ; $svnversioncommand -n 2>/dev/null)
1336 AS_IF([test ! "X$gitcommand" = "X"],
1338 gitsvn_version=$(cd $srcdir ; git log -1 2>/dev/null | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1340 AS_IF([test "X$svn_version" = "X" -o "X$svn_version" = "Xexported" -o "X$svn_version" = "XUnversioned directory"],
1342 AS_IF([test "X$gitsvn_version" = "X"],
1345 vcs_version="\"release\""
1348 vcs_name="yes, git-svn"
1349 vcs_version="\"svn-r$gitsvn_version\""
1354 vcs_version="\"svn-r$svn_version\""
1356 AC_MSG_RESULT($vcs_name)
1358 AC_MSG_CHECKING(VCS version)
1359 AC_MSG_RESULT($vcs_version)
1360 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1367 doc/doxygen/Makefile
1375 src/ats-tool/Makefile
1376 src/ats-tests/Makefile
1380 src/consensus/Makefile
1381 src/consensus/consensus.conf
1382 src/conversation/Makefile
1383 src/conversation/conversation.conf
1384 src/datacache/Makefile
1385 src/datastore/Makefile
1386 src/datastore/datastore.conf
1395 src/experimentation/Makefile
1396 src/experimentation/experimentation.conf
1397 src/fragmentation/Makefile
1402 src/gns/nss/Makefile
1403 src/gnsrecord/Makefile
1405 src/identity/Makefile
1406 src/identity/identity.conf
1407 src/include/Makefile
1408 src/integration-tests/Makefile
1409 src/hostlist/Makefile
1412 src/multicast/Makefile
1413 src/multicast/multicast.conf
1415 src/namecache/Makefile
1416 src/namecache/namecache.conf
1417 src/namestore/Makefile
1418 src/namestore/namestore.conf
1422 src/peerinfo/Makefile
1423 src/peerinfo/peerinfo.conf
1424 src/peerinfo-tool/Makefile
1425 src/postgres/Makefile
1428 src/psycstore/Makefile
1429 src/psycstore/psycstore.conf
1432 src/regex/regex.conf
1433 src/revocation/Makefile
1434 src/revocation/revocation.conf
1435 src/secretsharing/Makefile
1436 src/secretsharing/secretsharing.conf
1437 src/scalarproduct/Makefile
1438 src/scalarproduct/scalarproduct.conf
1441 src/statistics/Makefile
1442 src/statistics/statistics.conf
1443 src/template/Makefile
1444 src/testbed/Makefile
1445 src/testbed/testbed.conf
1446 src/testing/Makefile
1447 src/topology/Makefile
1448 src/transport/Makefile
1449 src/transport/transport.conf
1452 src/util/resolver.conf
1456 pkgconfig/gnunetarm.pc
1457 pkgconfig/gnunetats.pc
1458 pkgconfig/gnunetblock.pc
1459 pkgconfig/gnunetconsensus.pc
1460 pkgconfig/gnunetconversation.pc
1461 pkgconfig/gnunetcore.pc
1462 pkgconfig/gnunetdatacache.pc
1463 pkgconfig/gnunetdatastore.pc
1464 pkgconfig/gnunetdht.pc
1465 pkgconfig/gnunetdns.pc
1466 pkgconfig/gnunetdnsparser.pc
1467 pkgconfig/gnunetdnsstub.pc
1468 pkgconfig/gnunetdv.pc
1469 pkgconfig/gnunetenv.pc
1470 pkgconfig/gnunetfragmentation.pc
1471 pkgconfig/gnunetfs.pc
1472 pkgconfig/gnunetgns.pc
1473 pkgconfig/gnunethello.pc
1474 pkgconfig/gnunetidentity.pc
1475 pkgconfig/gnunetmesh.pc
1476 pkgconfig/gnunetmicrophone.pc
1477 pkgconfig/gnunetmulticast.pc
1478 pkgconfig/gnunetmysql.pc
1479 pkgconfig/gnunetnamestore.pc
1480 pkgconfig/gnunetnat.pc
1481 pkgconfig/gnunetnse.pc
1482 pkgconfig/gnunetpeerinfo.pc
1483 pkgconfig/gnunetpostgres.pc
1484 pkgconfig/gnunetpsyc.pc
1485 pkgconfig/gnunetpsycstore.pc
1486 pkgconfig/gnunetregex.pc
1487 pkgconfig/gnunetrevocation.pc
1488 pkgconfig/gnunetscalarproduct.pc
1489 pkgconfig/gnunetset.pc
1490 pkgconfig/gnunetspeaker.pc
1491 pkgconfig/gnunetstatistics.pc
1492 pkgconfig/gnunettestbed.pc
1493 pkgconfig/gnunettesting.pc
1494 pkgconfig/gnunettransport.pc
1495 pkgconfig/gnunettun.pc
1496 pkgconfig/gnunetutil.pc
1497 pkgconfig/gnunetvpn.pc
1503 # warn user if mysql found but not used due to version
1504 if test "$mysqlfail" = "true"
1506 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1510 if test "x$sqlite" = "x0"
1512 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
1516 if test "x$gnurl" = "x0"
1518 AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
1522 if test "x$bluetooth" = "x0"
1524 AC_MSG_NOTICE([NOTICE: bluetooth library not found. bluetooth support will not be compiled.])
1528 if test x$gnutls != xtrue
1530 AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
1532 if test x$gnutls_dane != xtrue
1534 AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
1539 if test "x$enable_java_ports" = "xyes"
1541 AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1545 if test "x$lmhd" != "x1"
1547 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1551 if test "x$conversation_backend" == "xnone"
1553 if test "x$pulse" != "x1"
1555 AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.])
1557 if test "x$opus" != "x1"
1559 AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.])
1561 if test "x$gst" != "x1"
1563 AC_MSG_NOTICE([NOTICE: GStreamer not found, conversation will not be built.])
1568 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1570 if test "$enable_framework_build" = "yes"
1572 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1575 if test "x$SUDO_BINARY" = "x" -a ! -w /
1577 AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1581 AC_MSG_NOTICE([********************************************
1582 Please make sure NOW that you have created a user and group 'gnunet'
1583 and additionally a group 'gnunetdns':
1587 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1588 'gnunet'. Then, you can compile GNUnet with
1591 After that, run (if necessary as 'root')
1593 to install everything.
1595 Each GNUnet user should be added to the 'gnunet' group (may
1596 require fresh login to come into effect):
1597 adduser $USERNAME gnunet
1598 (run the above command as root once for each of your users, replacing
1599 "$USERNAME" with the respective login names). If you have a global IP
1600 address, no further configuration is required.
1602 Optionally, download and compile gnunet-gtk to get a GUI for
1603 file-sharing and configuration. This is particularly recommended
1604 if your network setup is non-trivial, as gnunet-setup can be
1605 used to test in the GUI if your network configuration is working.
1606 gnunet-setup should be run as the "gnunet" user under X. As it
1607 does very little with the network, running it as "root" is likely
1608 also harmless. You can also run it as a normal user, but then
1609 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1610 home directory in the end.
1612 Once you have configured your peer, run (as the 'gnunet' user)
1614 to start the peer. You can then run the various GNUnet-tools as
1615 your "normal" user (who should only be in the group 'gnunet').
1616 ********************************************])