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 # use '-fno-strict-aliasing', but only if the compiler can take it
54 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
56 CFLAGS="-fno-strict-aliasing $CFLAGS"
59 # Use Linux interface name unless the OS has a different preference
60 DEFAULT_INTERFACE="\"eth0\""
62 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo getaddrinfo_a"
64 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
69 *darwin* | *rhapsody* | *macosx*)
70 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
71 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
72 CFLAGS="-fno-common $CFLAGS"
73 AC_MSG_WARN([WARNING: The VPN application cannot be compiled on your OS])
74 AC_CHECK_LIB(intl, gettext)
76 DEFAULT_INTERFACE="\"en0\""
82 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
90 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
91 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
92 CFLAGS="-D_THREAD_SAFE $CFLAGS"
93 build_target="freebsd"
99 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
100 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
101 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
102 build_target="openbsd"
108 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
109 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
115 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
116 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
117 AC_CHECK_LIB(resolv, res_init)
118 AC_CHECK_LIB(rt, nanosleep)
119 build_target="solaris"
125 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
126 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
133 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
134 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
135 AC_CHECK_LIB(intl, gettext)
136 CFLAGS="-mms-bitfields $CFLAGS"
137 build_target="cygwin"
144 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
145 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
146 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
147 AC_CHECK_LIB(intl, gettext)
148 LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
149 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
150 CFLAGS="-mms-bitfields $CFLAGS"
151 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
158 native_srcdir=$(cd $srcdir; pwd -W)
161 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
166 AC_MSG_RESULT(Unrecognised OS $host_os)
167 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
171 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
172 AC_SUBST(DEFAULT_INTERFACE)
174 # Disable TCP-based IPC on systems that support UNIX domain
175 # sockets in default configuratin:
179 AC_MSG_CHECKING([for build target])
180 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
181 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
182 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
183 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
184 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
185 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
186 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
187 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
189 AC_MSG_RESULT([$build_target])
190 AC_SUBST(build_target)
191 AM_CONDITIONAL([am__fastdepOBJC], false)
192 AC_UNALIGNED_64_ACCESS
194 # some other checks for standard libs
195 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
196 AC_SEARCH_LIBS([memrchr], [],
197 AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]), [])
198 AC_CHECK_LIB(socket, socket)
200 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
202 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
203 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
205 AC_CHECK_PROG(VAR_SSH_BINARY, ssh, true, false)
206 AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
207 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)
208 rm -f /tmp/gnunet_test_cosks_ssh_garbage
210 # autotools' m4 for python has no maximum version!
211 # python3.4 - python3.7 for tests
212 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python3 python3.4 python3.5 python3.6 python3.7 python])
213 AM_PATH_PYTHON([3.4],, [:])
215 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
218 AC_PATH_PROG( PERL, perl, ,
219 $PATH:/usr/local/bin/perl:/usr/bin/:/usr/local/bin )
222 # iptables is a soft requirement to run tests
223 AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
225 if test x"$VAR_IPTABLES_BINARY" = x"false"
227 if test -x "/sbin/iptables"
229 VAR_IPTABLES_BINARY="/sbin/iptables"
230 elif test -x "/usr/sbin/iptables"
232 VAR_IPTABLES_BINARY="/usr/sbin/iptables"
236 if test x"$VAR_IPTABLES_BINARY" != x"false"
238 AC_DEFINE_UNQUOTED([IPTABLES], "$VAR_IPTABLES_BINARY", [Path to iptables])
240 AC_MSG_WARN([warning: 'iptables' not found.])
243 AC_PATH_TARGET_TOOL(VAR_IFCONFIG_BINARY, ifconfig, false)
245 AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false)
246 if test x"$VAR_IFCONFIG_BINARY" = x"false"
248 if test -x "/sbin/ifconfig"
250 VAR_IFCONFIG_BINARY="/sbin/ifconfig"
251 elif test -x "/usr/sbin/ifconfig"
253 VAR_IFCONFIG_BINARY="/usr/sbin/ifconfig"
256 if test x"$VAR_IFCONFIG_BINARY" != x"false"
258 AC_DEFINE_UNQUOTED([IFCONFIG], "$VAR_IFCONFIG_BINARY", [Path to ifconfig])
260 AC_MSG_WARN(['ifconfig' not found.])
263 # miniupnpc / upnpc binary is a soft runtime requirement
264 AC_PATH_TARGET_TOOL(VAR_UPNPC_BINARY, upnpc, false)
266 if test x"$VAR_UPNPC_BINARY" != x"false"
268 AC_DEFINE_UNQUOTED([UPNPC], "$VAR_UPNPC_BINARY", [Path to upnpc binary])
270 AC_MSG_WARN([warning: 'upnpc' binary not found.])
273 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
274 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
275 [Define if struct tm has the tm_gmtoff member.])],
279 AC_CHECK_DECLS([_stati64])
281 # 'save' libs; only those libs found so far will be
282 # linked against _everywhere_. For the others, we
283 # will be more selective!
287 AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
288 AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
291 # tests only run on Windows
292 if test "x$build_target" = "xmingw"
294 AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
295 AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
301 NEED_LIBGCRYPT_VERSION=1.6.0
304 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
305 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
311 *** You need libgcrypt to build this program.
312 ** This library is for example available at
313 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
314 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
318 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
320 AC_CHECK_DECLS([struct in6_ifreq], [], [], [[#include <linux/if_tun.h>]])
324 # should the build process be building the documentation?
325 AC_MSG_CHECKING(whether to build documentation)
326 AC_ARG_ENABLE([documentation],
327 [AS_HELP_STRING([--disable-documentation], [do not build the documentation])],
328 [documentation=${enableval}],
330 AC_MSG_RESULT($documentation)
331 if test "x$documentation" = "xyes"
333 AM_CONDITIONAL([DOCUMENTATION],true)
334 AC_DEFINE([DOCUMENTATION],[1],[Building the documentation])
336 AM_CONDITIONAL([DOCUMENTATION],false)
337 AC_DEFINE([DOCUMENTATION],[0],[Not building the documentation])
340 # FIXME: Something is wrong about this in the output of ./configure runs
341 AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
342 AC_ARG_ENABLE([texi2mdoc-generation],
343 [AS_HELP_STRING([--enable-texi2mdoc-generation], [include generated texi2mdoc output in installation])],
344 [texi2mdoc_generation=${enableval}],
345 [texi2mdoc_generation=no])
346 AC_MSG_RESULT($texi2mdoc_generation)
347 if test "x$texi2mdoc_generation" = "xyes"
349 if test "$texi2mdoc" = 0
351 AC_MSG_WARN([ERROR: mdoc output currently requires texi2mdoc.])
352 AC_MSG_WARN([ERROR: texi2mdoc can be obtained via your Operating System])
353 AC_MSG_WARN([ERROR: package manager or from https://mandoc.bsd.lv/texi2mdoc/])
355 AM_CONDITIONAL([TEXI2MDOC_GENERATION],true)
356 AC_DEFINE([TEXI2MDOC_GENERATION],[1],[Building section 7 mdoc output])
359 AM_CONDITIONAL([TEXI2MDOC_GENERATION],false)
360 AC_DEFINE([TEXI2MDOC_GENERATION],[0],[Not building section 7 mdoc output])
363 # should the build process be building only the documentation?
364 AC_MSG_CHECKING(whether to build only documentation)
365 AC_ARG_ENABLE([documentation-only],
366 [AS_HELP_STRING([--enable-documentation-only], [build only the documentation])],
367 [documentation_only=${enableval}],
368 [documentation_only=no])
369 AC_MSG_RESULT($documentation_only)
370 if test "x$documentation_only" = "xyes"
372 AM_CONDITIONAL([DOCUMENTATION_ONLY],true)
373 AC_DEFINE([DOCUMENTATION_ONLY],[1],[Building only the documentation])
375 AM_CONDITIONAL([DOCUMENTATION_ONLY],false)
376 AC_DEFINE([DOCUMENTATION_ONLY],[0],[Not building only the documentation])
379 # should the build process be including the manpages? (default: yes)
380 AC_MSG_CHECKING(whether to include man pages)
381 AC_ARG_ENABLE([include-manpages],
382 [AS_HELP_STRING([--disable-include-manpages], [Do not include the man pages in build and installation])],
383 [include_manpages=${enableval}],
384 [include_manpages=yes])
385 AC_MSG_RESULT($include_manpages)
386 if test "x$include_manpages" = "xyes"
388 AM_CONDITIONAL([INCLUDE_MANPAGES],true)
389 AC_DEFINE([INCLUDE_MANPAGES],[1],[Including the man pages in the build and installation])
391 AM_CONDITIONAL([INCLUDE_MANPAGES],false)
392 AC_DEFINE([INCLUDE_MANPAGES],[0],[Not including the man pages in the build and installation])
395 # Adam shostack suggests the following for Windows:
396 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
397 AC_ARG_ENABLE(gcc-hardening,
398 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
399 [if test x$enableval = xyes; then
400 CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
401 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
402 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
403 LDFLAGS="$LDFLAGS -pie"
406 # Linker hardening options
407 # Currently these options are ELF specific - you can't use this with MacOSX
408 AC_ARG_ENABLE(linker-hardening,
409 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
410 [if test x$enableval = xyes; then
411 LDFLAGS="$LDFLAGS -z relro -z now"
415 AC_ARG_ENABLE(sanitizer,
416 AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer),
417 [if test x$enableval = xyes; then
418 LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer"
422 extra_logging=GNUNET_NO
423 AC_ARG_ENABLE([logging],
424 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
425 [AS_IF([test "x$enableval" = "xyes"], [],
426 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
427 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
428 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
430 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
432 # should memory poisoning be enabled?
433 AC_MSG_CHECKING(whether to poison freed memory)
434 AC_ARG_ENABLE([poisoning],
435 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
436 [enable_poisoning=${enableval}],
438 if test "x$extra_logging" != "xGNUNET_NO"; then
439 enable_poisoning="defaults to yes (extra logging is enabled)"
444 AC_MSG_RESULT($enable_poisoning)
445 if test ! "x$enable_poisoning" = "xno"; then
450 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
452 if test $build = $target
454 AC_MSG_CHECKING([for working HMAC])
456 LIBS="$LIBS $LIBGCRYPT_LIBS"
457 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
459 [AC_LANG_PROGRAM([#include <gcrypt.h>
460 #include <stdio.h>], [[
463 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
464 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
465 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
466 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
467 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
468 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
469 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
470 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
471 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
472 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
474 if (!gcry_check_version (GCRYPT_VERSION))
476 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
480 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
481 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
483 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
485 fprintf (stderr, "gcry_md_open error\n");
489 gcry_md_setkey (mac, key, sizeof (key));
490 gcry_md_write (mac, data, sizeof (data));
492 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
494 fprintf (stderr, "memcmp error\n");
502 [AC_MSG_RESULT([yes])],
507 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.])
511 AC_MSG_FAILURE([HMAC test failed])
515 AC_MSG_FAILURE([libgcrypt header version does not match library version])
518 [AC_MSG_RESULT([cross compiling, test skipped])])
520 fi # $build = $target
522 # check for bluetooth library
524 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
525 if test "$build_target" = "mingw"
529 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, [test "$bluetooth" = 1])
530 if test "$bluetooth" = 1
532 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
534 AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])
537 # check for zbar library
539 AC_MSG_CHECKING(for libzbar)
541 [ --with-zbar=PFX base of libzbar installation],
542 [AC_MSG_RESULT([$with_zbar])
547 AC_CHECK_HEADERS(zbar.h,
548 AC_CHECK_LIB([zbar], [zbar_processor_create],
552 LDFLAGS="-L$with_zbar/lib $LDFLAGS"
553 CPPFLAGS="-I$with_zbar/include $CPPFLAGS"
554 AC_CHECK_HEADERS(zbar.h,
555 AC_CHECK_LIB([zbar], [zbar_processor_create],
556 EXT_LIB_PATH="-L$with_zbar/lib $EXT_LIB_PATH"
561 [AC_MSG_RESULT([--with-zbar not specified])
562 AC_CHECK_HEADERS(zbar.h,
563 AC_CHECK_LIB([zbar], [zbar_processor_create],
565 AM_CONDITIONAL(HAVE_ZBAR, [test "$zbar" = 1])
566 AS_IF([test "x$zbar" = x1],
567 [AC_DEFINE([HAVE_ZBAR],[1],[Have zbar library])],
568 [AC_DEFINE([HAVE_ZBAR],[0],[Lacking zbar library])])
570 # check for jansson library
572 AC_MSG_CHECKING(for libjansson)
574 [ --with-jansson=PFX base of libjansson installation],
575 [AC_MSG_RESULT([$with_jansson])
576 case $with_jansson in
580 AC_CHECK_HEADERS(jansson.h,
581 AC_CHECK_LIB([jansson], [json_loads],
585 LDFLAGS="-L$with_jansson/lib $LDFLAGS"
586 CPPFLAGS="-I$with_jansson/include $CPPFLAGS"
587 AC_CHECK_HEADERS(jansson.h,
588 AC_CHECK_LIB([jansson], [json_loads],
589 EXT_LIB_PATH="-L$with_jansson/lib $EXT_LIB_PATH"
594 [AC_MSG_RESULT([--with-jansson not specified])
595 AC_CHECK_HEADERS(jansson.h,
596 AC_CHECK_LIB([jansson], [json_loads],
598 AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
599 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
600 AS_IF([test "x$jansson" = x1],
601 [AC_DEFINE([HAVE_JANSSON],[1],[Have jansson library])],
602 [AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])])
605 # check for libpulse(audio) library
607 AC_CHECK_LIB(pulse,pa_stream_peek,
608 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
609 AS_IF([test "$build_target" = "mingw"],
611 AS_IF([test "$pulse" = 1],
612 [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])])
614 # check for libopus(audio) library
616 AC_CHECK_LIB(opus,opus_decode_float,
617 [AC_CHECK_HEADER([opus/opus.h],
618 [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
622 AS_IF([test "x$opus" = x1],
623 [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])])
626 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
627 [AC_CHECK_HEADERS([ogg/ogg.h],
628 AM_CONDITIONAL(HAVE_OGG, true)
630 AC_DEFINE(HAVE_OGG,1,[Have ogg]),
631 AM_CONDITIONAL(HAVE_OGG, false)
633 AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
634 AM_CONDITIONAL(HAVE_OGG, false)
638 PKG_CHECK_MODULES([GLIB],
640 [# check for pbc library
642 AC_CHECK_HEADER([pbc/pbc.h],pbc=1)
643 AC_CHECK_HEADER([gabe.h],abe=1)
644 AM_CONDITIONAL(HAVE_PBC, [test "x$pbc" = x1])
645 AM_CONDITIONAL(HAVE_ABE, [test "x$abe" = x1])
646 AS_IF([test "x$pbc" = x1],
647 [AC_DEFINE([HAVE_PBC],[1],[Have pbc library])],
648 [AC_DEFINE([HAVE_PBC],[0],[Lacking pbc library])])
649 AS_IF([test "x$abe" = x1],
650 [AC_DEFINE([HAVE_ABE],[1],[Have ABE library])],
651 [AC_DEFINE([HAVE_ABE],[0],[Lacking ABE library])])],
653 AM_CONDITIONAL(HAVE_PBC, [false])
654 AM_CONDITIONAL(HAVE_ABE, [false])
655 AC_DEFINE([HAVE_PBC],[0],[Lacking glib library])])
660 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
665 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
667 if test "x$gst" != "x1"
669 conversation_backend=none
670 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
671 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
672 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
674 conversation_backend=gst
675 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
676 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
677 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
681 conversation_backend=pulse
682 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
683 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
684 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
688 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
691 AM_CONDITIONAL(HAVE_LIBGNURL, true)
692 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
694 AM_CONDITIONAL(HAVE_LIBGNURL, false)
695 AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
698 SAVE_CPPFLAGS=$CPPFLAGS
699 CPPFLAGS="$LIBGNURL_CPPFLAGS $LIBCURL_CPPFLAGS $CPPFLAGS"
700 LIBS="$LIBGNURL $LIBCURL $LIBS"
703 LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
704 if test "x$curl" = xtrue
707 AC_CHECK_HEADERS([curl/curl.h],
708 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
710 AC_CHECK_HEADERS([gnurl/curl.h],
711 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],,[[#include <gnurl/curl.h>]]))
712 # need libcurl-gnutls.so, everything else is not acceptable
713 AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
714 # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
717 # Check for curl/curl.h and gnurl/curl.h so we can use #ifdef
718 # HAVE_CURL_CURL_H later (the above LIBCURL_CHECK_CONFIG accepted
719 # *either* header set).
720 AC_CHECK_HEADERS([curl/curl.h],,
722 AC_CHECK_HEADERS([gnurl/curl.h],,
727 if test x$curl = xfalse
729 AM_CONDITIONAL(HAVE_LIBCURL, false)
732 AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34])
735 AM_CONDITIONAL(HAVE_LIBCURL, true)
736 AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
739 AC_SEARCH_LIBS(__atomic_load_8, atomic, [have_libatomic=1 AC_DEFINE(HAVE_LIBATOMIC,1,[external libatomic])])
740 AM_CONDITIONAL(HAVE_LIBATOMIC, [test "$have_libatomic" = 1])
742 # restore LIBS & CPPFLAGS
744 CPPFLAGS=$SAVE_CPPFLAGS
746 AC_CHECK_HEADERS([glpk.h],[glpk=true],[glpk=false])
747 # GLPK must support glpk_init_env, version >= 4.43
748 AC_CHECK_LIB([glpk],[glp_init_env],,[glpk=false])
749 # GLPK must support atm MLP presolving, version >= 4.32
750 AC_CHECK_MEMBERS(glp_iocp.presolve,,[glpk=false],[[#include <glpk.h>]])
751 if test "x$glpk" = xfalse
753 AM_CONDITIONAL(HAVE_LIBGLPK, false)
754 AC_MSG_WARN([ERROR: GNUnet requires GLPK >= 4.32])
756 AM_CONDITIONAL(HAVE_LIBGLPK, true)
757 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
761 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
762 if test x$nss = xfalse
764 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
765 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
770 AC_CHECK_DECL([NSS_STATUS_UNAVAIL],
771 [AM_CONDITIONAL(HAVE_GLIBCNSS, true)],
772 [AM_CONDITIONAL(HAVE_GLIBCNSS, false)
773 AC_MSG_WARN([No nss header fails to define NSS_STATUS_UNAVAIl, will not build NSS plugin])],
779 # test for kvm and kstat (for CPU stats under BSD/Solaris)
780 AC_CHECK_LIB([kvm],[kvm_open])
781 AC_CHECK_LIB([kstat],[kstat_open])
784 # should the build process be restricted to the code required
785 # for GNU Taler wallets?
786 AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
787 AC_ARG_ENABLE([taler-wallet],
788 [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
789 [taler_only=${enableval}],
791 AC_MSG_RESULT($taler_only)
792 if test "x$taler_only" = "xyes"
794 AM_CONDITIONAL([TALER_ONLY],true)
795 AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet])
797 AM_CONDITIONAL([TALER_ONLY],false)
798 AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation])
801 # test for libextractor
803 AC_MSG_CHECKING(for libextractor)
804 AC_ARG_WITH(extractor,
805 [ --with-extractor=PFX base of libextractor installation],
806 [AC_MSG_RESULT([$with_extractor])
807 case $with_extractor in
811 AC_CHECK_HEADERS([extractor.h],
812 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
816 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
817 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
818 AC_CHECK_HEADERS([extractor.h],
819 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
820 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
825 [AC_MSG_RESULT([--with-extractor not specified])
826 AC_CHECK_HEADERS([extractor.h],
827 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
832 if test "$extractor" != 1
834 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, false)
835 AC_DEFINE([HAVE_LIBEXTRACTOR],[0],[Lacking libextractor])
837 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, true)
838 AC_DEFINE([HAVE_LIBEXTRACTOR],[1],[Have libextractor])
842 if test "$taler_only" != yes
845 # Check for libltdl header (#2999)
847 AC_MSG_CHECKING(for libltdl)
849 [ --with-ltdl=PFX base of libltdl installation],
850 [AC_MSG_RESULT([$with_ltdl])
855 AC_CHECK_HEADERS(ltdl.h,
856 AC_CHECK_LIB([ltdl], [lt_dlopenext],
860 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
861 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
862 AC_CHECK_HEADERS(ltdl.h,
863 AC_CHECK_LIB([ltdl], [lt_dlopenext],
864 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
869 [AC_MSG_RESULT([--with-ltdl not specified])
870 AC_CHECK_HEADERS(ltdl.h,
871 AC_CHECK_LIB([ltdl], [lt_dlopenext],
875 AC_MSG_RESULT([libltdl found])
877 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
882 # libidn and libidn2. The ideal goal is this:
883 # check for libidn2, if it doesn't exist check for libidn
884 # if both exist, prefer libidn2
885 # if none exist, fail and message that libidn or libidn2
886 # is required with a preference for libidn2.
887 # TODO: What we have right here can probably be improved.
890 AS_HELP_STRING([--with-libidn=pathname],
891 [Support IDN (needs libidn)]),
894 AS_IF([test x_$withval = x_yes],
895 [AC_CHECK_HEADERS([idna.h],
896 AC_MSG_NOTICE([Found idna.h]),
897 AC_CHECK_HEADERS([idn/idna.h],
898 AC_MSG_NOTICE([Found idn/idna.h]),
900 [AS_IF([test x_$withval != x_no],
901 [CFLAGS="$CFLAGS -I$withval/include"
902 LDFLAGS="$LDFLAGS -L$withval/lib"
903 AC_CHECK_HEADERS([idna.h],
904 AC_MSG_NOTICE([Found idna.h]),
905 [AC_MSG_NOTICE([Failed to find idna.h])
907 [my_with_libidn=0])])
911 AS_HELP_STRING([--with-libidn2=pathname],
912 [Support IDN (needs libidn2)]),
915 AS_IF([test x_$withval = x_yes],
916 [AC_CHECK_HEADERS([idn2.h],
917 AC_MSG_NOTICE([Found idn2.h]),
918 AC_CHECK_HEADERS([idn2/idn2.h],
919 AC_MSG_NOTICE([Found idn2/idn2.h]),
920 [AC_MSG_NOTICE([Failed to find idn2.h])
921 my_with_libidn2=0]))],
922 [AS_IF([test x_$withval != x_no],
923 [CFLAGS="$CFLAGS -I$withval/include"
924 LDFLAGS="$LDFLAGS -L$withval/lib"],
925 [my_with_libidn2=0])])
927 AC_MSG_CHECKING([if libidn can be used])
929 there_can_only_be_one=1
933 AS_IF([test x$my_with_libidn2 = x1],
934 [AC_MSG_NOTICE([Checking for libidn2])
936 [idn2_to_unicode_8z8z],
939 AC_DEFINE_UNQUOTED([HAVE_LIBIDN2],
941 [Define to 1 if you have 'libidn2' (-lidn2).])],
942 [MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
944 AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
945 AS_IF([test x$working_libidn2 = x0],
946 [AS_IF([test x$my_with_libidn = x1],
947 [AC_MSG_NOTICE([Checking for libidn])
952 AC_DEFINE_UNQUOTED([HAVE_LIBIDN],
954 [Define to 1 if you have 'libidn' (-lidn).])],
955 [there_can_only_be_one=0])],
956 [AS_IF([test x$my_with_libidn2 = x1],
957 [there_can_only_be_one=0
958 AC_MSG_FAILURE([* There can only be one libidn.
959 * Provide either libidn >= 1.13
961 * libidn2 to the configure
964 * --with-libidn])])])])
965 AM_CONDITIONAL(HAVE_LIBIDN, test x$working_libidn1 = x1)
967 AS_IF([test "$working_libidn1" = 0 -a "$working_libidn2" = 0],
968 [AC_MSG_ERROR([GNUnet requires libidn (or libidn2)])])
970 AS_IF([test x$there_can_only_be_one = x0],
971 [AC_MSG_FAILURE([Missing dependencies: $MISSING_DEPS])])
974 SAVE_LDFLAGS=$LDFLAGS
975 SAVE_CPPFLAGS=$CPPFLAGS
977 [ --with-zlib[[=DIR]] use libz in DIR],
978 [AS_IF([test "$withval" = "no"],
979 [AC_MSG_ERROR([GNUnet requires zlib])],
980 [test "$withval" != "yes"],
983 CPPFLAGS="${CPPFLAGS} -I$withval/include"
984 LDFLAGS="${LDFLAGS} -L$withval/lib"
987 AC_CHECK_HEADER(zlib.h,
989 [AC_MSG_ERROR([GNUnet requires zlib])])
990 AC_CHECK_LIB(z, compress2,
992 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
993 if test "x${Z_DIR}" != "x"; then
994 Z_CFLAGS="-I${Z_DIR}/include"
995 Z_LIBS="-L${Z_DIR}/lib -lz"
999 [AC_MSG_ERROR([GNUnet requires zlib])])
1003 if test "$enable_shared" = "no"
1005 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
1019 # test for libunistring
1021 if test $HAVE_LIBUNISTRING != yes; then
1022 AC_MSG_ERROR([GNUnet requires libunistring])
1024 # under emscripten, $gl_libunistring_hexversion is undefined
1025 if test "$taler_only" != yes; then
1026 if test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305; then
1027 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
1030 AC_CHECK_HEADERS([unistr.h],,AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed]))
1037 # Checks for standard header files.
1041 # Check for headers that are ALWAYS required
1042 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]))
1046 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
1047 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])
1049 # FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
1050 AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
1051 [#ifdef HAVE_SYS_TYPES_H
1052 #include <sys/types.h>
1054 #ifdef HAVE_NETINET_IN_SYSTM_H
1055 #include <netinet/in_systm.h>
1057 #ifdef HAVE_NETINET_IN_H
1058 #include <netinet/in.h>
1062 SAVE_LDFLAGS=$LDFLAGS
1063 SAVE_CPPFLAGS=$CPPFLAGS
1067 AC_MSG_CHECKING(for SQLite)
1069 [ --with-sqlite=PFX base of SQLite installation],
1070 [AC_MSG_RESULT("$with_sqlite")
1071 case $with_sqlite in
1075 AC_CHECK_HEADERS(sqlite3.h,
1079 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
1080 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
1081 AC_CHECK_HEADERS(sqlite3.h,
1082 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
1083 SQLITE_LDFLAGS="-L$with_sqlite/lib"
1084 SQLITE_CPPFLAGS="-I$with_sqlite/include"
1086 LDFLAGS=$SAVE_LDFLAGS
1087 CPPFLAGS=$SAVE_CPPFLAGS
1091 [AC_MSG_RESULT([--with-sqlite not specified])
1092 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
1093 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
1094 AC_SUBST(SQLITE_CPPFLAGS)
1095 AC_SUBST(SQLITE_LDFLAGS)
1097 LDFLAGS=$SAVE_LDFLAGS
1098 CPPFLAGS=$SAVE_CPPFLAGS
1102 # even running the check for postgres breaks emscripten ...
1103 AS_IF([test "$taler_only" != yes],
1104 [AX_LIB_POSTGRESQL([9.5],
1105 [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
1106 AC_CHECK_HEADERS([libpq-fe.h],
1109 [AC_MSG_RESULT([no postgres])])])
1110 AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
1113 LDFLAGS=$SAVE_LDFLAGS
1114 CPPFLAGS=$SAVE_CPPFLAGS
1117 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
1118 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
1120 if test "$build_target" = "mingw"
1122 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
1128 SAVE_LDFLAGS=$LDFLAGS
1129 SAVE_CPPFLAGS=$CPPFLAGS
1130 AC_MSG_CHECKING(for mysql)
1132 [ --with-mysql=PFX base of MySQL installation],
1133 [AC_MSG_RESULT([$with_mysql])
1138 AC_CHECK_HEADERS(mysql/mysql.h,
1139 AC_CHECK_LIB(mysqlclient, mysql_init,
1141 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1144 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
1145 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
1146 AC_CHECK_HEADERS(mysql/mysql.h,
1147 AC_CHECK_LIB(mysqlclient, mysql_init,
1148 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
1149 MYSQL_CPPFLAGS="-I$with_mysql/include"
1151 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1155 [AC_MSG_RESULT([--with-mysql not specified])
1156 if test -d "/usr/lib64/mysql"; then
1157 MYSQL_LIBDIR="/usr/lib64/mysql"
1158 elif test -d "/usr/lib/mysql"; then
1159 MYSQL_LIBDIR="/usr/lib/mysql"
1161 MYSQL_LIBDIR="/usr/lib"
1163 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
1164 AC_CHECK_LIB(mysqlclient, mysql_init,
1165 [AC_CHECK_HEADERS(mysql/mysql.h,
1166 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
1169 , [], [$CYGWIN_MYSQL_MAGIC])])
1172 AC_SUBST(MYSQL_LDFLAGS)
1173 AC_SUBST(MYSQL_CPPFLAGS)
1175 # additional version check for mysql
1176 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
1177 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
1179 AC_MSG_CHECKING(mysql version)
1180 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1181 [[$CYGWIN_MYSQL_MAGIC
1182 #include <mysql/mysql.h>]],
1184 #if (MYSQL_VERSION_ID < 40100)
1185 #error needs at least version >= 4.1
1187 int main () { return 0; }
1189 ],mysql=true,mysql=false)
1190 if test "$mysql" = "false"
1193 AC_MSG_RESULT([fail, >= 4.1 required])
1198 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
1199 AM_CONDITIONAL(HAVE_MYSQLE, false)
1202 LDFLAGS=$SAVE_LDFLAGS
1203 CPPFLAGS=$SAVE_CPPFLAGS
1205 if test "$sqlite" = 0 -a "$mysql" = 0
1207 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
1212 AC_MSG_CHECKING([for libmicrohttpd])
1213 AC_ARG_WITH(microhttpd,
1214 [ --with-microhttpd=PFX base of libmicrohttpd installation],
1215 [AC_MSG_RESULT([$with_microhttpd])
1216 case $with_microhttpd in
1220 AC_CHECK_HEADERS([microhttpd.h],
1221 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1222 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1223 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1224 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1225 #include "$native_srcdir/src/include/platform.h"
1226 #include <microhttpd.h>
1227 #if (MHD_VERSION < 0x0094200)
1228 #error needs at least version 0.9.42
1230 int main () { return 0; }
1234 [AC_MSG_RESULT(failed)])]),
1235 [],[#include "$native_srcdir/src/include/platform.h"
1236 #include <microhttpd.h>]),,
1237 [#include "$native_srcdir/src/include/platform.h"])
1240 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
1241 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
1242 AC_CHECK_HEADERS(microhttpd.h,
1243 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1244 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1245 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
1246 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1247 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1248 #include "$native_srcdir/src/include/platform.h"
1249 #include <microhttpd.h>
1250 #if (MHD_VERSION < 0x0094200)
1251 #error needs at least version 0.9.42
1253 int main () { return 0; }
1257 [AC_MSG_RESULT(failed)])]),
1258 [],[#include "$native_srcdir/src/include/platform.h"
1259 #include <microhttpd.h>]),,
1260 [#include "$native_srcdir/src/include/platform.h"])
1264 [AC_MSG_RESULT([--with-microhttpd not specified])
1265 AC_CHECK_HEADERS([microhttpd.h],
1266 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1267 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1268 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
1269 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1270 #include "$native_srcdir/src/include/platform.h"
1271 #include <microhttpd.h>
1272 #if (MHD_VERSION < 0x0094200)
1273 #error needs at least version 0.9.52
1278 [AC_MSG_RESULT(failed)])]),
1279 [],[#include "$native_srcdir/src/include/platform.h"
1280 #include <microhttpd.h>]),,
1281 [#include "$native_srcdir/src/include/platform.h"])])
1282 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
1283 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
1285 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
1291 AM_GNU_GETTEXT([external])
1292 AM_GNU_GETTEXT_VERSION([0.18.1])
1294 # Checks for standard typedefs, structures, and compiler characteristics.
1303 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
1304 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
1308 #include <sys/types.h>
1309 #include <sys/socket.h>
1310 #include <netinet/in.h>
1313 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1314 [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?])
1318 #include <sys/types.h>
1319 #include <sys/socket.h>
1325 # Checks for library functions.
1326 AC_FUNC_CLOSEDIR_VOID
1328 AC_PROG_GCC_TRADITIONAL
1330 AC_FUNC_SELECT_ARGTYPES
1340 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])
1346 GN_LIBINTL="$LTLIBINTL"
1347 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
1348 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
1349 if test x$enable_framework_build = xyes
1351 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
1352 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
1353 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
1354 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
1357 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
1358 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
1360 AC_SUBST(GN_LIB_LDFLAGS)
1361 AC_SUBST(GN_PLUGIN_LDFLAGS)
1362 AC_SUBST(GN_INTLINCL)
1363 AC_SUBST(GN_LIBINTL)
1368 AC_SUBST(EXT_LIB_PATH)
1373 AC_SUBST(EXT_LIB_PATH)
1375 DATAROOTDIR=$datarootdir
1376 AC_SUBST(DATAROOTDIR)
1379 # TODO: do we need to change anything for "doas" on openbsd?
1380 AC_MSG_CHECKING(for sudo)
1382 [ --with-sudo=PATH path to sudo binary (or just yes)],
1383 [AC_MSG_RESULT("$with_sudo")
1392 SUDO_BINARY=$with_sudo
1396 [AC_MSG_RESULT([no])])
1397 AC_SUBST(SUDO_BINARY)
1398 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
1401 # test for gnunetdns group name
1402 GNUNETDNS_GROUP=gnunetdns
1403 AC_MSG_CHECKING(for gnunetdns group name)
1404 AC_ARG_WITH(gnunetdns,
1405 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1406 [AC_MSG_RESULT("$with_gnunetdns")
1407 case $with_gnunetdns in
1409 GNUNETDNS_GROUP=gnunet
1412 GNUNETDNS_GROUP=gnunetdns
1415 GNUNETDNS_GROUP=$with_gnunetdns
1419 [AC_MSG_RESULT([gnunetdns])])
1420 AC_SUBST(GNUNETDNS_GROUP)
1427 AC_MSG_CHECKING(for gnutls)
1429 [ --with-gnutls=PFX base of gnutls installation],
1430 [AC_MSG_RESULT([$with_gnutls])
1431 case $with_gnutls in
1435 AC_CHECK_HEADERS([gnutls/abstract.h],
1436 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1438 AC_CHECK_HEADERS([gnutls/dane.h],
1439 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1443 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1444 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1445 AC_CHECK_HEADERS([gnutls/abstract.h],
1446 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1447 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1449 AC_CHECK_HEADERS([gnutls/dane.h],
1450 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1455 [AC_MSG_RESULT([--with-gnutls not specified])
1456 AC_CHECK_HEADERS([gnutls/abstract.h],
1457 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1459 AC_CHECK_HEADERS([gnutls/dane.h],
1460 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1463 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1464 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1465 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1466 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1470 # Test if we are building for superMUC
1471 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1472 AC_ARG_ENABLE([supermuc],
1473 [AS_HELP_STRING([--enable-supermuc],
1474 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1475 [if test "x$enable_supermuc" = "xno"
1482 enable_supermuc=no])
1483 AC_MSG_RESULT($enable_SUPERMUC)
1484 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1485 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1487 # Check if NSE has to send timestamp information to testbed logger for
1488 # generating histogram of messages received
1489 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1490 AC_ARG_ENABLE([nse-histogram],
1491 [AS_HELP_STRING([--enable-nse-histogram],
1492 [have NSE send timestamp information to testbed logger for generating
1493 histogram of received messages. NOT useful for production (default is
1495 [if test "x$enableval" = "xno"
1502 enable_nse_histogram=no])
1503 AC_MSG_RESULT($enable_nse_histogram)
1504 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1505 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1506 [have NSE send timestamp information to testbed logger])
1508 # should 'make check' run tests?
1509 AC_MSG_CHECKING(whether to run tests)
1510 AC_ARG_ENABLE([testruns],
1511 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1512 [enable_tests_run=${enableval}],
1513 [enable_tests_run=yes])
1514 AC_MSG_RESULT($enable_test_run)
1515 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1518 AC_MSG_CHECKING([whether to compile in benchmarks (currently for http and crypto)])
1519 AC_ARG_ENABLE([benchmark],
1520 [AS_HELP_STRING([--enable-benchmark], [enable benchmarking])],
1521 [enable_benchmark=${enableval}],
1522 [enable_benchmark=no])
1523 AC_MSG_RESULT($enable_benchmark)
1524 AS_IF([test "x$enable_benchmark" = "xyes"],
1525 [AC_DEFINE_UNQUOTED(ENABLE_BENCHMARK,1,[Benchmarks are enabled])])
1526 AM_CONDITIONAL([ENABLE_BENCHMARK], [test "x$enable_benchmark" = "xyes"])
1529 # should expensive tests be run?
1530 AC_MSG_CHECKING(whether to run expensive tests)
1531 AC_ARG_ENABLE([expensivetests],
1532 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1533 [enable_expensive=${enableval}],
1534 [enable_expensive=no])
1535 AC_MSG_RESULT($enable_expensive)
1536 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1538 # should ports be open for Java services?
1539 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1540 AC_ARG_ENABLE([javaports],
1541 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1542 [enable_java_ports=${enableval}],
1543 [enable_java_ports=no])
1544 AC_MSG_RESULT($enable_java_ports)
1545 if test "x$enable_java_ports" = "xyes"
1549 JAVAPORT="$UNIXONLY"
1553 # should benchmarks be run?
1554 AC_MSG_CHECKING(whether to run benchmarks during make check)
1555 AC_ARG_ENABLE([benchmarks],
1556 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1557 [enable_benchmarks=${enableval}],
1558 [enable_benchmarks=no])
1559 AC_MSG_RESULT($enable_benchmarks)
1560 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1562 # should gnunet-testing be compiled
1563 AC_MSG_CHECKING(wether to compile gnunet-testing)
1564 AC_ARG_ENABLE([testing],
1565 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1566 [enable_testing=${enableval}],
1567 [enable_testing=yes])
1568 AC_MSG_RESULT($enable_testing)
1569 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1571 # should experimental code be compiled (code that may not yet compile)?
1572 AC_MSG_CHECKING(whether to compile experimental code)
1573 AC_ARG_ENABLE([experimental],
1574 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1575 [enable_experimental=${enableval}],
1576 [enable_experimental=no])
1577 AC_MSG_RESULT($enable_experimental)
1578 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1580 # should malicious code be compiled (should only be used for testing)?
1581 AC_MSG_CHECKING(whether to compile malicious code)
1582 AC_ARG_ENABLE([malicious],
1583 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
1584 [if test "x$enableval" = "xno"
1591 enable_malicious=no])
1592 AC_MSG_RESULT($enable_malicious)
1593 AM_CONDITIONAL([ENABLE_MALICIOUS], [test 1=$malicious])
1594 AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
1595 [enable compilation of malicious code])
1597 # should services be started on demand when needed? Some services may choose to
1598 # never start by default and it is up to the service/module developer to decide
1599 # by having "START_ON_DEMAND = NO" instead of "START_ON_DEMAND = @START_ON_DEMAND@"
1600 # in the service/module's conf.in file.
1601 # See also IMMEDIATE_START for an unconditional immediate start.
1602 START_ON_DEMAND="YES"
1603 AC_MSG_CHECKING(whether to start peer's services on demand by default)
1604 AC_ARG_ENABLE([autostart],
1605 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1606 [enable_autostart=${enableval}
1607 if test "x$enable_autostart" = "xno"
1609 START_ON_DEMAND="NO"
1612 [enable_autostart=yes])
1613 AC_MSG_RESULT($enable_autostart)
1614 #AM_CONDITIONAL([HAVE_START_ON_DEMAND], [test "x$enable_autostart" = "xyes"])
1615 AC_SUBST(START_ON_DEMAND)
1617 # should memory statistics be kept (very expensive CPU-wise!)
1618 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1619 AC_ARG_ENABLE([heapstats],
1620 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1621 [enable_heapstats=1],
1622 [enable_heapstats=0])
1623 AC_MSG_RESULT($enable_heapstats)
1624 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1626 # should code be enabled that works around missing OS functionality on Windows?
1627 # used for test cases
1628 if test $build_target = "mingw"
1634 [#include <ws2tcpip.h>
1636 int s = socket (0, 0, 0);])
1638 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1640 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1645 [#include <ws2tcpip.h>
1647 int s = select (0, NULL, NULL, NULL, NULL);])
1649 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1651 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1656 [#include <ws2tcpip.h>
1659 char *s = inet_ntoa (i);])
1661 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1663 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1668 [#include <ws2tcpip.h>
1670 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1672 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1674 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1679 [#include <ws2tcpip.h>
1681 int s = gethostname (NULL, 0);])
1683 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1685 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1690 [#include <ws2tcpip.h>
1692 void *s = gethostbyname (NULL);])
1694 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1696 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1701 [#include <ws2tcpip.h>
1703 void *s = gethostbyaddr (NULL, 0, 0);])
1705 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1707 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1712 [#include <ws2tcpip.h>
1714 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1716 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1718 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],0,[Define this if getaddrinfo() is available])
1722 AC_MSG_CHECKING(whether to enable windows workarounds)
1723 AC_ARG_ENABLE([windows_workarounds],
1724 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1725 [enable_workarounds=${enableval}],
1726 [enable_workarounds=no])
1727 AC_MSG_RESULT($enable_workarounds)
1728 if test x$enable_windows_workarounds = "xyes"
1735 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1738 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1739 AC_ARG_ENABLE([coverage],
1740 AS_HELP_STRING([--enable-coverage],
1741 [compile the library with code coverage support]),
1742 [use_gcov=${enableval}],
1744 AC_MSG_RESULT($use_gcov)
1745 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1749 # TODO: git blame says this predates our switch to git. git-svn should be adjusted to simply git, or
1750 # an external script that does the job.
1751 AC_PATH_PROG(svnversioncommand, svnversion)
1752 AC_PATH_PROG(gitcommand, git)
1753 AC_MSG_CHECKING(for source being under a VCS)
1757 AC_PATH_PROG(gitcommand, git)
1758 AC_MSG_CHECKING(for source being under a VCS)
1760 AS_IF([test ! "X$gitcommand" = "X"],
1762 git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null)
1764 AS_IF([test "X$git_version" = "X"],
1767 vcs_version="\"release\""
1770 vcs_name="yes, git-svn"
1771 vcs_version="\"git-$git_version\""
1773 AC_MSG_RESULT($vcs_name)
1775 AC_MSG_CHECKING(VCS version)
1776 AC_MSG_RESULT($vcs_version)
1777 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1782 contrib/scripts/Makefile
1783 contrib/scripts/gnunet-logread/Makefile
1786 doc/doxygen/Makefile
1787 doc/handbook/Makefile
1788 doc/tutorial/Makefile
1797 src/ats-tool/Makefile
1798 src/ats-tests/Makefile
1799 src/auction/Makefile
1802 src/cadet/cadet.conf
1805 src/consensus/Makefile
1806 src/consensus/consensus.conf
1807 src/conversation/Makefile
1808 src/conversation/conversation.conf
1810 src/datacache/Makefile
1811 src/datastore/Makefile
1812 src/datastore/datastore.conf
1818 src/fragmentation/Makefile
1823 src/gns/nss/Makefile
1824 src/gnsrecord/Makefile
1826 src/identity/Makefile
1827 src/identity/identity.conf
1828 src/credential/Makefile
1829 src/credential/credential.conf
1830 src/include/Makefile
1831 src/integration-tests/Makefile
1833 src/hostlist/Makefile
1836 src/namecache/Makefile
1837 src/namecache/namecache.conf
1838 src/namestore/Makefile
1839 src/namestore/namestore.conf
1842 src/nat-auto/Makefile
1843 src/nat-auto/nat-auto.conf
1847 src/peerinfo/Makefile
1848 src/peerinfo/peerinfo.conf
1849 src/peerinfo-tool/Makefile
1850 src/peerstore/Makefile
1851 src/peerstore/peerstore.conf
1855 src/regex/regex.conf
1856 src/revocation/Makefile
1857 src/revocation/revocation.conf
1860 src/secretsharing/Makefile
1861 src/secretsharing/secretsharing.conf
1862 src/scalarproduct/Makefile
1863 src/scalarproduct/scalarproduct.conf
1867 src/statistics/Makefile
1868 src/statistics/statistics.conf
1869 src/template/Makefile
1870 src/testbed/Makefile
1871 src/testbed/testbed.conf
1872 src/testbed-logger/Makefile
1873 src/testbed-logger/testbed-logger.conf
1874 src/testing/Makefile
1875 src/topology/Makefile
1876 src/transport/Makefile
1877 src/transport/transport.conf
1879 src/util/resolver.conf
1882 src/zonemaster/Makefile
1883 src/zonemaster/zonemaster.conf
1886 src/reclaim-attribute/Makefile
1887 src/reclaim/Makefile
1889 pkgconfig/gnunetarm.pc
1890 pkgconfig/gnunetats.pc
1891 pkgconfig/gnunetblock.pc
1892 pkgconfig/gnunetcadet.pc
1893 pkgconfig/gnunetconsensus.pc
1894 pkgconfig/gnunetconversation.pc
1895 pkgconfig/gnunetcore.pc
1896 pkgconfig/gnunetdatacache.pc
1897 pkgconfig/gnunetdatastore.pc
1898 pkgconfig/gnunetdht.pc
1899 pkgconfig/gnunetdns.pc
1900 pkgconfig/gnunetenv.pc
1901 pkgconfig/gnunetfragmentation.pc
1902 pkgconfig/gnunetfs.pc
1903 pkgconfig/gnunetgns.pc
1904 pkgconfig/gnunethello.pc
1905 pkgconfig/gnunetidentity.pc
1906 pkgconfig/gnunetmicrophone.pc
1907 pkgconfig/gnunetmysql.pc
1908 pkgconfig/gnunetnamestore.pc
1909 pkgconfig/gnunetnat.pc
1910 pkgconfig/gnunetnse.pc
1911 pkgconfig/gnunetpeerinfo.pc
1912 pkgconfig/gnunetpq.pc
1913 pkgconfig/gnunetregex.pc
1914 pkgconfig/gnunetrevocation.pc
1915 pkgconfig/gnunetrps.pc
1916 pkgconfig/gnunetscalarproduct.pc
1917 pkgconfig/gnunetset.pc
1918 pkgconfig/gnunetspeaker.pc
1919 pkgconfig/gnunetstatistics.pc
1920 pkgconfig/gnunettestbed.pc
1921 pkgconfig/gnunettesting.pc
1922 pkgconfig/gnunettransport.pc
1923 pkgconfig/gnunetutil.pc
1924 pkgconfig/gnunetvpn.pc
1930 # warn user if mysql found but not used due to version
1931 AS_IF([test "$mysqlfail" = "true"]
1932 [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
1935 AS_IF([test "x$sqlite" = "x0"],
1936 [AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])])
1939 AS_IF([test "$gnurl" = "0"],
1940 [AS_IF([test "x$curl" = "xfalse"],
1941 [AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.])
1942 AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])],
1943 [AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])])])
1946 AS_IF([test "x$bluetooth" = "x0"],
1947 [AC_MSG_NOTICE([WARNING: optional bluetooth library not found.])])
1951 AS_IF([test "x$jansson" = "x0"],
1952 [AC_MSG_NOTICE([WARNING: optional jansson library not found.])])
1955 # FIXME: `some modules' -> be more specific which exact modules.
1958 # warn user if iptables is not found
1959 AS_IF([test "$VAR_IPTABLES_BINARY" = "false"],
1960 [AC_MSG_NOTICE([WARNING: optional iptables not found])])
1962 # warn user if ifconfig is not found
1963 AS_IF([test "$VAR_IFCONFIG_BINARY" = "false"],
1964 [AC_MSG_NOTICE([WARNING: optional ifconfig not found])])
1966 # warn user if upnpc binary is not found
1967 AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
1968 [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])])
1971 AS_IF([test x$gnutls != xtrue],
1972 [AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built])],
1973 [AS_IF([test "x$gnutls_dane" != "x1"],
1974 [AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible])])])
1976 # warn user if libzbar is not found
1977 AS_IF([test "$have_zbar" = 0],
1978 [AC_MSG_NOTICE([WARNING: zbar not found, gnunet-qr will not be built.])])
1981 AS_IF([test "x$enable_java_ports" = "xyes"],
1982 [AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.])])
1985 AS_IF([test "x$lmhd" != "x1"],
1986 [AC_MSG_NOTICE([WARNING: optional libmicrohttpd not found])])
1989 AS_IF([test "x$conversation_backend" = "xnone"],
1990 [AS_IF([test "x$pulse" != "x1"],
1991 [AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.])])
1992 AS_IF([test "x$opus" != "x1"],
1993 [AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.])])
1994 AS_IF([test "x$gst" != "x1"],
1995 [AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.])])])
1997 AS_IF([test "$extractor" != 1],
1998 [AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it])])
2000 AS_IF([test "x$working_libidn2" = x1],
2001 [AC_MSG_NOTICE([INFO: Using libidn2])])
2002 AS_IF([test "x$working_libidn1" = x1],
2003 [AC_MSG_NOTICE([INFO: Using libidn1])])
2005 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
2007 AS_IF([test "$enable_framework_build" = "yes"],
2008 [AC_MSG_NOTICE([Mac OS X framework build enabled.])])
2010 AC_MSG_NOTICE([********************************************
2011 Please make sure NOW that you have created a user and group 'gnunet'
2012 and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux, type:
2014 adduser --system --group --disabled-login --home /var/lib/gnunet gnunet
2016 Make sure that '/var/lib/gnunet' is owned (and writable) by user
2017 'gnunet'. Then, you can compile GNUnet with
2020 After that, run (if necessary as 'root')
2022 to install everything.
2024 Each GNUnet user should be added to the 'gnunet' group (may
2025 require fresh login to come into effect):
2026 adduser USERNAME gnunet
2027 (run the above command as root once for each of your users, replacing
2028 "USERNAME" with the respective login names). If you have a global IP
2029 address, no further configuration is required.
2031 For more detailed setup instructions, see https://docs.gnunet.org/
2033 Optionally, download and compile gnunet-gtk to get a GUI for
2034 file-sharing and configuration. This is particularly recommended
2035 if your network setup is non-trivial, as gnunet-setup can be
2036 used to test in the GUI if your network configuration is working.
2037 gnunet-setup should be run as the "gnunet" user under X. As it
2038 does very little with the network, running it as "root" is likely
2039 also harmless. You can also run it as a normal user, but then
2040 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
2041 home directory in the end.
2043 Once you have configured your peer, run (as the 'gnunet' user)
2045 to start the peer. You can then run the various GNUnet-tools as
2046 your "normal" user (who should only be in the group 'gnunet').
2047 ********************************************])