1 # This file is part of GNUnet.
2 # (C) 2001--2019 GNUnet e.V.
4 # GNUnet is free software: you can redistribute it and/or modify it
5 # under the terms of the GNU Affero General Public License as published
6 # by the Free Software Foundation, either version 3 of the License,
7 # or (at your 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 # Affero General Public License for more details.
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 # SPDX-License-Identifier: AGPL3.0-or-later
19 # Process this file with autoconf to produce a configure script.
23 # Checks for programs.
24 AC_INIT([gnunet], [0.11.2], [bug-gnunet@gnu.org])
25 AC_CONFIG_AUX_DIR([build-aux])
27 # check for legacy option that is no longer supported (#5627) and fail hard
29 [ --with-nssdir=DIR legacy switch, no longer supported, do not use],
30 [AC_MSG_RESULT([$with_nssdir])
35 AC_MSG_ERROR([--with-nssdir is no longer supported])
44 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
45 AC_CONFIG_HEADERS([gnunet_config.h])
46 AH_TOP([#define _GNU_SOURCE 1])
47 AC_CONFIG_MACRO_DIR([m4])
57 LT_INIT([disable-static dlopen win32-dll])
65 CFLAGS="-Wall $CFLAGS"
66 # use '-fno-strict-aliasing', but only if the compiler can take it
67 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
69 CFLAGS="-fno-strict-aliasing $CFLAGS"
72 # Use Linux interface name unless the OS has a different preference
73 DEFAULT_INTERFACE="\"eth0\""
75 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo getaddrinfo_a"
77 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
80 OLD_LDFLAGS="$LDFLAGS"
81 LDFLAGS="$LDFLAGS -Wl,--unresolved-symbols=report-all"
85 *darwin* | *rhapsody* | *macosx*)
86 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
87 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
88 CFLAGS="-fno-common $CFLAGS"
89 LDFLAGS="$OLD_LDFLAGS"
90 AC_MSG_WARN([WARNING: The VPN application cannot be compiled on your OS])
91 AC_CHECK_LIB(intl, gettext)
93 DEFAULT_INTERFACE="\"en0\""
99 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
107 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
108 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
109 CFLAGS="-D_THREAD_SAFE $CFLAGS"
110 build_target="freebsd"
116 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
117 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
118 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
119 build_target="openbsd"
125 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
126 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
132 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
133 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
134 AC_CHECK_LIB(resolv, res_init)
135 AC_CHECK_LIB(rt, nanosleep)
136 build_target="solaris"
142 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
143 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
150 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
151 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
152 AC_CHECK_LIB(intl, gettext)
153 CFLAGS="-mms-bitfields $CFLAGS"
154 build_target="cygwin"
161 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
162 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
163 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
164 AC_CHECK_LIB(intl, gettext)
165 LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
166 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
167 CFLAGS="-mms-bitfields $CFLAGS"
168 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
175 native_srcdir=$(cd $srcdir; pwd -W)
178 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
183 AC_MSG_RESULT(Unrecognised OS $host_os)
184 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
188 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
189 AC_SUBST(DEFAULT_INTERFACE)
191 # Disable TCP-based IPC on systems that support UNIX domain
192 # sockets in default configuratin:
196 AC_MSG_CHECKING([for build target])
197 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
198 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
199 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
200 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
201 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
202 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
203 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
204 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
206 AC_MSG_RESULT([$build_target])
207 AC_SUBST(build_target)
208 AM_CONDITIONAL([am__fastdepOBJC], false)
209 AC_UNALIGNED_64_ACCESS
211 # some other checks for standard libs
212 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
213 AC_SEARCH_LIBS([memrchr], [],
214 AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]), [])
215 AC_CHECK_LIB(socket, socket)
217 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
219 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
220 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
222 AC_CHECK_PROG(VAR_SSH_BINARY, ssh, true, false)
223 AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
224 AM_CONDITIONAL(HAVE_SSH_KEY, ssh -D 12345 -o "BatchMode yes" -o "UserKnownHostsFile /tmp/gnunet_test_cosks_ssh_garbage" -o "StrictHostKeyChecking no" 127.0.0.1 echo -n)
225 rm -f /tmp/gnunet_test_cosks_ssh_garbage
227 # autotools' m4 for python has no maximum version!
228 # python3.4 - python3.7 for tests
229 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python3 python3.4 python3.5 python3.6 python3.7 python])
230 AM_PATH_PYTHON([3.4],, [:])
232 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
235 AC_PATH_PROG( PERL, perl, ,
236 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
239 # iptables is a soft requirement to run tests
240 AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
242 if test x"$VAR_IPTABLES_BINARY" = x"false"
244 if test -x "/sbin/iptables"
246 VAR_IPTABLES_BINARY="/sbin/iptables"
247 elif test -x "/usr/sbin/iptables"
249 VAR_IPTABLES_BINARY="/usr/sbin/iptables"
253 if test x"$VAR_IPTABLES_BINARY" != x"false"
255 AC_DEFINE_UNQUOTED([IPTABLES], "$VAR_IPTABLES_BINARY", [Path to iptables])
257 AC_MSG_WARN([warning: 'iptables' not found.])
260 # ip6tables is a soft requirement for some features
261 AC_PATH_TARGET_TOOL(VAR_IP6TABLES_BINARY, ip6tables, false)
263 if test x"$VAR_IP6TABLES_BINARY" = x"false"
265 if test -x "/sbin/ip6tables"
267 VAR_IP6TABLES_BINARY="/sbin/ip6tables"
268 elif test -x "/usr/sbin/ip6tables"
270 VAR_IP6TABLES_BINARY="/usr/sbin/ip6tables"
274 if test x"$VAR_IP6TABLES_BINARY" != x"false"
276 AC_DEFINE_UNQUOTED([IP6TABLES], "$VAR_IP6TABLES_BINARY", [Path to ip6tables])
278 AC_MSG_WARN([warning: 'ip6tables' not found.])
281 # ip is a soft requirement for some features
282 AC_PATH_TARGET_TOOL(VAR_IP_BINARY, ip, false)
284 if test x"$VAR_IP_BINARY" = x"false"
286 if test -x "/sbin/ip"
288 VAR_IP_BINARY="/sbin/ip"
289 elif test -x "/usr/sbin/ip"
291 VAR_IP_BINARY="/usr/sbin/ip"
295 if test x"$VAR_IP_BINARY" != x"false"
297 AC_DEFINE_UNQUOTED([PATH_TO_IP], "$VAR_IP_BINARY", [Path to ip])
299 AC_MSG_WARN([warning: 'ip' not found.])
303 AC_PATH_TARGET_TOOL(VAR_IFCONFIG_BINARY, ifconfig, false)
305 AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false)
306 if test x"$VAR_IFCONFIG_BINARY" = x"false"
308 if test -x "/sbin/ifconfig"
310 VAR_IFCONFIG_BINARY="/sbin/ifconfig"
311 elif test -x "/usr/sbin/ifconfig"
313 VAR_IFCONFIG_BINARY="/usr/sbin/ifconfig"
316 if test x"$VAR_IFCONFIG_BINARY" != x"false"
318 AC_DEFINE_UNQUOTED([IFCONFIG], "$VAR_IFCONFIG_BINARY", [Path to ifconfig])
320 AC_MSG_WARN(['ifconfig' not found.])
324 AC_PATH_TARGET_TOOL(VAR_SYSCTL_BINARY, sysctl, false)
326 AC_CHECK_PROG(VAR_SYSCTL_BINARY, sysctl, true, false)
327 AS_IF([test x"$VAR_SYSCTL_BINARY" = x"false"],
328 [AS_IF([test -x "/sbin/sysctl"],
329 [VAR_SYSCTL_BINARY="/sbin/sysctl"],
330 [AS_IF([test -x "/usr/sbin/sysctl"],
331 [VAR_SYSCTL_BINARY="/usr/sbin/sysctl"])])])
332 AS_IF([test x"$VAR_SYSCTL_BINARY" != x"false"],
333 [AC_DEFINE_UNQUOTED([SYSCTL], "$VAR_SYSCTL_BINARY", [Path to sysctl])],
334 [AC_MSG_WARN(['sysctl' not found.])])
336 # miniupnpc / upnpc binary is a soft runtime requirement
337 AC_PATH_TARGET_TOOL(VAR_UPNPC_BINARY, upnpc, false)
339 if test x"$VAR_UPNPC_BINARY" != x"false"
341 AC_DEFINE_UNQUOTED([UPNPC], "$VAR_UPNPC_BINARY", [Path to upnpc binary])
343 AC_MSG_WARN([warning: 'upnpc' binary not found.])
346 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
347 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
348 [Define if struct tm has the tm_gmtoff member.])],
352 AC_CHECK_DECLS([_stati64])
354 # 'save' libs; only those libs found so far will be
355 # linked against _everywhere_. For the others, we
356 # will be more selective!
360 AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
361 AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
364 # tests only run on Windows
365 if test "x$build_target" = "xmingw"
367 AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
368 AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
374 NEED_LIBGCRYPT_VERSION=1.6.0
377 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
378 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
384 *** You need libgcrypt to build this program.
385 ** This library is for example available at
386 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
387 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
391 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
393 AC_CHECK_DECLS([struct in6_ifreq], [], [], [[#include <linux/if_tun.h>]])
397 # should the build process be building the documentation?
398 AC_MSG_CHECKING(whether to build documentation)
399 AC_ARG_ENABLE([documentation],
400 [AS_HELP_STRING([--disable-documentation], [do not build the documentation])],
401 [documentation=${enableval}],
403 AC_MSG_RESULT($documentation)
404 if test "x$documentation" = "xyes"
406 AM_CONDITIONAL([DOCUMENTATION],true)
407 AC_DEFINE([DOCUMENTATION],[1],[Building the documentation])
409 AM_CONDITIONAL([DOCUMENTATION],false)
410 AC_DEFINE([DOCUMENTATION],[0],[Not building the documentation])
413 # FIXME: Something is wrong about this in the output of ./configure runs
414 AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
415 AC_ARG_ENABLE([texi2mdoc-generation],
416 [AS_HELP_STRING([--enable-texi2mdoc-generation], [include generated texi2mdoc output in installation])],
417 [texi2mdoc_generation=${enableval}],
418 [texi2mdoc_generation=no])
419 AC_MSG_RESULT($texi2mdoc_generation)
420 if test "x$texi2mdoc_generation" = "xyes"
422 if test "$texi2mdoc" = 0
424 AC_MSG_WARN([ERROR: mdoc output currently requires texi2mdoc.])
425 AC_MSG_WARN([ERROR: texi2mdoc can be obtained via your Operating System])
426 AC_MSG_WARN([ERROR: package manager or from https://mandoc.bsd.lv/texi2mdoc/])
428 AM_CONDITIONAL([TEXI2MDOC_GENERATION],true)
429 AC_DEFINE([TEXI2MDOC_GENERATION],[1],[Building section 7 mdoc output])
432 AM_CONDITIONAL([TEXI2MDOC_GENERATION],false)
433 AC_DEFINE([TEXI2MDOC_GENERATION],[0],[Not building section 7 mdoc output])
436 # should the build process be building only the documentation?
437 AC_MSG_CHECKING(whether to build only documentation)
438 AC_ARG_ENABLE([documentation-only],
439 [AS_HELP_STRING([--enable-documentation-only], [build only the documentation])],
440 [documentation_only=${enableval}],
441 [documentation_only=no])
442 AC_MSG_RESULT($documentation_only)
443 if test "x$documentation_only" = "xyes"
445 AM_CONDITIONAL([DOCUMENTATION_ONLY],true)
446 AC_DEFINE([DOCUMENTATION_ONLY],[1],[Building only the documentation])
448 AM_CONDITIONAL([DOCUMENTATION_ONLY],false)
449 AC_DEFINE([DOCUMENTATION_ONLY],[0],[Not building only the documentation])
452 # should the build process be including the manpages? (default: yes)
453 AC_MSG_CHECKING(whether to include man pages)
454 AC_ARG_ENABLE([include-manpages],
455 [AS_HELP_STRING([--disable-include-manpages], [Do not include the man pages in build and installation])],
456 [include_manpages=${enableval}],
457 [include_manpages=yes])
458 AC_MSG_RESULT($include_manpages)
459 if test "x$include_manpages" = "xyes"
461 AM_CONDITIONAL([INCLUDE_MANPAGES],true)
462 AC_DEFINE([INCLUDE_MANPAGES],[1],[Including the man pages in the build and installation])
464 AM_CONDITIONAL([INCLUDE_MANPAGES],false)
465 AC_DEFINE([INCLUDE_MANPAGES],[0],[Not including the man pages in the build and installation])
468 # Adam shostack suggests the following for Windows:
469 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
470 AC_ARG_ENABLE(gcc-hardening,
471 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
472 [if test x$enableval = xyes; then
473 CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
474 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
475 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
476 LDFLAGS="$LDFLAGS -pie"
479 # Linker hardening options
480 # Currently these options are ELF specific - you can't use this with MacOSX
481 AC_ARG_ENABLE(linker-hardening,
482 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
483 [if test x$enableval = xyes; then
484 LDFLAGS="$LDFLAGS -z relro -z now"
488 AC_ARG_ENABLE(sanitizer,
489 AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer),
490 [if test x$enableval = xyes; then
491 LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer"
495 extra_logging=GNUNET_NO
496 AC_ARG_ENABLE([logging],
497 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
498 [AS_IF([test "x$enableval" = "xyes"], [],
499 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
500 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
501 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
503 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
505 # should memory poisoning be enabled?
506 AC_MSG_CHECKING(whether to poison freed memory)
507 AC_ARG_ENABLE([poisoning],
508 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
509 [enable_poisoning=${enableval}],
511 if test "x$extra_logging" != "xGNUNET_NO"; then
512 enable_poisoning="defaults to yes (extra logging is enabled)"
517 AC_MSG_RESULT($enable_poisoning)
518 if test ! "x$enable_poisoning" = "xno"; then
523 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
525 if test $build = $target
527 AC_MSG_CHECKING([for working HMAC])
529 LIBS="$LIBS $LIBGCRYPT_LIBS"
530 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
532 [AC_LANG_PROGRAM([#include <gcrypt.h>
533 #include <stdio.h>], [[
536 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
537 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
538 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
539 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
540 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
541 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
542 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
543 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
544 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
545 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
547 if (!gcry_check_version (GCRYPT_VERSION))
549 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
553 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
554 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
556 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
558 fprintf (stderr, "gcry_md_open error\n");
562 gcry_md_setkey (mac, key, sizeof (key));
563 gcry_md_write (mac, data, sizeof (data));
565 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
567 fprintf (stderr, "memcmp error\n");
575 [AC_MSG_RESULT([yes])],
580 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.])
584 AC_MSG_FAILURE([HMAC test failed])
588 AC_MSG_FAILURE([libgcrypt header version does not match library version])
591 [AC_MSG_RESULT([cross compiling, test skipped])])
593 fi # $build = $target
595 # check for bluetooth library
597 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
598 if test "$build_target" = "mingw"
602 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, [test "$bluetooth" = 1])
603 if test "$bluetooth" = 1
605 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
607 AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])
610 # check for zbar library
612 AC_MSG_CHECKING(for libzbar)
614 [ --with-zbar=PFX base of libzbar installation],
615 [AC_MSG_RESULT([$with_zbar])
620 AC_CHECK_HEADERS(zbar.h,
621 AC_CHECK_LIB([zbar], [zbar_processor_create],
625 LDFLAGS="-L$with_zbar/lib $LDFLAGS"
626 CPPFLAGS="-I$with_zbar/include $CPPFLAGS"
627 AC_CHECK_HEADERS(zbar.h,
628 AC_CHECK_LIB([zbar], [zbar_processor_create],
629 EXT_LIB_PATH="-L$with_zbar/lib $EXT_LIB_PATH"
634 [AC_MSG_RESULT([--with-zbar not specified])
635 AC_CHECK_HEADERS(zbar.h,
636 AC_CHECK_LIB([zbar], [zbar_processor_create],
638 AM_CONDITIONAL(HAVE_ZBAR, [test "$zbar" = 1])
639 AS_IF([test "x$zbar" = x1],
640 [AC_DEFINE([HAVE_ZBAR],[1],[Have zbar library])],
641 [AC_DEFINE([HAVE_ZBAR],[0],[Lacking zbar library])])
643 # check for jansson library
645 AC_MSG_CHECKING(for libjansson)
647 [ --with-jansson=PFX base of libjansson installation],
648 [AC_MSG_RESULT([$with_jansson])
649 case $with_jansson in
653 AC_CHECK_HEADERS(jansson.h,
654 AC_CHECK_LIB([jansson], [json_loads],
658 LDFLAGS="-L$with_jansson/lib $LDFLAGS"
659 CPPFLAGS="-I$with_jansson/include $CPPFLAGS"
660 AC_CHECK_HEADERS(jansson.h,
661 AC_CHECK_LIB([jansson], [json_loads],
662 EXT_LIB_PATH="-L$with_jansson/lib $EXT_LIB_PATH"
667 [AC_MSG_RESULT([--with-jansson not specified])
668 AC_CHECK_HEADERS(jansson.h,
669 AC_CHECK_LIB([jansson], [json_loads],
671 AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
672 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
673 AS_IF([test "x$jansson" = x1],
674 [AC_DEFINE([HAVE_JANSSON],[1],[Have jansson library])],
675 [AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])])
678 # check for libpulse(audio) library
680 AC_CHECK_LIB(pulse,pa_stream_peek,
681 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
682 AS_IF([test "$build_target" = "mingw"],
684 AS_IF([test "$pulse" = 1],
685 [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])])
687 # check for libopus(audio) library
689 AC_CHECK_LIB(opus,opus_decode_float,
690 [AC_CHECK_HEADER([opus/opus.h],
691 [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
695 AS_IF([test "x$opus" = x1],
696 [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])])
699 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
700 [AC_CHECK_HEADERS([ogg/ogg.h],
701 AM_CONDITIONAL(HAVE_OGG, true)
703 AC_DEFINE(HAVE_OGG,1,[Have ogg]),
704 AM_CONDITIONAL(HAVE_OGG, false)
706 AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
707 AM_CONDITIONAL(HAVE_OGG, false)
711 PKG_CHECK_MODULES([GLIB],
713 [# check for pbc library
715 AC_CHECK_HEADER([pbc/pbc.h],pbc=1)
716 AC_CHECK_HEADER([gabe.h],abe=1)
717 AM_CONDITIONAL(HAVE_PBC, [test "x$pbc" = x1])
718 AM_CONDITIONAL(HAVE_ABE, [test "x$abe" = x1])
719 AS_IF([test "x$pbc" = x1],
720 [AC_DEFINE([HAVE_PBC],[1],[Have pbc library])],
721 [AC_DEFINE([HAVE_PBC],[0],[Lacking pbc library])])
722 AS_IF([test "x$abe" = x1],
723 [AC_DEFINE([HAVE_ABE],[1],[Have ABE library])],
724 [AC_DEFINE([HAVE_ABE],[0],[Lacking ABE library])])],
726 AM_CONDITIONAL(HAVE_PBC, [false])
727 AM_CONDITIONAL(HAVE_ABE, [false])
728 AC_DEFINE([HAVE_PBC],[0],[Lacking glib library])])
733 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
738 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
740 if test "x$gst" != "x1"
742 conversation_backend=none
743 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
744 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
745 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
747 conversation_backend=gst
748 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
749 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
750 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
754 conversation_backend=pulse
755 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
756 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
757 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
761 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
764 AM_CONDITIONAL(HAVE_LIBGNURL, true)
765 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
767 AM_CONDITIONAL(HAVE_LIBGNURL, false)
768 AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
771 SAVE_CPPFLAGS=$CPPFLAGS
772 CPPFLAGS="$LIBGNURL_CPPFLAGS $LIBCURL_CPPFLAGS $CPPFLAGS"
773 LIBS="$LIBGNURL $LIBCURL $LIBS"
776 LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
777 if test "x$curl" = xtrue
780 AC_CHECK_HEADERS([curl/curl.h],
781 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
783 AC_CHECK_HEADERS([gnurl/curl.h],
784 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],,[[#include <gnurl/curl.h>]]))
785 # need libcurl-gnutls.so, everything else is not acceptable
786 AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
787 # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
790 # Check for curl/curl.h and gnurl/curl.h so we can use #ifdef
791 # HAVE_CURL_CURL_H later (the above LIBCURL_CHECK_CONFIG accepted
792 # *either* header set).
793 AC_CHECK_HEADERS([curl/curl.h],,
795 AC_CHECK_HEADERS([gnurl/curl.h],,
800 if test x$curl = xfalse
802 AM_CONDITIONAL(HAVE_LIBCURL, false)
805 AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34])
808 AM_CONDITIONAL(HAVE_LIBCURL, true)
809 AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
812 AC_SEARCH_LIBS(__atomic_load_8, atomic, [have_libatomic=1 AC_DEFINE(HAVE_LIBATOMIC,1,[external libatomic])])
813 AM_CONDITIONAL(HAVE_LIBATOMIC, [test "$have_libatomic" = 1])
815 # restore LIBS & CPPFLAGS
817 CPPFLAGS=$SAVE_CPPFLAGS
819 AC_CHECK_HEADERS([glpk.h],[glpk=true],[glpk=false])
820 # GLPK must support glpk_init_env, version >= 4.43
821 AC_CHECK_LIB([glpk],[glp_init_env],,[glpk=false])
822 # GLPK must support atm MLP presolving, version >= 4.32
823 AC_CHECK_MEMBERS(glp_iocp.presolve,,[glpk=false],[[#include <glpk.h>]])
824 if test "x$glpk" = xfalse
826 AM_CONDITIONAL(HAVE_LIBGLPK, false)
827 AC_MSG_WARN([ERROR: GNUnet requires GLPK >= 4.32])
829 AM_CONDITIONAL(HAVE_LIBGLPK, true)
830 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
834 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
835 if test x$nss = xfalse
837 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
838 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
843 AC_CHECK_DECL([NSS_STATUS_UNAVAIL],
844 [AM_CONDITIONAL(HAVE_GLIBCNSS, true)],
845 [AM_CONDITIONAL(HAVE_GLIBCNSS, false)
846 AC_MSG_WARN([No nss header fails to define NSS_STATUS_UNAVAIl, will not build NSS plugin])],
852 # test for kvm and kstat (for CPU stats under BSD/Solaris)
853 AC_CHECK_LIB([kvm],[kvm_open])
854 AC_CHECK_LIB([kstat],[kstat_open])
857 # should the build process be restricted to the code required
858 # for GNU Taler wallets?
859 AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
860 AC_ARG_ENABLE([taler-wallet],
861 [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
862 [taler_only=${enableval}],
864 AC_MSG_RESULT($taler_only)
865 if test "x$taler_only" = "xyes"
867 AM_CONDITIONAL([TALER_ONLY],true)
868 AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet])
870 AM_CONDITIONAL([TALER_ONLY],false)
871 AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation])
874 # test for libextractor
876 AC_MSG_CHECKING(for libextractor)
877 AC_ARG_WITH(extractor,
878 [ --with-extractor=PFX base of libextractor installation],
879 [AC_MSG_RESULT([$with_extractor])
880 case $with_extractor in
884 AC_CHECK_HEADERS([extractor.h],
885 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
889 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
890 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
891 AC_CHECK_HEADERS([extractor.h],
892 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
893 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
898 [AC_MSG_RESULT([--with-extractor not specified])
899 AC_CHECK_HEADERS([extractor.h],
900 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
905 if test "$extractor" != 1
907 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, false)
908 AC_DEFINE([HAVE_LIBEXTRACTOR],[0],[Lacking libextractor])
910 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, true)
911 AC_DEFINE([HAVE_LIBEXTRACTOR],[1],[Have libextractor])
915 if test "$taler_only" != yes
918 # Check for libltdl header (#2999)
920 AC_MSG_CHECKING(for libltdl)
922 [ --with-ltdl=PFX base of libltdl installation],
923 [AC_MSG_RESULT([$with_ltdl])
928 AC_CHECK_HEADERS(ltdl.h,
929 AC_CHECK_LIB([ltdl], [lt_dlopenext],
933 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
934 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
935 AC_CHECK_HEADERS(ltdl.h,
936 AC_CHECK_LIB([ltdl], [lt_dlopenext],
937 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
942 [AC_MSG_RESULT([--with-ltdl not specified])
943 AC_CHECK_HEADERS(ltdl.h,
944 AC_CHECK_LIB([ltdl], [lt_dlopenext],
948 AC_MSG_RESULT([libltdl found])
950 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
955 # libidn and libidn2. The ideal goal is this:
956 # check for libidn2, if it doesn't exist check for libidn
957 # if both exist, prefer libidn2
958 # if none exist, fail and message that libidn or libidn2
959 # is required with a preference for libidn2.
960 # TODO: What we have right here can probably be improved.
963 AS_HELP_STRING([--with-libidn=pathname],
964 [Support IDN (needs libidn)]),
967 AS_IF([test x_$withval = x_yes],
968 [AC_CHECK_HEADERS([idna.h],
969 AC_MSG_NOTICE([Found idna.h]),
970 AC_CHECK_HEADERS([idn/idna.h],
971 AC_MSG_NOTICE([Found idn/idna.h]),
973 [AS_IF([test x_$withval != x_no],
974 [CFLAGS="$CFLAGS -I$withval/include"
975 LDFLAGS="$LDFLAGS -L$withval/lib"
976 AC_CHECK_HEADERS([idna.h],
977 AC_MSG_NOTICE([Found idna.h]),
978 [AC_MSG_NOTICE([Failed to find idna.h])
980 [my_with_libidn=0])])
984 AS_HELP_STRING([--with-libidn2=pathname],
985 [Support IDN (needs libidn2)]),
988 AS_IF([test x_$withval = x_yes],
989 [AC_CHECK_HEADERS([idn2.h],
990 AC_MSG_NOTICE([Found idn2.h]),
991 AC_CHECK_HEADERS([idn2/idn2.h],
992 AC_MSG_NOTICE([Found idn2/idn2.h]),
993 [AC_MSG_NOTICE([Failed to find idn2.h])
994 my_with_libidn2=0]))],
995 [AS_IF([test x_$withval != x_no],
996 [CFLAGS="$CFLAGS -I$withval/include"
997 LDFLAGS="$LDFLAGS -L$withval/lib"],
998 [my_with_libidn2=0])])
1000 AC_MSG_CHECKING([if libidn can be used])
1002 there_can_only_be_one=1
1006 AS_IF([test x$my_with_libidn2 = x1],
1007 [AC_MSG_NOTICE([Checking for libidn2])
1008 AC_CHECK_LIB([idn2],
1009 [idn2_to_unicode_8z8z],
1012 AC_DEFINE_UNQUOTED([HAVE_LIBIDN2],
1014 [Define to 1 if you have 'libidn2' (-lidn2).])],
1015 [MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
1016 MISSING_SEP=", "])])
1017 AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
1018 AS_IF([test x$working_libidn2 = x0],
1019 [AS_IF([test x$my_with_libidn = x1],
1020 [AC_MSG_NOTICE([Checking for libidn])
1025 AC_DEFINE_UNQUOTED([HAVE_LIBIDN],
1027 [Define to 1 if you have 'libidn' (-lidn).])],
1028 [there_can_only_be_one=0])],
1029 [AS_IF([test x$my_with_libidn2 = x1],
1030 [there_can_only_be_one=0
1031 AC_MSG_FAILURE([* There can only be one libidn.
1032 * Provide either libidn >= 1.13
1034 * libidn2 to the configure
1037 * --with-libidn])])])])
1038 AM_CONDITIONAL(HAVE_LIBIDN, test x$working_libidn1 = x1)
1040 AS_IF([test "$working_libidn1" = 0 -a "$working_libidn2" = 0],
1041 [AC_MSG_ERROR([GNUnet requires libidn (or libidn2)])])
1043 AS_IF([test x$there_can_only_be_one = x0],
1044 [AC_MSG_FAILURE([Missing dependencies: $MISSING_DEPS])])
1047 SAVE_LDFLAGS=$LDFLAGS
1048 SAVE_CPPFLAGS=$CPPFLAGS
1050 [ --with-zlib[[=DIR]] use libz in DIR],
1051 [AS_IF([test "$withval" = "no"],
1052 [AC_MSG_ERROR([GNUnet requires zlib])],
1053 [test "$withval" != "yes"],
1056 CPPFLAGS="${CPPFLAGS} -I$withval/include"
1057 LDFLAGS="${LDFLAGS} -L$withval/lib"
1060 AC_CHECK_HEADER(zlib.h,
1062 [AC_MSG_ERROR([GNUnet requires zlib])])
1063 AC_CHECK_LIB(z, compress2,
1065 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
1066 if test "x${Z_DIR}" != "x"; then
1067 Z_CFLAGS="-I${Z_DIR}/include"
1068 Z_LIBS="-L${Z_DIR}/lib -lz"
1072 [AC_MSG_ERROR([GNUnet requires zlib])])
1076 if test "$enable_shared" = "no"
1078 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
1092 # test for libunistring
1094 if test $HAVE_LIBUNISTRING != yes; then
1095 AC_MSG_ERROR([GNUnet requires libunistring])
1097 # under emscripten, $gl_libunistring_hexversion is undefined
1098 if test "$taler_only" != yes; then
1099 if test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305; then
1100 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
1103 AC_CHECK_HEADERS([unistr.h],,AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed]))
1110 # Checks for standard header files.
1114 # Check for headers that are ALWAYS required
1115 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: 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]))
1119 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
1120 AC_CHECK_HEADERS([stdatomic.h malloc.h malloc/malloc.h malloc/malloc_np.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 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 byteswap.h])
1122 # FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
1123 AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
1124 [#ifdef HAVE_SYS_TYPES_H
1125 #include <sys/types.h>
1127 #ifdef HAVE_NETINET_IN_SYSTM_H
1128 #include <netinet/in_systm.h>
1130 #ifdef HAVE_NETINET_IN_H
1131 #include <netinet/in.h>
1135 SAVE_LDFLAGS=$LDFLAGS
1136 SAVE_CPPFLAGS=$CPPFLAGS
1140 AC_MSG_CHECKING(for SQLite)
1142 [ --with-sqlite=PFX base of SQLite installation],
1143 [AC_MSG_RESULT("$with_sqlite")
1144 case $with_sqlite in
1148 AC_CHECK_HEADERS(sqlite3.h,
1152 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
1153 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
1154 AC_CHECK_HEADERS(sqlite3.h,
1155 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
1156 SQLITE_LDFLAGS="-L$with_sqlite/lib"
1157 SQLITE_CPPFLAGS="-I$with_sqlite/include"
1159 LDFLAGS=$SAVE_LDFLAGS
1160 CPPFLAGS=$SAVE_CPPFLAGS
1164 [AC_MSG_RESULT([--with-sqlite not specified])
1165 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
1166 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
1167 AC_SUBST(SQLITE_CPPFLAGS)
1168 AC_SUBST(SQLITE_LDFLAGS)
1170 LDFLAGS=$SAVE_LDFLAGS
1171 CPPFLAGS=$SAVE_CPPFLAGS
1175 # even running the check for postgres breaks emscripten ...
1176 AS_IF([test "$taler_only" != yes],
1177 [AX_LIB_POSTGRESQL([9.5],
1178 [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
1179 AC_CHECK_HEADERS([libpq-fe.h],
1182 [AC_MSG_RESULT([no postgres])])])
1183 AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
1186 LDFLAGS=$SAVE_LDFLAGS
1187 CPPFLAGS=$SAVE_CPPFLAGS
1190 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
1191 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
1193 if test "$build_target" = "mingw"
1195 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
1201 SAVE_LDFLAGS=$LDFLAGS
1202 SAVE_CPPFLAGS=$CPPFLAGS
1203 AC_MSG_CHECKING(for mysql)
1205 [ --with-mysql=PFX base of MySQL installation],
1206 [AC_MSG_RESULT([$with_mysql])
1211 AC_CHECK_HEADERS(mysql/mysql.h,
1212 AC_CHECK_LIB(mysqlclient, mysql_init,
1214 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1217 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
1218 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
1219 AC_CHECK_HEADERS(mysql/mysql.h,
1220 AC_CHECK_LIB(mysqlclient, mysql_init,
1221 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
1222 MYSQL_CPPFLAGS="-I$with_mysql/include"
1224 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1228 [AC_MSG_RESULT([--with-mysql not specified])
1229 if test -d "/usr/lib64/mysql"; then
1230 MYSQL_LIBDIR="/usr/lib64/mysql"
1231 elif test -d "/usr/lib/mysql"; then
1232 MYSQL_LIBDIR="/usr/lib/mysql"
1234 MYSQL_LIBDIR="/usr/lib"
1236 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
1237 AC_CHECK_LIB(mysqlclient, mysql_init,
1238 [AC_CHECK_HEADERS(mysql/mysql.h,
1239 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
1242 , [], [$CYGWIN_MYSQL_MAGIC])])
1245 AC_SUBST(MYSQL_LDFLAGS)
1246 AC_SUBST(MYSQL_CPPFLAGS)
1248 # additional version check for mysql
1249 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
1250 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
1252 AC_MSG_CHECKING(mysql version)
1253 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1254 [[$CYGWIN_MYSQL_MAGIC
1255 #include <mysql/mysql.h>]],
1257 #if (MYSQL_VERSION_ID < 40100)
1258 #error needs at least version >= 4.1
1260 int main () { return 0; }
1262 ],mysql=true,mysql=false)
1263 if test "$mysql" = "false"
1266 AC_MSG_RESULT([fail, >= 4.1 required])
1271 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
1272 AM_CONDITIONAL(HAVE_MYSQLE, false)
1275 LDFLAGS=$SAVE_LDFLAGS
1276 CPPFLAGS=$SAVE_CPPFLAGS
1278 if test "$sqlite" = 0 -a "$mysql" = 0
1280 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
1285 AC_MSG_CHECKING([for libmicrohttpd])
1286 AC_ARG_WITH(microhttpd,
1287 [ --with-microhttpd=PFX base of libmicrohttpd installation],
1288 [AC_MSG_RESULT([$with_microhttpd])
1289 case $with_microhttpd in
1293 AC_CHECK_HEADERS([microhttpd.h],
1294 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1295 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1296 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1297 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1298 #include "$native_srcdir/src/include/platform.h"
1299 #include <microhttpd.h>
1300 #if (MHD_VERSION < 0x0094200)
1301 #error needs at least version 0.9.42
1303 int main () { return 0; }
1307 [AC_MSG_RESULT(failed)])]),
1308 [],[#include "$native_srcdir/src/include/platform.h"
1309 #include <microhttpd.h>]),,
1310 [#include "$native_srcdir/src/include/platform.h"])
1313 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
1314 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
1315 AC_CHECK_HEADERS(microhttpd.h,
1316 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1317 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1318 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
1319 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1320 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1321 #include "$native_srcdir/src/include/platform.h"
1322 #include <microhttpd.h>
1323 #if (MHD_VERSION < 0x0094200)
1324 #error needs at least version 0.9.42
1326 int main () { return 0; }
1330 [AC_MSG_RESULT(failed)])]),
1331 [],[#include "$native_srcdir/src/include/platform.h"
1332 #include <microhttpd.h>]),,
1333 [#include "$native_srcdir/src/include/platform.h"])
1337 [AC_MSG_RESULT([--with-microhttpd not specified])
1338 AC_CHECK_HEADERS([microhttpd.h],
1339 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1340 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1341 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1342 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1343 #include "$native_srcdir/src/include/platform.h"
1344 #include <microhttpd.h>
1345 #if (MHD_VERSION < 0x0094200)
1346 #error needs at least version 0.9.52
1351 [AC_MSG_RESULT(failed)])]),
1352 [],[#include "$native_srcdir/src/include/platform.h"
1353 #include <microhttpd.h>]),,
1354 [#include "$native_srcdir/src/include/platform.h"])])
1355 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
1356 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
1358 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
1364 AM_GNU_GETTEXT([external])
1365 AM_GNU_GETTEXT_VERSION([0.18.1])
1367 # Checks for standard typedefs, structures, and compiler characteristics.
1376 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
1377 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
1381 #include <sys/types.h>
1382 #include <sys/socket.h>
1383 #include <netinet/in.h>
1386 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1387 [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?])
1391 #include <sys/types.h>
1392 #include <sys/socket.h>
1398 # Checks for library functions.
1399 AC_FUNC_CLOSEDIR_VOID
1401 AC_PROG_GCC_TRADITIONAL
1403 AC_FUNC_SELECT_ARGTYPES
1413 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 wait4])
1419 GN_LIBINTL="$LTLIBINTL"
1420 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
1421 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
1422 if test x$enable_framework_build = xyes
1424 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
1425 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
1426 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
1427 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
1430 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
1431 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
1433 AC_SUBST(GN_LIB_LDFLAGS)
1434 AC_SUBST(GN_PLUGIN_LDFLAGS)
1435 AC_SUBST(GN_INTLINCL)
1436 AC_SUBST(GN_LIBINTL)
1441 AC_SUBST(EXT_LIB_PATH)
1446 AC_SUBST(EXT_LIB_PATH)
1448 DATAROOTDIR=$datarootdir
1449 AC_SUBST(DATAROOTDIR)
1452 # TODO: do we need to change anything for "doas" on openbsd?
1453 AC_MSG_CHECKING(for sudo)
1455 [ --with-sudo=PATH path to sudo binary (or just yes)],
1456 [AC_MSG_RESULT("$with_sudo")
1465 SUDO_BINARY=$with_sudo
1469 [AC_MSG_RESULT([no])])
1470 AC_SUBST(SUDO_BINARY)
1471 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
1474 # test for gnunetdns group name
1475 GNUNETDNS_GROUP=gnunetdns
1476 AC_MSG_CHECKING(for gnunetdns group name)
1477 AC_ARG_WITH(gnunetdns,
1478 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1479 [AC_MSG_RESULT("$with_gnunetdns")
1480 case $with_gnunetdns in
1482 GNUNETDNS_GROUP=gnunet
1485 GNUNETDNS_GROUP=gnunetdns
1488 GNUNETDNS_GROUP=$with_gnunetdns
1492 [AC_MSG_RESULT([gnunetdns])])
1493 AC_SUBST(GNUNETDNS_GROUP)
1500 AC_MSG_CHECKING(for gnutls)
1502 [ --with-gnutls=PFX base of gnutls installation],
1503 [AC_MSG_RESULT([$with_gnutls])
1504 case $with_gnutls in
1508 AC_CHECK_HEADERS([gnutls/abstract.h],
1509 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1511 AC_CHECK_HEADERS([gnutls/dane.h],
1512 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1516 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1517 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1518 AC_CHECK_HEADERS([gnutls/abstract.h],
1519 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1520 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1522 AC_CHECK_HEADERS([gnutls/dane.h],
1523 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1528 [AC_MSG_RESULT([--with-gnutls not specified])
1529 AC_CHECK_HEADERS([gnutls/abstract.h],
1530 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1532 AC_CHECK_HEADERS([gnutls/dane.h],
1533 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1536 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1537 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1538 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1539 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1543 # Test if we are building for superMUC
1544 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1545 AC_ARG_ENABLE([supermuc],
1546 [AS_HELP_STRING([--enable-supermuc],
1547 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1548 [if test "x$enable_supermuc" = "xno"
1555 enable_supermuc=no])
1556 AC_MSG_RESULT($enable_SUPERMUC)
1557 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1558 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1560 # Check if NSE has to send timestamp information to testbed logger for
1561 # generating histogram of messages received
1562 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1563 AC_ARG_ENABLE([nse-histogram],
1564 [AS_HELP_STRING([--enable-nse-histogram],
1565 [have NSE send timestamp information to testbed logger for generating
1566 histogram of received messages. NOT useful for production (default is
1568 [if test "x$enableval" = "xno"
1575 enable_nse_histogram=no])
1576 AC_MSG_RESULT($enable_nse_histogram)
1577 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1578 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1579 [have NSE send timestamp information to testbed logger])
1581 # should 'make check' run tests?
1582 AC_MSG_CHECKING(whether to run tests)
1583 AC_ARG_ENABLE([testruns],
1584 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1585 [enable_tests_run=${enableval}],
1586 [enable_tests_run=yes])
1587 AC_MSG_RESULT($enable_test_run)
1588 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1591 AC_MSG_CHECKING([whether to compile in benchmarks (currently for http and crypto)])
1592 AC_ARG_ENABLE([benchmark],
1593 [AS_HELP_STRING([--enable-benchmark], [enable benchmarking])],
1594 [enable_benchmark=${enableval}],
1595 [enable_benchmark=no])
1596 AC_MSG_RESULT($enable_benchmark)
1597 AS_IF([test "x$enable_benchmark" = "xyes"],
1598 [AC_DEFINE_UNQUOTED(ENABLE_BENCHMARK,1,[Benchmarks are enabled])])
1599 AM_CONDITIONAL([ENABLE_BENCHMARK], [test "x$enable_benchmark" = "xyes"])
1602 # should expensive tests be run?
1603 AC_MSG_CHECKING(whether to run expensive tests)
1604 AC_ARG_ENABLE([expensivetests],
1605 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1606 [enable_expensive=${enableval}],
1607 [enable_expensive=no])
1608 AC_MSG_RESULT($enable_expensive)
1609 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1611 # should ports be open for Java services?
1612 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1613 AC_ARG_ENABLE([javaports],
1614 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1615 [enable_java_ports=${enableval}],
1616 [enable_java_ports=no])
1617 AC_MSG_RESULT($enable_java_ports)
1618 if test "x$enable_java_ports" = "xyes"
1622 JAVAPORT="$UNIXONLY"
1626 # should benchmarks be run?
1627 AC_MSG_CHECKING(whether to run benchmarks during make check)
1628 AC_ARG_ENABLE([benchmarks],
1629 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1630 [enable_benchmarks=${enableval}],
1631 [enable_benchmarks=no])
1632 AC_MSG_RESULT($enable_benchmarks)
1633 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1635 # should gnunet-testing be compiled
1636 AC_MSG_CHECKING(wether to compile gnunet-testing)
1637 AC_ARG_ENABLE([testing],
1638 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1639 [enable_testing=${enableval}],
1640 [enable_testing=yes])
1641 AC_MSG_RESULT($enable_testing)
1642 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1644 # should experimental code be compiled (code that may not yet compile)?
1645 AC_MSG_CHECKING(whether to compile experimental code)
1646 AC_ARG_ENABLE([experimental],
1647 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1648 [enable_experimental=${enableval}],
1649 [enable_experimental=no])
1650 AC_MSG_RESULT($enable_experimental)
1651 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1653 # should malicious code be compiled (should only be used for testing)?
1654 AC_MSG_CHECKING(whether to compile malicious code)
1655 AC_ARG_ENABLE([malicious],
1656 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
1657 [if test "x$enableval" = "xno"
1664 enable_malicious=no])
1665 AC_MSG_RESULT($enable_malicious)
1666 AM_CONDITIONAL([ENABLE_MALICIOUS], [test 1=$malicious])
1667 AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
1668 [enable compilation of malicious code])
1670 # should services be started on demand when needed? Some services may choose to
1671 # never start by default and it is up to the service/module developer to decide
1672 # by having "START_ON_DEMAND = NO" instead of "START_ON_DEMAND = @START_ON_DEMAND@"
1673 # in the service/module's conf.in file.
1674 # See also IMMEDIATE_START for an unconditional immediate start.
1675 START_ON_DEMAND="YES"
1676 AC_MSG_CHECKING(whether to start peer's services on demand by default)
1677 AC_ARG_ENABLE([autostart],
1678 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1679 [enable_autostart=${enableval}
1680 if test "x$enable_autostart" = "xno"
1682 START_ON_DEMAND="NO"
1685 [enable_autostart=yes])
1686 AC_MSG_RESULT($enable_autostart)
1687 #AM_CONDITIONAL([HAVE_START_ON_DEMAND], [test "x$enable_autostart" = "xyes"])
1688 AC_SUBST(START_ON_DEMAND)
1690 # should memory statistics be kept (very expensive CPU-wise!)
1691 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1692 AC_ARG_ENABLE([heapstats],
1693 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1694 [enable_heapstats=1],
1695 [enable_heapstats=0])
1696 AC_MSG_RESULT($enable_heapstats)
1697 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1699 # should code be enabled that works around missing OS functionality on Windows?
1700 # used for test cases
1701 if test $build_target = "mingw"
1707 [#include <ws2tcpip.h>
1709 int s = socket (0, 0, 0);])
1711 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1713 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1718 [#include <ws2tcpip.h>
1720 int s = select (0, NULL, NULL, NULL, NULL);])
1722 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1724 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1729 [#include <ws2tcpip.h>
1732 char *s = inet_ntoa (i);])
1734 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1736 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1741 [#include <ws2tcpip.h>
1743 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1745 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1747 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1752 [#include <ws2tcpip.h>
1754 int s = gethostname (NULL, 0);])
1756 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1758 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1763 [#include <ws2tcpip.h>
1765 void *s = gethostbyname (NULL);])
1767 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1769 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1774 [#include <ws2tcpip.h>
1776 void *s = gethostbyaddr (NULL, 0, 0);])
1778 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1780 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1785 [#include <ws2tcpip.h>
1787 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1789 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1791 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],0,[Define this if getaddrinfo() is available])
1795 AC_MSG_CHECKING(whether to enable windows workarounds)
1796 AC_ARG_ENABLE([windows_workarounds],
1797 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1798 [enable_workarounds=${enableval}],
1799 [enable_workarounds=no])
1800 AC_MSG_RESULT($enable_workarounds)
1801 if test x$enable_windows_workarounds = "xyes"
1808 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1811 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1812 AC_ARG_ENABLE([coverage],
1813 AS_HELP_STRING([--enable-coverage],
1814 [compile the library with code coverage support]),
1815 [use_gcov=${enableval}],
1817 AC_MSG_RESULT($use_gcov)
1818 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1822 # TODO: git blame says this predates our switch to git. git-svn should be adjusted to simply git, or
1823 # an external script that does the job.
1824 AC_PATH_PROG(svnversioncommand, svnversion)
1825 AC_PATH_PROG(gitcommand, git)
1826 AC_MSG_CHECKING(for source being under a VCS)
1830 AC_PATH_PROG(gitcommand, git)
1831 AC_MSG_CHECKING(for source being under a VCS)
1833 AS_IF([test ! "X$gitcommand" = "X"],
1835 git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null)
1837 AS_IF([test "X$git_version" = "X"],
1840 vcs_version="\"release\""
1843 vcs_name="yes, git-svn"
1844 vcs_version="\"git-$git_version\""
1846 AC_MSG_RESULT($vcs_name)
1848 AC_MSG_CHECKING(VCS version)
1849 AC_MSG_RESULT($vcs_version)
1850 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1856 contrib/scripts/Makefile
1857 contrib/scripts/gnunet-logread/Makefile
1860 doc/doxygen/Makefile
1861 doc/handbook/Makefile
1862 doc/tutorial/Makefile
1871 src/ats-tool/Makefile
1872 src/ats-tests/Makefile
1873 src/auction/Makefile
1876 src/cadet/cadet.conf
1879 src/consensus/Makefile
1880 src/consensus/consensus.conf
1881 src/conversation/Makefile
1882 src/conversation/conversation.conf
1884 src/datacache/Makefile
1885 src/datastore/Makefile
1886 src/datastore/datastore.conf
1892 src/fragmentation/Makefile
1897 src/gns/nss/Makefile
1898 src/gnsrecord/Makefile
1900 src/identity/Makefile
1901 src/identity/identity.conf
1902 src/credential/Makefile
1903 src/credential/credential.conf
1904 src/include/Makefile
1905 src/integration-tests/Makefile
1907 src/hostlist/Makefile
1910 src/namecache/Makefile
1911 src/namecache/namecache.conf
1912 src/namestore/Makefile
1913 src/namestore/namestore.conf
1916 src/nat-auto/Makefile
1917 src/nat-auto/nat-auto.conf
1921 src/peerinfo/Makefile
1922 src/peerinfo/peerinfo.conf
1923 src/peerinfo-tool/Makefile
1924 src/peerstore/Makefile
1925 src/peerstore/peerstore.conf
1929 src/regex/regex.conf
1930 src/revocation/Makefile
1931 src/revocation/revocation.conf
1934 src/secretsharing/Makefile
1935 src/secretsharing/secretsharing.conf
1936 src/scalarproduct/Makefile
1937 src/scalarproduct/scalarproduct.conf
1941 src/statistics/Makefile
1942 src/statistics/statistics.conf
1943 src/template/Makefile
1944 src/testbed/Makefile
1945 src/testbed/testbed.conf
1946 src/testbed-logger/Makefile
1947 src/testbed-logger/testbed-logger.conf
1948 src/testing/Makefile
1949 src/topology/Makefile
1950 src/transport/Makefile
1951 src/transport/transport.conf
1953 src/util/resolver.conf
1956 src/zonemaster/Makefile
1957 src/zonemaster/zonemaster.conf
1960 src/reclaim-attribute/Makefile
1961 src/reclaim/Makefile
1963 pkgconfig/gnunetarm.pc
1964 pkgconfig/gnunetats.pc
1965 pkgconfig/gnunetblock.pc
1966 pkgconfig/gnunetcadet.pc
1967 pkgconfig/gnunetconsensus.pc
1968 pkgconfig/gnunetconversation.pc
1969 pkgconfig/gnunetcore.pc
1970 pkgconfig/gnunetdatacache.pc
1971 pkgconfig/gnunetdatastore.pc
1972 pkgconfig/gnunetdht.pc
1973 pkgconfig/gnunetdns.pc
1974 pkgconfig/gnunetenv.pc
1975 pkgconfig/gnunetfragmentation.pc
1976 pkgconfig/gnunetfs.pc
1977 pkgconfig/gnunetgns.pc
1978 pkgconfig/gnunethello.pc
1979 pkgconfig/gnunetidentity.pc
1980 pkgconfig/gnunetmicrophone.pc
1981 pkgconfig/gnunetmysql.pc
1982 pkgconfig/gnunetnamestore.pc
1983 pkgconfig/gnunetnat.pc
1984 pkgconfig/gnunetnse.pc
1985 pkgconfig/gnunetpeerinfo.pc
1986 pkgconfig/gnunetpq.pc
1987 pkgconfig/gnunetregex.pc
1988 pkgconfig/gnunetrevocation.pc
1989 pkgconfig/gnunetrps.pc
1990 pkgconfig/gnunetscalarproduct.pc
1991 pkgconfig/gnunetset.pc
1992 pkgconfig/gnunetspeaker.pc
1993 pkgconfig/gnunetstatistics.pc
1994 pkgconfig/gnunettestbed.pc
1995 pkgconfig/gnunettesting.pc
1996 pkgconfig/gnunettransport.pc
1997 pkgconfig/gnunetutil.pc
1998 pkgconfig/gnunetvpn.pc
2004 # warn user if mysql found but not used due to version
2005 AS_IF([test "$mysqlfail" = "true"]
2006 [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
2009 AS_IF([test "x$sqlite" = "x0"],
2010 [AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])])
2013 AS_IF([test "$gnurl" = "0"],
2014 [AS_IF([test "x$curl" = "xfalse"],
2015 [AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.])
2016 AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])],
2017 [AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])])])
2020 AS_IF([test "x$bluetooth" = "x0"],
2021 [AC_MSG_NOTICE([WARNING: optional bluetooth library not found.])])
2025 AS_IF([test "x$jansson" = "x0"],
2026 [AC_MSG_NOTICE([WARNING: optional jansson library not found.])])
2029 # FIXME: `some modules' -> be more specific which exact modules.
2032 # warn user if iptables is not found
2033 AS_IF([test "$VAR_IPTABLES_BINARY" = "false"],
2034 [AC_MSG_NOTICE([WARNING: optional iptables not found])])
2036 # warn user if ifconfig is not found
2037 AS_IF([test "$VAR_IFCONFIG_BINARY" = "false"],
2038 [AC_MSG_NOTICE([WARNING: optional ifconfig not found])])
2040 # warn user if upnpc binary is not found
2041 AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
2042 [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])])
2045 AS_IF([test x$gnutls != xtrue],
2046 [AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built])],
2047 [AS_IF([test "x$gnutls_dane" != "x1"],
2048 [AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible])])])
2050 # warn user if libzbar is not found
2051 AS_IF([test "$have_zbar" = 0],
2052 [AC_MSG_NOTICE([WARNING: zbar not found, gnunet-qr will not be built.])])
2055 AS_IF([test "x$enable_java_ports" = "xyes"],
2056 [AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.])])
2059 AS_IF([test "x$lmhd" != "x1"],
2060 [AC_MSG_NOTICE([WARNING: optional libmicrohttpd not found])])
2063 AS_IF([test "x$conversation_backend" = "xnone"],
2064 [AS_IF([test "x$pulse" != "x1"],
2065 [AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.])])
2066 AS_IF([test "x$opus" != "x1"],
2067 [AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.])])
2068 AS_IF([test "x$gst" != "x1"],
2069 [AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.])])])
2071 AS_IF([test "$extractor" != 1],
2072 [AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it])])
2074 AS_IF([test "x$working_libidn2" = x1],
2075 [AC_MSG_NOTICE([INFO: Using libidn2])])
2076 AS_IF([test "x$working_libidn1" = x1],
2077 [AC_MSG_NOTICE([INFO: Using libidn1])])
2079 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
2081 AS_IF([test "$enable_framework_build" = "yes"],
2082 [AC_MSG_NOTICE([Mac OS X framework build enabled.])])
2084 AC_MSG_NOTICE([********************************************
2085 Please make sure NOW that you have created a user and group 'gnunet'
2086 and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux, type:
2088 adduser --system --group --disabled-login --home /var/lib/gnunet gnunet
2090 Make sure that '/var/lib/gnunet' is owned (and writable) by user
2091 'gnunet'. Then, you can compile GNUnet with
2094 After that, run (if necessary as 'root')
2096 to install everything.
2098 Each GNUnet user should be added to the 'gnunet' group (may
2099 require fresh login to come into effect):
2100 adduser USERNAME gnunet
2101 (run the above command as root once for each of your users, replacing
2102 "USERNAME" with the respective login names). If you have a global IP
2103 address, no further configuration is required.
2105 For more detailed setup instructions, see https://docs.gnunet.org/
2107 Optionally, download and compile gnunet-gtk to get a GUI for
2108 file-sharing and configuration. This is particularly recommended
2109 if your network setup is non-trivial, as gnunet-setup can be
2110 used to test in the GUI if your network configuration is working.
2111 gnunet-setup should be run as the "gnunet" user under X. As it
2112 does very little with the network, running it as "root" is likely
2113 also harmless. You can also run it as a normal user, but then
2114 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
2115 home directory in the end.
2117 Once you have configured your peer, run (as the 'gnunet' user)
2119 to start the peer. You can then run the various GNUnet-tools as
2120 your "normal" user (who should only be in the group 'gnunet').
2121 ********************************************])