1 # This file is part of GNUnet.
2 # (C) 2001--2018 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.0pre66], [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])
75 DEFAULT_INTERFACE="\"en0\""
81 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
89 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
90 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
91 CFLAGS="-D_THREAD_SAFE $CFLAGS"
92 build_target="freebsd"
98 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
99 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
100 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
101 build_target="openbsd"
107 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
108 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
114 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
115 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
116 AC_CHECK_LIB(resolv, res_init)
117 AC_CHECK_LIB(rt, nanosleep)
118 build_target="solaris"
124 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
125 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
132 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
133 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
134 AC_CHECK_LIB(intl, gettext)
135 CFLAGS="-mms-bitfields $CFLAGS"
136 build_target="cygwin"
143 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
144 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
145 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
146 AC_CHECK_LIB(intl, gettext)
147 LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
148 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
149 CFLAGS="-mms-bitfields $CFLAGS"
150 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
157 native_srcdir=$(cd $srcdir; pwd -W)
160 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
165 AC_MSG_RESULT(Unrecognised OS $host_os)
166 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
170 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
171 AC_SUBST(DEFAULT_INTERFACE)
173 # Disable TCP-based IPC on systems that support UNIX domain
174 # sockets in default configuratin:
178 AC_MSG_CHECKING([for build target])
179 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
180 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
181 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
182 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
183 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
184 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
185 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
186 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
188 AC_MSG_RESULT([$build_target])
189 AC_SUBST(build_target)
190 AM_CONDITIONAL([am__fastdepOBJC], false)
191 AC_UNALIGNED_64_ACCESS
193 # some other checks for standard libs
194 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
195 AC_SEARCH_LIBS([memrchr], [], [],
196 AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]))
197 AC_CHECK_LIB(socket, socket)
199 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
201 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
202 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
204 AC_CHECK_PROG(VAR_SSH_BINARY, ssh, true, false)
205 AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
206 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)
207 rm -f /tmp/gnunet_test_cosks_ssh_garbage
209 # iptables is a soft requirement to run tests
210 AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
212 if test x"$VAR_IPTABLES_BINARY" = x"false"
214 if test -x "/sbin/iptables"
216 VAR_IPTABLES_BINARY="/sbin/iptables"
217 elif test -x "/usr/sbin/iptables"
219 VAR_IPTABLES_BINARY="/usr/sbin/iptables"
223 if test x"$VAR_IPTABLES_BINARY" != x"false"
225 AC_DEFINE_UNQUOTED([IPTABLES], "$VAR_IPTABLES_BINARY", [Path to iptables])
227 AC_MSG_WARN([warning: 'iptables' not found.])
230 AC_PATH_TARGET_TOOL(VAR_IFCONFIG_BINARY, ifconfig, false)
232 AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false)
233 if test x"$VAR_IFCONFIG_BINARY" = x"false"
235 if test -x "/sbin/ifconfig"
237 VAR_IFCONFIG_BINARY="/sbin/ifconfig"
238 elif test -x "/usr/sbin/ifconfig"
240 VAR_IFCONFIG_BINARY="/usr/sbin/ifconfig"
243 if test x"$VAR_IFCONFIG_BINARY" != x"false"
245 AC_DEFINE_UNQUOTED([IFCONFIG], "$VAR_IFCONFIG_BINARY", [Path to ifconfig])
247 AC_MSG_WARN(['ifconfig' not found.])
250 # miniupnpc / upnpc binary is a soft runtime requirement
251 AC_PATH_TARGET_TOOL(VAR_UPNPC_BINARY, upnpc, false)
253 if test x"$VAR_UPNPC_BINARY" != x"false"
255 AC_DEFINE_UNQUOTED([UPNPC], "$VAR_UPNPC_BINARY", [Path to upnpc binary])
257 AC_MSG_WARN([warning: 'upnpc' binary not found.])
260 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
261 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
262 [Define if struct tm has the tm_gmtoff member.])],
266 AC_CHECK_DECLS([_stati64])
268 # 'save' libs; only those libs found so far will be
269 # linked against _everywhere_. For the others, we
270 # will be more selective!
274 AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
275 AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
277 # tests only run on Windows
278 if test "x$build_target" = "xmingw"
280 AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
281 AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
287 NEED_LIBGCRYPT_VERSION=1.6.0
290 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
291 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
297 *** You need libgcrypt to build this program.
298 ** This library is for example available at
299 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
300 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
304 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
306 # should the build process be building the documentation?
307 AC_MSG_CHECKING(whether to build documentation)
308 AC_ARG_ENABLE([documentation],
309 [AS_HELP_STRING([--disable-documentation], [do not build the documentation])],
310 [documentation=${enableval}],
312 AC_MSG_RESULT($documentation)
313 if test "x$documentation" = "xyes"
315 AM_CONDITIONAL([DOCUMENTATION],true)
316 AC_DEFINE([DOCUMENTATION],[1],[Building the documentation])
318 AM_CONDITIONAL([DOCUMENTATION],false)
319 AC_DEFINE([DOCUMENTATION],[0],[Not building the documentation])
322 AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
323 AC_ARG_ENABLE([texi2mdoc-generation],
324 [AS_HELP_STRING([--disable-texi2mdoc-generation], [do not include generated texi2mdoc output in installation])],
325 [texi2mdoc-generation=${enableval}],
326 [texi2mdoc-generation=yes])
327 AC_MSG_RESULT($texi2mdoc-generation)
328 if test "x$texi2mdoc-generation" = "xyes"
330 if test "$texi2mdoc" = 0
332 AC_MSG_WARN([ERROR: mdoc output currently requires texi2mdoc.])
333 AC_MSG_WARN([ERROR: texi2mdoc can be obtained via your Operating System])
334 AC_MSG_WARN([ERROR: package manager or from https://mandoc.bsd.lv/texi2mdoc/])
336 AM_CONDITIONAL([TEXI2MDOC_GENERATION],true)
337 AC_DEFINE([TEXI2MDOC_GENERATION],[1],[Building section 7 mdoc output])
340 AM_CONDITIONAL([TEXI2MDOC_GENERATION],false)
341 AC_DEFINE([TEXI2MDOC_GENERATION],[0],[Not building section 7 mdoc output])
344 # should the build process be building only the documentation?
345 AC_MSG_CHECKING(whether to build only documentation)
346 AC_ARG_ENABLE([documentation-only],
347 [AS_HELP_STRING([--enable-documentation-only], [build only the documentation])],
348 [documentation_only=${enableval}],
349 [documentation_only=no])
350 AC_MSG_RESULT($documentation_only)
351 if test "x$documentation_only" = "xyes"
353 AM_CONDITIONAL([DOCUMENTATION_ONLY],true)
354 AC_DEFINE([DOCUMENTATION_ONLY],[1],[Building only the documentation])
356 AM_CONDITIONAL([DOCUMENTATION_ONLY],false)
357 AC_DEFINE([DOCUMENTATION_ONLY],[0],[Not building only the documentation])
361 # Adam shostack suggests the following for Windows:
362 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
363 AC_ARG_ENABLE(gcc-hardening,
364 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
365 [if test x$enableval = xyes; then
366 CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
367 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
368 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
369 LDFLAGS="$LDFLAGS -pie"
373 # Linker hardening options
374 # Currently these options are ELF specific - you can't use this with MacOSX
375 AC_ARG_ENABLE(linker-hardening,
376 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
377 [if test x$enableval = xyes; then
378 LDFLAGS="$LDFLAGS -z relro -z now"
382 AC_ARG_ENABLE(sanitizer,
383 AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer),
384 [if test x$enableval = xyes; then
385 LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer"
389 extra_logging=GNUNET_NO
390 AC_ARG_ENABLE([logging],
391 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
392 [AS_IF([test "x$enableval" = "xyes"], [],
393 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
394 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
395 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
397 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
399 # should memory poisoning be enabled?
400 AC_MSG_CHECKING(whether to poison freed memory)
401 AC_ARG_ENABLE([poisoning],
402 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
403 [enable_poisoning=${enableval}],
405 if test "x$extra_logging" != "xGNUNET_NO"; then
406 enable_poisoning="defaults to yes (extra logging is enabled)"
411 AC_MSG_RESULT($enable_poisoning)
412 if test ! "x$enable_poisoning" = "xno"; then
417 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
419 if test $build = $target
421 AC_MSG_CHECKING([for working HMAC])
423 LIBS="$LIBS $LIBGCRYPT_LIBS"
424 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
426 [AC_LANG_PROGRAM([#include <gcrypt.h>
427 #include <stdio.h>], [[
430 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
431 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
432 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
433 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
434 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
435 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
436 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
437 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
438 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
439 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
441 if (!gcry_check_version (GCRYPT_VERSION))
443 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
447 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
448 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
450 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
452 fprintf (stderr, "gcry_md_open error\n");
456 gcry_md_setkey (mac, key, sizeof (key));
457 gcry_md_write (mac, data, sizeof (data));
459 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
461 fprintf (stderr, "memcmp error\n");
469 [AC_MSG_RESULT([yes])],
474 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.])
478 AC_MSG_FAILURE([HMAC test failed])
482 AC_MSG_FAILURE([libgcrypt header version does not match library version])
485 [AC_MSG_RESULT([cross compiling, test skipped])])
487 fi # $build = $target
489 # check for bluetooth library
491 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
492 if test "$build_target" = "mingw"
496 AM_CONDITIONAL(HAVE_LIBBLUETOOTH, [test "$bluetooth" = 1])
497 if test "$bluetooth" = 1
499 AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
501 AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])
504 # check for jansson library
506 AC_MSG_CHECKING(for libjansson)
508 [ --with-jansson=PFX base of libjansson installation],
509 [AC_MSG_RESULT([$with_jansson])
510 case $with_jansson in
514 AC_CHECK_HEADERS(jansson.h,
515 AC_CHECK_LIB([jansson], [json_loads],
519 LDFLAGS="-L$with_jansson/lib $LDFLAGS"
520 CPPFLAGS="-I$with_jansson/include $CPPFLAGS"
521 AC_CHECK_HEADERS(jansson.h,
522 AC_CHECK_LIB([jansson], [json_loads],
523 EXT_LIB_PATH="-L$with_jansson/lib $EXT_LIB_PATH"
528 [AC_MSG_RESULT([--with-jansson not specified])
529 AC_CHECK_HEADERS(jansson.h,
530 AC_CHECK_LIB([jansson], [json_loads],
532 AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
533 AS_IF([test "x$jansson" = x1],
534 [AC_DEFINE([HAVE_JANSSON],[1],[Have jansson library])],
535 [AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])])
538 # check for libpulse(audio) library
540 AC_CHECK_LIB(pulse,pa_stream_peek,
541 [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
542 AS_IF([test "$build_target" = "mingw"],
544 AS_IF([test "$pulse" = 1],
545 [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])])
547 # check for libopus(audio) library
549 AC_CHECK_LIB(opus,opus_decode_float,
550 [AC_CHECK_HEADER([opus/opus.h],
551 [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
555 AS_IF([test "x$opus" = x1],
556 [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])])
559 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
560 [AC_CHECK_HEADERS([ogg/ogg.h],
561 AM_CONDITIONAL(HAVE_OGG, true)
563 AC_DEFINE(HAVE_OGG,1,[Have ogg]),
564 AM_CONDITIONAL(HAVE_OGG, false)
566 AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
567 AM_CONDITIONAL(HAVE_OGG, false)
571 PKG_CHECK_MODULES([GLIB],
573 [# check for pbc library
575 AC_CHECK_HEADER([pbc/pbc.h],pbc=1)
576 AC_CHECK_HEADER([gabe.h],abe=1)
577 AM_CONDITIONAL(HAVE_PBC, [test "x$pbc" = x1])
578 AM_CONDITIONAL(HAVE_ABE, [test "x$abe" = x1])
579 AS_IF([test "x$pbc" = x1],
580 [AC_DEFINE([HAVE_PBC],[1],[Have pbc library])],
581 [AC_DEFINE([HAVE_PBC],[0],[Lacking pbc library])])
582 AS_IF([test "x$abe" = x1],
583 [AC_DEFINE([HAVE_ABE],[1],[Have ABE library])],
584 [AC_DEFINE([HAVE_ABE],[0],[Lacking ABE library])])],
586 AM_CONDITIONAL(HAVE_PBC, [false])
587 AM_CONDITIONAL(HAVE_ABE, [false])
588 AC_DEFINE([HAVE_PBC],[0],[Lacking glib library])])
593 [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
598 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
600 if test "x$gst" != "x1"
602 conversation_backend=none
603 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
604 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
605 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
607 conversation_backend=gst
608 AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
609 AM_CONDITIONAL(BUILD_GST_HELPERS, true)
610 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
614 conversation_backend=pulse
615 AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
616 AM_CONDITIONAL(BUILD_GST_HELPERS, false)
617 AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
621 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
624 AM_CONDITIONAL(HAVE_LIBGNURL, true)
625 AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
627 AM_CONDITIONAL(HAVE_LIBGNURL, false)
628 AC_DEFINE([HAVE_LIBGNURL],[0],[Lacking libgnurl])
631 SAVE_CPPFLAGS=$CPPFLAGS
632 CPPFLAGS="$LIBGNURL_CPPFLAGS $LIBCURL_CPPFLAGS $CPPFLAGS"
633 LIBS="$LIBGNURL $LIBCURL $LIBS"
636 LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
637 if test "x$curl" = xtrue
640 AC_CHECK_HEADERS([curl/curl.h],
641 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
643 AC_CHECK_HEADERS([gnurl/curl.h],
644 AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],,[[#include <gnurl/curl.h>]]))
645 # need libcurl-gnutls.so, everything else is not acceptable
646 AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
647 # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
650 # Check for curl/curl.h and gnurl/curl.h so we can use #ifdef
651 # HAVE_CURL_CURL_H later (the above LIBCURL_CHECK_CONFIG accepted
652 # *either* header set).
653 AC_CHECK_HEADERS([curl/curl.h],,
655 AC_CHECK_HEADERS([gnurl/curl.h],,
660 if test x$curl = xfalse
662 AM_CONDITIONAL(HAVE_LIBCURL, false)
665 AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34])
668 AM_CONDITIONAL(HAVE_LIBCURL, true)
669 AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
673 # restore LIBS & CPPFLAGS
675 CPPFLAGS=$SAVE_CPPFLAGS
677 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
678 # GLPK must support glpk_init_env, version >= 4.43
679 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
680 # GLPK must support atm MLP presolving, version >= 4.32
681 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
682 if test x$gplk = xfalse
684 AM_CONDITIONAL(HAVE_LIBGLPK, false)
685 AC_MSG_WARN([ERROR: GNUnet requires GLPK >= 4.32])
687 AM_CONDITIONAL(HAVE_LIBGLPK, true)
688 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
692 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
693 if test x$nss = xfalse
695 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
696 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
698 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
703 # test for kvm and kstat (for CPU stats under BSD/Solaris)
704 AC_CHECK_LIB([kvm],[kvm_open])
705 AC_CHECK_LIB([kstat],[kstat_open])
708 # should the build process be restricted to the code required
709 # for GNU Taler wallets?
710 AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
711 AC_ARG_ENABLE([taler-wallet],
712 [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
713 [taler_only=${enableval}],
715 AC_MSG_RESULT($taler_only)
716 if test "x$taler_only" = "xyes"
718 AM_CONDITIONAL([TALER_ONLY],true)
719 AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet])
721 AM_CONDITIONAL([TALER_ONLY],false)
722 AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation])
725 # test for libextractor
727 AC_MSG_CHECKING(for libextractor)
728 AC_ARG_WITH(extractor,
729 [ --with-extractor=PFX base of libextractor installation],
730 [AC_MSG_RESULT([$with_extractor])
731 case $with_extractor in
735 AC_CHECK_HEADERS([extractor.h],
736 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
740 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
741 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
742 AC_CHECK_HEADERS([extractor.h],
743 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
744 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
749 [AC_MSG_RESULT([--with-extractor not specified])
750 AC_CHECK_HEADERS([extractor.h],
751 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
756 if test "$extractor" != 1
758 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, false)
759 AC_DEFINE([HAVE_LIBEXTRACTOR],[0],[Lacking libextractor])
761 AM_CONDITIONAL(HAVE_LIBEXTRACTOR, true)
762 AC_DEFINE([HAVE_LIBEXTRACTOR],[1],[Have libextractor])
766 if test "$taler_only" != yes
769 # Check for libltdl header (#2999)
771 AC_MSG_CHECKING(for libltdl)
773 [ --with-ltdl=PFX base of libltdl installation],
774 [AC_MSG_RESULT([$with_ltdl])
779 AC_CHECK_HEADERS(ltdl.h,
780 AC_CHECK_LIB([ltdl], [lt_dlopenext],
784 LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
785 CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
786 AC_CHECK_HEADERS(ltdl.h,
787 AC_CHECK_LIB([ltdl], [lt_dlopenext],
788 EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
793 [AC_MSG_RESULT([--with-ltdl not specified])
794 AC_CHECK_HEADERS(ltdl.h,
795 AC_CHECK_LIB([ltdl], [lt_dlopenext],
799 AC_MSG_RESULT([libltdl found])
801 AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
806 # libidn and libidn2. The ideal goal is this:
807 # check for libidn2, if it doesn't exist check for libidn
808 # if both exist, prefer libidn2
809 # if none exist, fail and message that libidn or libidn2
810 # is required with a preference for libidn2.
811 # TODO: What we have right here can probably be improved.
814 AS_HELP_STRING([--with-libidn=pathname],
815 [Support IDN (needs libidn)]),
818 AS_IF([test x_$withval = x_yes],
819 [AC_CHECK_HEADERS([idna.h],
820 AC_MSG_NOTICE([Found idna.h]),
821 AC_CHECK_HEADERS([idn/idna.h],
822 AC_MSG_NOTICE([Found idn/idna.h]),
824 [AS_IF([test x_$withval != x_no],
825 [CFLAGS="$CFLAGS -I$withval/include"
826 LDFLAGS="$LDFLAGS -L$withval/lib"
827 AC_CHECK_HEADERS([idna.h],
828 AC_MSG_NOTICE([Found idna.h]),
829 [AC_MSG_NOTICE([Failed to find idna.h])
831 [my_with_libidn=0])])
835 AS_HELP_STRING([--with-libidn2=pathname],
836 [Support IDN (needs libidn2)]),
839 AS_IF([test x_$withval = x_yes],
840 [AC_CHECK_HEADERS([idn2.h],
841 AC_MSG_NOTICE([Found idn2.h]),
842 AC_CHECK_HEADERS([idn2/idn2.h],
843 AC_MSG_NOTICE([Found idn2/idn2.h]),
844 [AC_MSG_NOTICE([Failed to find idn2.h])
845 my_with_libidn2=0]))],
846 [AS_IF([test x_$withval != x_no],
847 [CFLAGS="$CFLAGS -I$withval/include"
848 LDFLAGS="$LDFLAGS -L$withval/lib"],
849 [my_with_libidn2=0])])
851 AC_MSG_CHECKING([if libidn can be used])
853 there_can_only_be_one=1
857 AS_IF([test x$my_with_libidn2 = x1],
858 [AC_MSG_NOTICE([Checking for libidn2])
860 [idn2_to_unicode_8z8z],
863 AC_DEFINE_UNQUOTED([HAVE_LIBIDN2],
865 [Define to 1 if you have 'libidn2' (-lidn2).])],
866 [MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
868 AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
869 AS_IF([test x$working_libidn2 = x0],
870 [AS_IF([test x$my_with_libidn = x1],
871 [AC_MSG_NOTICE([Checking for libidn])
876 AC_DEFINE_UNQUOTED([HAVE_LIBIDN],
878 [Define to 1 if you have 'libidn' (-lidn).])],
879 [there_can_only_be_one=0])],
880 [AS_IF([test x$my_with_libidn2 = x1],
881 [there_can_only_be_one=0
882 AC_MSG_FAILURE([* There can only be one libidn.
883 * Provide either libidn >= 1.13
885 * libidn2 to the configure
888 * --with-libidn])])])])
889 AM_CONDITIONAL(HAVE_LIBIDN, test x$working_libidn1 = x1)
891 AS_IF([test x$there_can_only_be_one = x0],
892 [AC_MSG_FAILURE([Missing dependencies: $MISSING_DEPS])])
895 SAVE_LDFLAGS=$LDFLAGS
896 SAVE_CPPFLAGS=$CPPFLAGS
898 [ --with-zlib[[=DIR]] use libz in DIR],
899 [AS_IF([test "$withval" = "no"],
900 [AC_MSG_ERROR([GNUnet requires zlib])],
901 [test "$withval" != "yes"],
904 CPPFLAGS="${CPPFLAGS} -I$withval/include"
905 LDFLAGS="${LDFLAGS} -L$withval/lib"
908 AC_CHECK_HEADER(zlib.h,
910 [AC_MSG_ERROR([GNUnet requires zlib])])
911 AC_CHECK_LIB(z, compress2,
913 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
914 if test "x${Z_DIR}" != "x"; then
915 Z_CFLAGS="-I${Z_DIR}/include"
916 Z_LIBS="-L${Z_DIR}/lib -lz"
920 [AC_MSG_ERROR([GNUnet requires zlib])])
924 if test "$enable_shared" = "no"
926 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
940 # test for libunistring
942 if test $HAVE_LIBUNISTRING != yes; then
943 AC_MSG_ERROR([GNUnet requires libunistring])
945 # under emscripten, $gl_libunistring_hexversion is undefined
946 if test "$taler_only" != yes; then
947 if test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305; then
948 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
951 AC_CHECK_HEADERS([unistr.h],,AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed]))
958 # Checks for standard header files.
962 # Check for headers that are ALWAYS required
963 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]))
967 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
968 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])
970 # FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
971 AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
972 [#ifdef HAVE_SYS_TYPES_H
973 #include <sys/types.h>
975 #ifdef HAVE_NETINET_IN_SYSTM_H
976 #include <netinet/in_systm.h>
978 #ifdef HAVE_NETINET_IN_H
979 #include <netinet/in.h>
983 SAVE_LDFLAGS=$LDFLAGS
984 SAVE_CPPFLAGS=$CPPFLAGS
988 AC_MSG_CHECKING(for SQLite)
990 [ --with-sqlite=PFX base of SQLite installation],
991 [AC_MSG_RESULT("$with_sqlite")
996 AC_CHECK_HEADERS(sqlite3.h,
1000 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
1001 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
1002 AC_CHECK_HEADERS(sqlite3.h,
1003 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
1004 SQLITE_LDFLAGS="-L$with_sqlite/lib"
1005 SQLITE_CPPFLAGS="-I$with_sqlite/include"
1007 LDFLAGS=$SAVE_LDFLAGS
1008 CPPFLAGS=$SAVE_CPPFLAGS
1012 [AC_MSG_RESULT([--with-sqlite not specified])
1013 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
1014 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
1015 AC_SUBST(SQLITE_CPPFLAGS)
1016 AC_SUBST(SQLITE_LDFLAGS)
1018 LDFLAGS=$SAVE_LDFLAGS
1019 CPPFLAGS=$SAVE_CPPFLAGS
1023 # even running the check for postgres breaks emscripten ...
1024 AS_IF([test "$taler_only" != yes],
1025 [AX_LIB_POSTGRESQL([9.5],
1026 [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
1027 AC_CHECK_HEADERS([libpq-fe.h],
1030 [AC_MSG_RESULT([no postgres])])])
1031 AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
1034 LDFLAGS=$SAVE_LDFLAGS
1035 CPPFLAGS=$SAVE_CPPFLAGS
1038 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
1039 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
1041 if test "$build_target" = "mingw"
1043 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
1049 SAVE_LDFLAGS=$LDFLAGS
1050 SAVE_CPPFLAGS=$CPPFLAGS
1051 AC_MSG_CHECKING(for mysql)
1053 [ --with-mysql=PFX base of MySQL installation],
1054 [AC_MSG_RESULT([$with_mysql])
1059 AC_CHECK_HEADERS(mysql/mysql.h,
1060 AC_CHECK_LIB(mysqlclient, mysql_init,
1062 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1065 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
1066 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
1067 AC_CHECK_HEADERS(mysql/mysql.h,
1068 AC_CHECK_LIB(mysqlclient, mysql_init,
1069 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
1070 MYSQL_CPPFLAGS="-I$with_mysql/include"
1072 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
1076 [AC_MSG_RESULT([--with-mysql not specified])
1077 if test -d "/usr/lib64/mysql"; then
1078 MYSQL_LIBDIR="/usr/lib64/mysql"
1079 elif test -d "/usr/lib/mysql"; then
1080 MYSQL_LIBDIR="/usr/lib/mysql"
1082 MYSQL_LIBDIR="/usr/lib"
1084 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
1085 AC_CHECK_LIB(mysqlclient, mysql_init,
1086 [AC_CHECK_HEADERS(mysql/mysql.h,
1087 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
1090 , [], [$CYGWIN_MYSQL_MAGIC])])
1093 AC_SUBST(MYSQL_LDFLAGS)
1094 AC_SUBST(MYSQL_CPPFLAGS)
1096 # additional version check for mysql
1097 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
1098 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
1100 AC_MSG_CHECKING(mysql version)
1101 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1102 [[$CYGWIN_MYSQL_MAGIC
1103 #include <mysql/mysql.h>]],
1105 #if (MYSQL_VERSION_ID < 40100)
1106 #error needs at least version >= 4.1
1108 int main () { return 0; }
1110 ],mysql=true,mysql=false)
1111 if test "$mysql" = "false"
1114 AC_MSG_RESULT([fail, >= 4.1 required])
1119 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
1120 AM_CONDITIONAL(HAVE_MYSQLE, false)
1123 LDFLAGS=$SAVE_LDFLAGS
1124 CPPFLAGS=$SAVE_CPPFLAGS
1126 if test "$sqlite" = 0 -a "$mysql" = 0
1128 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
1133 AC_MSG_CHECKING([for libmicrohttpd])
1134 AC_ARG_WITH(microhttpd,
1135 [ --with-microhttpd=PFX base of libmicrohttpd installation],
1136 [AC_MSG_RESULT([$with_microhttpd])
1137 case $with_microhttpd in
1141 AC_CHECK_HEADERS([microhttpd.h],
1142 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1143 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1144 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.42])
1145 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1146 #include "$native_srcdir/src/include/platform.h"
1147 #include <microhttpd.h>
1148 #if (MHD_VERSION < 0x0094200)
1149 #error needs at least version 0.9.42
1151 int main () { return 0; }
1155 [AC_MSG_RESULT(failed)])]),
1156 [],[#include "$native_srcdir/src/include/platform.h"
1157 #include <microhttpd.h>]),,
1158 [#include "$native_srcdir/src/include/platform.h"])
1161 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
1162 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
1163 AC_CHECK_HEADERS(microhttpd.h,
1164 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1165 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1166 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
1167 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.42])
1168 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1169 #include "$native_srcdir/src/include/platform.h"
1170 #include <microhttpd.h>
1171 #if (MHD_VERSION < 0x0094200)
1172 #error needs at least version 0.9.42
1174 int main () { return 0; }
1178 [AC_MSG_RESULT(failed)])]),
1179 [],[#include "$native_srcdir/src/include/platform.h"
1180 #include <microhttpd.h>]),,
1181 [#include "$native_srcdir/src/include/platform.h"])
1185 [AC_MSG_RESULT([--with-microhttpd not specified])
1186 AC_CHECK_HEADERS([microhttpd.h],
1187 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
1188 AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
1189 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.42])
1190 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1191 #include "$native_srcdir/src/include/platform.h"
1192 #include <microhttpd.h>
1193 #if (MHD_VERSION < 0x0094200)
1194 #error needs at least version 0.9.42
1199 [AC_MSG_RESULT(failed)])]),
1200 [],[#include "$native_srcdir/src/include/platform.h"
1201 #include <microhttpd.h>]),,
1202 [#include "$native_srcdir/src/include/platform.h"])])
1203 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
1204 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
1206 AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1])
1211 # check for python & pexpect (used for some testcases only)
1212 AM_PATH_PYTHON([2.6],, [:])
1213 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
1216 AM_GNU_GETTEXT([external])
1217 AM_GNU_GETTEXT_VERSION([0.18.1])
1219 # Checks for standard typedefs, structures, and compiler characteristics.
1228 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
1229 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
1233 #include <sys/types.h>
1234 #include <sys/socket.h>
1235 #include <netinet/in.h>
1238 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1239 [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?])
1243 #include <sys/types.h>
1244 #include <sys/socket.h>
1250 # Checks for library functions.
1251 AC_FUNC_CLOSEDIR_VOID
1253 AC_PROG_GCC_TRADITIONAL
1255 AC_FUNC_SELECT_ARGTYPES
1265 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])
1271 GN_LIBINTL="$LTLIBINTL"
1272 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
1273 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
1274 if test x$enable_framework_build = xyes
1276 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
1277 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
1278 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
1279 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
1282 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
1283 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
1285 AC_SUBST(GN_LIB_LDFLAGS)
1286 AC_SUBST(GN_PLUGIN_LDFLAGS)
1287 AC_SUBST(GN_INTLINCL)
1288 AC_SUBST(GN_LIBINTL)
1293 AC_SUBST(EXT_LIB_PATH)
1298 AC_SUBST(EXT_LIB_PATH)
1302 AC_MSG_CHECKING(for sudo)
1304 [ --with-sudo=PATH path to sudo binary (or just yes)],
1305 [AC_MSG_RESULT("$with_sudo")
1314 SUDO_BINARY=$with_sudo
1318 [AC_MSG_RESULT([no])])
1319 AC_SUBST(SUDO_BINARY)
1320 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
1323 # test for gnunetdns group name
1324 GNUNETDNS_GROUP=gnunetdns
1325 AC_MSG_CHECKING(for gnunetdns group name)
1326 AC_ARG_WITH(gnunetdns,
1327 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
1328 [AC_MSG_RESULT("$with_gnunetdns")
1329 case $with_gnunetdns in
1331 GNUNETDNS_GROUP=gnunet
1334 GNUNETDNS_GROUP=gnunetdns
1337 GNUNETDNS_GROUP=$with_gnunetdns
1341 [AC_MSG_RESULT([gnunetdns])])
1342 AC_SUBST(GNUNETDNS_GROUP)
1349 AC_MSG_CHECKING(for gnutls)
1351 [ --with-gnutls=PFX base of gnutls installation],
1352 [AC_MSG_RESULT([$with_gnutls])
1353 case $with_gnutls in
1357 AC_CHECK_HEADERS([gnutls/abstract.h],
1358 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1360 AC_CHECK_HEADERS([gnutls/dane.h],
1361 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1365 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1366 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1367 AC_CHECK_HEADERS([gnutls/abstract.h],
1368 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1369 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1371 AC_CHECK_HEADERS([gnutls/dane.h],
1372 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1377 [AC_MSG_RESULT([--with-gnutls not specified])
1378 AC_CHECK_HEADERS([gnutls/abstract.h],
1379 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1381 AC_CHECK_HEADERS([gnutls/dane.h],
1382 AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1385 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1386 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1387 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1388 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1391 # Test if we are building for superMUC
1392 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1393 AC_ARG_ENABLE([supermuc],
1394 [AS_HELP_STRING([--enable-supermuc],
1395 [build GNUnet with support to run on the SuperMUC (default is NO)])],
1396 [if test "x$enable_supermuc" = "xno"
1403 enable_supermuc=no])
1404 AC_MSG_RESULT($enable_SUPERMUC)
1405 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1406 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1408 # Check if NSE has to send timestamp information to testbed logger for
1409 # generating histogram of messages received
1410 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1411 AC_ARG_ENABLE([nse-histogram],
1412 [AS_HELP_STRING([--enable-nse-histogram],
1413 [have NSE send timestamp information to testbed logger for generating
1414 histogram of received messages. NOT useful for production (default is
1416 [if test "x$enableval" = "xno"
1423 enable_nse_histogram=no])
1424 AC_MSG_RESULT($enable_nse_histogram)
1425 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1426 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1427 [have NSE send timestamp information to testbed logger])
1429 # should 'make check' run tests?
1430 AC_MSG_CHECKING(whether to run tests)
1431 AC_ARG_ENABLE([testruns],
1432 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1433 [enable_tests_run=${enableval}],
1434 [enable_tests_run=yes])
1435 AC_MSG_RESULT($enable_test_run)
1436 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1439 # should monkey be used when running (certain) services?
1440 AC_MSG_CHECKING(whether to run with monkey)
1441 AC_ARG_ENABLE([monkey],
1442 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1443 [enable_monkey=${enableval}],
1445 AC_MSG_RESULT($enable_monkey)
1446 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1447 if test "x$enable_monkey" = "xyes"
1449 MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1453 AC_SUBST(MONKEYPREFIX)
1456 AC_MSG_CHECKING([whether to compile in benchmarks (currently for http and crypto)])
1457 AC_ARG_ENABLE([benchmark],
1458 [AS_HELP_STRING([--enable-benchmark], [enable benchmarking])],
1459 [enable_benchmark=${enableval}],
1460 [enable_benchmark=no])
1461 AC_MSG_RESULT($enable_benchmark)
1462 AS_IF([test "x$enable_benchmark" = "xyes"],
1463 [AC_DEFINE_UNQUOTED(ENABLE_BENCHMARK,1,[Benchmarks are enabled])])
1464 AM_CONDITIONAL([ENABLE_BENCHMARK], [test "x$enable_benchmark" = "xyes"])
1467 # should expensive tests be run?
1468 AC_MSG_CHECKING(whether to run expensive tests)
1469 AC_ARG_ENABLE([expensivetests],
1470 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1471 [enable_expensive=${enableval}],
1472 [enable_expensive=no])
1473 AC_MSG_RESULT($enable_expensive)
1474 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1476 # should ports be open for Java services?
1477 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1478 AC_ARG_ENABLE([javaports],
1479 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1480 [enable_java_ports=${enableval}],
1481 [enable_java_ports=no])
1482 AC_MSG_RESULT($enable_java_ports)
1483 if test "x$enable_java_ports" = "xyes"
1487 JAVAPORT="$UNIXONLY"
1491 # should benchmarks be run?
1492 AC_MSG_CHECKING(whether to run benchmarks during make check)
1493 AC_ARG_ENABLE([benchmarks],
1494 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1495 [enable_benchmarks=${enableval}],
1496 [enable_benchmarks=no])
1497 AC_MSG_RESULT($enable_benchmarks)
1498 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1500 # should gnunet-testing be compiled
1501 AC_MSG_CHECKING(wether to compile gnunet-testing)
1502 AC_ARG_ENABLE([testing],
1503 [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1504 [enable_testing=${enableval}],
1505 [enable_testing=yes])
1506 AC_MSG_RESULT($enable_testing)
1507 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1509 # should experimental code be compiled (code that may not yet compile)?
1510 AC_MSG_CHECKING(whether to compile experimental code)
1511 AC_ARG_ENABLE([experimental],
1512 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1513 [enable_experimental=${enableval}],
1514 [enable_experimental=no])
1515 AC_MSG_RESULT($enable_experimental)
1516 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1518 # should malicious code be compiled (should only be used for testing)?
1519 AC_MSG_CHECKING(whether to compile malicious code)
1520 AC_ARG_ENABLE([malicious],
1521 [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
1522 [if test "x$enableval" = "xno"
1529 enable_malicious=no])
1530 AC_MSG_RESULT($enable_malicious)
1531 AM_CONDITIONAL([ENABLE_MALICIOUS], [test 1=$malicious])
1532 AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
1533 [enable compilation of malicious code])
1535 # should services be started on demand when needed? Some services may choose to
1536 # never start by default and it is up to the service/module developer to decide
1537 # by having "START_ON_DEMAND = NO" instead of "START_ON_DEMAND = @START_ON_DEMAND@"
1538 # in the service/module's conf.in file.
1539 # See also IMMEDIATE_START for an unconditional immediate start.
1540 START_ON_DEMAND="YES"
1541 AC_MSG_CHECKING(whether to start peer's services on demand by default)
1542 AC_ARG_ENABLE([autostart],
1543 [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1544 [enable_autostart=${enableval}
1545 if test "x$enable_autostart" == "xno"
1547 START_ON_DEMAND="NO"
1550 [enable_autostart=yes])
1551 AC_MSG_RESULT($enable_autostart)
1552 #AM_CONDITIONAL([HAVE_START_ON_DEMAND], [test "x$enable_autostart" = "xyes"])
1553 AC_SUBST(START_ON_DEMAND)
1555 # should memory statistics be kept (very expensive CPU-wise!)
1556 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1557 AC_ARG_ENABLE([heapstats],
1558 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1559 [enable_heapstats=1],
1560 [enable_heapstats=0])
1561 AC_MSG_RESULT($enable_heapstats)
1562 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1564 # should code be enabled that works around missing OS functionality on Windows?
1565 # used for test cases
1566 if test $build_target = "mingw"
1572 [#include <ws2tcpip.h>
1574 int s = socket (0, 0, 0);])
1576 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1578 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1583 [#include <ws2tcpip.h>
1585 int s = select (0, NULL, NULL, NULL, NULL);])
1587 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1589 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1594 [#include <ws2tcpip.h>
1597 char *s = inet_ntoa (i);])
1599 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1601 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1606 [#include <ws2tcpip.h>
1608 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1610 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1612 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1617 [#include <ws2tcpip.h>
1619 int s = gethostname (NULL, 0);])
1621 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1623 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1628 [#include <ws2tcpip.h>
1630 void *s = gethostbyname (NULL);])
1632 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1634 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1639 [#include <ws2tcpip.h>
1641 void *s = gethostbyaddr (NULL, 0, 0);])
1643 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1645 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1650 [#include <ws2tcpip.h>
1652 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1654 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1656 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],0,[Define this if getaddrinfo() is available])
1660 AC_MSG_CHECKING(whether to enable windows workarounds)
1661 AC_ARG_ENABLE([windows_workarounds],
1662 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1663 [enable_workarounds=${enableval}],
1664 [enable_workarounds=no])
1665 AC_MSG_RESULT($enable_workarounds)
1666 if test x$enable_windows_workarounds = "xyes"
1673 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1676 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1677 AC_ARG_ENABLE([coverage],
1678 AS_HELP_STRING([--enable-coverage],
1679 [compile the library with code coverage support]),
1680 [use_gcov=${enableval}],
1682 AC_MSG_RESULT($use_gcov)
1683 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1687 # TODO: git blame says this predates our switch to git. git-svn should be adjusted to simply git, or
1688 # an external script that does the job.
1689 AC_PATH_PROG(svnversioncommand, svnversion)
1690 AC_PATH_PROG(gitcommand, git)
1691 AC_MSG_CHECKING(for source being under a VCS)
1695 AC_PATH_PROG(gitcommand, git)
1696 AC_MSG_CHECKING(for source being under a VCS)
1698 AS_IF([test ! "X$gitcommand" = "X"],
1700 git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null)
1702 AS_IF([test "X$git_version" = "X"],
1705 vcs_version="\"release\""
1708 vcs_name="yes, git-svn"
1709 vcs_version="\"git-$git_version\""
1711 AC_MSG_RESULT($vcs_name)
1713 AC_MSG_CHECKING(VCS version)
1714 AC_MSG_RESULT($vcs_version)
1715 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1722 doc/doxygen/Makefile
1723 doc/handbook/Makefile
1724 doc/tutorial/Makefile
1732 src/ats-tool/Makefile
1733 src/ats-tests/Makefile
1734 src/auction/Makefile
1737 src/cadet/cadet.conf
1740 src/consensus/Makefile
1741 src/consensus/consensus.conf
1742 src/conversation/Makefile
1743 src/conversation/conversation.conf
1745 src/datacache/Makefile
1746 src/datastore/Makefile
1747 src/datastore/datastore.conf
1753 src/fragmentation/Makefile
1758 src/gns/nss/Makefile
1759 src/gnsrecord/Makefile
1761 src/identity/Makefile
1762 src/identity/identity.conf
1763 src/credential/Makefile
1764 src/credential/credential.conf
1765 src/include/Makefile
1766 src/integration-tests/Makefile
1768 src/hostlist/Makefile
1771 src/namecache/Makefile
1772 src/namecache/namecache.conf
1773 src/namestore/Makefile
1774 src/namestore/namestore.conf
1777 src/nat-auto/Makefile
1778 src/nat-auto/nat-auto.conf
1782 src/peerinfo/Makefile
1783 src/peerinfo/peerinfo.conf
1784 src/peerinfo-tool/Makefile
1785 src/peerstore/Makefile
1786 src/peerstore/peerstore.conf
1790 src/regex/regex.conf
1791 src/revocation/Makefile
1792 src/revocation/revocation.conf
1795 src/secretsharing/Makefile
1796 src/secretsharing/secretsharing.conf
1797 src/scalarproduct/Makefile
1798 src/scalarproduct/scalarproduct.conf
1802 src/statistics/Makefile
1803 src/statistics/statistics.conf
1804 src/template/Makefile
1805 src/testbed/Makefile
1806 src/testbed/testbed.conf
1807 src/testbed-logger/Makefile
1808 src/testbed-logger/testbed-logger.conf
1809 src/testing/Makefile
1810 src/topology/Makefile
1811 src/transport/Makefile
1812 src/transport/transport.conf
1814 src/util/resolver.conf
1817 src/zonemaster/Makefile
1818 src/zonemaster/zonemaster.conf
1820 src/rest-plugins/Makefile
1822 src/reclaim-attribute/Makefile
1823 src/reclaim/Makefile
1825 pkgconfig/gnunetarm.pc
1826 pkgconfig/gnunetats.pc
1827 pkgconfig/gnunetblock.pc
1828 pkgconfig/gnunetcadet.pc
1829 pkgconfig/gnunetconsensus.pc
1830 pkgconfig/gnunetconversation.pc
1831 pkgconfig/gnunetcore.pc
1832 pkgconfig/gnunetdatacache.pc
1833 pkgconfig/gnunetdatastore.pc
1834 pkgconfig/gnunetdht.pc
1835 pkgconfig/gnunetdns.pc
1836 pkgconfig/gnunetdv.pc
1837 pkgconfig/gnunetenv.pc
1838 pkgconfig/gnunetfragmentation.pc
1839 pkgconfig/gnunetfs.pc
1840 pkgconfig/gnunetgns.pc
1841 pkgconfig/gnunethello.pc
1842 pkgconfig/gnunetidentity.pc
1843 pkgconfig/gnunetmicrophone.pc
1844 pkgconfig/gnunetmysql.pc
1845 pkgconfig/gnunetnamestore.pc
1846 pkgconfig/gnunetnat.pc
1847 pkgconfig/gnunetnse.pc
1848 pkgconfig/gnunetpeerinfo.pc
1849 pkgconfig/gnunetpq.pc
1850 pkgconfig/gnunetregex.pc
1851 pkgconfig/gnunetrevocation.pc
1852 pkgconfig/gnunetrps.pc
1853 pkgconfig/gnunetscalarproduct.pc
1854 pkgconfig/gnunetset.pc
1855 pkgconfig/gnunetspeaker.pc
1856 pkgconfig/gnunetstatistics.pc
1857 pkgconfig/gnunettestbed.pc
1858 pkgconfig/gnunettesting.pc
1859 pkgconfig/gnunettransport.pc
1860 pkgconfig/gnunetutil.pc
1861 pkgconfig/gnunetvpn.pc
1867 # warn user if mysql found but not used due to version
1868 AS_IF([test "$mysqlfail" = "true"]
1869 [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
1872 AS_IF([test "x$sqlite" = "x0"],
1873 [AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])])
1876 AS_IF([test "$gnurl" = "0"],
1877 [AS_IF([test "x$curl" = "xfalse"],
1878 [AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.])
1879 AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])],
1880 [AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])])])
1883 AS_IF([test "x$bluetooth" = "x0"],
1884 [AC_MSG_NOTICE([WARNING: optional bluetooth library not found.])])
1888 AS_IF([test "x$jansson" = "x0"],
1889 [AC_MSG_NOTICE([WARNING: optional jansson library not found.])])
1892 # FIXME: `some modules' -> be more specific which exact modules.
1895 # warn user if iptables is not found
1896 AS_IF([test "$VAR_IPTABLES_BINARY" = "false"],
1897 [AC_MSG_NOTICE([WARNING: optional iptables not found])])
1899 # warn user if ifconfig is not found
1900 AS_IF([test "$VAR_IFCONFIG_BINARY" = "false"],
1901 [AC_MSG_NOTICE([WARNING: optional ifconfig not found])])
1903 # warn user if upnpc binary is not found
1904 AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
1905 [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])])
1908 AS_IF([test x$gnutls != xtrue],
1909 [AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built])],
1910 [AS_IF([test "x$gnutls_dane" != "x1"],
1911 [AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible])])])
1914 AS_IF([test "x$enable_java_ports" = "xyes"],
1915 [AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.])])
1918 AS_IF([test "x$lmhd" != "x1"],
1919 [AC_MSG_NOTICE([WARNING: optional libmicrohttpd not found])])
1922 AS_IF([test "x$conversation_backend" = "xnone"],
1923 [AS_IF([test "x$pulse" != "x1"],
1924 [AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.])])
1925 AS_IF([test "x$opus" != "x1"],
1926 [AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.])])
1927 AS_IF([test "x$gst" != "x1"],
1928 [AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.])])])
1930 AS_IF([test "$extractor" != 1],
1931 [AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it])])
1933 AS_IF([test "x$working_libidn2" = x1],
1934 [AC_MSG_NOTICE([INFO: Using libidn2])])
1935 AS_IF([test "x$working_libidn1" = x1],
1936 [AC_MSG_NOTICE([INFO: Using libidn1])])
1938 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1940 AS_IF([test "$enable_framework_build" = "yes"],
1941 [AC_MSG_NOTICE([Mac OS X framework build enabled.])])
1943 AC_MSG_NOTICE([********************************************
1944 Please make sure NOW that you have created a user and group 'gnunet'
1945 and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux, type:
1947 adduser --system --group --disabled-login --home /var/lib/gnunet gnunet
1949 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1950 'gnunet'. Then, you can compile GNUnet with
1953 After that, run (if necessary as 'root')
1955 to install everything.
1957 Each GNUnet user should be added to the 'gnunet' group (may
1958 require fresh login to come into effect):
1959 adduser USERNAME gnunet
1960 (run the above command as root once for each of your users, replacing
1961 "USERNAME" with the respective login names). If you have a global IP
1962 address, no further configuration is required.
1964 For more detailed setup instructions, see https://gnunet.org/installation
1966 Optionally, download and compile gnunet-gtk to get a GUI for
1967 file-sharing and configuration. This is particularly recommended
1968 if your network setup is non-trivial, as gnunet-setup can be
1969 used to test in the GUI if your network configuration is working.
1970 gnunet-setup should be run as the "gnunet" user under X. As it
1971 does very little with the network, running it as "root" is likely
1972 also harmless. You can also run it as a normal user, but then
1973 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1974 home directory in the end.
1976 Once you have configured your peer, run (as the 'gnunet' user)
1978 to start the peer. You can then run the various GNUnet-tools as
1979 your "normal" user (who should only be in the group 'gnunet').
1980 ********************************************])