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])
412 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
413 [AC_CHECK_HEADERS([ogg/ogg.h],
414 AM_CONDITIONAL(HAVE_OGG, true)
416 AC_DEFINE(HAVE_OGG,1,[Have ogg]),
417 AM_CONDITIONAL(HAVE_OGG, false)
419 AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
420 AM_CONDITIONAL(HAVE_OGG, false)
428 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
434 AC_MSG_RESULT(not found)
438 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
440 if test "x$gst" != "x1" -o "x$opus" != "x1"
442 conversation_backend=none
443 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
444 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
446 conversation_backend=gst
447 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
448 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
451 conversation_backend=pulse
452 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
453 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
457 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
460 AM_CONDITIONAL(HAVE_LIBGNURL, true)
461 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
463 AM_CONDITIONAL(HAVE_LIBGNURL, false)
468 AC_MSG_CHECKING([if Libidn can be used])
469 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
470 [Support IDN (needs GNU Libidn)]),
471 libidn=$withval, libidn=yes)
472 if test "$libidn" != "no"; then
473 if test "$libidn" != "yes"; then
474 LDFLAGS="${LDFLAGS} -L$libidn/lib"
475 CPPFLAGS="${CPPFLAGS} -I$libidn/include"
477 AC_CHECK_HEADER(idna.h,
478 AC_CHECK_LIB(idn, stringprep_check_version,
479 [libidn=yes LIBS="${LIBS} -lidn"],
480 AC_MSG_FAILURE([GNUnet requires libidn])),
481 AC_MSG_FAILURE([GNUnet requires libidn]))
483 AC_MSG_RESULT($libidn)
489 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
490 # GLPK must support glpk_init_env, version >= 4.43
491 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
492 # GLPK must support atm MLP presolving, version >= 4.32
493 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
494 if test x$gplk = xfalse
496 AM_CONDITIONAL(HAVE_LIBGLPK, false)
497 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
499 AM_CONDITIONAL(HAVE_LIBGLPK, true)
500 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
505 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
506 if test x$nss = xfalse
508 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
509 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
511 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
516 # test for kvm and kstat (for CPU stats under BSD/Solaris)
517 AC_CHECK_LIB([kvm],[kvm_open])
518 AC_CHECK_LIB([kstat],[kstat_open])
520 # test for libextractor
522 AC_MSG_CHECKING(for libextractor)
523 AC_ARG_WITH(extractor,
524 [ --with-extractor=PFX base of libextractor installation],
525 [AC_MSG_RESULT([$with_extractor])
526 case $with_extractor in
530 AC_CHECK_HEADERS(extractor.h,
531 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
535 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
536 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
537 AC_CHECK_HEADERS(extractor.h,
538 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
539 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
544 [AC_MSG_RESULT([--with-extractor not specified])
545 AC_CHECK_HEADERS(extractor.h,
546 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
548 if test "$extractor" != 1
550 AC_MSG_ERROR([GNUnet requires libextractor])
555 # Check for libltdl header (#2999)
557 AC_MSG_CHECKING(for libltdl)
559 [ --with-ltdl=PFX base of libltdl installation],
560 [AC_MSG_RESULT([$with_ltdl])
565 AC_CHECK_HEADERS(ltdl.h,
566 AC_CHECK_LIB([ltdl], [lt_dlopenext],
570 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
571 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
572 AC_CHECK_HEADERS(ltdl.h,
573 AC_CHECK_LIB([ltdl], [lt_dlopenext],
574 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
579 [AC_MSG_RESULT([--with-ltdl not specified])
580 AC_CHECK_HEADERS(ltdl.h,
581 AC_CHECK_LIB([ltdl], [lt_dlopenext],
585 AC_MSG_RESULT([libltdl found])
587 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
592 # test for libunistring
594 if test $HAVE_LIBUNISTRING != yes; then
595 AC_MSG_ERROR([GNUnet requires libunistring])
597 if test $gl_libunistring_hexversion -le 2305; then
598 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
605 # Checks for standard header files.
609 # Check for headers that are ALWAYS required
610 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]))
614 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
615 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])
617 SAVE_LDFLAGS=$LDFLAGS
618 SAVE_CPPFLAGS=$CPPFLAGS
622 AC_MSG_CHECKING(for SQLite)
624 [ --with-sqlite=PFX base of SQLite installation],
625 [AC_MSG_RESULT("$with_sqlite")
630 AC_CHECK_HEADERS(sqlite3.h,
634 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
635 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
636 AC_CHECK_HEADERS(sqlite3.h,
637 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
638 SQLITE_LDFLAGS="-L$with_sqlite/lib"
639 SQLITE_CPPFLAGS="-I$with_sqlite/include"
641 LDFLAGS=$SAVE_LDFLAGS
642 CPPFLAGS=$SAVE_CPPFLAGS
646 [AC_MSG_RESULT([--with-sqlite not specified])
647 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
648 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
649 AC_SUBST(SQLITE_CPPFLAGS)
650 AC_SUBST(SQLITE_LDFLAGS)
654 AC_MSG_CHECKING(for postgres)
655 AC_ARG_WITH(postgres,
656 [ --with-postgres=PFX base of postgres installation],
657 [AC_MSG_RESULT("$with_postgres")
658 case $with_postgres in
662 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
666 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
667 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
668 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
669 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
670 POSTGRES_LDFLAGS="-L$with_postgres/lib"
671 POSTGRES_CPPFLAGS="-I$with_postgres/include"
673 LDFLAGS=$SAVE_LDFLAGS
674 CPPFLAGS=$SAVE_CPPFLAGS
678 [AC_MSG_RESULT([--with-postgres not specified])
679 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
680 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
681 AC_SUBST(POSTGRES_CPPFLAGS)
682 AC_SUBST(POSTGRES_LDFLAGS)
685 SAVE_LDFLAGS=$LDFLAGS
686 SAVE_CPPFLAGS=$CPPFLAGS
688 [ --with-zlib[[=DIR]] use libz in DIR],
689 [AS_IF([test "$withval" = "no"],
690 [AC_MSG_ERROR([GNUnet requires zlib])],
691 [test "$withval" != "yes"],
694 CPPFLAGS="${CPPFLAGS} -I$withval/include"
695 LDFLAGS="${LDFLAGS} -L$withval/lib"
698 AC_CHECK_HEADER(zlib.h,
700 [AC_MSG_ERROR([GNUnet requires zlib])])
701 AC_CHECK_LIB(z, compress2,
703 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
704 if test "x${Z_DIR}" != "x"; then
705 Z_CFLAGS="-I${Z_DIR}/include"
706 Z_LIBS="-L${Z_DIR}/lib -lz"
710 [AC_MSG_ERROR([GNUnet requires zlib])])
714 LDFLAGS=$SAVE_LDFLAGS
715 CPPFLAGS=$SAVE_CPPFLAGS
718 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
719 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
721 if test "$build_target" = "mingw"
723 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
729 SAVE_LDFLAGS=$LDFLAGS
730 SAVE_CPPFLAGS=$CPPFLAGS
731 AC_MSG_CHECKING(for mysql)
733 [ --with-mysql=PFX base of MySQL installation],
734 [AC_MSG_RESULT("$with_mysql")
735 if test "$with_mysql" != "no"
737 if test "$with_mysql" != "yes"
739 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
740 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
742 AC_CHECK_HEADERS(mysql/mysql.h,
743 AC_CHECK_LIB(mysqlclient, mysql_init,
744 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
745 MYSQL_CPPFLAGS="-I$with_mysql/include"
747 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
750 [AC_MSG_RESULT([--with-mysql not specified])
751 if test -d "/usr/lib64/mysql"; then
752 MYSQL_LIBDIR="/usr/lib64/mysql"
753 elif test -d "/usr/lib/mysql"; then
754 MYSQL_LIBDIR="/usr/lib/mysql"
756 MYSQL_LIBDIR="/usr/lib"
758 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
759 AC_CHECK_LIB(mysqlclient, mysql_init,
760 [AC_CHECK_HEADERS(mysql/mysql.h,
761 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
764 , [], [$CYGWIN_MYSQL_MAGIC])])
767 AC_SUBST(MYSQL_LDFLAGS)
768 AC_SUBST(MYSQL_CPPFLAGS)
770 # additional version check for mysql
771 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
772 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
774 AC_MSG_CHECKING(mysql version)
775 AC_RUN_IFELSE([AC_LANG_PROGRAM(
776 [[$CYGWIN_MYSQL_MAGIC
777 #include <mysql/mysql.h>]],
778 [[if (MYSQL_VERSION_ID < 40100)
783 ],mysql=true,mysql=false)
784 if test "$mysql" = "false"
787 AC_MSG_RESULT([fail, >= 4.1 required])
792 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
793 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
796 LDFLAGS=$SAVE_LDFLAGS
797 CPPFLAGS=$SAVE_CPPFLAGS
799 if test "$sqlite" = 0 -a "$mysql" = 0
801 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
806 AC_MSG_CHECKING([for libmicrohttpd])
807 AC_ARG_WITH(microhttpd,
808 [ --with-microhttpd=PFX base of libmicrohttpd installation],
809 [AC_MSG_RESULT([$with_microhttpd])
810 case $with_microhttpd in
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 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
818 AC_RUN_IFELSE([AC_LANG_SOURCE([
819 #include "$native_srcdir/src/include/platform.h"
820 #include <microhttpd.h>
821 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
824 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
825 [],[#include "$native_srcdir/src/include/platform.h"
826 #include <microhttpd.h>]),,
827 [#include "$native_srcdir/src/include/platform.h"])
830 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
831 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
832 AC_CHECK_HEADERS(microhttpd.h,
833 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
834 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
835 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
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"])
850 [AC_MSG_RESULT([--with-microhttpd not specified])
851 AC_CHECK_HEADERS([microhttpd.h],
852 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
853 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
854 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.31])
855 AC_RUN_IFELSE([AC_LANG_SOURCE([
856 #include "$native_srcdir/src/include/platform.h"
857 #include <microhttpd.h>
858 int main () { return MHD_VERSION >= 0x0093002 ? 0 : 1; }
861 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
862 [],[#include "$native_srcdir/src/include/platform.h"
863 #include <microhttpd.h>]),,
864 [#include "$native_srcdir/src/include/platform.h"])])
865 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
866 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
872 # check for python & pexpect (used for some testcases only)
873 AM_PATH_PYTHON([2.6],, [:])
874 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
877 AM_GNU_GETTEXT([external])
878 AM_GNU_GETTEXT_VERSION([0.16.1])
883 # Checks for standard typedefs, structures, and compiler characteristics.
892 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
893 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
897 #include <sys/types.h>
898 #include <sys/socket.h>
899 #include <netinet/in.h>
904 # Checks for library functions.
905 AC_FUNC_CLOSEDIR_VOID
907 AC_PROG_GCC_TRADITIONAL
909 AC_FUNC_SELECT_ARGTYPES
919 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])
925 GN_LIBINTL="$LTLIBINTL"
926 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
927 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
928 if test x$enable_framework_build = xyes
930 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
931 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
932 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
933 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
936 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
937 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
939 AC_SUBST(GN_LIB_LDFLAGS)
940 AC_SUBST(GN_PLUGIN_LDFLAGS)
941 AC_SUBST(GN_INTLINCL)
947 AC_SUBST(EXT_LIB_PATH)
952 AC_SUBST(EXT_LIB_PATH)
956 AC_MSG_CHECKING(for sudo)
958 [ --with-sudo=PATH path to sudo binary (or just yes)],
959 [AC_MSG_RESULT("$with_sudo")
968 SUDO_BINARY=$with_sudo
972 [AC_MSG_RESULT([no])])
973 AC_SUBST(SUDO_BINARY)
974 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
978 AC_MSG_CHECKING(with nssdir)
980 [ --with-nssdir=PATH where to install NSS plugins],
981 [AC_MSG_RESULT("$with_nssdir")
998 if test "x$SUDO_BINARY" != "x" -o -w /
1002 AC_MSG_RESULT([yes, to /lib])
1010 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
1012 # test for gnunetdns group name
1013 GNUNETDNS_GROUP=gnunetdns
1014 AC_MSG_CHECKING(for gnunetdns group name)
1015 AC_ARG_WITH(gnunetdns,
1016 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1017 [AC_MSG_RESULT("$with_gnunetdns")
1018 case $with_gnunetdns in
1020 GNUNETDNS_GROUP=gnunet
1023 GNUNETDNS_GROUP=gnunetdns
1026 GNUNETDNS_GROUP=$with_gnunetdns
1030 [AC_MSG_RESULT([gnunetdns])])
1031 AC_SUBST(GNUNETDNS_GROUP)
1037 AC_MSG_CHECKING(for gnutls)
1039 [ --with-gnutls=PFX base of gnutls installation],
1040 [AC_MSG_RESULT([$with_gnutls])
1041 case $with_gnutls in
1045 AC_CHECK_HEADERS([gnutls/abstract.h],
1046 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1050 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1051 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1052 AC_CHECK_HEADERS([gnutls/abstract.h],
1053 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1054 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1059 [AC_MSG_RESULT([--with-gnutls not specified])
1060 AC_CHECK_HEADERS([gnutls/abstract.h],
1061 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1063 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1064 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1067 AC_CHECK_HEADERS([gnutls/dane.h],
1068 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1070 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1071 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1074 # Test if we are building for superMUC
1075 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1076 AC_ARG_ENABLE([supermuc],
1077 [AS_HELP_STRING([--enable-supermuc],
1078 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1079 [if test "x$enable_supermuc" = "xno"
1086 enable_supermuc=no])
1087 AC_MSG_RESULT($enable_SUPERMUC)
1088 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1089 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1091 # Check if NSE has to send timestamp information to testbed logger for
1092 # generating histogram of messages received
1093 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1094 AC_ARG_ENABLE([nse-histogram],
1095 [AS_HELP_STRING([--enable-nse-histogram],
1096 [have NSE send timestamp information to testbed logger for generating
1097 histogram of received messages. NOT useful for production (default is
1099 [if test "x$enableval" = "xno"
1106 enable_nse_histogram=no])
1107 AC_MSG_RESULT($enable_nse_histogram)
1108 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1109 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1110 [have NSE send timestamp information to testbed logger])
1112 # should 'make check' run tests?
1113 AC_MSG_CHECKING(whether to run tests)
1114 AC_ARG_ENABLE([testruns],
1115 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1116 [enable_tests_run=${enableval}],
1117 [enable_tests_run=yes])
1118 AC_MSG_RESULT($enable_test_run)
1119 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1122 # should monkey be used when running (certain) services?
1123 AC_MSG_CHECKING(whether to run with monkey)
1124 AC_ARG_ENABLE([monkey],
1125 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1126 [enable_monkey=${enableval}],
1128 AC_MSG_RESULT($enable_monkey)
1129 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1130 if test "x$enable_monkey" = "xyes"
1132 MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1136 AC_SUBST(MONKEYPREFIX)
1139 # should expensive tests be run?
1140 AC_MSG_CHECKING(whether to run expensive tests)
1141 AC_ARG_ENABLE([expensivetests],
1142 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1143 [enable_expensive=${enableval}],
1144 [enable_expensive=no])
1145 AC_MSG_RESULT($enable_expensive)
1146 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1148 # should ports be open for Java services?
1149 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1150 AC_ARG_ENABLE([javaports],
1151 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1152 [enable_java_ports=${enableval}],
1153 [enable_java_ports=no])
1154 AC_MSG_RESULT($enable_java_ports)
1155 if test "x$enable_java_ports" = "xyes"
1159 JAVAPORT="$UNIXONLY"
1163 # should benchmarks be run?
1164 AC_MSG_CHECKING(whether to run benchmarks during make check)
1165 AC_ARG_ENABLE([benchmarks],
1166 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1167 [enable_benchmarks=${enableval}],
1168 [enable_benchmarks=no])
1169 AC_MSG_RESULT($enable_benchmarks)
1170 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1172 # should gnunet-testing be compiled
1173 AC_MSG_CHECKING(wether to compile gnunet-testing)
1174 AC_ARG_ENABLE([testing],
1175 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1176 [enable_testing=${enableval}],
1177 [enable_testing=yes])
1178 AC_MSG_RESULT($enable_testing)
1179 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1181 # should experimental code be compiled (code that may not yet compile)?
1182 AC_MSG_CHECKING(whether to compile experimental code)
1183 AC_ARG_ENABLE([experimental],
1184 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1185 [enable_experimental=${enableval}],
1186 [enable_experimental=no])
1187 AC_MSG_RESULT($enable_experimental)
1188 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1190 # should services be started by default when a peer starts? Some services may
1191 # choose to never start by default and it is upto the service/module developer to
1192 # decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART" in
1193 # the service/module's conf.in file.
1195 AC_MSG_CHECKING(whether to auto-start peer's services by default)
1196 AC_ARG_ENABLE([autostart],
1197 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1198 [enable_autostart=${enableval}
1199 if test "x$enable_autostart" == "xno"
1204 [enable_autostart=yes])
1205 AC_MSG_RESULT($enable_autostart)
1206 #AM_CONDITIONAL([HAVE_AUTOSTART], [test "x$enable_autostart" = "xyes"])
1209 # should memory statistics be kept (very expensive CPU-wise!)
1210 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1211 AC_ARG_ENABLE([heapstats],
1212 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1213 [enable_heapstats=1],
1214 [enable_heapstats=0])
1215 AC_MSG_RESULT($enable_heapstats)
1216 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1218 # should code be enabled that works around missing OS functionality on Windows?
1219 # used for test cases
1220 if test $build_target = "mingw"
1226 [#include <ws2tcpip.h>
1228 int s = socket (0, 0, 0);])
1230 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1232 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1237 [#include <ws2tcpip.h>
1239 int s = select (0, NULL, NULL, NULL, NULL);])
1241 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1243 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1248 [#include <ws2tcpip.h>
1251 char *s = inet_ntoa (i);])
1253 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1255 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1260 [#include <ws2tcpip.h>
1262 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1264 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1266 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1271 [#include <ws2tcpip.h>
1273 int s = gethostname (NULL, 0);])
1275 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1277 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1282 [#include <ws2tcpip.h>
1284 void *s = gethostbyname (NULL);])
1286 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1288 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1293 [#include <ws2tcpip.h>
1295 void *s = gethostbyaddr (NULL, 0, 0);])
1297 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1299 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1304 [#include <ws2tcpip.h>
1306 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1308 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1310 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1314 AC_MSG_CHECKING(whether to enable windows workarounds)
1315 AC_ARG_ENABLE([windows_workarounds],
1316 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1317 [enable_workarounds=${enableval}],
1318 [enable_workarounds=no])
1319 AC_MSG_RESULT($enable_workarounds)
1320 if test x$enable_windows_workarounds = "xyes"
1327 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1330 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1331 AC_ARG_ENABLE([coverage],
1332 AS_HELP_STRING([--enable-coverage],
1333 [compile the library with code coverage support]),
1334 [use_gcov=${enableval}],
1336 AC_MSG_RESULT($use_gcov)
1337 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1341 AC_PATH_PROG(svnversioncommand, svnversion)
1342 AC_PATH_PROG(gitcommand, git)
1343 AC_MSG_CHECKING(for source being under a VCS)
1346 AS_IF([test ! "X$svnversioncommand" = "X"],
1348 svn_version=$(cd $srcdir ; $svnversioncommand -n 2>/dev/null)
1350 AS_IF([test ! "X$gitcommand" = "X"],
1352 gitsvn_version=$(cd $srcdir ; git log -1 2>/dev/null | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1354 AS_IF([test "X$svn_version" = "X" -o "X$svn_version" = "Xexported" -o "X$svn_version" = "XUnversioned directory"],
1356 AS_IF([test "X$gitsvn_version" = "X"],
1359 vcs_version="\"release\""
1362 vcs_name="yes, git-svn"
1363 vcs_version="\"svn-r$gitsvn_version\""
1368 vcs_version="\"svn-r$svn_version\""
1370 AC_MSG_RESULT($vcs_name)
1372 AC_MSG_CHECKING(VCS version)
1373 AC_MSG_RESULT($vcs_version)
1374 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1381 doc/doxygen/Makefile
1389 src/ats-tool/Makefile
1390 src/ats-tests/Makefile
1394 src/consensus/Makefile
1395 src/consensus/consensus.conf
1396 src/conversation/Makefile
1397 src/conversation/conversation.conf
1398 src/datacache/Makefile
1399 src/datastore/Makefile
1400 src/datastore/datastore.conf
1409 src/experimentation/Makefile
1410 src/experimentation/experimentation.conf
1411 src/fragmentation/Makefile
1416 src/gns/nss/Makefile
1417 src/gnsrecord/Makefile
1419 src/identity/Makefile
1420 src/identity/identity.conf
1421 src/include/Makefile
1422 src/integration-tests/Makefile
1423 src/hostlist/Makefile
1426 src/multicast/Makefile
1427 src/multicast/multicast.conf
1429 src/namecache/Makefile
1430 src/namecache/namecache.conf
1431 src/namestore/Makefile
1432 src/namestore/namestore.conf
1436 src/peerinfo/Makefile
1437 src/peerinfo/peerinfo.conf
1438 src/peerinfo-tool/Makefile
1439 src/postgres/Makefile
1442 src/psycstore/Makefile
1443 src/psycstore/psycstore.conf
1446 src/regex/regex.conf
1447 src/revocation/Makefile
1448 src/revocation/revocation.conf
1449 src/secretsharing/Makefile
1450 src/secretsharing/secretsharing.conf
1451 src/scalarproduct/Makefile
1452 src/scalarproduct/scalarproduct.conf
1455 src/statistics/Makefile
1456 src/statistics/statistics.conf
1457 src/template/Makefile
1458 src/testbed/Makefile
1459 src/testbed/testbed.conf
1460 src/testing/Makefile
1461 src/topology/Makefile
1462 src/transport/Makefile
1463 src/transport/transport.conf
1466 src/util/resolver.conf
1470 pkgconfig/gnunetarm.pc
1471 pkgconfig/gnunetats.pc
1472 pkgconfig/gnunetblock.pc
1473 pkgconfig/gnunetconsensus.pc
1474 pkgconfig/gnunetconversation.pc
1475 pkgconfig/gnunetcore.pc
1476 pkgconfig/gnunetdatacache.pc
1477 pkgconfig/gnunetdatastore.pc
1478 pkgconfig/gnunetdht.pc
1479 pkgconfig/gnunetdns.pc
1480 pkgconfig/gnunetdnsparser.pc
1481 pkgconfig/gnunetdnsstub.pc
1482 pkgconfig/gnunetdv.pc
1483 pkgconfig/gnunetenv.pc
1484 pkgconfig/gnunetfragmentation.pc
1485 pkgconfig/gnunetfs.pc
1486 pkgconfig/gnunetgns.pc
1487 pkgconfig/gnunethello.pc
1488 pkgconfig/gnunetidentity.pc
1489 pkgconfig/gnunetmesh.pc
1490 pkgconfig/gnunetmicrophone.pc
1491 pkgconfig/gnunetmulticast.pc
1492 pkgconfig/gnunetmysql.pc
1493 pkgconfig/gnunetnamestore.pc
1494 pkgconfig/gnunetnat.pc
1495 pkgconfig/gnunetnse.pc
1496 pkgconfig/gnunetpeerinfo.pc
1497 pkgconfig/gnunetpostgres.pc
1498 pkgconfig/gnunetpsyc.pc
1499 pkgconfig/gnunetpsycstore.pc
1500 pkgconfig/gnunetregex.pc
1501 pkgconfig/gnunetrevocation.pc
1502 pkgconfig/gnunetscalarproduct.pc
1503 pkgconfig/gnunetset.pc
1504 pkgconfig/gnunetspeaker.pc
1505 pkgconfig/gnunetstatistics.pc
1506 pkgconfig/gnunettestbed.pc
1507 pkgconfig/gnunettesting.pc
1508 pkgconfig/gnunettransport.pc
1509 pkgconfig/gnunettun.pc
1510 pkgconfig/gnunetutil.pc
1511 pkgconfig/gnunetvpn.pc
1517 # warn user if mysql found but not used due to version
1518 if test "$mysqlfail" = "true"
1520 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1524 if test "x$sqlite" = "x0"
1526 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
1530 if test "x$gnurl" = "x0"
1532 AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.])
1536 if test "x$bluetooth" = "x0"
1538 AC_MSG_NOTICE([NOTICE: bluetooth library not found. bluetooth support will not be compiled.])
1542 if test x$gnutls != xtrue
1544 AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
1546 if test x$gnutls_dane != xtrue
1548 AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
1553 if test "x$enable_java_ports" = "xyes"
1555 AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1559 if test "x$lmhd" != "x1"
1561 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1565 if test "x$conversation_backend" == "xnone"
1567 if test "x$pulse" != "x1"
1569 AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.])
1571 if test "x$opus" != "x1"
1573 AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.])
1575 if test "x$gst" != "x1"
1577 AC_MSG_NOTICE([NOTICE: GStreamer not found, conversation will not be built.])
1582 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1584 if test "$enable_framework_build" = "yes"
1586 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1589 if test "x$SUDO_BINARY" = "x" -a ! -w /
1591 AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1595 AC_MSG_NOTICE([********************************************
1596 Please make sure NOW that you have created a user and group 'gnunet'
1597 and additionally a group 'gnunetdns':
1601 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1602 'gnunet'. Then, you can compile GNUnet with
1605 After that, run (if necessary as 'root')
1607 to install everything.
1609 Each GNUnet user should be added to the 'gnunet' group (may
1610 require fresh login to come into effect):
1611 adduser $USERNAME gnunet
1612 (run the above command as root once for each of your users, replacing
1613 "$USERNAME" with the respective login names). If you have a global IP
1614 address, no further configuration is required.
1616 Optionally, download and compile gnunet-gtk to get a GUI for
1617 file-sharing and configuration. This is particularly recommended
1618 if your network setup is non-trivial, as gnunet-setup can be
1619 used to test in the GUI if your network configuration is working.
1620 gnunet-setup should be run as the "gnunet" user under X. As it
1621 does very little with the network, running it as "root" is likely
1622 also harmless. You can also run it as a normal user, but then
1623 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1624 home directory in the end.
1626 Once you have configured your peer, run (as the 'gnunet' user)
1628 to start the peer. You can then run the various GNUnet-tools as
1629 your "normal" user (who should only be in the group 'gnunet').
1630 ********************************************])