#include byteswap, if detected by configure
[oweals/gnunet.git] / configure.ac
1 # This file is part of GNUnet.
2 # (C) 2001--2015 Christian Grothoff (and other contributing authors)
3 #
4 # GNUnet is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published
6 # by the Free Software Foundation; either version 3, or (at your
7 # option) any later version.
8 #
9 # GNUnet is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with GNUnet; see the file COPYING.  If not, write to the
16 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 # Boston, MA 02111-1307, USA.
18 #
19 #
20 # Process this file with autoconf to produce a configure script.
21 #
22 #
23 AC_PREREQ(2.61)
24 # Checks for programs.
25 AC_INIT([gnunet], [0.10.1], [bug-gnunet@gnu.org])
26
27 AC_CANONICAL_TARGET
28 AC_CANONICAL_HOST
29 AC_CANONICAL_SYSTEM
30
31 AM_INIT_AUTOMAKE
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33 AC_CONFIG_HEADERS([gnunet_config.h])
34 AH_TOP([#define _GNU_SOURCE  1])
35 AC_CONFIG_MACRO_DIR([m4])
36 AC_PROG_AWK
37 AC_PROG_CC
38 AC_PROG_CPP
39 AC_PROG_CXX
40 AC_PROG_OBJC
41 AC_PROG_INSTALL
42 AC_PROG_LN_S
43 AC_PROG_MAKE_SET
44 AM_PROG_CC_C_O
45 LT_INIT([disable-static dlopen win32-dll])
46 AC_SUBST(MKDIR_P)
47
48 # large file support
49 AC_SYS_LARGEFILE
50 AC_FUNC_FSEEKO
51
52
53 CFLAGS="-Wall $CFLAGS"
54 # use '-fno-strict-aliasing', but only if the compiler can take it
55 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
56 then
57  CFLAGS="-fno-strict-aliasing $CFLAGS"
58 fi
59
60 # Use Linux interface name unless the OS has a different preference
61 DEFAULT_INTERFACE="\"eth0\""
62
63 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo"
64
65 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
66 native_srcdir=$srcdir
67
68 # Check system type
69 case "$host_os" in
70 *darwin* | *rhapsody* | *macosx*)
71      AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
72      CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
73      CFLAGS="-fno-common $CFLAGS"
74      AC_MSG_WARN([The VPN application cannot be compiled on your OS])
75      build_target="darwin"
76      DEFAULT_INTERFACE="\"en0\""
77      LIBPREFIX=
78      DLLDIR=lib
79      UNIXONLY="#"
80      ;;
81 linux*)
82      AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
83      build_target="linux"
84      LIBPREFIX=
85      DLLDIR=lib
86      UNIXONLY="#"
87      AC_PATH_XTRA
88      ;;
89 *freebsd*)
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"
94      LIBPREFIX=
95      DLLDIR=lib
96      UNIXONLY="#"
97      ;;
98 *openbsd*)
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"
103      LIBPREFIX=
104      DLLDIR=lib
105      UNIXONLY="#"
106      ;;
107 *netbsd*)
108      AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
109      AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
110      LIBPREFIX=
111      DLLDIR=lib
112      UNIXONLY="#"
113      ;;
114 *solaris*)
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"
120      LIBPREFIX=
121      DLLDIR=lib
122      UNIXONLY="#"
123      ;;
124 *arm-linux*)
125      AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
126      CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
127      build_target="linux"
128      LIBPREFIX=
129      DLLDIR=lib
130      UNIXONLY="#"
131      ;;
132 *cygwin*)
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"
138      LIBPREFIX=lib
139      DLLDIR=bin
140      AC_PROG_CXX
141      UNIXONLY=""
142      ;;
143 *mingw*)
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"
152      build_target="mingw"
153      AC_PROG_CXX
154      LIBPREFIX=lib
155      DLLDIR=bin
156      UNIXONLY=""
157      funcstocheck=""
158      native_srcdir=$(cd $srcdir; pwd -W)
159      ;;
160 gnu*)
161      AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
162      build_target="gnu"
163      UNIXONLY="#"
164      ;;
165 *)
166      AC_MSG_RESULT(Unrecognised OS $host_os)
167      AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
168      UNIXONLY=""
169 ;;
170 esac
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)
173
174 # Disable TCP-based IPC on systems that support UNIX domain
175 # sockets in default configuratin:
176 AC_SUBST(UNIXONLY)
177
178
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")
188
189 AC_MSG_RESULT([$build_target])
190 AC_SUBST(build_target)
191 AM_CONDITIONAL([am__fastdepOBJC], false)
192 AC_UNALIGNED_64_ACCESS
193
194 # some other checks for standard libs
195 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
196 AC_CHECK_LIB(socket, socket)
197 AC_CHECK_LIB(m, log)
198 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
199
200 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
201 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
202
203
204
205 AC_CHECK_MEMBER(struct tm.tm_gmtoff,
206   [AC_DEFINE(HAVE_TM_GMTOFF, 1,
207      [Define if struct tm has the tm_gmtoff member.])],
208      ,
209      [#include <time.h>])
210
211 AC_CHECK_DECLS([_stati64])
212
213 # 'save' libs; only those libs found so far will be
214 # linked against _everywhere_.  For the others, we
215 # will be more selective!
216 SAVE_LIBS=$LIBS
217
218 # tests only run on Windows
219 if test "x$build_target" = "xmingw"
220 then
221   AC_CHECK_LIB(plibc, plibc_init, [], [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
222   AC_CHECK_LIB(gnurx, regexec, [], [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])
223 fi
224
225 # libgcrypt
226 gcrypt=0
227 NEED_LIBGCRYPT_API=1
228 NEED_LIBGCRYPT_VERSION=1.6.0
229
230
231 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
232 AC_CHECK_DECLS([gcry_mpi_set_opaque_copy], [], [], [[#include <gcrypt.h>]])
233
234 if test $gcrypt = 0
235 then
236   AC_MSG_ERROR([[
237 ***
238 *** You need libgcrypt to build this program.
239 **  This library is for example available at
240 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
241 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
242 ***  is required.)
243 ***]])
244 fi
245 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
246
247 # Adam shostack suggests the following for Windows:
248 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
249 AC_ARG_ENABLE(gcc-hardening,
250    AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
251 [if test x$enableval = xyes; then
252     CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
253     CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
254     CFLAGS="$CFLAGS --param ssp-buffer-size=1"
255     LDFLAGS="$LDFLAGS -pie"
256 fi])
257
258
259 # Linker hardening options
260 # Currently these options are ELF specific - you can't use this with MacOSX
261 AC_ARG_ENABLE(linker-hardening,
262   AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
263 [if test x$enableval = xyes; then
264    LDFLAGS="$LDFLAGS -z relro -z now"
265 fi])
266
267
268 extra_logging=GNUNET_NO
269 AC_ARG_ENABLE([logging],
270    AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
271    [AS_IF([test "x$enableval" = "xyes"], [],
272           [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
273           [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
274           [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
275    ], [])
276 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
277
278 # should memory poisoning be enabled?
279 AC_MSG_CHECKING(whether to poison freed memory)
280 AC_ARG_ENABLE([poisoning],
281    [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
282    [enable_poisoning=${enableval}],
283    [
284      if test "x$extra_logging" != "xGNUNET_NO"; then
285        enable_poisoning="defaults to yes (extra logging is enabled)"
286      else
287        enable_poisoning=no
288      fi
289    ])
290 AC_MSG_RESULT($enable_poisoning)
291 if test ! "x$enable_poisoning" = "xno"; then
292   enable_poisoning=1
293 else
294   enable_poisoning=0
295 fi
296 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
297
298 if test $build = $target
299 then
300 AC_MSG_CHECKING([for working HMAC])
301 AC_LANG_PUSH(C)
302 LIBS="$LIBS $LIBGCRYPT_LIBS"
303 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
304 AC_RUN_IFELSE(
305   [AC_LANG_PROGRAM([#include <gcrypt.h>
306         #include <stdio.h>], [[
307         gcry_md_hd_t mac;
308
309         unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
310             0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
311             0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
312         unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
313         unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
314             0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
315             0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
316             0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
317             0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
318             0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
319
320         if (!gcry_check_version (GCRYPT_VERSION))
321         {
322           fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
323           return 1;
324         }
325
326         gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
327         gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
328
329         if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
330         {
331           fprintf (stderr, "gcry_md_open error\n");
332           return 2;
333         }
334
335         gcry_md_setkey (mac, key, sizeof (key));
336         gcry_md_write (mac, data, sizeof (data));
337
338         if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
339         {
340           fprintf (stderr, "memcmp error\n");
341           return 3;
342         }
343
344         gcry_md_close (mac);
345
346         return 0;
347     ]])],
348   [AC_MSG_RESULT([yes])],
349   [
350    RESULT=$?
351    if test $RESULT = 3
352    then
353      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.])
354    fi
355    if test $RESULT = 2
356    then
357      AC_MSG_FAILURE([HMAC test failed])
358    fi
359    if test $RESULT = 1
360    then
361      AC_MSG_FAILURE([libgcrypt header version does not match library version])
362    fi
363   ],
364   [AC_MSG_RESULT([cross compiling, test skipped])])
365 AC_LANG_POP(C)
366 fi      # $build = $target
367
368 # check for bluetooth library
369 bluetooth=0
370 AC_CHECK_LIB(bluetooth, ba2str,[AC_CHECK_HEADER([bluetooth/bluetooth.h],bluetooth=1)])
371 if test "$bluetooth" = 1
372 then
373   AM_CONDITIONAL(HAVE_LIBBLUETOOTH, true)
374   AC_DEFINE([HAVE_LIBBLUETOOTH],[1],[Have bluetooth library])
375 else
376   AM_CONDITIONAL(HAVE_LIBBLUETOOTH, false)
377 fi
378 if test "$build_target" = "mingw"
379 then
380   bluetooth=1
381 fi
382
383 # check for libpulse(audio) library
384 pulse=0
385 AC_CHECK_LIB(pulse,pa_stream_peek,
386   [AC_CHECK_HEADER([pulse/simple.h],pulse=1)])
387 if test "$pulse" = 1
388 then
389   AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])
390 fi
391 if test "$build_target" = "mingw"
392 then
393   pulse=0
394 fi
395
396 # check for libopus(audio) library
397 opus=0
398 AC_CHECK_LIB(opus,opus_decode_float,
399   [AC_CHECK_HEADER([opus/opus.h],
400     [AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]
401     )]
402   )]
403 )
404 if test "$opus" = 1
405 then
406   AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
407 fi
408
409 # libogg
410 AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
411         [AC_CHECK_HEADERS([ogg/ogg.h],
412           AM_CONDITIONAL(HAVE_OGG, true)
413           ogg=1
414           AC_DEFINE(HAVE_OGG,1,[Have ogg]),
415           AM_CONDITIONAL(HAVE_OGG, false)
416           ogg=0
417           AC_DEFINE(HAVE_OGG,0,[lacking ogg]))],
418         AM_CONDITIONAL(HAVE_OGG, false)
419         ogg=0)
420
421
422
423 gst=0
424 PKG_CHECK_MODULES(
425   [GST],
426   [glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
427   [
428     gst=1
429     AC_MSG_RESULT(ok)
430   ], [
431     gst=0
432     AC_MSG_RESULT(not found)
433   ])
434
435 # Pulse Audio
436 if test "x$pulse" != "x1" -o "x$opus" != "x1" -o "x$ogg" != "x1"
437 then
438  if test "x$gst" != "x1"
439  then
440   conversation_backend=none
441   AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
442   AM_CONDITIONAL(BUILD_GST_HELPERS, false)
443  else
444   conversation_backend=gst
445   AM_CONDITIONAL(BUILD_PULSE_HELPERS, false)
446   AM_CONDITIONAL(BUILD_GST_HELPERS, true)
447  fi
448 else
449  conversation_backend=pulse
450  AM_CONDITIONAL(BUILD_PULSE_HELPERS, true)
451  AM_CONDITIONAL(BUILD_GST_HELPERS, false)
452 fi
453
454 # libgnurl
455 LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
456 if test "$gnurl" = 1
457 then
458         AM_CONDITIONAL(HAVE_LIBGNURL, true)
459         AC_DEFINE([HAVE_LIBGNURL],[1],[Have libgnurl])
460 else
461         AM_CONDITIONAL(HAVE_LIBGNURL, false)
462 fi
463
464 # libcurl-gnutls
465 LIBCURL_CHECK_CONFIG(,7.34.0,[curl=true],[curl=false])
466 if test "x$curl" = xtrue
467 then
468  AC_CHECK_HEADERS([curl/curl.h],
469    AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=true],[curl=false],[[#include <curl/curl.h>]]),
470    [curl=false])
471  # need libcurl-gnutls.so, everything else is not acceptable
472  AC_CHECK_LIB([curl-gnutls],[curl_easy_getinfo],,[curl=false])
473  # cURL must support CURLINFO_TLS_SESSION, version >= 7.34
474
475 fi
476 if test x$curl = xfalse
477 then
478         AM_CONDITIONAL(HAVE_LIBCURL, false)
479 if test "$gnurl" = 0
480 then
481         AC_MSG_WARN([GNUnet requires libcurl-gnutls  >= 7.34])
482 fi
483 else
484         AM_CONDITIONAL(HAVE_LIBCURL, true)
485         AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
486 fi
487
488
489
490 # restore LIBS
491 LIBS=$SAVE_LIBS
492
493
494 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
495 # GLPK must support glpk_init_env, version >= 4.43
496 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
497 # GLPK must support atm MLP presolving, version >= 4.32
498 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
499 if test x$gplk = xfalse
500 then
501         AM_CONDITIONAL(HAVE_LIBGLPK, false)
502         AC_MSG_WARN([GNUnet requires GLPK  >= 4.32])
503 else
504         AM_CONDITIONAL(HAVE_LIBGLPK, true)
505         AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
506 fi
507
508
509
510 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
511 if test x$nss = xfalse
512 then
513         AM_CONDITIONAL(HAVE_GLIBCNSS, false)
514         AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
515 else
516         AM_CONDITIONAL(HAVE_GLIBCNSS, true)
517 fi
518
519
520
521 # test for kvm and kstat (for CPU stats under BSD/Solaris)
522 AC_CHECK_LIB([kvm],[kvm_open])
523 AC_CHECK_LIB([kstat],[kstat_open])
524
525
526 # should the build process be restricted to the code required
527 # for GNU Taler wallets?
528 AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
529 AC_ARG_ENABLE([taler-wallet],
530    [AS_HELP_STRING([--enable-taler-wallet], [only compile for Taler wallet])],
531    [taler_only=${enableval}],
532    [taler_only=no])
533 AC_MSG_RESULT($taler_only)
534 AM_CONDITIONAL([TALER_ONLY], [test "x$taler_only" = "xyes"])
535
536 # test for libextractor
537 extractor=0
538 AC_MSG_CHECKING(for libextractor)
539 AC_ARG_WITH(extractor,
540    [  --with-extractor=PFX    base of libextractor installation],
541    [AC_MSG_RESULT([$with_extractor])
542     case $with_extractor in
543       no)
544         ;;
545       yes)
546         AC_CHECK_HEADERS(extractor.h,
547           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
548             extractor=1))
549         ;;
550       *)
551         LDFLAGS="-L$with_extractor/lib $LDFLAGS"
552         CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
553         AC_CHECK_HEADERS(extractor.h,
554           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
555             EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
556             extractor=1))
557         ;;
558     esac
559    ],
560    [AC_MSG_RESULT([--with-extractor not specified])
561     AC_CHECK_HEADERS(extractor.h,
562      AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
563       extractor=1))])
564 # restore LIBS
565 LIBS=$SAVE_LIBS
566
567 if test "$extractor" != 1
568 then
569  AM_CONDITIONAL(HAVE_LIBEXTRACTOR, false)
570  AC_DEFINE([HAVE_LIBEXTRACTOR],[0],[Lacking libextractor])
571 else
572  AM_CONDITIONAL(HAVE_LIBEXTRACTOR, true)
573  AC_DEFINE([HAVE_LIBEXTRACTOR],[1],[Have libextractor])
574 fi
575
576
577 if test "$taler_only" != yes
578 then
579
580 # Check for libltdl header (#2999)
581 ltdl=0
582 AC_MSG_CHECKING(for libltdl)
583 AC_ARG_WITH(ltdl,
584    [  --with-ltdl=PFX    base of libltdl installation],
585    [AC_MSG_RESULT([$with_ltdl])
586     case $with_ltdl in
587       no)
588         ;;
589       yes)
590         AC_CHECK_HEADERS(ltdl.h,
591           AC_CHECK_LIB([ltdl], [lt_dlopenext],
592             ltdl=1))
593         ;;
594       *)
595         LDFLAGS="-L$with_ltdl/lib $LDFLAGS"
596         CPPFLAGS="-I$with_ltdl/include $CPPFLAGS"
597         AC_CHECK_HEADERS(ltdl.h,
598           AC_CHECK_LIB([ltdl], [lt_dlopenext],
599             EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH"
600             ltdl=1))
601         ;;
602     esac
603    ],
604    [AC_MSG_RESULT([--with-ltdl not specified])
605     AC_CHECK_HEADERS(ltdl.h,
606      AC_CHECK_LIB([ltdl], [lt_dlopenext],
607       ltdl=1))])
608 if test x$ltdl = x1
609 then
610  AC_MSG_RESULT([libltdl found])
611 else
612  AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
613 fi
614 # restore LIBS
615 LIBS=$SAVE_LIBS
616
617
618 # libidn
619 AC_MSG_CHECKING([if Libidn can be used])
620 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
621                                     [Support IDN (needs GNU Libidn)]),
622 libidn=$withval, libidn=yes)
623 if test "$libidn" != "no"; then
624   if test "$libidn" != "yes"; then
625      LDFLAGS="${LDFLAGS} -L$libidn/lib"
626      CPPFLAGS="${CPPFLAGS} -I$libidn/include"
627   fi
628 fi
629 libidn=no
630 AC_CHECK_HEADER(idna.h,
631   AC_CHECK_LIB(idn, stringprep_check_version,
632     [libidn=yes LIBS="${LIBS} -lidn"], []), [])
633 if test "$libidn" != "yes"; then
634   AC_MSG_FAILURE([GNUnet requires libidn.
635 libidn-1.13 should be sufficient, newer versions work too.])
636 fi
637 AC_MSG_RESULT($libidn)
638
639
640 # test for zlib
641 SAVE_LDFLAGS=$LDFLAGS
642 SAVE_CPPFLAGS=$CPPFLAGS
643 AC_ARG_WITH(zlib,
644             [  --with-zlib[[=DIR]]       use libz in DIR],
645             [AS_IF([test "$withval" = "no"],
646                    [AC_MSG_ERROR([GNUnet requires zlib])],
647                    [test "$withval" != "yes"],
648                    [
649                      Z_DIR=$withval
650                      CPPFLAGS="${CPPFLAGS} -I$withval/include"
651                      LDFLAGS="${LDFLAGS} -L$withval/lib"
652                    ])
653             ])
654 AC_CHECK_HEADER(zlib.h,
655                 [],
656                 [AC_MSG_ERROR([GNUnet requires zlib])])
657 AC_CHECK_LIB(z, compress2,
658              [
659               AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
660               if test "x${Z_DIR}" != "x"; then
661                       Z_CFLAGS="-I${Z_DIR}/include"
662                       Z_LIBS="-L${Z_DIR}/lib -lz"
663               else
664                       Z_LIBS="-lz"
665               fi],
666               [AC_MSG_ERROR([GNUnet requires zlib])])
667 AC_SUBST(Z_CFLAGS)
668 AC_SUBST(Z_LIBS)
669
670 if test "$enable_shared" = "no"
671 then
672  AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
673 fi
674
675
676
677 # restore LIBS
678 LIBS=$SAVE_LIBS
679
680
681 fi
682
683 # check for iconv
684 AM_ICONV
685
686 # test for libunistring
687 gl_LIBUNISTRING
688 if test $HAVE_LIBUNISTRING != yes; then
689  AC_MSG_ERROR([GNUnet requires libunistring])
690 fi
691 if test $gl_libunistring_hexversion -le 2305; then
692  AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
693 fi
694 # restore LIBS
695 LIBS=$SAVE_LIBS
696
697
698
699 # Checks for standard header files.
700 AC_HEADER_DIRENT
701 AC_HEADER_STDC
702
703 # Check for headers that are ALWAYS required
704 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]))
705
706
707
708 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
709 AC_CHECK_HEADERS([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])
710
711 # FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
712 AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
713 [#ifdef HAVE_SYS_TYPES_H
714 #include <sys/types.h>
715 #endif
716 #ifdef HAVE_NETINET_IN_SYSTM_H
717 #include <netinet/in_systm.h>
718 #endif
719 #ifdef HAVE_NETINET_IN_H
720 #include <netinet/in.h>
721 #endif
722 ])
723
724 SAVE_LDFLAGS=$LDFLAGS
725 SAVE_CPPFLAGS=$CPPFLAGS
726
727 # test for sqlite
728 sqlite=false
729 AC_MSG_CHECKING(for SQLite)
730 AC_ARG_WITH(sqlite,
731   [  --with-sqlite=PFX       base of SQLite installation],
732   [AC_MSG_RESULT("$with_sqlite")
733    case $with_sqlite in
734    no)
735      ;;
736    yes)
737     AC_CHECK_HEADERS(sqlite3.h,
738      sqlite=true)
739      ;;
740    *)
741     LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
742     CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
743     AC_CHECK_HEADERS(sqlite3.h,
744      EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
745      SQLITE_LDFLAGS="-L$with_sqlite/lib"
746      SQLITE_CPPFLAGS="-I$with_sqlite/include"
747      sqlite=true)
748     LDFLAGS=$SAVE_LDFLAGS
749     CPPFLAGS=$SAVE_CPPFLAGS
750     ;;
751    esac
752   ],
753   [AC_MSG_RESULT([--with-sqlite not specified])
754     AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
755 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
756 AC_SUBST(SQLITE_CPPFLAGS)
757 AC_SUBST(SQLITE_LDFLAGS)
758
759 # test for postgres
760 postgres=false
761 AX_LIB_POSTGRESQL([])
762 if test "$found_postgresql" = "yes"; then
763   postgres=true
764 fi
765 AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
766
767 LDFLAGS=$SAVE_LDFLAGS
768 CPPFLAGS=$SAVE_CPPFLAGS
769
770 # mysql & windows
771 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
772 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
773
774 if test "$build_target" = "mingw"
775 then
776   CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
777 fi
778
779 # test for mysql
780 mysql=false
781 mysqlfail=false
782 SAVE_LDFLAGS=$LDFLAGS
783 SAVE_CPPFLAGS=$CPPFLAGS
784 AC_MSG_CHECKING(for mysql)
785 AC_ARG_WITH(mysql,
786   [  --with-mysql=PFX        base of MySQL installation],
787   [AC_MSG_RESULT("$with_mysql")
788    if test "$with_mysql" != "no"
789    then
790     if test "$with_mysql" != "yes"
791     then
792       LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
793       CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
794     fi
795     AC_CHECK_HEADERS(mysql/mysql.h,
796      AC_CHECK_LIB(mysqlclient, mysql_init,
797       MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
798       MYSQL_CPPFLAGS="-I$with_mysql/include"
799
800       mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
801    fi
802   ],
803   [AC_MSG_RESULT([--with-mysql not specified])
804    if test -d "/usr/lib64/mysql"; then
805     MYSQL_LIBDIR="/usr/lib64/mysql"
806    elif test -d "/usr/lib/mysql"; then
807     MYSQL_LIBDIR="/usr/lib/mysql"
808    else
809     MYSQL_LIBDIR="/usr/lib"
810    fi
811    LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
812    AC_CHECK_LIB(mysqlclient, mysql_init,
813     [AC_CHECK_HEADERS(mysql/mysql.h,
814       MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
815       mysql=true
816
817      , [], [$CYGWIN_MYSQL_MAGIC])])
818   ])
819
820 AC_SUBST(MYSQL_LDFLAGS)
821 AC_SUBST(MYSQL_CPPFLAGS)
822
823 # additional version check for mysql
824 AC_ARG_ENABLE(mysql-version-check, [  --disable-mysql-version-check  do not check MySQL version],, enable_mysql_version_check=yes)
825 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
826 then
827   AC_MSG_CHECKING(mysql version)
828   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
829     [[$CYGWIN_MYSQL_MAGIC
830       #include <mysql/mysql.h>]],
831     [[
832       #if (MYSQL_VERSION_ID < 40100)
833       #error needs at least version >= 4.1
834       #endif
835       int main () { return 0; }
836     ]])
837     ],mysql=true,mysql=false)
838   if test "$mysql" = "false"
839   then
840     mysqlfail=true
841     AC_MSG_RESULT([fail, >= 4.1 required])
842   else
843     AC_MSG_RESULT(ok)
844   fi
845 fi
846 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
847 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
848 # restore LIBS
849 LIBS=$SAVE_LIBS
850 LDFLAGS=$SAVE_LDFLAGS
851 CPPFLAGS=$SAVE_CPPFLAGS
852
853 if test "$sqlite" = 0 -a "$mysql" = 0
854 then
855  AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
856 fi
857
858 # libmicrohttpd
859 lmhd=0
860 AC_MSG_CHECKING([for libmicrohttpd])
861 AC_ARG_WITH(microhttpd,
862    [  --with-microhttpd=PFX   base of libmicrohttpd installation],
863    [AC_MSG_RESULT([$with_microhttpd])
864     case $with_microhttpd in
865       no)
866         ;;
867       yes)
868         AC_CHECK_HEADERS([microhttpd.h],
869           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
870             AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
871               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
872               AC_COMPILE_IFELSE([AC_LANG_SOURCE([
873                 #include "$native_srcdir/src/include/platform.h"
874                 #include <microhttpd.h>
875                 #if (MHD_VERSION < 0x0093200)
876                 #error needs at least version 0.9.32
877                 #endif
878                 int main () { return 0; }
879                ])],
880                [AC_MSG_RESULT(ok)
881                 lmhd=1],
882                [AC_MSG_RESULT(failed)])]),
883             [],[#include "$native_srcdir/src/include/platform.h"
884                 #include <microhttpd.h>]),,
885             [#include "$native_srcdir/src/include/platform.h"])
886         ;;
887       *)
888         LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
889         CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
890         AC_CHECK_HEADERS(microhttpd.h,
891           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
892             AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
893               EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
894               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
895                AC_COMPILE_IFELSE([AC_LANG_SOURCE([
896                 #include "$native_srcdir/src/include/platform.h"
897                 #include <microhttpd.h>
898                 #if (MHD_VERSION < 0x0093200)
899                 #error needs at least version 0.9.32
900                 #endif
901                 int main () { return 0; }
902                ])],
903                [AC_MSG_RESULT(ok)
904                 lmhd=1],
905                [AC_MSG_RESULT(failed)])]),
906             [],[#include "$native_srcdir/src/include/platform.h"
907                 #include <microhttpd.h>]),,
908             [#include "$native_srcdir/src/include/platform.h"])
909         ;;
910     esac
911    ],
912    [AC_MSG_RESULT([--with-microhttpd not specified])
913     AC_CHECK_HEADERS([microhttpd.h],
914       AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
915         AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
916           [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.32])
917               AC_COMPILE_IFELSE([AC_LANG_SOURCE([
918                 #include "$native_srcdir/src/include/platform.h"
919                 #include <microhttpd.h>
920                 #if (MHD_VERSION < 0x0093200)
921                 #error needs at least version 0.9.32
922                 #endif
923                ])],
924                [AC_MSG_RESULT(ok)
925                 lmhd=1],
926                [AC_MSG_RESULT(failed)])]),
927         [],[#include "$native_srcdir/src/include/platform.h"
928             #include <microhttpd.h>]),,
929        [#include "$native_srcdir/src/include/platform.h"])])
930 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
931 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
932
933
934 # restore LIBS
935 LIBS=$SAVE_LIBS
936
937 # check for python & pexpect (used for some testcases only)
938 AM_PATH_PYTHON([2.6],, [:])
939 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
940
941 # check for gettext
942 AM_GNU_GETTEXT([external])
943 AM_GNU_GETTEXT_VERSION([0.19.3])
944
945 # Checks for standard typedefs, structures, and compiler characteristics.
946 AC_TYPE_PID_T
947 AC_TYPE_SIZE_T
948 AC_TYPE_MODE_T
949 AC_HEADER_TIME
950 AC_HEADER_STAT
951 AC_HEADER_STDBOOL
952 AC_STRUCT_TM
953
954 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
955    [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
956    ],
957    [],
958    [
959       #include <sys/types.h>
960       #include <sys/socket.h>
961       #include <netinet/in.h>
962    ])
963
964
965
966 # Checks for library functions.
967 AC_FUNC_CLOSEDIR_VOID
968 AC_FUNC_FORK
969 AC_PROG_GCC_TRADITIONAL
970 AC_FUNC_MEMCMP
971 AC_FUNC_SELECT_ARGTYPES
972 AC_FUNC_CHOWN
973
974 AC_TYPE_SIGNAL
975 AC_FUNC_STAT
976 AC_FUNC_STRFTIME
977 AC_FUNC_VPRINTF
978 AC_HEADER_SYS_WAIT
979 AC_TYPE_OFF_T
980 AC_TYPE_UID_T
981 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])
982
983 # restore LIBS
984 LIBS=$SAVE_LIBS
985
986 GN_INTLINCL=""
987 GN_LIBINTL="$LTLIBINTL"
988 AC_ARG_ENABLE(framework, [  --enable-framework      enable Mac OS X framework build helpers],enable_framework_build=$enableval)
989 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
990 if test x$enable_framework_build = xyes
991 then
992   AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
993   GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
994   GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
995   AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
996 fi
997
998 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
999 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
1000
1001 AC_SUBST(GN_LIB_LDFLAGS)
1002 AC_SUBST(GN_PLUGIN_LDFLAGS)
1003 AC_SUBST(GN_INTLINCL)
1004 AC_SUBST(GN_LIBINTL)
1005
1006 AC_SUBST(CPPFLAGS)
1007 AC_SUBST(LIBS)
1008 AC_SUBST(LDFLAGS)
1009 AC_SUBST(EXT_LIB_PATH)
1010 AC_SUBST(EXT_LIBS)
1011
1012 AC_SUBST(LIBPREFIX)
1013 AC_SUBST(DLLDIR)
1014 AC_SUBST(EXT_LIB_PATH)
1015
1016
1017 # test for sudo
1018 AC_MSG_CHECKING(for sudo)
1019 AC_ARG_WITH(sudo,
1020   [  --with-sudo=PATH       path to sudo binary (or just yes)],
1021   [AC_MSG_RESULT("$with_sudo")
1022    case $with_sudo in
1023    no)
1024      SUDO_BINARY=
1025      ;;
1026    yes)
1027      SUDO_BINARY=sudo
1028      ;;
1029    *)
1030      SUDO_BINARY=$with_sudo
1031     ;;
1032    esac
1033   ],
1034   [AC_MSG_RESULT([no])])
1035 AC_SUBST(SUDO_BINARY)
1036 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
1037
1038
1039 # test for nssdir
1040 AC_MSG_CHECKING(with nssdir)
1041 AC_ARG_WITH(nssdir,
1042   [  --with-nssdir=PATH       where to install NSS plugins],
1043   [AC_MSG_RESULT("$with_nssdir")
1044    case $with_nssdir in
1045    no)
1046      NSS_DIR=
1047      install_nss=0
1048      ;;
1049    yes)
1050      NSS_DIR="/lib"
1051      install_nss=1
1052      ;;
1053    *)
1054      NSS_DIR=$with_nssdir
1055      install_nss=1
1056     ;;
1057    esac
1058   ],
1059   [
1060    if test "x$SUDO_BINARY" != "x" -o -w /
1061    then
1062      NSS_DIR="/lib"
1063      install_nss=1
1064      AC_MSG_RESULT([yes, to /lib])
1065    else
1066      NSS_DIR=
1067      install_nss=0
1068      AC_MSG_RESULT([no])
1069    fi
1070   ])
1071 AC_SUBST(NSS_DIR)
1072 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
1073
1074 # test for gnunetdns group name
1075 GNUNETDNS_GROUP=gnunetdns
1076 AC_MSG_CHECKING(for gnunetdns group name)
1077 AC_ARG_WITH(gnunetdns,
1078   [  --with-gnunetdns=GRPNAME       name for gnunetdns group],
1079   [AC_MSG_RESULT("$with_gnunetdns")
1080    case $with_gnunetdns in
1081    no)
1082      GNUNETDNS_GROUP=gnunet
1083      ;;
1084    yes)
1085      GNUNETDNS_GROUP=gnunetdns
1086      ;;
1087    *)
1088      GNUNETDNS_GROUP=$with_gnunetdns
1089     ;;
1090    esac
1091   ],
1092   [AC_MSG_RESULT([gnunetdns])])
1093 AC_SUBST(GNUNETDNS_GROUP)
1094
1095
1096
1097 # gnutls
1098 gnutls=0
1099 gnutls_dane=0
1100 AC_MSG_CHECKING(for gnutls)
1101 AC_ARG_WITH(gnutls,
1102    [  --with-gnutls=PFX   base of gnutls installation],
1103    [AC_MSG_RESULT([$with_gnutls])
1104     case $with_gnutls in
1105       no)
1106         ;;
1107       yes)
1108         AC_CHECK_HEADERS([gnutls/abstract.h],
1109             AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1110              gnutls=true))
1111         AC_CHECK_HEADERS([gnutls/dane.h],
1112             AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1113               gnutls_dane=1))
1114         ;;
1115       *)
1116         LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
1117         CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
1118         AC_CHECK_HEADERS([gnutls/abstract.h],
1119             AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1120               EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
1121               gnutls=true))
1122         AC_CHECK_HEADERS([gnutls/dane.h],
1123             AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1124               gnutls_dane=1))
1125         ;;
1126     esac
1127    ],
1128    [AC_MSG_RESULT([--with-gnutls not specified])
1129     AC_CHECK_HEADERS([gnutls/abstract.h],
1130         AC_CHECK_LIB([gnutls], [gnutls_priority_set],
1131           gnutls=true))
1132     AC_CHECK_HEADERS([gnutls/dane.h],
1133         AC_CHECK_LIB([gnutls-dane], [dane_verify_crt_raw],
1134                      gnutls_dane=1))
1135    ])
1136 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
1137 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have GnuTLS])
1138 AM_CONDITIONAL(HAVE_GNUTLS_DANE, test x$gnutls_dane = x1)
1139 AC_DEFINE_UNQUOTED([HAVE_GNUTLS_DANE], $gnutls_dane, [We have GnuTLS with DANE support])
1140
1141
1142 # Test if we are building for superMUC
1143 AC_MSG_CHECKING(if GNUnet is being configured to run on the SuperMUC)
1144 AC_ARG_ENABLE([supermuc],
1145     [AS_HELP_STRING([--enable-supermuc],
1146        [build GNUnet with support to run on the SuperMUC (default is NO)])],
1147     [if test "x$enable_supermuc" = "xno"
1148      then
1149        supermuc=0
1150      else
1151        supermuc=1
1152      fi],
1153     [supermuc=0
1154      enable_supermuc=no])
1155 AC_MSG_RESULT($enable_SUPERMUC)
1156 AM_CONDITIONAL([ENABLE_SUPERMUC], [test "x$supermuc" = "x1"])
1157 AC_DEFINE_UNQUOTED([ENABLE_SUPERMUC], [$supermuc], [Build with support for SuperMUC])
1158
1159 # Check if NSE has to send timestamp information to testbed logger for
1160 # generating histogram of messages received
1161 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
1162 AC_ARG_ENABLE([nse-histogram],
1163     [AS_HELP_STRING([--enable-nse-histogram],
1164        [have NSE send timestamp information to testbed logger for generating
1165        histogram of received messages.  NOT useful for production (default is
1166        NO)])],
1167     [if test "x$enableval" = "xno"
1168      then
1169        nse_histogram=0
1170      else
1171        nse_histogram=1
1172      fi],
1173     [nse_histogram=0
1174      enable_nse_histogram=no])
1175 AC_MSG_RESULT($enable_nse_histogram)
1176 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1177 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1178                    [have NSE send timestamp information to testbed logger])
1179
1180 # should 'make check' run tests?
1181 AC_MSG_CHECKING(whether to run tests)
1182 AC_ARG_ENABLE([testruns],
1183    [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1184    [enable_tests_run=${enableval}],
1185    [enable_tests_run=yes])
1186 AC_MSG_RESULT($enable_test_run)
1187 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1188
1189
1190 # should monkey be used when running (certain) services?
1191 AC_MSG_CHECKING(whether to run with monkey)
1192 AC_ARG_ENABLE([monkey],
1193    [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1194    [enable_monkey=${enableval}],
1195    [enable_monkey=no])
1196 AC_MSG_RESULT($enable_monkey)
1197 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1198 if test "x$enable_monkey" = "xyes"
1199 then
1200   MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
1201 else
1202   MONKEYPREFIX=""
1203 fi
1204 AC_SUBST(MONKEYPREFIX)
1205
1206
1207 # should expensive tests be run?
1208 AC_MSG_CHECKING(whether to run expensive tests)
1209 AC_ARG_ENABLE([expensivetests],
1210    [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1211    [enable_expensive=${enableval}],
1212    [enable_expensive=no])
1213 AC_MSG_RESULT($enable_expensive)
1214 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1215
1216 # should ports be open for Java services?
1217 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1218 AC_ARG_ENABLE([javaports],
1219    [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1220    [enable_java_ports=${enableval}],
1221    [enable_java_ports=no])
1222 AC_MSG_RESULT($enable_java_ports)
1223 if test "x$enable_java_ports" = "xyes"
1224 then
1225   JAVAPORT=""
1226 else
1227   JAVAPORT="$UNIXONLY"
1228 fi
1229 AC_SUBST(JAVAPORT)
1230
1231 # should benchmarks be run?
1232 AC_MSG_CHECKING(whether to run benchmarks during make check)
1233 AC_ARG_ENABLE([benchmarks],
1234    [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1235    [enable_benchmarks=${enableval}],
1236    [enable_benchmarks=no])
1237 AC_MSG_RESULT($enable_benchmarks)
1238 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1239
1240 # should gnunet-testing be compiled
1241 AC_MSG_CHECKING(wether to compile gnunet-testing)
1242 AC_ARG_ENABLE([testing],
1243    [AS_HELP_STRING([--disable-testing], [do not build gnunet-testing])],
1244    [enable_testing=${enableval}],
1245    [enable_testing=yes])
1246 AC_MSG_RESULT($enable_testing)
1247 AM_CONDITIONAL([HAVE_TESTING], [test "x$enable_testing" = "xyes"])
1248
1249 # should experimental code be compiled (code that may not yet compile)?
1250 AC_MSG_CHECKING(whether to compile experimental code)
1251 AC_ARG_ENABLE([experimental],
1252    [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1253    [enable_experimental=${enableval}],
1254    [enable_experimental=no])
1255 AC_MSG_RESULT($enable_experimental)
1256 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1257
1258 # FTBFS right now...
1259 AC_MSG_CHECKING(whether to compile ATS test code)
1260 AC_ARG_ENABLE([wachs],
1261    [AS_HELP_STRING([--enable-wachs], [enable compiling ATS test code])],
1262    [enable_wachs=${enableval}],
1263    [enable_wachs=no])
1264 AC_MSG_RESULT($enable_wachs)
1265 AM_CONDITIONAL([HAVE_WACHS], [test "x$enable_wachs" = "xyes"])
1266
1267 # REST API
1268 AC_MSG_CHECKING(whether to compile REST API)
1269 AC_ARG_ENABLE([rest],
1270    [AS_HELP_STRING([--enable-rest], [enable REST])],
1271    [enable_rest=${enableval}],
1272    [enable_rest=no])
1273 AC_MSG_RESULT($enable_rest)
1274 AM_CONDITIONAL([HAVE_REST], [test "x$enable_rest" = "xyes"])
1275
1276 # should malicious code be compiled (should only be used for testing)?
1277 AC_MSG_CHECKING(whether to compile malicious code)
1278 AC_ARG_ENABLE([malicious],
1279    [AS_HELP_STRING([--enable-malicious], [enable compiling malicious code])],
1280    [if test "x$enableval" = "xno"
1281      then
1282        malicious=0
1283      else
1284        malicious=1
1285      fi],
1286    [malicious=0
1287     enable_malicious=no])
1288 AC_MSG_RESULT($enable_malicious)
1289 AM_CONDITIONAL([ENABLE_MALICIOUS], [test 1=$malicious])
1290 AC_DEFINE_UNQUOTED([ENABLE_MALICIOUS], [$malicious],
1291                    [enable compilation of malicious code])
1292
1293 # should services be started by default when a peer starts?  Some services may
1294 # choose to never start by default and it is upto the service/module developer to
1295 # decide it by having "AUTOSTART = NO" instead of "AUTOSTART = @AUTOSTART@" in
1296 # the service/module's conf.in file.
1297 AUTOSTART="YES"
1298 AC_MSG_CHECKING(whether to auto-start peer's services by default)
1299 AC_ARG_ENABLE([autostart],
1300    [AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
1301    [enable_autostart=${enableval}
1302     if test "x$enable_autostart" == "xno"
1303     then
1304         AUTOSTART="NO"
1305     fi
1306    ],
1307    [enable_autostart=yes])
1308 AC_MSG_RESULT($enable_autostart)
1309 #AM_CONDITIONAL([HAVE_AUTOSTART], [test "x$enable_autostart" = "xyes"])
1310 AC_SUBST(AUTOSTART)
1311
1312 # should memory statistics be kept (very expensive CPU-wise!)
1313 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1314 AC_ARG_ENABLE([heapstats],
1315    [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1316    [enable_heapstats=1],
1317    [enable_heapstats=0])
1318 AC_MSG_RESULT($enable_heapstats)
1319 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1320
1321 # should code be enabled that works around missing OS functionality on Windows?
1322 # used for test cases
1323 if test $build_target = "mingw"
1324 then
1325         workarounds=1
1326
1327 AC_LINK_IFELSE(
1328  [AC_LANG_PROGRAM(
1329   [#include <ws2tcpip.h>
1330   ],[
1331   int s = socket (0, 0, 0);])
1332  ],[
1333   AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1334  ],[
1335   AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1336  ])
1337
1338 AC_LINK_IFELSE(
1339  [AC_LANG_PROGRAM(
1340   [#include <ws2tcpip.h>
1341   ],[
1342   int s = select (0, NULL, NULL, NULL, NULL);])
1343  ],[
1344   AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1345  ],[
1346   AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1347  ])
1348
1349 AC_LINK_IFELSE(
1350  [AC_LANG_PROGRAM(
1351   [#include <ws2tcpip.h>
1352   ],[
1353   struct in_addr i;
1354   char *s = inet_ntoa (i);])
1355  ],[
1356   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1357  ],[
1358   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1359  ])
1360
1361 AC_LINK_IFELSE(
1362  [AC_LANG_PROGRAM(
1363   [#include <ws2tcpip.h>
1364   ],[
1365   int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1366  ],[
1367   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1368  ],[
1369   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1370  ])
1371
1372 AC_LINK_IFELSE(
1373  [AC_LANG_PROGRAM(
1374   [#include <ws2tcpip.h>
1375   ],[
1376   int s = gethostname (NULL, 0);])
1377  ],[
1378   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1379  ],[
1380   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1381  ])
1382
1383 AC_LINK_IFELSE(
1384  [AC_LANG_PROGRAM(
1385   [#include <ws2tcpip.h>
1386   ],[
1387   void *s = gethostbyname (NULL);])
1388  ],[
1389   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1390  ],[
1391   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1392  ])
1393
1394 AC_LINK_IFELSE(
1395  [AC_LANG_PROGRAM(
1396   [#include <ws2tcpip.h>
1397   ],[
1398   void *s = gethostbyaddr (NULL, 0, 0);])
1399  ],[
1400   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1401  ],[
1402   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1403  ])
1404
1405 AC_LINK_IFELSE(
1406  [AC_LANG_PROGRAM(
1407   [#include <ws2tcpip.h>
1408   ],[
1409   int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1410  ],[
1411   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1412  ],[
1413   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1414  ])
1415
1416 else
1417   AC_MSG_CHECKING(whether to enable windows workarounds)
1418   AC_ARG_ENABLE([windows_workarounds],
1419      [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1420      [enable_workarounds=${enableval}],
1421      [enable_workarounds=no])
1422   AC_MSG_RESULT($enable_workarounds)
1423   if test x$enable_windows_workarounds = "xyes"
1424   then
1425      workarounds=1
1426   else
1427      workarounds=0
1428    fi
1429 fi
1430 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1431
1432 # gcov compilation
1433 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1434 AC_ARG_ENABLE([coverage],
1435               AS_HELP_STRING([--enable-coverage],
1436                              [compile the library with code coverage support]),
1437               [use_gcov=${enableval}],
1438               [use_gcov=no])
1439 AC_MSG_RESULT($use_gcov)
1440 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1441
1442
1443 # version info
1444 AC_PATH_PROG(svnversioncommand, svnversion)
1445 AC_PATH_PROG(gitcommand, git)
1446 AC_MSG_CHECKING(for source being under a VCS)
1447 svn_version=
1448 gitsvn_version=
1449 AS_IF([test ! "X$svnversioncommand" = "X"],
1450 [
1451   svn_version=$(cd $srcdir ; $svnversioncommand -n 2>/dev/null)
1452 ])
1453 AS_IF([test ! "X$gitcommand" = "X"],
1454 [
1455   gitsvn_version=$(cd $srcdir ; git log -1 2>/dev/null | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1456 ])
1457 AS_IF([test "X$svn_version" = "X" -o "X$svn_version" = "Xexported" -o "X$svn_version" = "XUnversioned directory"],
1458 [
1459   AS_IF([test "X$gitsvn_version" = "X"],
1460   [
1461     vcs_name="no"
1462     vcs_version="\"release\""
1463   ],
1464   [
1465     vcs_name="yes, git-svn"
1466     vcs_version="\"svn-r$gitsvn_version\""
1467   ])
1468 ],
1469 [
1470   vcs_name="yes, svn"
1471   vcs_version="\"svn-r$svn_version\""
1472 ])
1473 AC_MSG_RESULT($vcs_name)
1474
1475 AC_MSG_CHECKING(VCS version)
1476 AC_MSG_RESULT($vcs_version)
1477 AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
1478
1479 AC_CONFIG_FILES([
1480 Makefile
1481 contrib/Makefile
1482 doc/Makefile
1483 doc/man/Makefile
1484 doc/doxygen/Makefile
1485 m4/Makefile
1486 po/Makefile.in
1487 src/Makefile
1488 src/arm/Makefile
1489 src/arm/arm.conf
1490 src/ats/Makefile
1491 src/ats/ats.conf
1492 src/ats-tool/Makefile
1493 src/ats-tests/Makefile
1494 src/block/Makefile
1495 src/cadet/Makefile
1496 src/cadet/cadet.conf
1497 src/core/Makefile
1498 src/core/core.conf
1499 src/consensus/Makefile
1500 src/consensus/consensus.conf
1501 src/conversation/Makefile
1502 src/conversation/conversation.conf
1503 src/datacache/Makefile
1504 src/datastore/Makefile
1505 src/datastore/datastore.conf
1506 src/dht/Makefile
1507 src/dht/dht.conf
1508 src/dns/Makefile
1509 src/dns/dns.conf
1510 src/dv/Makefile
1511 src/dv/dv.conf
1512 src/env/Makefile
1513 src/exit/Makefile
1514 src/fragmentation/Makefile
1515 src/fs/Makefile
1516 src/fs/fs.conf
1517 src/gns/Makefile
1518 src/gns/gns.conf
1519 src/gns/nss/Makefile
1520 src/gnsrecord/Makefile
1521 src/hello/Makefile
1522 src/identity/Makefile
1523 src/identity/identity.conf
1524 src/include/Makefile
1525 src/integration-tests/Makefile
1526 src/hostlist/Makefile
1527 src/multicast/Makefile
1528 src/multicast/multicast.conf
1529 src/mysql/Makefile
1530 src/namecache/Makefile
1531 src/namecache/namecache.conf
1532 src/namestore/Makefile
1533 src/namestore/namestore.conf
1534 src/nat/Makefile
1535 src/nse/Makefile
1536 src/nse/nse.conf
1537 src/peerinfo/Makefile
1538 src/peerinfo/peerinfo.conf
1539 src/peerinfo-tool/Makefile
1540 src/peerstore/Makefile
1541 src/peerstore/peerstore.conf
1542 src/postgres/Makefile
1543 src/psyc/Makefile
1544 src/psyc/psyc.conf
1545 src/psycstore/Makefile
1546 src/psycstore/psycstore.conf
1547 src/pt/Makefile
1548 src/regex/Makefile
1549 src/regex/regex.conf
1550 src/revocation/Makefile
1551 src/revocation/revocation.conf
1552 src/rps/Makefile
1553 src/rps/rps.conf
1554 src/secretsharing/Makefile
1555 src/secretsharing/secretsharing.conf
1556 src/sensor/Makefile
1557 src/sensor/sensor.conf
1558 src/sensordashboard/Makefile
1559 src/sensordashboard/sensordashboard.conf
1560 src/scalarproduct/Makefile
1561 src/scalarproduct/scalarproduct.conf
1562 src/set/Makefile
1563 src/set/set.conf
1564 src/social/Makefile
1565 src/social/social.conf
1566 src/statistics/Makefile
1567 src/statistics/statistics.conf
1568 src/template/Makefile
1569 src/testbed/Makefile
1570 src/testbed/testbed.conf
1571 src/testing/Makefile
1572 src/topology/Makefile
1573 src/transport/Makefile
1574 src/transport/transport.conf
1575 src/tun/Makefile
1576 src/util/Makefile
1577 src/util/resolver.conf
1578 src/vpn/Makefile
1579 src/vpn/vpn.conf
1580 src/rest/Makefile
1581 pkgconfig/Makefile
1582 pkgconfig/gnunetarm.pc
1583 pkgconfig/gnunetats.pc
1584 pkgconfig/gnunetblock.pc
1585 pkgconfig/gnunetcadet.pc
1586 pkgconfig/gnunetconsensus.pc
1587 pkgconfig/gnunetconversation.pc
1588 pkgconfig/gnunetcore.pc
1589 pkgconfig/gnunetdatacache.pc
1590 pkgconfig/gnunetdatastore.pc
1591 pkgconfig/gnunetdht.pc
1592 pkgconfig/gnunetdns.pc
1593 pkgconfig/gnunetdnsparser.pc
1594 pkgconfig/gnunetdnsstub.pc
1595 pkgconfig/gnunetdv.pc
1596 pkgconfig/gnunetenv.pc
1597 pkgconfig/gnunetfragmentation.pc
1598 pkgconfig/gnunetfs.pc
1599 pkgconfig/gnunetgns.pc
1600 pkgconfig/gnunethello.pc
1601 pkgconfig/gnunetidentity.pc
1602 pkgconfig/gnunetmicrophone.pc
1603 pkgconfig/gnunetmulticast.pc
1604 pkgconfig/gnunetmysql.pc
1605 pkgconfig/gnunetnamestore.pc
1606 pkgconfig/gnunetnat.pc
1607 pkgconfig/gnunetnse.pc
1608 pkgconfig/gnunetpeerinfo.pc
1609 pkgconfig/gnunetpostgres.pc
1610 pkgconfig/gnunetpsyc.pc
1611 pkgconfig/gnunetpsycstore.pc
1612 pkgconfig/gnunetregex.pc
1613 pkgconfig/gnunetrevocation.pc
1614 pkgconfig/gnunetrps.pc
1615 pkgconfig/gnunetscalarproduct.pc
1616 pkgconfig/gnunetset.pc
1617 pkgconfig/gnunetsocial.pc
1618 pkgconfig/gnunetspeaker.pc
1619 pkgconfig/gnunetstatistics.pc
1620 pkgconfig/gnunettestbed.pc
1621 pkgconfig/gnunettesting.pc
1622 pkgconfig/gnunettransport.pc
1623 pkgconfig/gnunettun.pc
1624 pkgconfig/gnunetutil.pc
1625 pkgconfig/gnunetvpn.pc
1626 ])
1627 AC_OUTPUT
1628
1629 # Finally: summary!
1630
1631 # warn user if mysql found but not used due to version
1632 if test "$mysqlfail" = "true"
1633 then
1634   AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1635 fi
1636
1637 # sqlite
1638 if test "x$sqlite" = "x0"
1639 then
1640   AC_MSG_ERROR([ERROR: sqlite3 not found, but sqlite3 is required.])
1641 fi
1642
1643 # libgnurl
1644 if test "x$gnurl" = "x0"
1645 then
1646   if test "x$curl" = "x0"
1647   then
1648     AC_MSG_NOTICE([NOTICE: libgnurl not found.  http client support will not be compiled.])
1649     AC_MSG_WARN([ERROR: libgnurl not found.  hostlist daemon will not be compiled, and you probably WANT the hostlist daemon])
1650   else
1651     AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.])
1652   fi
1653 fi
1654
1655
1656 # bluetooth
1657 if test "x$bluetooth" = "x0"
1658 then
1659   AC_MSG_NOTICE([NOTICE: bluetooth library not found.  bluetooth support will not be compiled.])
1660 fi
1661
1662 #gnutls
1663 if test x$gnutls != xtrue
1664 then
1665   AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built])
1666 else
1667 if test "x$gnutls_dane" != "x1"
1668 then
1669   AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible])
1670 fi
1671 fi
1672
1673 # java ports
1674 if test "x$enable_java_ports" = "xyes"
1675 then
1676   AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1677 fi
1678
1679 # MHD
1680 if test "x$lmhd" != "x1"
1681 then
1682  AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1683 fi
1684
1685 # conversation
1686 if test "x$conversation_backend" = "xnone"
1687 then
1688   if test "x$pulse" != "x1"
1689   then
1690     AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.])
1691   fi
1692   if test "x$opus" != "x1"
1693   then
1694    AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.])
1695   fi
1696   if test "x$gst" != "x1"
1697   then
1698    AC_MSG_NOTICE([NOTICE: GStreamer not found, conversation will not be built.])
1699   fi
1700 fi
1701
1702 if test "$extractor" != 1
1703 then
1704  AC_MSG_WARN([NOTICE: libextractor not found, but various file-sharing functions require it])
1705 fi
1706
1707 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1708
1709 if test "$enable_framework_build" = "yes"
1710 then
1711   AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1712 fi
1713
1714 if test "x$SUDO_BINARY" = "x" -a ! -w /
1715 then
1716   AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1717 fi
1718
1719
1720 AC_MSG_NOTICE([********************************************
1721 Please make sure NOW that you have created a user and group 'gnunet'
1722 and additionally a group 'gnunetdns':
1723         addgroup gnunetdns
1724         adduser gnunet
1725
1726 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1727 'gnunet'.  Then, you can compile GNUnet with
1728         make
1729
1730 After that, run (if necessary as 'root')
1731         make install
1732 to install everything.
1733
1734 Each GNUnet user should be added to the 'gnunet' group (may
1735 require fresh login to come into effect):
1736         adduser USERNAME gnunet
1737 (run the above command as root once for each of your users, replacing
1738 "USERNAME" with the respective login names).  If you have a global IP
1739 address, no further configuration is required.
1740
1741 Optionally, download and compile gnunet-gtk to get a GUI for
1742 file-sharing and configuration.  This is particularly recommended
1743 if your network setup is non-trivial, as gnunet-setup can be
1744 used to test in the GUI if your network configuration is working.
1745 gnunet-setup should be run as the "gnunet" user under X.  As it
1746 does very little with the network, running it as "root" is likely
1747 also harmless.  You can also run it as a normal user, but then
1748 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1749 home directory in the end.
1750
1751 Once you have configured your peer, run (as the 'gnunet' user)
1752         gnunet-arm -s
1753 to start the peer.  You can then run the various GNUnet-tools as
1754 your "normal" user (who should only be in the group 'gnunet').
1755 ********************************************])