1 # This file is part of GNUnet.
2 # (C) 2001--2013 Christian Grothoff (and other contributing authors)
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 2, or (at your
7 # 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 # General Public License for more details.
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.
20 # Process this file with autoconf to produce a configure script.
24 # Checks for programs.
25 AC_INIT([gnunet], [0.9.5a],[bug-gnunet@gnu.org])
31 AM_INIT_AUTOMAKE([gnunet], [0.9.5a])
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33 AC_CONFIG_HEADERS([gnunet_config.h])
34 AH_TOP([#define _GNU_SOURCE 1])
45 LT_INIT([disable-static dlopen win32-dll])
46 LT_CONFIG_LTDL_DIR([libltdl])
57 if test "$enable_shared" = "no"
59 AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
62 CFLAGS="-Wall $CFLAGS"
63 # use '-fno-strict-aliasing', but only if the compiler can take it
64 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
66 CFLAGS="-fno-strict-aliasing $CFLAGS"
69 # Use Linux interface name unless the OS has a different preference
70 DEFAULT_INTERFACE="\"eth0\""
72 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo"
74 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
79 *darwin* | *rhapsody* | *macosx*)
80 AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
81 CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
82 CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
83 AC_MSG_WARN([The VPN application cannot be compiled on your OS])
85 DEFAULT_INTERFACE="\"en0\""
91 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
99 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
100 AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
101 CFLAGS="-D_THREAD_SAFE $CFLAGS"
102 build_target="freebsd"
108 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
109 AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
110 LIBS=`echo $LIBS | sed -e "s/-ldl//"`
111 build_target="openbsd"
117 AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
118 AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
124 AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
125 AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
126 AC_CHECK_LIB(resolv, res_init)
127 AC_CHECK_LIB(rt, nanosleep)
128 build_target="solaris"
134 AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
135 CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
142 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
143 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
144 AC_CHECK_LIB(intl, gettext)
145 LDFLAGS="$LDFLAGS -no-undefined"
146 CFLAGS="-mms-bitfields $CFLAGS"
147 build_target="cygwin"
154 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
155 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
156 AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
157 AC_CHECK_LIB(intl, gettext)
158 LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols"
159 LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
160 CFLAGS="-mms-bitfields $CFLAGS"
161 CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 $CPPFLAGS"
168 native_srcdir=$(cd $srcdir; pwd -W)
171 AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
176 AC_MSG_RESULT(Unrecognised OS $host_os)
177 AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
181 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
182 AC_SUBST(DEFAULT_INTERFACE)
184 # Disable TCP-based IPC on systems that support UNIX domain
185 # sockets in default configuratin:
189 AC_MSG_CHECKING([for build target])
190 AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
191 AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
192 AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
193 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
194 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
195 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
196 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
197 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
199 AC_MSG_RESULT([$build_target])
200 AC_SUBST(build_target)
201 AM_CONDITIONAL([am__fastdepOBJC], false)
202 AC_UNALIGNED_64_ACCESS
204 # some other checks for standard libs
205 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
206 AC_CHECK_LIB(socket, socket)
208 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
210 # 'save' libs; only those libs found so far will be
211 # linked against _everywhere_. For the others, we
212 # will be more selective!
215 # libgnurx (regex library for W32)
217 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
218 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
220 AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
226 NEED_LIBGCRYPT_VERSION=1.6.0
229 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION", gcrypt=1)
230 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
236 *** You need libgcrypt to build this program.
237 ** This library is for example available at
238 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
239 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API)
243 AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], "$NEED_LIBGCRYPT_VERSION", [required libgcrypt version])
245 # Adam shostack suggests the following for Windows:
246 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
247 AC_ARG_ENABLE(gcc-hardening,
248 AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
249 [if test x$enableval = xyes; then
250 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
251 CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
252 CFLAGS="$CFLAGS --param ssp-buffer-size=1"
253 LDFLAGS="$LDFLAGS -pie"
257 # Linker hardening options
258 # Currently these options are ELF specific - you can't use this with MacOSX
259 AC_ARG_ENABLE(linker-hardening,
260 AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
261 [if test x$enableval = xyes; then
262 LDFLAGS="$LDFLAGS -z relro -z now"
266 extra_logging=GNUNET_NO
267 AC_ARG_ENABLE([logging],
268 AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
269 [AS_IF([test "x$enableval" = "xyes"], [],
270 [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
271 [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
272 [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
274 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
276 # should memory poisoning be enabled?
277 AC_MSG_CHECKING(whether to poison freed memory)
278 AC_ARG_ENABLE([poisoning],
279 [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
280 [enable_poisoning=${enableval}],
282 if test "x$extra_logging" != "xGNUNET_NO"; then
283 enable_poisoning="defaults to yes (extra logging is enabled)"
288 AC_MSG_RESULT($enable_poisoning)
289 if test ! "x$enable_poisoning" = "xno"; then
294 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
296 if test $build = $target
298 AC_MSG_CHECKING([for working HMAC])
300 LIBS="$LIBS $LIBGCRYPT_LIBS"
301 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
303 [AC_LANG_PROGRAM([#include <gcrypt.h>
304 #include <stdio.h>], [[
307 unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
308 0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
309 0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
310 unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
311 unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
312 0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
313 0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
314 0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
315 0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
316 0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
318 if (!gcry_check_version (GCRYPT_VERSION))
320 fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
324 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
325 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
327 if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
329 fprintf (stderr, "gcry_md_open error\n");
333 gcry_md_setkey (mac, key, sizeof (key));
334 gcry_md_write (mac, data, sizeof (data));
336 if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
338 fprintf (stderr, "memcmp error\n");
346 [AC_MSG_RESULT([yes])],
351 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.])
355 AC_MSG_FAILURE([HMAC test failed])
359 AC_MSG_FAILURE([libgcrypt header version does not match library version])
363 fi # $build = $target
366 LIBCURL_CHECK_CONFIG(,7.21.3,curl=1,curl=0)
369 AM_CONDITIONAL(HAVE_LIBCURL, true)
370 AC_DEFINE([HAVE_LIBCURL],[1],[Have libcurl])
372 AM_CONDITIONAL(HAVE_LIBCURL, false)
377 AC_MSG_CHECKING([if Libidn can be used])
378 AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
379 [Support IDN (needs GNU Libidn)]),
380 libidn=$withval, libidn=yes)
381 if test "$libidn" != "no"; then
382 if test "$libidn" != "yes"; then
383 LDFLAGS="${LDFLAGS} -L$libidn/lib"
384 CPPFLAGS="${CPPFLAGS} -I$libidn/include"
386 AC_CHECK_HEADER(idna.h,
387 AC_CHECK_LIB(idn, stringprep_check_version,
388 [libidn=yes LIBS="${LIBS} -lidn"], libidn=no),
391 AM_CONDITIONAL([HAVE_LIBIDN], [test "$libidn" != "no"])
392 AC_MSG_RESULT($libidn)
400 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
401 # GLPK must support glpk_init_env, version >= 4.43
402 AC_CHECK_LIB([glpk],[glp_init_env],,[gplk=false])
403 # GLPK must support atm MLP presolving, version >= 4.32
404 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
405 if test x$gplk = xfalse
407 AM_CONDITIONAL(HAVE_LIBGLPK, false)
408 AC_MSG_WARN([GNUnet requires GLPK >= 4.32])
410 AM_CONDITIONAL(HAVE_LIBGLPK, true)
411 AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
415 # Minimum required version for glibtop is 2.6.0
416 AM_PATH_GLIB_2_0(2.6.0, [glib2=true] , [glib2=false] ,)
417 if test x$glib2 = xfalse
419 AM_CONDITIONAL(HAVE_GLIB2, false)
420 AC_MSG_WARN([GNUnet requires GLIB >= 2.6.0])
422 AM_CONDITIONAL(HAVE_GLIB2, true)
423 AC_DEFINE([HAVE_GLIB2],[1],[Have glib2])
424 LIBS="$LIBS $GLIB_LIBS"
425 CFLAGS="$CFLAGS $GLIB_CFLAGS"
428 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
429 if test x$nss = xfalse
431 AM_CONDITIONAL(HAVE_GLIBCNSS, false)
432 AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
434 AM_CONDITIONAL(HAVE_GLIBCNSS, true)
439 # test for kvm and kstat (for CPU stats under BSD/Solaris)
440 AC_CHECK_LIB([kvm],[kvm_open])
441 AC_CHECK_LIB([kstat],[kstat_open])
443 # test for libextractor
445 AC_MSG_CHECKING(for libextractor)
446 AC_ARG_WITH(extractor,
447 [ --with-extractor=PFX base of libextractor installation],
448 [AC_MSG_RESULT([$with_extractor])
449 case $with_extractor in
453 AC_CHECK_HEADERS(extractor.h,
454 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
458 LDFLAGS="-L$with_extractor/lib $LDFLAGS"
459 CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
460 AC_CHECK_HEADERS(extractor.h,
461 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
462 EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
467 [AC_MSG_RESULT([--with-extractor not specified])
468 AC_CHECK_HEADERS(extractor.h,
469 AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
471 if test "$extractor" != 1
473 AC_MSG_ERROR([GNUnet requires libextractor])
478 # test for libunistring
480 if test $HAVE_LIBUNISTRING != yes; then
481 AC_MSG_ERROR([GNUnet requires libunistring])
483 if test $gl_libunistring_hexversion -le 2305; then
484 AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
491 # Checks for standard header files.
495 # Check for headers that are ALWAYS required
496 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]))
498 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
499 AC_CHECK_HEADERS([malloc.h malloc/malloc.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 netinet/in_systm.h netinet/ip.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 endian.h sys/endian.h execinfo.h])
501 SAVE_LDFLAGS=$LDFLAGS
502 SAVE_CPPFLAGS=$CPPFLAGS
506 AC_MSG_CHECKING(for SQLite)
508 [ --with-sqlite=PFX base of SQLite installation],
509 [AC_MSG_RESULT("$with_sqlite")
514 AC_CHECK_HEADERS(sqlite3.h,
518 LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
519 CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
520 AC_CHECK_HEADERS(sqlite3.h,
521 EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
522 SQLITE_LDFLAGS="-L$with_sqlite/lib"
523 SQLITE_CPPFLAGS="-I$with_sqlite/include"
525 LDFLAGS=$SAVE_LDFLAGS
526 CPPFLAGS=$SAVE_CPPFLAGS
530 [AC_MSG_RESULT([--with-sqlite not specified])
531 AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
532 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
533 AC_SUBST(SQLITE_CPPFLAGS)
534 AC_SUBST(SQLITE_LDFLAGS)
538 AC_MSG_CHECKING(for postgres)
539 AC_ARG_WITH(postgres,
540 [ --with-postgres=PFX base of postgres installation],
541 [AC_MSG_RESULT("$with_postgres")
542 case $with_postgres in
546 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
550 LDFLAGS="-L$with_postgres/lib $LDFLAGS"
551 CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
552 AC_CHECK_HEADERS(postgresql/libpq-fe.h,
553 EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
554 POSTGRES_LDFLAGS="-L$with_postgres/lib"
555 POSTGRES_CPPFLAGS="-I$with_postgres/include"
557 LDFLAGS=$SAVE_LDFLAGS
558 CPPFLAGS=$SAVE_CPPFLAGS
562 [AC_MSG_RESULT([--with-postgres not specified])
563 AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
564 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
565 AC_SUBST(POSTGRES_CPPFLAGS)
566 AC_SUBST(POSTGRES_LDFLAGS)
569 SAVE_LDFLAGS=$LDFLAGS
570 SAVE_CPPFLAGS=$CPPFLAGS
572 [ --with-zlib[[=DIR]] use libz in DIR],
573 [AS_IF([test "$withval" = "no"],
574 [AC_MSG_ERROR([GNUnet requires zlib])],
575 [test "$withval" != "yes"],
578 CPPFLAGS="${CPPFLAGS} -I$withval/include"
579 LDFLAGS="${LDFLAGS} -L$withval/lib"
582 AC_CHECK_HEADER(zlib.h,
584 [AC_MSG_ERROR([GNUnet requires zlib])])
585 AC_CHECK_LIB(z, compress2,
587 AC_DEFINE([HAVE_ZLIB], [], [Have compression library])
588 if test "x${Z_DIR}" != "x"; then
589 Z_CFLAGS="-I${Z_DIR}/include"
590 Z_LIBS="-L${Z_DIR}/lib -lz"
594 [AC_MSG_ERROR([GNUnet requires zlib])])
598 LDFLAGS=$SAVE_LDFLAGS
599 CPPFLAGS=$SAVE_CPPFLAGS
602 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
603 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
605 if test "$build_target" = "mingw"
607 CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
613 SAVE_LDFLAGS=$LDFLAGS
614 SAVE_CPPFLAGS=$CPPFLAGS
615 AC_MSG_CHECKING(for mysql)
617 [ --with-mysql=PFX base of MySQL installation],
618 [AC_MSG_RESULT("$with_mysql")
619 if test "$with_mysql" != "no"
621 if test "$with_mysql" != "yes"
623 LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
624 CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
626 AC_CHECK_HEADERS(mysql/mysql.h,
627 AC_CHECK_LIB(mysqlclient, mysql_init,
628 MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
629 MYSQL_CPPFLAGS="-I$with_mysql/include"
631 mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
634 [AC_MSG_RESULT([--with-mysql not specified])
635 if test -d "/usr/lib64/mysql"; then
636 MYSQL_LIBDIR="/usr/lib64/mysql"
637 elif test -d "/usr/lib/mysql"; then
638 MYSQL_LIBDIR="/usr/lib/mysql"
640 MYSQL_LIBDIR="/usr/lib"
642 LDFLAGS="-L$MYSQL_LIBDIR $LDFLAGS $ZLIBS"
643 AC_CHECK_LIB(mysqlclient, mysql_init,
644 [AC_CHECK_HEADERS(mysql/mysql.h,
645 MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
648 , [], [$CYGWIN_MYSQL_MAGIC])])
651 AC_SUBST(MYSQL_LDFLAGS)
652 AC_SUBST(MYSQL_CPPFLAGS)
654 # additional version check for mysql
655 AC_ARG_ENABLE(mysql-version-check, [ --disable-mysql-version-check do not check MySQL version],, enable_mysql_version_check=yes)
656 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
658 AC_MSG_CHECKING(mysql version)
659 AC_RUN_IFELSE([AC_LANG_PROGRAM(
660 [[$CYGWIN_MYSQL_MAGIC
661 #include <mysql/mysql.h>]],
662 [[if (MYSQL_VERSION_ID < 40100)
667 ],mysql=true,mysql=false)
668 if test "$mysql" = "false"
671 AC_MSG_RESULT([fail, >= 4.1 required])
676 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
677 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
680 LDFLAGS=$SAVE_LDFLAGS
681 CPPFLAGS=$SAVE_CPPFLAGS
683 if test "$sqlite" = 0 -a "$mysql" = 0
685 AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
690 AC_MSG_CHECKING([for libmicrohttpd])
691 AC_ARG_WITH(microhttpd,
692 [ --with-microhttpd=PFX base of libmicrohttpd installation],
693 [AC_MSG_RESULT([$with_microhttpd])
694 case $with_microhttpd in
698 AC_CHECK_HEADERS([microhttpd.h],
699 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
700 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
701 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
703 #include "$native_srcdir/src/include/platform.h"
704 #include <microhttpd.h>
705 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
708 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
709 [],[#include "$native_srcdir/src/include/platform.h"
710 #include <microhttpd.h>]),,
711 [#include "$native_srcdir/src/include/platform.h"])
714 LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
715 CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
716 AC_CHECK_HEADERS(microhttpd.h,
717 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
718 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
719 EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
720 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
722 #include "$native_srcdir/src/include/platform.h"
723 #include <microhttpd.h>
724 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
727 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
728 [],[#include "$native_srcdir/src/include/platform.h"
729 #include <microhttpd.h>]),,
730 [#include "$native_srcdir/src/include/platform.h"])
734 [AC_MSG_RESULT([--with-microhttpd not specified])
735 AC_CHECK_HEADERS([microhttpd.h],
736 AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
737 AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
738 [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
740 #include "$native_srcdir/src/include/platform.h"
741 #include <microhttpd.h>
742 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
745 lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
746 [],[#include "$native_srcdir/src/include/platform.h"
747 #include <microhttpd.h>]),,
748 [#include "$native_srcdir/src/include/platform.h"])])
749 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
750 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
756 # check for python & pexpect (used for some testcases only)
757 AM_PATH_PYTHON([2.6],, [:])
758 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
761 AM_GNU_GETTEXT([external])
762 AM_GNU_GETTEXT_VERSION([0.16.1])
767 # Checks for standard typedefs, structures, and compiler characteristics.
776 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
777 [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
781 #include <sys/types.h>
782 #include <sys/socket.h>
783 #include <netinet/in.h>
788 # Checks for library functions.
789 AC_FUNC_CLOSEDIR_VOID
791 AC_PROG_GCC_TRADITIONAL
793 AC_FUNC_SELECT_ARGTYPES
803 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])
808 gn_user_home_dir="~/.gnunet"
809 AC_ARG_WITH(user-home-dir,
811 [--with-user-home-dir=DIR],
812 [default user home directory (~/.gnunet)]),
813 [gn_user_home_dir=$withval])
814 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
815 gn_daemon_home_dir="/var/lib/gnunet"
816 AC_ARG_WITH(daemon-home-dir,
818 [--with-daemon-home-dir=DIR],
819 [default daemon home directory (/var/lib/gnunet)]),
820 [gn_daemon_home_dir=$withval])
821 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
822 gn_daemon_config_dir="/etc"
823 AC_ARG_WITH(daemon-config-dir,
825 [--with-daemon-config-dir=DIR],
826 [default daemon config directory (/etc)]),
827 [gn_daemon_config_dir=$withval])
828 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
831 GN_LIBINTL="$LTLIBINTL"
832 AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval)
833 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
834 if test x$enable_framework_build = xyes
836 AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
837 GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
838 GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
839 AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL])
842 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
843 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
845 AC_SUBST(GN_LIB_LDFLAGS)
846 AC_SUBST(GN_PLUGIN_LDFLAGS)
847 AC_SUBST(GN_INTLINCL)
853 AC_SUBST(EXT_LIB_PATH)
858 AC_SUBST(EXT_LIB_PATH)
862 AC_MSG_CHECKING(for sudo)
864 [ --with-sudo=PATH path to sudo binary (or just yes)],
865 [AC_MSG_RESULT("$with_sudo")
874 SUDO_BINARY=$with_sudo
878 [AC_MSG_RESULT([no])])
879 AC_SUBST(SUDO_BINARY)
880 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
884 AC_MSG_CHECKING(with nssdir)
886 [ --with-nssdir=PATH where to install NSS plugins],
887 [AC_MSG_RESULT("$with_nssdir")
904 if test "x$SUDO_BINARY" != "x" -o -w /
908 AC_MSG_RESULT([yes, to /lib])
916 AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"])
918 # test for gnunetdns group name
919 GNUNETDNS_GROUP=gnunetdns
920 AC_MSG_CHECKING(for gnunetdns group name)
921 AC_ARG_WITH(gnunetdns,
922 [ --with-gnunetdns=GRPNAME name for gnunetdns group],
923 [AC_MSG_RESULT("$with_gnunetdns")
924 case $with_gnunetdns in
926 GNUNETDNS_GROUP=gnunet
929 GNUNETDNS_GROUP=gnunetdns
932 GNUNETDNS_GROUP=$with_gnunetdns
936 [AC_MSG_RESULT([gnunetdns])])
937 AC_SUBST(GNUNETDNS_GROUP)
943 AC_MSG_CHECKING(for gnutls)
945 [ --with-gnutls=PFX base of gnutls installation],
946 [AC_MSG_RESULT([$with_gnutls])
951 AC_CHECK_HEADERS([gnutls/abstract.h],
952 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
956 LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
957 CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
958 AC_CHECK_HEADERS([gnutls/abstract.h],
959 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
960 EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
965 [AC_MSG_RESULT([--with-gnutls not specified])
966 AC_CHECK_HEADERS([gnutls/abstract.h],
967 AC_CHECK_LIB([gnutls], [gnutls_priority_set],
969 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
970 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have gnutls])
973 # Test if we are building for superMUC
974 AC_MSG_CHECKING(if testbed should use IBM LoadLeveler to run on SuperMUC)
976 [AS_HELP_STRING([--enable-ll],
977 [build GNUnet testbed for use with IBM LoadLeveler for running testbed on
978 SuperMUC (default is NO)])],
979 [if test "x$enable_ll" = "xno"
987 AC_MSG_RESULT($enable_ll)
988 AM_CONDITIONAL([ENABLE_LL], [test "x$ll" = "x1"])
989 AC_DEFINE_UNQUOTED([ENABLE_LL], [$ll], [Build with LL support])
991 # Check if NSE has to send timestamp information to testbed logger for
992 # generating histogram of messages received
993 AC_MSG_CHECKING(if NSE has to send timestamp information to testbed logger)
994 AC_ARG_ENABLE([nse-histogram],
995 [AS_HELP_STRING([--enable-nse-histogram],
996 [have NSE send timestamp information to testbed logger for generating
997 histogram of received messages. NOT useful for production (default is
999 [if test "x$enableval" = "xno"
1006 enable_nse_histogram=no])
1007 AC_MSG_RESULT($enable_nse_histogram)
1008 AM_CONDITIONAL([ENABLE_NSE_HISTOGRAM], [test "x$nse_histogram" = "x1"])
1009 AC_DEFINE_UNQUOTED([ENABLE_NSE_HISTOGRAM], [$nse_histogram],
1010 [have NSE send timestamp information to testbed logger])
1012 # should 'make check' run tests?
1013 AC_MSG_CHECKING(whether to run tests)
1014 AC_ARG_ENABLE([testruns],
1015 [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
1016 [enable_tests_run=${enableval}],
1017 [enable_tests_run=yes])
1018 AC_MSG_RESULT($enable_test_run)
1019 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
1022 # should monkey be used when running (certain) services?
1023 AC_MSG_CHECKING(whether to run with monkey)
1024 AC_ARG_ENABLE([monkey],
1025 [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
1026 [enable_monkey=${enableval}],
1028 AC_MSG_RESULT($enable_monkey)
1029 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
1030 if test "x$enable_monkey" = "xyes"
1032 MONKEYPREFIX="monkey"
1036 AC_SUBST(MONKEYPREFIX)
1039 # should expensive tests be run?
1040 AC_MSG_CHECKING(whether to run expensive tests)
1041 AC_ARG_ENABLE([expensivetests],
1042 [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
1043 [enable_expensive=${enableval}],
1044 [enable_expensive=no])
1045 AC_MSG_RESULT($enable_expensive)
1046 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
1048 # should ports be open for Java services?
1049 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
1050 AC_ARG_ENABLE([javaports],
1051 [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
1052 [enable_java_ports=${enableval}],
1053 [enable_java_ports=no])
1054 AC_MSG_RESULT($enable_java_ports)
1055 if test "x$enable_java_ports" = "xyes"
1059 JAVAPORT="$UNIXONLY"
1063 # should benchmarks be run?
1064 AC_MSG_CHECKING(whether to run benchmarks during make check)
1065 AC_ARG_ENABLE([benchmarks],
1066 [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
1067 [enable_benchmarks=${enableval}],
1068 [enable_benchmarks=no])
1069 AC_MSG_RESULT($enable_benchmarks)
1070 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
1072 # should experimental code be compiled (code that may not yet compile)?
1073 AC_MSG_CHECKING(whether to compile experimental code)
1074 AC_ARG_ENABLE([experimental],
1075 [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
1076 [enable_experimental=${enableval}],
1077 [enable_experimental=no])
1078 AC_MSG_RESULT($enable_experimental)
1079 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
1081 # should memory statistics be kept (very expensive CPU-wise!)
1082 AC_MSG_CHECKING(whether to create expensive statistics on memory use)
1083 AC_ARG_ENABLE([heapstats],
1084 [AS_HELP_STRING([--enable-heapstats], [enable expensive heap statistics])],
1085 [enable_heapstats=1],
1086 [enable_heapstats=0])
1087 AC_MSG_RESULT($enable_heapstats)
1088 AC_DEFINE_UNQUOTED([ENABLE_HEAP_STATISTICS],$enable_heapstats,[enable expensive heap statistics])
1090 # should code be enabled that works around missing OS functionality on Windows?
1091 # used for test cases
1092 if test $build_target = "mingw"
1098 [#include <ws2tcpip.h>
1100 int s = socket (0, 0, 0);])
1102 AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
1104 AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
1109 [#include <ws2tcpip.h>
1111 int s = select (0, NULL, NULL, NULL, NULL);])
1113 AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
1115 AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
1120 [#include <ws2tcpip.h>
1123 char *s = inet_ntoa (i);])
1125 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
1127 AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
1132 [#include <ws2tcpip.h>
1134 int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
1136 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
1138 AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
1143 [#include <ws2tcpip.h>
1145 int s = gethostname (NULL, 0);])
1147 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
1149 AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
1154 [#include <ws2tcpip.h>
1156 void *s = gethostbyname (NULL);])
1158 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
1160 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
1165 [#include <ws2tcpip.h>
1167 void *s = gethostbyaddr (NULL, 0, 0);])
1169 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1171 AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1176 [#include <ws2tcpip.h>
1178 int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1180 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1182 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1186 AC_MSG_CHECKING(whether to enable windows workarounds)
1187 AC_ARG_ENABLE([windows_workarounds],
1188 [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1189 [enable_workarounds=${enableval}],
1190 [enable_workarounds=no])
1191 AC_MSG_RESULT($enable_workarounds)
1192 if test x$enable_windows_workarounds = "xyes"
1199 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1202 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1203 AC_ARG_ENABLE([coverage],
1204 AS_HELP_STRING([--enable-coverage],
1205 [compile the library with code coverage support]),
1206 [use_gcov=${enableval}],
1208 AC_MSG_RESULT($use_gcov)
1209 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1213 AC_PATH_PROG(svnversioncommand, svnversion)
1214 AC_PATH_PROG(gitcommand, git)
1215 if test "X$svnversioncommand" = "X" || test `$svnversioncommand -n '.'` = "exported"
1217 if test "X$gitcommand" = "X"
1219 AC_DEFINE_UNQUOTED(VCS_VERSION, ["release"], [repository svn version])
1221 gitver=$(git log -1 | grep "git-svn-id" | sed -e 's/.*@\([[0-9]]\+\) .*/\1/')
1222 if test "X$gitver" = "X"
1224 AC_DEFINE_UNQUOTED(VCS_VERSION, ["release"], [repository svn version])
1226 AC_DEFINE_UNQUOTED(VCS_VERSION, ["svn-$gitver"], [repository svn version])
1230 AC_DEFINE_UNQUOTED(VCS_VERSION, ["svn-`svnversion -n`"], [repository svn version])
1245 src/ats-tool/Makefile
1249 src/consensus/Makefile
1250 src/consensus/consensus.conf
1251 src/datacache/Makefile
1252 src/datastore/Makefile
1253 src/datastore/datastore.conf
1261 src/experimentation/Makefile
1262 src/experimentation/experimentation.conf
1263 src/fragmentation/Makefile
1268 src/gns/nss/Makefile
1270 src/include/Makefile
1271 src/include/gnunet_directories.h
1272 src/hostlist/Makefile
1273 src/lockmanager/Makefile
1274 src/lockmanager/lockmanager.conf
1278 src/namestore/Makefile
1279 src/namestore/namestore.conf
1283 src/peerinfo/Makefile
1284 src/peerinfo/peerinfo.conf
1285 src/peerinfo-tool/Makefile
1286 src/postgres/Makefile
1289 src/regex/regex.conf
1292 src/statistics/Makefile
1293 src/statistics/statistics.conf
1295 src/template/Makefile
1296 src/testbed/Makefile
1297 src/testbed/testbed.conf
1298 src/testing/Makefile
1299 src/topology/Makefile
1300 src/transport/Makefile
1301 src/transport/transport.conf
1304 src/util/resolver.conf
1307 src/integration-tests/Makefile
1309 pkgconfig/gnunetats.pc
1310 pkgconfig/gnunetarm.pc
1311 pkgconfig/gnunetblock.pc
1312 pkgconfig/gnunetcore.pc
1313 pkgconfig/gnunetdatacache.pc
1314 pkgconfig/gnunetdatastore.pc
1315 pkgconfig/gnunetdht.pc
1316 pkgconfig/gnunetdns.pc
1317 pkgconfig/gnunetdnsparser.pc
1318 pkgconfig/gnunetdv.pc
1319 pkgconfig/gnunetfragmentation.pc
1320 pkgconfig/gnunetfs.pc
1321 pkgconfig/gnunetgns.pc
1322 pkgconfig/gnunethello.pc
1323 pkgconfig/gnunetlockmanager.pc
1324 pkgconfig/gnunetmesh.pc
1325 pkgconfig/gnunetmysql.pc
1326 pkgconfig/gnunetnamestore.pc
1327 pkgconfig/gnunetnat.pc
1328 pkgconfig/gnunetnse.pc
1329 pkgconfig/gnunetpeerinfo.pc
1330 pkgconfig/gnunetpostgres.pc
1331 pkgconfig/gnunetregex.pc
1332 pkgconfig/gnunetstatistics.pc
1333 pkgconfig/gnunetstream.pc
1334 pkgconfig/gnunettestbed.pc
1335 pkgconfig/gnunettesting.pc
1336 pkgconfig/gnunettransport.pc
1337 pkgconfig/gnunettun.pc
1338 pkgconfig/gnunetutil.pc
1339 pkgconfig/gnunetvpn.pc
1345 # warn user if mysql found but not used due to version
1346 if test "$mysqlfail" = "true"
1348 AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1352 if test "x$sqlite" = "x0"
1354 AC_MSG_NOTICE([NOTICE: sqlite not found. sqLite support will not be compiled.])
1358 if test "x$curl" = "x0"
1360 AC_MSG_NOTICE([NOTICE: libcurl not found. http client support will not be compiled.])
1364 if test x$gnutls != xtrue
1366 AC_MSG_NOTICE([NOTICE: gnutls not found, gnunet-gns-proxy will not be built])
1370 if test "x$enable_java_ports" = "xyes"
1372 AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1375 if test "x$lmhd" != "x1"
1377 AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1380 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1382 if test "$enable_framework_build" = "yes"
1384 AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1387 if test "x$SUDO_BINARY" = "x" -a ! -w /
1389 AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1393 AC_MSG_NOTICE([********************************************
1394 Please make sure NOW that you have created a user and group 'gnunet'
1395 and additionally a group 'gnunetdns':
1399 Make sure that '/var/lib/gnunet' is owned (and writable) by user
1400 'gnunet'. Then, you can compile GNUnet with
1403 After that, run (if necessary as 'root')
1405 to install everything.
1407 Each GNUnet user should be added to the 'gnunet' group (may
1408 require fresh login to come into effect):
1409 adduser $USERNAME gnunet
1410 (run the above command as root once for each of your users, replacing
1411 "$USERNAME" with the respective login names). If you have a global IP
1412 address, no further configuration is required.
1414 Optionally, download and compile gnunet-gtk to get a GUI for
1415 file-sharing and configuration. This is particularly recommended
1416 if your network setup is non-trivial, as gnunet-setup can be
1417 used to test in the GUI if your network configuration is working.
1418 gnunet-setup should be run as the "gnunet" user under X. As it
1419 does very little with the network, running it as "root" is likely
1420 also harmless. You can also run it as a normal user, but then
1421 you have to copy ~/.gnunet/gnunet.conf" over to the "gnunet" user's
1422 home directory in the end.
1424 Once you have configured your peer, run (as the 'gnunet' user)
1426 to start the peer. You can then run the various GNUnet-tools as
1427 your "normal" user (who should only be in the group 'gnunet').
1428 ********************************************])