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.1], [bug-gnunet@gnu.org])
25 AC_CONFIG_AUX_DIR([build-aux])
31 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
32 AC_CONFIG_HEADERS([gnunet_config.h])
33 AH_TOP([#define _GNU_SOURCE 1])
34 AC_CONFIG_MACRO_DIR([m4])
44 LT_INIT([disable-static dlopen win32-dll])
52 CFLAGS="-Wall $CFLAGS"
53 LDFLAGS="$LDFLAGS -Wl,--unresolved-symbols=report-all"
54 # use '-fno-strict-aliasing', but only if the compiler can take it
55 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
57 CFLAGS="-fno-strict-aliasing $CFLAGS"
60 # Use Linux interface name unless the OS has a different preference
61 DEFAULT_INTERFACE="\"eth0\""
63 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo getaddrinfo_a"
65 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
70 *darwin* | *rhapsody* | *macosx*)
71 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
72 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
73 CFLAGS="-fno-common $CFLAGS"
74 AC_MSG_WARN([WARNING: The VPN application cannot be compiled on your OS])
75 AC_CHECK_LIB(intl, gettext)
77 DEFAULT_INTERFACE="\"en0\""
83 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
91 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
92 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
93 CFLAGS="-D_THREAD_SAFE $CFLAGS"
94 build_target="freebsd"
100 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
101 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
102 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
103 build_target="openbsd"
109 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
110 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
116 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
117 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
118 AC_CHECK_LIB(resolv, res_init)
119 AC_CHECK_LIB(rt, nanosleep)
120 build_target="solaris"
126 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
127 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
134 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
135 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
136 AC_CHECK_LIB(intl, gettext)
137 CFLAGS="-mms-bitfields $CFLAGS"
138 build_target="cygwin"
145 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
146 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
147 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
148 AC_CHECK_LIB(intl, gettext)
149 LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
150 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
151 CFLAGS="-mms-bitfields $CFLAGS"
152 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
159 native_srcdir=$(cd $srcdir; pwd -W)
162 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
167 AC_MSG_RESULT(Unrecognised OS $host_os)
168 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
172 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
173 AC_SUBST(DEFAULT_INTERFACE)
175 # Disable TCP-based IPC on systems that support UNIX domain
176 # sockets in default configuratin:
180 AC_MSG_CHECKING([for build target])
181 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
182 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
183 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
184 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
185 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
186 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
187 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
188 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
190 AC_MSG_RESULT([$build_target])
191 AC_SUBST(build_target)
192 AM_CONDITIONAL([am__fastdepOBJC], false)
193 AC_UNALIGNED_64_ACCESS
195 # some other checks for standard libs
196 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
197 AC_SEARCH_LIBS([memrchr], [],
198 AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]), [])
199 AC_CHECK_LIB(socket, socket)
201 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
203 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
204 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
206 AC_CHECK_PROG(VAR_SSH_BINARY, ssh, true, false)
207 AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
208 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)
209 rm -f /tmp/gnunet_test_cosks_ssh_garbage
211 # autotools' m4 for python has no maximum version!
212 # python3.4 - python3.7 for tests
213 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python3 python3.4 python3.5 python3.6 python3.7 python])
214 AM_PATH_PYTHON([3.4],, [:])
216 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
219 AC_PATH_PROG( PERL, perl, ,
220 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
223 # iptables is a soft requirement to run tests
224 AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
226 if test x"$VAR_IPTABLES_BINARY" = x"false"
228 if test -x "/sbin/iptables"
230 VAR_IPTABLES_BINARY="/sbin/iptables"
231 elif test -x "/usr/sbin/iptables"
233 VAR_IPTABLES_BINARY="/usr/sbin/iptables"
237 if test x"$VAR_IPTABLES_BINARY" != x"false"
239 AC_DEFINE_UNQUOTED([IPTABLES], "$VAR_IPTABLES_BINARY", [Path to iptables])
241 AC_MSG_WARN([warning: 'iptables' not found.])
244 AC_PATH_TARGET_TOOL(VAR_IFCONFIG_BINARY, ifconfig, false)
246 AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false)
247 if test x"$VAR_IFCONFIG_BINARY" = x"false"
249 if test -x "/sbin/ifconfig"
251 VAR_IFCONFIG_BINARY="/sbin/ifconfig"
252 elif test -x "/usr/sbin/ifconfig"
254 VAR_IFCONFIG_BINARY="/usr/sbin/ifconfig"
257 if test x"$VAR_IFCONFIG_BINARY" != x"false"
259 AC_DEFINE_UNQUOTED([IFCONFIG], "$VAR_IFCONFIG_BINARY", [Path to ifconfig])
261 AC_MSG_WARN(['ifconfig' not found.])
264 # miniupnpc / upnpc binary is a soft runtime requirement
265 AC_PATH_TARGET_TOOL(VAR_UPNPC_BINARY, upnpc, false)
267 if test x"$VAR_UPNPC_BINARY" != x"false"
269 AC_DEFINE_UNQUOTED([UPNPC], "$VAR_UPNPC_BINARY", [Path to upnpc binary])
271 AC_MSG_WARN([warning: 'upnpc' binary not found.])
274 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
275 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
276 [Define if struct tm has the tm_gmtoff member.])],
280 AC_CHECK_DECLS([_stati64])
282 # 'save' libs; only those libs found so far will be
283 # linked against _everywhere_. For the others, we
284 # will be more selective!
288 AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
289 AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
292 # tests only run on Windows
293 if test "x$build_target" = "xmingw"
295 AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
296 AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
302 NEED_LIBGCRYPT_VERSION=1.6.0
305 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
306 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
312 *** You need libgcrypt to build this program.
313 ** This library is for example available at
314 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
315 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
319 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
321 AC_CHECK_DECLS([struct in6_ifreq], [], [], [[#include <linux/if_tun.h>]])
325 # should the build process be building the documentation?
326 AC_MSG_CHECKING(whether to build documentation)
327 AC_ARG_ENABLE([documentation],
328 [AS_HELP_STRING([--disable-documentation], [do not build the documentation])],
329 [documentation=${enableval}],
331 AC_MSG_RESULT($documentation)
332 if test "x$documentation" = "xyes"
334 AM_CONDITIONAL([DOCUMENTATION],true)
335 AC_DEFINE([DOCUMENTATION],[1],[Building the documentation])
337 AM_CONDITIONAL([DOCUMENTATION],false)
338 AC_DEFINE([DOCUMENTATION],[0],[Not building the documentation])
341 # FIXME: Something is wrong about this in the output of ./configure runs
342 AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
343 AC_ARG_ENABLE([texi2mdoc-generation],
344 [AS_HELP_STRING([--enable-texi2mdoc-generation], [include generated texi2mdoc output in installation])],
345 [texi2mdoc_generation=${enableval}],
346 [texi2mdoc_generation=no])
347 AC_MSG_RESULT($texi2mdoc_generation)
348 if test "x$texi2mdoc_generation" = "xyes"
350 if test "$texi2mdoc" = 0
352 AC_MSG_WARN([ERROR: mdoc output currently requires texi2mdoc.])
353 AC_MSG_WARN([ERROR: texi2mdoc can be obtained via your Operating System])
354 AC_MSG_WARN([ERROR: package manager or from https://mandoc.bsd.lv/texi2mdoc/])
356 AM_CONDITIONAL([TEXI2MDOC_GENERATION],true)
357 AC_DEFINE([TEXI2MDOC_GENERATION],[1],[Building section 7 mdoc output])
360 AM_CONDITIONAL([TEXI2MDOC_GENERATION],false)
361 AC_DEFINE([TEXI2MDOC_GENERATION],[0],[Not building section 7 mdoc output])
364 # should the build process be building only the documentation?
365 AC_MSG_CHECKING(whether to build only documentation)
366 AC_ARG_ENABLE([documentation-only],
367 [AS_HELP_STRING([--enable-documentation-only], [build only the documentation])],
368 [documentation_only=${enableval}],
369 [documentation_only=no])
370 AC_MSG_RESULT($documentation_only)
371 if test "x$documentation_only" = "xyes"
373 AM_CONDITIONAL([DOCUMENTATION_ONLY],true)
374 AC_DEFINE([DOCUMENTATION_ONLY],[1],[Building only the documentation])
376 AM_CONDITIONAL([DOCUMENTATION_ONLY],false)
377 AC_DEFINE([DOCUMENTATION_ONLY],[0],[Not building only the documentation])
380 # should the build process be including the manpages? (default: yes)
381 AC_MSG_CHECKING(whether to include man pages)
382 AC_ARG_ENABLE([include-manpages],
383 [AS_HELP_STRING([--disable-include-manpages], [Do not include the man pages in build and installation])],
384 [include_manpages=${enableval}],
385 [include_manpages=yes])
386 AC_MSG_RESULT($include_manpages)
387 if test "x$include_manpages" = "xyes"
389 AM_CONDITIONAL([INCLUDE_MANPAGES],true)
390 AC_DEFINE([INCLUDE_MANPAGES],[1],[Including the man pages in the build and installation])
392 AM_CONDITIONAL([INCLUDE_MANPAGES],false)
393 AC_DEFINE([INCLUDE_MANPAGES],[0],[Not including the man pages in the build and installation])
396 # Adam shostack suggests the following for Windows:
397 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
398 AC_ARG_ENABLE(gcc-hardening,
399 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
400 [if test x$enableval = xyes; then
401 CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
402 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
403 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
404 LDFLAGS="$LDFLAGS -pie"
407 # Linker hardening options
408 # Currently these options are ELF specific - you can't use this with MacOSX
409 AC_ARG_ENABLE(linker-hardening,
410 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
411 [if test x$enableval = xyes; then
412 LDFLAGS="$LDFLAGS -z relro -z now"
416 AC_ARG_ENABLE(sanitizer,
417 AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer),
418 [if test x$enableval = xyes; then
419 LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer"
423 extra_logging=GNUNET_NO
424 AC_ARG_ENABLE([logging],
425 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
426 [AS_IF([test "x$enableval" = "xyes"], [],
427 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
428 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
429 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
431 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
433 # should memory poisoning be enabled?
434 AC_MSG_CHECKING(whether to poison freed memory)
435 AC_ARG_ENABLE([poisoning],
436 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
437 [enable_poisoning=${enableval}],
439 if test "x$extra_logging" != "xGNUNET_NO"; then
440 enable_poisoning="defaults to yes (extra logging is enabled)"
445 AC_MSG_RESULT($enable_poisoning)
446 if test ! "x$enable_poisoning" = "xno"; then
451 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
453 if test $build = $target
455 AC_MSG_CHECKING([for working HMAC])
457 LIBS="$LIBS $LIBGCRYPT_LIBS"
458 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
460 [AC_LANG_PROGRAM([#include <gcrypt.h>
461 #include <stdio.h>], [[
464 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
465 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
466 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
467 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
468 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
469 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
470 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
471 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
472 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
473 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
475 if (!gcry_check_version (GCRYPT_VERSION))
477 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
481 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
482 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
484 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
486 fprintf (stderr, "gcry_md_open error\n");
490 gcry_md_setkey (mac, key, sizeof (key));
491 gcry_md_write (mac, data, sizeof (data));
493 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
495 fprintf (stderr, "memcmp error\n");
503 [AC_MSG_RESULT([yes])],
508 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.])
512 AC_MSG_FAILURE([HMAC test failed])
516 AC_MSG_FAILURE([libgcrypt header version does not match library version])
519 [AC_MSG_RESULT([cross compiling, test skipped])])
521 fi # $build = $target
523 # check for bluetooth library
525 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
526 if test "$build_target" = "mingw"
530 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, [test "$bluetooth" = 1])
531 if test "$bluetooth" = 1
533 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
535 AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])
538 # check for zbar library
540 AC_MSG_CHECKING(for libzbar)
542 [ --with-zbar=PFX base of libzbar installation],
543 [AC_MSG_RESULT([$with_zbar])
548 AC_CHECK_HEADERS(zbar.h,
549 AC_CHECK_LIB([zbar], [zbar_processor_create],
553 LDFLAGS="-L$with_zbar/lib $LDFLAGS"
554 CPPFLAGS="-I$with_zbar/include $CPPFLAGS"
555 AC_CHECK_HEADERS(zbar.h,
556 AC_CHECK_LIB([zbar], [zbar_processor_create],
557 EXT_LIB_PATH="-L$with_zbar/lib $EXT_LIB_PATH"
562 [AC_MSG_RESULT([--with-zbar not specified])
563 AC_CHECK_HEADERS(zbar.h,
564 AC_CHECK_LIB([zbar], [zbar_processor_create],
566 AM_CONDITIONAL(HAVE_ZBAR, [test "$zbar" = 1])
567 AS_IF([test "x$zbar" = x1],
568 [AC_DEFINE([HAVE_ZBAR],[1],[Have zbar library])],
569 [AC_DEFINE([HAVE_ZBAR],[0],[Lacking zbar library])])
571 # check for jansson library
573 AC_MSG_CHECKING(for libjansson)
575 [ --with-jansson=PFX base of libjansson installation],
576 [AC_MSG_RESULT([$with_jansson])
577 case $with_jansson in
581 AC_CHECK_HEADERS(jansson.h,
582 AC_CHECK_LIB([jansson], [json_loads],
586 LDFLAGS="-L$with_jansson/lib $LDFLAGS"
587 CPPFLAGS="-I$with_jansson/include $CPPFLAGS"
588 AC_CHECK_HEADERS(jansson.h,
589 AC_CHECK_LIB([jansson], [json_loads],
590 EXT_LIB_PATH="-L$with_jansson/lib $EXT_LIB_PATH"
595 [AC_MSG_RESULT([--with-jansson not specified])
596 AC_CHECK_HEADERS(jansson.h,
597 AC_CHECK_LIB([jansson], [json_loads],
599 AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
600 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
601 AS_IF([test "x$jansson" = x1],
602 [AC_DEFINE([HAVE_JANSSON],[1],[Have jansson library])],
603 [AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])])
606 # check for libpulse(audio) library
608 AC_CHECK_LIB(pulse,pa_stream_peek,
609 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
610 AS_IF([test "$build_target" = "mingw"],
612 AS_IF([test "$pulse" = 1],
613 [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])])
615 # check for libopus(audio) library
617 AC_CHECK_LIB(opus,opus_decode_float,
618 [AC_CHECK_HEADER([opus/opus.h],
619 [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
623 AS_IF([test "x$opus" = x1],
624 [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])])
627 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
628 [AC_CHECK_HEADERS([ogg/ogg.h],
629 AM_CONDITIONAL(HAVE_OGG, true)
631 AC_DEFINE(HAVE_OGG,1,[Have ogg]),
632 AM_CONDITIONAL(HAVE_OGG, false)
634 AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
635 AM_CONDITIONAL(HAVE_OGG, false)
639 PKG_CHECK_MODULES([GLIB],
641 [# check for pbc library
643 AC_CHECK_HEADER([pbc/pbc.h],pbc=1)
644 AC_CHECK_HEADER([gabe.h],abe=1)
645 AM_CONDITIONAL(HAVE_PBC, [test "x$pbc" = x1])
646 AM_CONDITIONAL(HAVE_ABE, [test "x$abe" = x1])
647 AS_IF([test "x$pbc" = x1],
648 [AC_DEFINE([HAVE_PBC],[1],[Have pbc library])],
649 [AC_DEFINE([HAVE_PBC],[0],[Lacking pbc library])])
650 AS_IF([test "x$abe" = x1],
651 [AC_DEFINE([HAVE_ABE],[1],[Have ABE library])],
652 [AC_DEFINE([HAVE_ABE],[0],[Lacking ABE library])])],
654 AM_CONDITIONAL(HAVE_PBC, [false])
655 AM_CONDITIONAL(HAVE_ABE, [false])
656 AC_DEFINE([HAVE_PBC],[0],[Lacking glib library])])
661 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
666 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
668 if test "x$gst" != "x1"
670 conversation_backend=none
671 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
672 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
673 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
675 conversation_backend=gst
676 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
677 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
678 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
682 conversation_backend=pulse
683 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
684 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
685 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
689 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
692 AM_CONDITIONAL(HAVE_LIBGNURL, true)
693 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
695 AM_CONDITIONAL(HAVE_LIBGNURL, false)
696 AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
699 SAVE_CPPFLAGS=$CPPFLAGS
700 CPPFLAGS="$LIBGNURL_CPPFLAGS $LIBCURL_CPPFLAGS $CPPFLAGS"
701 LIBS="$LIBGNURL $LIBCURL $LIBS"
704 LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
705 if test "x$curl" = xtrue
708 AC_CHECK_HEADERS([curl/curl.h],
709 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
711 AC_CHECK_HEADERS([gnurl/curl.h],
712 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],,[[#include <gnurl/curl.h>]]))
713 # need libcurl-gnutls.so, everything else is not acceptable
714 AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
715 # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
718 # Check for curl/curl.h and gnurl/curl.h so we can use #ifdef
719 # HAVE_CURL_CURL_H later (the above LIBCURL_CHECK_CONFIG accepted
720 # *either* header set).
721 AC_CHECK_HEADERS([curl/curl.h],,
723 AC_CHECK_HEADERS([gnurl/curl.h],,
728 if test x$curl = xfalse
730 AM_CONDITIONAL(HAVE_LIBCURL, false)
733 AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34])
736 AM_CONDITIONAL(HAVE_LIBCURL, true)
737 AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
740 AC_SEARCH_LIBS(__atomic_load_8, atomic, [have_libatomic=1 AC_DEFINE(HAVE_LIBATOMIC,1,[external libatomic])])
741 AM_CONDITIONAL(HAVE_LIBATOMIC, [test "$have_libatomic" = 1])
743 # restore LIBS & CPPFLAGS
745 CPPFLAGS=$SAVE_CPPFLAGS
747 AC_CHECK_HEADERS([glpk.h],[glpk=true],[glpk=false])
748 # GLPK must support glpk_init_env, version >= 4.43
749 AC_CHECK_LIB([glpk],[glp_init_env],,[glpk=false])
750 # GLPK must support atm MLP presolving, version >= 4.32
751 AC_CHECK_MEMBERS(glp_iocp.presolve,,[glpk=false],[[#include <glpk.h>]])
752 if test "x$glpk" = xfalse
754 AM_CONDITIONAL(HAVE_LIBGLPK, false)
755 AC_MSG_WARN([ERROR: GNUnet requires GLPK >= 4.32])
757 AM_CONDITIONAL(HAVE_LIBGLPK, true)
758 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
762 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
763 if test x$nss = xfalse
765 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
766 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
771 AC_CHECK_DECL([NSS_STATUS_UNAVAIL],
772 [AM_CONDITIONAL(HAVE_GLIBCNSS, true)],
773 [AM_CONDITIONAL(HAVE_GLIBCNSS, false)
774 AC_MSG_WARN([No nss header fails to define NSS_STATUS_UNAVAIl, will not build NSS plugin])],
780 # test for kvm and kstat (for CPU stats under BSD/Solaris)
781 AC_CHECK_LIB([kvm],[kvm_open])
782 AC_CHECK_LIB([kstat],[kstat_open])
785 # should the build process be restricted to the code required
786 # for GNU Taler wallets?
787 AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
788 AC_ARG_ENABLE([taler-wallet],
789 [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
790 [taler_only=${enableval}],
792 AC_MSG_RESULT($taler_only)
793 if test "x$taler_only" = "xyes"
795 AM_CONDITIONAL([TALER_ONLY],true)
796 AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet])
798 AM_CONDITIONAL([TALER_ONLY],false)
799 AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation])
802 # test for libextractor
804 AC_MSG_CHECKING(for libextractor)
805 AC_ARG_WITH(extractor,
806 [ --with-extractor=PFX base of libextractor installation],
807 [AC_MSG_RESULT([$with_extractor])
808 case $with_extractor in
812 AC_CHECK_HEADERS([extractor.h],
813 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
817 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
818 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
819 AC_CHECK_HEADERS([extractor.h],
820 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
821 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
826 [AC_MSG_RESULT([--with-extractor not specified])
827 AC_CHECK_HEADERS([extractor.h],
828 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
833 if test "$extractor" != 1
835 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, false)
836 AC_DEFINE([HAVE_LIBEXTRACTOR],[0],[Lacking libextractor])
838 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, true)
839 AC_DEFINE([HAVE_LIBEXTRACTOR],[1],[Have libextractor])
843 if test "$taler_only" != yes
846 # Check for libltdl header (#2999)
848 AC_MSG_CHECKING(for libltdl)
850 [ --with-ltdl=PFX base of libltdl installation],
851 [AC_MSG_RESULT([$with_ltdl])
856 AC_CHECK_HEADERS(ltdl.h,
857 AC_CHECK_LIB([ltdl], [lt_dlopenext],
861 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
862 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
863 AC_CHECK_HEADERS(ltdl.h,
864 AC_CHECK_LIB([ltdl], [lt_dlopenext],
865 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
870 [AC_MSG_RESULT([--with-ltdl not specified])
871 AC_CHECK_HEADERS(ltdl.h,
872 AC_CHECK_LIB([ltdl], [lt_dlopenext],
876 AC_MSG_RESULT([libltdl found])
878 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
883 # libidn and libidn2. The ideal goal is this:
884 # check for libidn2, if it doesn't exist check for libidn
885 # if both exist, prefer libidn2
886 # if none exist, fail and message that libidn or libidn2
887 # is required with a preference for libidn2.
888 # TODO: What we have right here can probably be improved.
891 AS_HELP_STRING([--with-libidn=pathname],
892 [Support IDN (needs libidn)]),
895 AS_IF([test x_$withval = x_yes],
896 [AC_CHECK_HEADERS([idna.h],
897 AC_MSG_NOTICE([Found idna.h]),
898 AC_CHECK_HEADERS([idn/idna.h],
899 AC_MSG_NOTICE([Found idn/idna.h]),
901 [AS_IF([test x_$withval != x_no],
902 [CFLAGS="$CFLAGS -I$withval/include"
903 LDFLAGS="$LDFLAGS -L$withval/lib"
904 AC_CHECK_HEADERS([idna.h],
905 AC_MSG_NOTICE([Found idna.h]),
906 [AC_MSG_NOTICE([Failed to find idna.h])
908 [my_with_libidn=0])])
912 AS_HELP_STRING([--with-libidn2=pathname],
913 [Support IDN (needs libidn2)]),
916 AS_IF([test x_$withval = x_yes],
917 [AC_CHECK_HEADERS([idn2.h],
918 AC_MSG_NOTICE([Found idn2.h]),
919 AC_CHECK_HEADERS([idn2/idn2.h],
920 AC_MSG_NOTICE([Found idn2/idn2.h]),
921 [AC_MSG_NOTICE([Failed to find idn2.h])
922 my_with_libidn2=0]))],
923 [AS_IF([test x_$withval != x_no],
924 [CFLAGS="$CFLAGS -I$withval/include"
925 LDFLAGS="$LDFLAGS -L$withval/lib"],
926 [my_with_libidn2=0])])
928 AC_MSG_CHECKING([if libidn can be used])
930 there_can_only_be_one=1
934 AS_IF([test x$my_with_libidn2 = x1],
935 [AC_MSG_NOTICE([Checking for libidn2])
937 [idn2_to_unicode_8z8z],
940 AC_DEFINE_UNQUOTED([HAVE_LIBIDN2],
942 [Define to 1 if you have 'libidn2' (-lidn2).])],
943 [MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
945 AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
946 AS_IF([test x$working_libidn2 = x0],
947 [AS_IF([test x$my_with_libidn = x1],
948 [AC_MSG_NOTICE([Checking for libidn])
953 AC_DEFINE_UNQUOTED([HAVE_LIBIDN],
955 [Define to 1 if you have 'libidn' (-lidn).])],
956 [there_can_only_be_one=0])],
957 [AS_IF([test x$my_with_libidn2 = x1],
958 [there_can_only_be_one=0
959 AC_MSG_FAILURE([* There can only be one libidn.
960 * Provide either libidn >= 1.13
962 * libidn2 to the configure
965 * --with-libidn])])])])
966 AM_CONDITIONAL(HAVE_LIBIDN, test x$working_libidn1 = x1)
968 AS_IF([test "$working_libidn1" = 0 -a "$working_libidn2" = 0],
969 [AC_MSG_ERROR([GNUnet requires libidn (or libidn2)])])
971 AS_IF([test x$there_can_only_be_one = x0],
972 [AC_MSG_FAILURE([Missing dependencies: $MISSING_DEPS])])
975 SAVE_LDFLAGS=$LDFLAGS
976 SAVE_CPPFLAGS=$CPPFLAGS
978 [ --with-zlib[[=DIR]] use libz in DIR],
979 [AS_IF([test "$withval" = "no"],
980 [AC_MSG_ERROR([GNUnet requires zlib])],
981 [test "$withval" != "yes"],
984 CPPFLAGS="${CPPFLAGS} -I$withval/include"
985 LDFLAGS="${LDFLAGS} -L$withval/lib"
988 AC_CHECK_HEADER(zlib.h,
990 [AC_MSG_ERROR([GNUnet requires zlib])])
991 AC_CHECK_LIB(z, compress2,
993 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
994 if test "x${Z_DIR}" != "x"; then
995 Z_CFLAGS="-I${Z_DIR}/include"
996 Z_LIBS="-L${Z_DIR}/lib -lz"
1000 [AC_MSG_ERROR([GNUnet requires zlib])])
1004 if test "$enable_shared" = "no"
1006 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
1020 # test for libunistring
1022 if test $HAVE_LIBUNISTRING != yes; then
1023 AC_MSG_ERROR([GNUnet requires libunistring])
1025 # under emscripten, $gl_libunistring_hexversion is undefined
1026 if test "$taler_only" != yes; then
1027 if test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305; then
1028 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
1031 AC_CHECK_HEADERS([unistr.h],,AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed]))
1038 # Checks for standard header files.
1042 # Check for headers that are ALWAYS required
1043 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]))
1047 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
1048 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])
1050 # FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
1051 AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
1052 [#ifdef HAVE_SYS_TYPES_H
1053 #include <sys/types.h>
1055 #ifdef HAVE_NETINET_IN_SYSTM_H
1056 #include <netinet/in_systm.h>
1058 #ifdef HAVE_NETINET_IN_H
1059 #include <netinet/in.h>
1063 SAVE_LDFLAGS=$LDFLAGS
1064 SAVE_CPPFLAGS=$CPPFLAGS
1068 AC_MSG_CHECKING(for SQLite)
1070 [ --with-sqlite=PFX base of SQLite installation],
1071 [AC_MSG_RESULT("$with_sqlite")
1072 case $with_sqlite in
1076 AC_CHECK_HEADERS(sqlite3.h,
1080 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
1081 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
1082 AC_CHECK_HEADERS(sqlite3.h,
1083 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
1084 SQLITE_LDFLAGS="-L$with_sqlite/lib"
1085 SQLITE_CPPFLAGS="-I$with_sqlite/include"
1087 LDFLAGS=$SAVE_LDFLAGS
1088 CPPFLAGS=$SAVE_CPPFLAGS
1092 [AC_MSG_RESULT([--with-sqlite not specified])
1093 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
1094 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
1095 AC_SUBST(SQLITE_CPPFLAGS)
1096 AC_SUBST(SQLITE_LDFLAGS)
1098 LDFLAGS=$SAVE_LDFLAGS
1099 CPPFLAGS=$SAVE_CPPFLAGS
1103 # even running the check for postgres breaks emscripten ...
1104 AS_IF([test "$taler_only" != yes],
1105 [AX_LIB_POSTGRESQL([9.5],
1106 [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
1107 AC_CHECK_HEADERS([libpq-fe.h],
1110 [AC_MSG_RESULT([no postgres])])])
1111 AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
1114 LDFLAGS=$SAVE_LDFLAGS
1115 CPPFLAGS=$SAVE_CPPFLAGS
1118 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
1119 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
1121 if test "$build_target" = "mingw"
1123 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
1129 SAVE_LDFLAGS=$LDFLAGS
1130 SAVE_CPPFLAGS=$CPPFLAGS
1131 AC_MSG_CHECKING(for mysql)
1133 [ --with-mysql=PFX base of MySQL installation],
1134 [AC_MSG_RESULT([$with_mysql])
1139 AC_CHECK_HEADERS(mysql/mysql.h,
1140 AC_CHECK_LIB(mysqlclient, mysql_init,
1142 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1145 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
1146 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
1147 AC_CHECK_HEADERS(mysql/mysql.h,
1148 AC_CHECK_LIB(mysqlclient, mysql_init,
1149 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
1150 MYSQL_CPPFLAGS="-I$with_mysql/include"
1152 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1156 [AC_MSG_RESULT([--with-mysql not specified])
1157 if test -d "/usr/lib64/mysql"; then
1158 MYSQL_LIBDIR="/usr/lib64/mysql"
1159 elif test -d "/usr/lib/mysql"; then
1160 MYSQL_LIBDIR="/usr/lib/mysql"
1162 MYSQL_LIBDIR="/usr/lib"
1164 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
1165 AC_CHECK_LIB(mysqlclient, mysql_init,
1166 [AC_CHECK_HEADERS(mysql/mysql.h,
1167 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
1170 , [], [$CYGWIN_MYSQL_MAGIC])])
1173 AC_SUBST(MYSQL_LDFLAGS)
1174 AC_SUBST(MYSQL_CPPFLAGS)
1176 # additional version check for mysql
1177 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
1178 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
1180 AC_MSG_CHECKING(mysql version)
1181 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1182 [[$CYGWIN_MYSQL_MAGIC
1183 #include <mysql/mysql.h>]],
1185 #if (MYSQL_VERSION_ID < 40100)
1186 #error needs at least version >= 4.1
1188 int main () { return 0; }
1190 ],mysql=true,mysql=false)
1191 if test "$mysql" = "false"
1194 AC_MSG_RESULT([fail, >= 4.1 required])
1199 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
1200 AM_CONDITIONAL(HAVE_MYSQLE, false)
1203 LDFLAGS=$SAVE_LDFLAGS
1204 CPPFLAGS=$SAVE_CPPFLAGS
1206 if test "$sqlite" = 0 -a "$mysql" = 0
1208 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
1213 AC_MSG_CHECKING([for libmicrohttpd])
1214 AC_ARG_WITH(microhttpd,
1215 [ --with-microhttpd=PFX base of libmicrohttpd installation],
1216 [AC_MSG_RESULT([$with_microhttpd])
1217 case $with_microhttpd in
1221 AC_CHECK_HEADERS([microhttpd.h],
1222 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1223 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1224 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1225 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1226 #include "$native_srcdir/src/include/platform.h"
1227 #include <microhttpd.h>
1228 #if (MHD_VERSION < 0x0094200)
1229 #error needs at least version 0.9.42
1231 int main () { return 0; }
1235 [AC_MSG_RESULT(failed)])]),
1236 [],[#include "$native_srcdir/src/include/platform.h"
1237 #include <microhttpd.h>]),,
1238 [#include "$native_srcdir/src/include/platform.h"])
1241 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
1242 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
1243 AC_CHECK_HEADERS(microhttpd.h,
1244 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1245 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1246 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
1247 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1248 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1249 #include "$native_srcdir/src/include/platform.h"
1250 #include <microhttpd.h>
1251 #if (MHD_VERSION < 0x0094200)
1252 #error needs at least version 0.9.42
1254 int main () { return 0; }
1258 [AC_MSG_RESULT(failed)])]),
1259 [],[#include "$native_srcdir/src/include/platform.h"
1260 #include <microhttpd.h>]),,
1261 [#include "$native_srcdir/src/include/platform.h"])
1265 [AC_MSG_RESULT([--with-microhttpd not specified])
1266 AC_CHECK_HEADERS([microhttpd.h],
1267 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1268 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1269 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1270 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1271 #include "$native_srcdir/src/include/platform.h"
1272 #include <microhttpd.h>
1273 #if (MHD_VERSION < 0x0094200)
1274 #error needs at least version 0.9.52
1279 [AC_MSG_RESULT(failed)])]),
1280 [],[#include "$native_srcdir/src/include/platform.h"
1281 #include <microhttpd.h>]),,
1282 [#include "$native_srcdir/src/include/platform.h"])])
1283 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
1284 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
1286 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
1292 AM_GNU_GETTEXT([external])
1293 AM_GNU_GETTEXT_VERSION([0.18.1])
1295 # Checks for standard typedefs, structures, and compiler characteristics.
1304 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
1305 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
1309 #include <sys/types.h>
1310 #include <sys/socket.h>
1311 #include <netinet/in.h>
1314 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1315 [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?])
1319 #include <sys/types.h>
1320 #include <sys/socket.h>
1326 # Checks for library functions.
1327 AC_FUNC_CLOSEDIR_VOID
1329 AC_PROG_GCC_TRADITIONAL
1331 AC_FUNC_SELECT_ARGTYPES
1341 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])
1347 GN_LIBINTL="$LTLIBINTL"
1348 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
1349 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
1350 if test x$enable_framework_build = xyes
1352 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
1353 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
1354 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
1355 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
1358 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
1359 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
1361 AC_SUBST(GN_LIB_LDFLAGS)
1362 AC_SUBST(GN_PLUGIN_LDFLAGS)
1363 AC_SUBST(GN_INTLINCL)
1364 AC_SUBST(GN_LIBINTL)
1369 AC_SUBST(EXT_LIB_PATH)
1374 AC_SUBST(EXT_LIB_PATH)
1376 DATAROOTDIR=$datarootdir
1377 AC_SUBST(DATAROOTDIR)
1380 # TODO: do we need to change anything for "doas" on openbsd?
1381 AC_MSG_CHECKING(for sudo)
1383 [ --with-sudo=PATH path to sudo binary (or just yes)],
1384 [AC_MSG_RESULT("$with_sudo")
1393 SUDO_BINARY=$with_sudo
1397 [AC_MSG_RESULT([no])])
1398 AC_SUBST(SUDO_BINARY)
1399 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
1402 # test for gnunetdns group name
1403 GNUNETDNS_GROUP=gnunetdns
1404 AC_MSG_CHECKING(for gnunetdns group name)
1405 AC_ARG_WITH(gnunetdns,
1406 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1407 [AC_MSG_RESULT("$with_gnunetdns")
1408 case $with_gnunetdns in
1410 GNUNETDNS_GROUP=gnunet
1413 GNUNETDNS_GROUP=gnunetdns
1416 GNUNETDNS_GROUP=$with_gnunetdns
1420 [AC_MSG_RESULT([gnunetdns])])
1421 AC_SUBST(GNUNETDNS_GROUP)
1428 AC_MSG_CHECKING(for gnutls)
1430 [ --with-gnutls=PFX base of gnutls installation],
1431 [AC_MSG_RESULT([$with_gnutls])
1432 case $with_gnutls in
1436 AC_CHECK_HEADERS([gnutls/abstract.h],
1437 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1439 AC_CHECK_HEADERS([gnutls/dane.h],
1440 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1444 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1445 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1446 AC_CHECK_HEADERS([gnutls/abstract.h],
1447 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1448 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1450 AC_CHECK_HEADERS([gnutls/dane.h],
1451 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1456 [AC_MSG_RESULT([--with-gnutls not specified])
1457 AC_CHECK_HEADERS([gnutls/abstract.h],
1458 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1460 AC_CHECK_HEADERS([gnutls/dane.h],
1461 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1464 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1465 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1466 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1467 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1471 # Test if we are building for superMUC
1472 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1473 AC_ARG_ENABLE([supermuc],
1474 [AS_HELP_STRING([--enable-supermuc],
1475 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1476 [if test "x$enable_supermuc" = "xno"
1483 enable_supermuc=no])
1484 AC_MSG_RESULT($enable_SUPERMUC)
1485 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1486 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1488 # Check if NSE has to send timestamp information to testbed logger for
1489 # generating histogram of messages received
1490 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1491 AC_ARG_ENABLE([nse-histogram],
1492 [AS_HELP_STRING([--enable-nse-histogram],
1493 [have NSE send timestamp information to testbed logger for generating
1494 histogram of received messages. NOT useful for production (default is
1496 [if test "x$enableval" = "xno"
1503 enable_nse_histogram=no])
1504 AC_MSG_RESULT($enable_nse_histogram)
1505 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1506 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1507 [have NSE send timestamp information to testbed logger])
1509 # should 'make check' run tests?
1510 AC_MSG_CHECKING(whether to run tests)
1511 AC_ARG_ENABLE([testruns],
1512 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1513 [enable_tests_run=${enableval}],
1514 [enable_tests_run=yes])
1515 AC_MSG_RESULT($enable_test_run)
1516 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1519 AC_MSG_CHECKING([whether to compile in benchmarks (currently for http and crypto)])
1520 AC_ARG_ENABLE([benchmark],
1521 [AS_HELP_STRING([--enable-benchmark], [enable benchmarking])],
1522 [enable_benchmark=${enableval}],
1523 [enable_benchmark=no])
1524 AC_MSG_RESULT($enable_benchmark)
1525 AS_IF([test "x$enable_benchmark" = "xyes"],
1526 [AC_DEFINE_UNQUOTED(ENABLE_BENCHMARK,1,[Benchmarks are enabled])])
1527 AM_CONDITIONAL([ENABLE_BENCHMARK], [test "x$enable_benchmark" = "xyes"])
1530 # should expensive tests be run?
1531 AC_MSG_CHECKING(whether to run expensive tests)
1532 AC_ARG_ENABLE([expensivetests],
1533 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1534 [enable_expensive=${enableval}],
1535 [enable_expensive=no])
1536 AC_MSG_RESULT($enable_expensive)
1537 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1539 # should ports be open for Java services?
1540 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1541 AC_ARG_ENABLE([javaports],
1542 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1543 [enable_java_ports=${enableval}],
1544 [enable_java_ports=no])
1545 AC_MSG_RESULT($enable_java_ports)
1546 if test "x$enable_java_ports" = "xyes"
1550 JAVAPORT="$UNIXONLY"
1554 # should benchmarks be run?
1555 AC_MSG_CHECKING(whether to run benchmarks during make check)
1556 AC_ARG_ENABLE([benchmarks],
1557 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1558 [enable_benchmarks=${enableval}],
1559 [enable_benchmarks=no])
1560 AC_MSG_RESULT($enable_benchmarks)
1561 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1563 # should gnunet-testing be compiled
1564 AC_MSG_CHECKING(wether to compile gnunet-testing)
1565 AC_ARG_ENABLE([testing],
1566 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1567 [enable_testing=${enableval}],
1568 [enable_testing=yes])
1569 AC_MSG_RESULT($enable_testing)
1570 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1572 # should experimental code be compiled (code that may not yet compile)?
1573 AC_MSG_CHECKING(whether to compile experimental code)
1574 AC_ARG_ENABLE([experimental],
1575 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1576 [enable_experimental=${enableval}],
1577 [enable_experimental=no])
1578 AC_MSG_RESULT($enable_experimental)
1579 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1581 # should malicious code be compiled (should only be used for testing)?
1582 AC_MSG_CHECKING(whether to compile malicious code)
1583 AC_ARG_ENABLE([malicious],
1584 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
1585 [if test "x$enableval" = "xno"
1592 enable_malicious=no])
1593 AC_MSG_RESULT($enable_malicious)
1594 AM_CONDITIONAL([ENABLE_MALICIOUS], [test 1=$malicious])
1595 AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
1596 [enable compilation of malicious code])
1598 # should services be started on demand when needed? Some services may choose to
1599 # never start by default and it is up to the service/module developer to decide
1600 # by having "START_ON_DEMAND = NO" instead of "START_ON_DEMAND = @START_ON_DEMAND@"
1601 # in the service/module's conf.in file.
1602 # See also IMMEDIATE_START for an unconditional immediate start.
1603 START_ON_DEMAND="YES"
1604 AC_MSG_CHECKING(whether to start peer's services on demand by default)
1605 AC_ARG_ENABLE([autostart],
1606 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1607 [enable_autostart=${enableval}
1608 if test "x$enable_autostart" = "xno"
1610 START_ON_DEMAND="NO"
1613 [enable_autostart=yes])
1614 AC_MSG_RESULT($enable_autostart)
1615 #AM_CONDITIONAL([HAVE_START_ON_DEMAND], [test "x$enable_autostart" = "xyes"])
1616 AC_SUBST(START_ON_DEMAND)
1618 # should memory statistics be kept (very expensive CPU-wise!)
1619 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1620 AC_ARG_ENABLE([heapstats],
1621 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1622 [enable_heapstats=1],
1623 [enable_heapstats=0])
1624 AC_MSG_RESULT($enable_heapstats)
1625 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1627 # should code be enabled that works around missing OS functionality on Windows?
1628 # used for test cases
1629 if test $build_target = "mingw"
1635 [#include <ws2tcpip.h>
1637 int s = socket (0, 0, 0);])
1639 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1641 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1646 [#include <ws2tcpip.h>
1648 int s = select (0, NULL, NULL, NULL, NULL);])
1650 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1652 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1657 [#include <ws2tcpip.h>
1660 char *s = inet_ntoa (i);])
1662 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1664 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1669 [#include <ws2tcpip.h>
1671 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1673 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1675 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1680 [#include <ws2tcpip.h>
1682 int s = gethostname (NULL, 0);])
1684 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1686 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1691 [#include <ws2tcpip.h>
1693 void *s = gethostbyname (NULL);])
1695 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1697 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1702 [#include <ws2tcpip.h>
1704 void *s = gethostbyaddr (NULL, 0, 0);])
1706 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1708 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1713 [#include <ws2tcpip.h>
1715 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1717 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1719 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],0,[Define this if getaddrinfo() is available])
1723 AC_MSG_CHECKING(whether to enable windows workarounds)
1724 AC_ARG_ENABLE([windows_workarounds],
1725 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1726 [enable_workarounds=${enableval}],
1727 [enable_workarounds=no])
1728 AC_MSG_RESULT($enable_workarounds)
1729 if test x$enable_windows_workarounds = "xyes"
1736 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1739 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1740 AC_ARG_ENABLE([coverage],
1741 AS_HELP_STRING([--enable-coverage],
1742 [compile the library with code coverage support]),
1743 [use_gcov=${enableval}],
1745 AC_MSG_RESULT($use_gcov)
1746 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1750 # TODO: git blame says this predates our switch to git. git-svn should be adjusted to simply git, or
1751 # an external script that does the job.
1752 AC_PATH_PROG(svnversioncommand, svnversion)
1753 AC_PATH_PROG(gitcommand, git)
1754 AC_MSG_CHECKING(for source being under a VCS)
1758 AC_PATH_PROG(gitcommand, git)
1759 AC_MSG_CHECKING(for source being under a VCS)
1761 AS_IF([test ! "X$gitcommand" = "X"],
1763 git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null)
1765 AS_IF([test "X$git_version" = "X"],
1768 vcs_version="\"release\""
1771 vcs_name="yes, git-svn"
1772 vcs_version="\"git-$git_version\""
1774 AC_MSG_RESULT($vcs_name)
1776 AC_MSG_CHECKING(VCS version)
1777 AC_MSG_RESULT($vcs_version)
1778 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1783 contrib/scripts/Makefile
1784 contrib/scripts/gnunet-logread/Makefile
1787 doc/doxygen/Makefile
1788 doc/handbook/Makefile
1789 doc/tutorial/Makefile
1798 src/ats-tool/Makefile
1799 src/ats-tests/Makefile
1800 src/auction/Makefile
1803 src/cadet/cadet.conf
1806 src/consensus/Makefile
1807 src/consensus/consensus.conf
1808 src/conversation/Makefile
1809 src/conversation/conversation.conf
1811 src/datacache/Makefile
1812 src/datastore/Makefile
1813 src/datastore/datastore.conf
1819 src/fragmentation/Makefile
1824 src/gns/nss/Makefile
1825 src/gnsrecord/Makefile
1827 src/identity/Makefile
1828 src/identity/identity.conf
1829 src/credential/Makefile
1830 src/credential/credential.conf
1831 src/include/Makefile
1832 src/integration-tests/Makefile
1834 src/hostlist/Makefile
1837 src/namecache/Makefile
1838 src/namecache/namecache.conf
1839 src/namestore/Makefile
1840 src/namestore/namestore.conf
1843 src/nat-auto/Makefile
1844 src/nat-auto/nat-auto.conf
1848 src/peerinfo/Makefile
1849 src/peerinfo/peerinfo.conf
1850 src/peerinfo-tool/Makefile
1851 src/peerstore/Makefile
1852 src/peerstore/peerstore.conf
1856 src/regex/regex.conf
1857 src/revocation/Makefile
1858 src/revocation/revocation.conf
1861 src/secretsharing/Makefile
1862 src/secretsharing/secretsharing.conf
1863 src/scalarproduct/Makefile
1864 src/scalarproduct/scalarproduct.conf
1868 src/statistics/Makefile
1869 src/statistics/statistics.conf
1870 src/template/Makefile
1871 src/testbed/Makefile
1872 src/testbed/testbed.conf
1873 src/testbed-logger/Makefile
1874 src/testbed-logger/testbed-logger.conf
1875 src/testing/Makefile
1876 src/topology/Makefile
1877 src/transport/Makefile
1878 src/transport/transport.conf
1880 src/util/resolver.conf
1883 src/zonemaster/Makefile
1884 src/zonemaster/zonemaster.conf
1887 src/reclaim-attribute/Makefile
1888 src/reclaim/Makefile
1890 pkgconfig/gnunetarm.pc
1891 pkgconfig/gnunetats.pc
1892 pkgconfig/gnunetblock.pc
1893 pkgconfig/gnunetcadet.pc
1894 pkgconfig/gnunetconsensus.pc
1895 pkgconfig/gnunetconversation.pc
1896 pkgconfig/gnunetcore.pc
1897 pkgconfig/gnunetdatacache.pc
1898 pkgconfig/gnunetdatastore.pc
1899 pkgconfig/gnunetdht.pc
1900 pkgconfig/gnunetdns.pc
1901 pkgconfig/gnunetenv.pc
1902 pkgconfig/gnunetfragmentation.pc
1903 pkgconfig/gnunetfs.pc
1904 pkgconfig/gnunetgns.pc
1905 pkgconfig/gnunethello.pc
1906 pkgconfig/gnunetidentity.pc
1907 pkgconfig/gnunetmicrophone.pc
1908 pkgconfig/gnunetmysql.pc
1909 pkgconfig/gnunetnamestore.pc
1910 pkgconfig/gnunetnat.pc
1911 pkgconfig/gnunetnse.pc
1912 pkgconfig/gnunetpeerinfo.pc
1913 pkgconfig/gnunetpq.pc
1914 pkgconfig/gnunetregex.pc
1915 pkgconfig/gnunetrevocation.pc
1916 pkgconfig/gnunetrps.pc
1917 pkgconfig/gnunetscalarproduct.pc
1918 pkgconfig/gnunetset.pc
1919 pkgconfig/gnunetspeaker.pc
1920 pkgconfig/gnunetstatistics.pc
1921 pkgconfig/gnunettestbed.pc
1922 pkgconfig/gnunettesting.pc
1923 pkgconfig/gnunettransport.pc
1924 pkgconfig/gnunetutil.pc
1925 pkgconfig/gnunetvpn.pc
1931 # warn user if mysql found but not used due to version
1932 AS_IF([test "$mysqlfail" = "true"]
1933 [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
1936 AS_IF([test "x$sqlite" = "x0"],
1937 [AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])])
1940 AS_IF([test "$gnurl" = "0"],
1941 [AS_IF([test "x$curl" = "xfalse"],
1942 [AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.])
1943 AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])],
1944 [AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])])])
1947 AS_IF([test "x$bluetooth" = "x0"],
1948 [AC_MSG_NOTICE([WARNING: optional bluetooth library not found.])])
1952 AS_IF([test "x$jansson" = "x0"],
1953 [AC_MSG_NOTICE([WARNING: optional jansson library not found.])])
1956 # FIXME: `some modules' -> be more specific which exact modules.
1959 # warn user if iptables is not found
1960 AS_IF([test "$VAR_IPTABLES_BINARY" = "false"],
1961 [AC_MSG_NOTICE([WARNING: optional iptables not found])])
1963 # warn user if ifconfig is not found
1964 AS_IF([test "$VAR_IFCONFIG_BINARY" = "false"],
1965 [AC_MSG_NOTICE([WARNING: optional ifconfig not found])])
1967 # warn user if upnpc binary is not found
1968 AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
1969 [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])])
1972 AS_IF([test x$gnutls != xtrue],
1973 [AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built])],
1974 [AS_IF([test "x$gnutls_dane" != "x1"],
1975 [AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible])])])
1977 # warn user if libzbar is not found
1978 AS_IF([test "$have_zbar" = 0],
1979 [AC_MSG_NOTICE([WARNING: zbar not found, gnunet-qr will not be built.])])
1982 AS_IF([test "x$enable_java_ports" = "xyes"],
1983 [AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.])])
1986 AS_IF([test "x$lmhd" != "x1"],
1987 [AC_MSG_NOTICE([WARNING: optional libmicrohttpd not found])])
1990 AS_IF([test "x$conversation_backend" = "xnone"],
1991 [AS_IF([test "x$pulse" != "x1"],
1992 [AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.])])
1993 AS_IF([test "x$opus" != "x1"],
1994 [AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.])])
1995 AS_IF([test "x$gst" != "x1"],
1996 [AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.])])])
1998 AS_IF([test "$extractor" != 1],
1999 [AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it])])
2001 AS_IF([test "x$working_libidn2" = x1],
2002 [AC_MSG_NOTICE([INFO: Using libidn2])])
2003 AS_IF([test "x$working_libidn1" = x1],
2004 [AC_MSG_NOTICE([INFO: Using libidn1])])
2006 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
2008 AS_IF([test "$enable_framework_build" = "yes"],
2009 [AC_MSG_NOTICE([Mac OS X framework build enabled.])])
2011 AC_MSG_NOTICE([********************************************
2012 Please make sure NOW that you have created a user and group 'gnunet'
2013 and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux, type:
2015 adduser --system --group --disabled-login --home /var/lib/gnunet gnunet
2017 Make sure that '/var/lib/gnunet' is owned (and writable) by user
2018 'gnunet'. Then, you can compile GNUnet with
2021 After that, run (if necessary as 'root')
2023 to install everything.
2025 Each GNUnet user should be added to the 'gnunet' group (may
2026 require fresh login to come into effect):
2027 adduser USERNAME gnunet
2028 (run the above command as root once for each of your users, replacing
2029 "USERNAME" with the respective login names). If you have a global IP
2030 address, no further configuration is required.
2032 For more detailed setup instructions, see https://docs.gnunet.org/
2034 Optionally, download and compile gnunet-gtk to get a GUI for
2035 file-sharing and configuration. This is particularly recommended
2036 if your network setup is non-trivial, as gnunet-setup can be
2037 used to test in the GUI if your network configuration is working.
2038 gnunet-setup should be run as the "gnunet" user under X. As it
2039 does very little with the network, running it as "root" is likely
2040 also harmless. You can also run it as a normal user, but then
2041 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
2042 home directory in the end.
2044 Once you have configured your peer, run (as the 'gnunet' user)
2046 to start the peer. You can then run the various GNUnet-tools as
2047 your "normal" user (who should only be in the group 'gnunet').
2048 ********************************************])