-bad whitespace
[oweals/gnunet.git] / configure.ac
1 # This file is part of GNUnet.
2 # (C) 2001--2012 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 2, 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.9.3],[bug-gnunet@gnu.org])
26
27 AC_CANONICAL_TARGET
28 AC_CANONICAL_HOST
29 AC_CANONICAL_SYSTEM
30
31 AM_INIT_AUTOMAKE([gnunet], [0.9.3])
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
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 LTDL_INIT
47 AC_SUBST(LTDLINCL)
48 AC_SUBST(LIBLTDL)
49 AC_SUBST(MKDIR_P)
50
51 # large file support
52 AC_SYS_LARGEFILE
53 AC_FUNC_FSEEKO
54
55
56 if test "$enable_shared" = "no"
57 then
58  AC_MSG_ERROR([GNUnet only works with shared libraries. Sorry.])
59 fi
60
61 CFLAGS="-Wall $CFLAGS"
62 # use '-fno-strict-aliasing', but only if the compiler can take it
63 if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1;
64 then
65  CFLAGS="-fno-strict-aliasing $CFLAGS"
66 fi
67
68 # Use Linux interface name unless the OS has a different preference
69 DEFAULT_INTERFACE="\"eth0\""
70
71 funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo"
72
73 # Srcdir in a form that native compiler understands (i.e. DOS path on W32)
74 native_srcdir=$srcdir
75
76 # Check system type
77 case "$host_os" in
78 *darwin* | *rhapsody* | *macosx*)
79      AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system])
80      CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
81      CFLAGS="-no-cpp-precomp -fno-common $CFLAGS"
82      AC_MSG_WARN([The VPN application cannot be compiled on your OS])
83      build_target="darwin"
84      DEFAULT_INTERFACE="\"en0\""
85      LIBPREFIX=
86      DLLDIR=lib
87      UNIXONLY="#"
88      ;;
89 linux*)
90      AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
91      build_target="linux"
92      LIBPREFIX=
93      DLLDIR=lib
94      UNIXONLY="#"
95      AC_PATH_XTRA
96      ;;
97 freebsd*)
98      AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
99      AC_DEFINE_UNQUOTED(FREEBSD,1,[This is a FreeBSD system])
100      CFLAGS="-D_THREAD_SAFE $CFLAGS"
101      build_target="freebsd"
102      LIBPREFIX=
103      DLLDIR=lib
104      UNIXONLY="#"
105      ;;
106 openbsd*)
107      AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
108      AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
109      LIBS=`echo $LIBS | sed -e "s/-ldl//"`
110      build_target="openbsd"
111      LIBPREFIX=
112      DLLDIR=lib
113      UNIXONLY="#"
114      ;;
115 netbsd*)
116      AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
117      AC_DEFINE_UNQUOTED(NETBSD,1,[This is a NetBSD system])
118      LIBPREFIX=
119      DLLDIR=lib
120      UNIXONLY="#"
121      ;;
122 *solaris*)
123      AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system])
124      AC_DEFINE_UNQUOTED(_REENTRANT,1,[Need with solaris or errno doesnt work])
125      AC_CHECK_LIB(resolv, res_init)
126      AC_CHECK_LIB(rt, nanosleep)
127      build_target="solaris"
128      LIBPREFIX=
129      DLLDIR=lib
130      UNIXONLY="#"
131      ;;
132 *arm-linux*)
133      AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux kernel])
134      CFLAGS="-D_REENTRANT -fPIC -pipe $CFLAGS"
135      build_target="linux"
136      LIBPREFIX=
137      DLLDIR=lib
138      UNIXONLY="#"
139      ;;
140 *cygwin*)
141      AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
142      AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
143      AC_CHECK_LIB(intl, gettext)
144      LDFLAGS="$LDFLAGS -no-undefined"
145      CFLAGS="-mms-bitfields $CFLAGS"
146      build_target="cygwin"
147      LIBPREFIX=lib
148      DLLDIR=bin
149      AC_PROG_CXX
150      UNIXONLY=""
151      ;;
152 *mingw*)
153      AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
154      AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
155      AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
156      AC_CHECK_LIB(intl, gettext)
157      LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols"
158      LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
159      CFLAGS="-mms-bitfields $CFLAGS"
160      CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 $CPPFLAGS"
161      build_target="mingw"
162      AC_PROG_CXX
163      LIBPREFIX=lib
164      DLLDIR=bin
165      UNIXONLY=""
166      funcstocheck=""
167      native_srcdir=$(cd $srcdir; pwd -W)
168      ;;
169 gnu*)
170      AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
171      build_target="gnu"
172      UNIXONLY="#"
173      ;;
174 *)
175      AC_MSG_RESULT(Unrecognised OS $host_os)
176      AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS])
177      UNIXONLY=""
178 ;;
179 esac
180 AC_DEFINE_UNQUOTED([GNUNET_DEFAULT_INTERFACE], $DEFAULT_INTERFACE, [This should be the default choice for the name of the first network interface])
181 AC_SUBST(DEFAULT_INTERFACE)
182
183 # Disable TCP-based IPC on systems that support UNIX domain
184 # sockets in default configuratin:
185 AC_SUBST(UNIXONLY)
186
187
188 AC_MSG_CHECKING([for build target])
189 AM_CONDITIONAL(DARWIN,  test "$build_target" = "darwin")
190 AM_CONDITIONAL(CYGWIN,  test "$build_target" = "cygwin")
191 AM_CONDITIONAL(MINGW,   test "$build_target" = "mingw")
192 AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
193 AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
194 AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
195 AM_CONDITIONAL(LINUX, test "$build_target" = "linux")
196 AM_CONDITIONAL(GNU, test "$build_target" = "gnu")
197
198 AC_MSG_RESULT([$build_target])
199 AC_SUBST(build_target)
200 AM_CONDITIONAL([am__fastdepOBJC], false)
201 AC_UNALIGNED_64_ACCESS
202
203 # some other checks for standard libs
204 AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
205 AC_CHECK_LIB(socket, socket)
206 AC_CHECK_LIB(m, log)
207 AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
208
209 # 'save' libs; only those libs found so far will be
210 # linked against _everywhere_.  For the others, we
211 # will be more selective!
212 SAVE_LIBS=$LIBS
213
214 # libgnurx (regex library for W32)
215 gnurx=0
216 AC_CHECK_LIB(gnurx, regexec, gnurx=1)
217 if test "x$gnurx" = "x0" -a "x$build_target" = "xmingw"
218 then
219   AC_MSG_ERROR([on W32 GNUnet needs libgnurx])
220 fi
221
222 # libgcrypt
223 gcrypt=0
224 AM_PATH_LIBGCRYPT(1.2.0, gcrypt=1)
225 AC_CHECK_DECLS([gcry_mpi_lshift], [], [], [[#include <gcrypt.h>]])
226
227 if test $gcrypt = 0
228 then
229   AC_MSG_ERROR([GNUnet needs libgcrypt])
230 fi
231
232 # Adam shostack suggests the following for Windows:
233 # -D_FORTIFY_SOURCE=2 -fstack-protector-all
234 AC_ARG_ENABLE(gcc-hardening,
235    AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
236 [if test x$enableval = xyes; then
237     CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all"
238     CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
239     CFLAGS="$CFLAGS --param ssp-buffer-size=1"
240     LDFLAGS="$LDFLAGS -pie"
241 fi])
242
243
244 # Linker hardening options
245 # Currently these options are ELF specific - you can't use this with MacOSX
246 AC_ARG_ENABLE(linker-hardening,
247   AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
248 [if test x$enableval = xyes; then
249    LDFLAGS="$LDFLAGS -z relro -z now"
250 fi])
251
252
253 extra_logging=GNUNET_NO
254 AC_ARG_ENABLE([logging],
255    AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
256    [AS_IF([test "x$enableval" = "xyes"], [],
257           [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
258           [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
259           [test "x$enableval" = "xveryverbose"], [extra_logging=\(GNUNET_YES+1\)])
260    ], [])
261 AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
262
263 # should memory poisoning be enabled?
264 AC_MSG_CHECKING(whether to poison freed memory)
265 AC_ARG_ENABLE([poisoning],
266    [AS_HELP_STRING([--enable-poisoning], [enable poisoning of freed memory (good for debugging)])],
267    [enable_poisoning=${enableval}],
268    [
269      if test "x$extra_logging" != "xGNUNET_NO"; then
270        enable_poisoning="defaults to yes (extra logging is enabled)"
271      else
272        enable_poisoning=no
273      fi
274    ])
275 AC_MSG_RESULT($enable_poisoning)
276 if test ! "x$enable_poisoning" = "xno"; then
277   enable_poisoning=1
278 else
279   enable_poisoning=0
280 fi
281 AC_DEFINE_UNQUOTED([ENABLE_POISONING],[$enable_poisoning],[1 if freed memory should be poisoned, 0 otherwise])
282
283 if test $build = $target
284 then
285 AC_MSG_CHECKING([for working HMAC])
286 AC_LANG_PUSH(C)
287 LIBS="$LIBS $LIBGCRYPT_LIBS"
288 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
289 AC_RUN_IFELSE(
290   [AC_LANG_PROGRAM([#include <gcrypt.h> 
291         #include <stdio.h>], [[
292         gcry_md_hd_t mac;
293       
294         unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
295             0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
296             0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
297         unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
298         unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
299             0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
300             0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
301             0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
302             0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
303             0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
304       
305         if (!gcry_check_version (GCRYPT_VERSION))
306         {
307           fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
308           return 1;
309         }
310   
311         gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
312         gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
313   
314         if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
315         {
316           fprintf (stderr, "gcry_md_open error\n");
317           return 2;
318         }
319   
320         gcry_md_setkey (mac, key, sizeof (key));
321         gcry_md_write (mac, data, sizeof (data));
322   
323         if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
324         {
325           fprintf (stderr, "memcmp error\n");
326           return 3;
327         }
328   
329         gcry_md_close (mac);
330   
331         return 0;
332     ]])],
333   [AC_MSG_RESULT([yes])],
334   [
335    RESULT=$?
336    if test $RESULT = 3
337    then
338      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.])
339    fi
340    if test $RESULT = 2
341    then
342      AC_MSG_FAILURE([HMAC test failed])
343    fi
344    if test $RESULT = 1
345    then
346      AC_MSG_FAILURE([libgcrypt header version does not match library version])
347    fi
348   ])
349 AC_LANG_POP(C)
350 fi      # $build = $target
351
352 # libcurl
353 LIBCURL_CHECK_CONFIG(,7.21.3,curl=1,curl=0)
354 if test "$curl" = 1
355 then
356         AM_CONDITIONAL(HAVE_LIBCURL, true)
357         AC_DEFINE([HAVE_LIBCURL],[1],[Have libcurl])
358 else
359         AM_CONDITIONAL(HAVE_LIBCURL, false)
360 fi
361 # restore LIBS
362 LIBS=$SAVE_LIBS
363
364
365 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
366 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
367 # GLPK must support atm MLP presolving, version >= 4.32
368 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
369 if test x$gplk = xfalse
370 then
371         AM_CONDITIONAL(HAVE_LIBGLPK, false)
372         AC_MSG_WARN([GNUnet requires GLPK  >= 4.32])
373 else
374         AM_CONDITIONAL(HAVE_LIBGLPK, true)
375         AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
376 fi
377
378
379
380 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
381 if test x$nss = xfalse
382 then
383         AM_CONDITIONAL(HAVE_GLIBCNSS, false)
384         AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
385 else
386         AM_CONDITIONAL(HAVE_GLIBCNSS, true)
387 fi
388
389
390
391 # test for kvm and kstat (for CPU stats under BSD/Solaris)
392 AC_CHECK_LIB([kvm],[kvm_open])
393 AC_CHECK_LIB([kstat],[kstat_open])
394
395 # test for libextractor
396 extractor=0
397 AC_MSG_CHECKING(for libextractor)
398 AC_ARG_WITH(extractor,
399    [  --with-extractor=PFX    base of libextractor installation],
400    [AC_MSG_RESULT([$with_extractor])
401     case $with_extractor in
402       no)
403         ;;
404       yes)
405         AC_CHECK_HEADERS(extractor.h,
406           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
407             extractor=1))
408         ;;
409       *)
410         LDFLAGS="-L$with_extractor/lib $LDFLAGS"
411         CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
412         AC_CHECK_HEADERS(extractor.h,
413           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
414             EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
415             extractor=1))
416         ;;
417     esac
418    ],
419    [AC_MSG_RESULT([--with-extractor not specified])
420     AC_CHECK_HEADERS(extractor.h,
421      AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
422       extractor=1))])
423 if test "$extractor" != 1
424 then
425  AC_MSG_ERROR([GNUnet requires libextractor])
426 fi
427 # restore LIBS
428 LIBS=$SAVE_LIBS
429
430 # test for libunistring
431 gl_LIBUNISTRING
432 if test $HAVE_LIBUNISTRING != yes; then
433  AC_MSG_ERROR([GNUnet requires libunistring])
434 fi
435 if test $gl_libunistring_hexversion -le 2305; then
436  AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
437 fi
438 # restore LIBS
439 LIBS=$SAVE_LIBS
440
441
442
443 # Checks for standard header files.
444 AC_HEADER_DIRENT
445 AC_HEADER_STDC
446
447 # Check for headers that are ALWAYS required
448 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]))
449
450 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
451 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 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])
452
453 SAVE_LDFLAGS=$LDFLAGS
454 SAVE_CPPFLAGS=$CPPFLAGS
455
456 # test for sqlite
457 sqlite=false
458 AC_MSG_CHECKING(for SQLite)
459 AC_ARG_WITH(sqlite,
460   [  --with-sqlite=PFX       base of SQLite installation],
461   [AC_MSG_RESULT("$with_sqlite")
462    case $with_sqlite in
463    no)
464      ;;
465    yes)
466     AC_CHECK_HEADERS(sqlite3.h,
467      sqlite=true)
468      ;;
469    *)
470     LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
471     CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
472     AC_CHECK_HEADERS(sqlite3.h,
473      EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
474      SQLITE_LDFLAGS="-L$with_sqlite/lib"
475      SQLITE_CPPFLAGS="-I$with_sqlite/include"
476      sqlite=true)
477     LDFLAGS=$SAVE_LDFLAGS
478     CPPFLAGS=$SAVE_CPPFLAGS
479     ;;
480    esac
481   ],
482   [AC_MSG_RESULT([--with-sqlite not specified])
483     AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
484 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
485 AC_SUBST(SQLITE_CPPFLAGS)
486 AC_SUBST(SQLITE_LDFLAGS)
487
488 # test for postgres
489 postgres=false
490 AC_MSG_CHECKING(for postgres)
491 AC_ARG_WITH(postgres,
492   [  --with-postgres=PFX       base of postgres installation],
493   [AC_MSG_RESULT("$with_postgres")
494    case $with_postgres in
495    no)
496      ;;
497    yes)
498     AC_CHECK_HEADERS(postgresql/libpq-fe.h,
499      postgres=true)
500      ;;
501    *)
502     LDFLAGS="-L$with_postgres/lib $LDFLAGS"
503     CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
504     AC_CHECK_HEADERS(postgresql/libpq-fe.h,
505      EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
506      POSTGRES_LDFLAGS="-L$with_postgres/lib"
507      POSTGRES_CPPFLAGS="-I$with_postgres/include"
508      postgres=true)
509     LDFLAGS=$SAVE_LDFLAGS
510     CPPFLAGS=$SAVE_CPPFLAGS
511     ;;
512    esac
513   ],
514   [AC_MSG_RESULT([--with-postgres not specified])
515     AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
516 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
517 AC_SUBST(POSTGRES_CPPFLAGS)
518 AC_SUBST(POSTGRES_LDFLAGS)
519
520 # test for libz (maybe required for linking mysql)
521 zlib=1
522 AC_CHECK_LIB(z, compress,,zlib=0)
523 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
524 if test "$zlib" != 1
525 then
526  AC_MSG_ERROR([GNUnet requires zlib])
527 fi
528
529 # mysql & windows
530 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
531 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
532
533 if test "$build_target" = "mingw"
534 then
535   CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
536 fi
537
538 # test for mysql
539 mysql=false
540 mysqlfail=false
541 SAVE_LDFLAGS=$LDFLAGS
542 SAVE_CPPFLAGS=$CPPFLAGS
543 AC_MSG_CHECKING(for mysql)
544 AC_ARG_WITH(mysql,
545   [  --with-mysql=PFX        base of MySQL installation],
546   [AC_MSG_RESULT("$with_mysql")
547    if test "$with_mysql" != "no"
548    then
549     if test "$with_mysql" != "yes"
550     then
551       LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
552       CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
553     fi
554     AC_CHECK_HEADERS(mysql/mysql.h,
555      AC_CHECK_LIB(mysqlclient, mysql_init,
556       MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
557       MYSQL_CPPFLAGS="-I$with_mysql/include"
558
559       mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
560    fi
561   ],
562   [AC_MSG_RESULT([--with-mysql not specified])
563    LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
564    AC_CHECK_LIB(mysqlclient, mysql_init,
565     [AC_CHECK_HEADERS(mysql/mysql.h,
566       MYSQL_LDFLAGS="-L/usr/lib/mysql"
567       mysql=true
568
569      , [], [$CYGWIN_MYSQL_MAGIC])])
570   ])
571
572 AC_SUBST(MYSQL_LDFLAGS)
573 AC_SUBST(MYSQL_CPPFLAGS)
574
575 # additional version check for mysql
576 AC_ARG_ENABLE(mysql-version-check, [  --disable-mysql-version-check  do not check MySQL version],, enable_mysql_version_check=yes)
577 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
578 then
579   AC_MSG_CHECKING(mysql version)
580   AC_RUN_IFELSE([AC_LANG_PROGRAM(
581     [[$CYGWIN_MYSQL_MAGIC
582       #include <mysql/mysql.h>]],
583     [[if (MYSQL_VERSION_ID < 40100)
584         return(-1);
585       else
586         return(0);
587     ]])
588     ],mysql=true,mysql=false)
589   if test "$mysql" = "false"
590   then
591     mysqlfail=true
592     AC_MSG_RESULT([fail, >= 4.1 required])
593   else
594     AC_MSG_RESULT(ok)
595   fi
596 fi
597 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
598 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
599 # restore LIBS
600 LIBS=$SAVE_LIBS
601 LDFLAGS=$SAVE_LDFLAGS
602 CPPFLAGS=$SAVE_CPPFLAGS
603
604 if test "$sqlite" = 0 -a "$mysql" = 0
605 then
606  AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
607 fi
608
609 # libmicrohttpd
610 lmhd=0
611 AC_MSG_CHECKING([for libmicrohttpd])
612 AC_ARG_WITH(microhttpd,
613    [  --with-microhttpd=PFX   base of libmicrohttpd installation],
614    [AC_MSG_RESULT([$with_microhttpd])
615     case $with_microhttpd in
616       no)
617         ;;
618       yes)
619         AC_CHECK_HEADERS([microhttpd.h],
620           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
621             AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
622               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
623               AC_RUN_IFELSE([
624                 #include "$native_srcdir/src/include/platform.h"
625                 #include <microhttpd.h>
626                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
627                ], [
628                AC_MSG_RESULT(ok)
629                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
630             [],[#include "$native_srcdir/src/include/platform.h"
631                 #include <microhttpd.h>]),,
632             [#include "$native_srcdir/src/include/platform.h"])
633         ;;
634       *)
635         LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
636         CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
637         AC_CHECK_HEADERS(microhttpd.h,
638           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
639             AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
640               EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
641               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
642                AC_RUN_IFELSE([
643                 #include "$native_srcdir/src/include/platform.h"
644                 #include <microhttpd.h>
645                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
646                ], [
647                AC_MSG_RESULT(ok)
648                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
649             [],[#include "$native_srcdir/src/include/platform.h"
650                 #include <microhttpd.h>]),,
651             [#include "$native_srcdir/src/include/platform.h"])
652         ;;
653     esac
654    ],
655    [AC_MSG_RESULT([--with-microhttpd not specified])
656     AC_CHECK_HEADERS([microhttpd.h],
657       AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
658         AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
659           [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
660               AC_RUN_IFELSE([
661                 #include "$native_srcdir/src/include/platform.h"
662                 #include <microhttpd.h>
663                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
664                ], [
665                AC_MSG_RESULT(ok)
666                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
667         [],[#include "$native_srcdir/src/include/platform.h"
668             #include <microhttpd.h>]),,
669        [#include "$native_srcdir/src/include/platform.h"])])
670 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
671 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
672
673
674 # restore LIBS
675 LIBS=$SAVE_LIBS
676
677 # check for python & pexpect (used for some testcases only)
678 AM_PATH_PYTHON([2.6],, [:])
679 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
680
681 # check for gettext
682 AM_GNU_GETTEXT([external])
683 AM_GNU_GETTEXT_VERSION([0.16.1])
684
685 # check for iconv
686 AM_ICONV
687
688 # Checks for standard typedefs, structures, and compiler characteristics.
689 AC_TYPE_PID_T
690 AC_TYPE_SIZE_T
691 AC_TYPE_MODE_T
692 AC_HEADER_TIME
693 AC_HEADER_STAT
694 AC_HEADER_STDBOOL
695 AC_STRUCT_TM
696
697 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
698    [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
699    ],
700    [],
701    [
702       #include <sys/types.h>
703       #include <sys/socket.h>
704       #include <netinet/in.h>
705    ])
706
707
708
709 # Checks for library functions.
710 AC_FUNC_CLOSEDIR_VOID
711 AC_FUNC_FORK
712 AC_PROG_GCC_TRADITIONAL
713 AC_FUNC_MEMCMP
714 AC_FUNC_SELECT_ARGTYPES
715 AC_FUNC_CHOWN
716
717 AC_TYPE_SIGNAL
718 AC_FUNC_STAT
719 AC_FUNC_STRFTIME
720 AC_FUNC_VPRINTF
721 AC_HEADER_SYS_WAIT
722 AC_TYPE_OFF_T
723 AC_TYPE_UID_T
724 AC_CHECK_FUNCS([atoll stat64 strnlen mremap setrlimit sysconf initgroups strndup gethostbyname2 getpeerucred getpeereid setresuid $funcstocheck getifaddrs freeifaddrs getresgid mallinfo malloc_size malloc_usable_size])
725
726 # restore LIBS
727 LIBS=$SAVE_LIBS
728
729 gn_user_home_dir="~/.gnunet"
730 AC_ARG_WITH(user-home-dir,
731         AC_HELP_STRING(
732                 [--with-user-home-dir=DIR],
733                 [default user home directory (~/.gnunet)]),
734         [gn_user_home_dir=$withval])
735 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
736 gn_daemon_home_dir="/var/lib/gnunet"
737 AC_ARG_WITH(daemon-home-dir,
738         AC_HELP_STRING(
739                 [--with-daemon-home-dir=DIR],
740                 [default daemon home directory (/var/lib/gnunet)]),
741         [gn_daemon_home_dir=$withval])
742 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
743 gn_daemon_config_dir="/etc"
744 AC_ARG_WITH(daemon-config-dir,
745         AC_HELP_STRING(
746                 [--with-daemon-config-dir=DIR],
747                 [default daemon config directory (/etc)]),
748         [gn_daemon_config_dir=$withval])
749 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
750
751 GN_INTLINCL=""
752 GN_LIBINTL="$LTLIBINTL"
753 AC_ARG_ENABLE(framework, [  --enable-framework      enable Mac OS X framework build helpers],enable_framework_build=$enableval)
754 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
755 if test x$enable_framework_build = xyes
756 then
757   AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
758   GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
759   GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
760   AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL]) 
761 fi
762
763 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
764 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
765
766 AC_SUBST(GN_LIB_LDFLAGS)
767 AC_SUBST(GN_PLUGIN_LDFLAGS)
768 AC_SUBST(GN_INTLINCL)
769 AC_SUBST(GN_LIBINTL)
770
771 AC_SUBST(CPPFLAGS)
772 AC_SUBST(LIBS)
773 AC_SUBST(LDFLAGS)
774 AC_SUBST(EXT_LIB_PATH)
775 AC_SUBST(EXT_LIBS)
776
777 AC_SUBST(LIBPREFIX)
778 AC_SUBST(DLLDIR)
779 AC_SUBST(EXT_LIB_PATH)
780
781
782 # test for sudo
783 AC_MSG_CHECKING(for sudo)
784 AC_ARG_WITH(sudo,
785   [  --with-sudo=PATH       path to sudo binary (or just yes)],
786   [AC_MSG_RESULT("$with_sudo")
787    case $with_sudo in
788    no)
789      SUDO_BINARY=
790      ;;
791    yes)
792      SUDO_BINARY=sudo
793      ;;
794    *)
795      SUDO_BINARY=$with_sudo
796     ;;
797    esac
798   ],
799   [AC_MSG_RESULT([no])])
800 AC_SUBST(SUDO_BINARY)
801 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
802
803 # test for gnunetdns group name
804 GNUNETDNS_GROUP=gnunetdns
805 AC_MSG_CHECKING(for gnunetdns group name)
806 AC_ARG_WITH(gnunetdns,
807   [  --with-gnunetdns=GRPNAME       name for gnunetdns group],
808   [AC_MSG_RESULT("$with_gnunetdns")
809    case $with_gnunetdns in
810    no)
811      GNUNETDNS_GROUP=gnunet
812      ;;
813    yes)
814      GNUNETDNS_GROUP=gnunetdns
815      ;;
816    *)
817      GNUNETDNS_GROUP=$with_gnunetdns
818     ;;
819    esac
820   ],
821   [AC_MSG_RESULT([gnunetdns])])
822 AC_SUBST(GNUNETDNS_GROUP)
823
824
825
826 # gnutls
827 gnutls=0
828 AC_MSG_CHECKING(for gnutls)
829 AC_ARG_WITH(gnutls,
830    [  --with-gnutls=PFX   base of gnutls installation],
831    [AC_MSG_RESULT([$with_gnutls])
832     case $with_gnutls in
833       no)
834         ;;
835       yes)
836         AC_CHECK_HEADERS([gnutls/abstract.h],
837             AC_CHECK_LIB([gnutls], [gnutls_priority_set],
838              gnutls=true))
839         ;;
840       *)
841         LDFLAGS="-L$with_gnutls/lib $LDFLAGS"
842         CPPFLAGS="-I$with_gnutls/include $CPPFLAGS"
843         AC_CHECK_HEADERS([gnutls/abstract.h],
844             AC_CHECK_LIB([gnutls], [gnutls_priority_set],
845               EXT_LIB_PATH="-L$with_gnutls/lib $EXT_LIB_PATH"
846               gnutls=true))
847         ;;
848     esac
849    ],
850    [AC_MSG_RESULT([--with-gnutls not specified])
851     AC_CHECK_HEADERS([gnutls/abstract.h],
852         AC_CHECK_LIB([gnutls], [gnutls_priority_set],
853           gnutls=true))])
854 AM_CONDITIONAL(HAVE_GNUTLS, test x$gnutls = xtrue)
855 AC_DEFINE_UNQUOTED([HAVE_GNUTLS], $gnutls, [We have gnutls])
856
857
858
859 # should 'make check' run tests?
860 AC_MSG_CHECKING(whether to run tests)
861 AC_ARG_ENABLE([testruns],
862    [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
863    [enable_tests_run=${enableval}],
864    [enable_tests_run=yes])
865 AC_MSG_RESULT($enable_test_run)
866 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
867
868
869 # should monkey be used when running (certain) services?
870 AC_MSG_CHECKING(whether to run with monkey)
871 AC_ARG_ENABLE([monkey],
872    [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
873    [enable_monkey=${enableval}],
874    [enable_monkey=no])
875 AC_MSG_RESULT($enable_monkey)
876 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
877 if test "x$enable_monkey" = "xyes"
878 then
879   MONKEYPREFIX="monkey"
880 else
881   MONKEYPREFIX=""
882 fi
883 AC_SUBST(MONKEYPREFIX)
884
885
886 # should expensive tests be run?
887 AC_MSG_CHECKING(whether to run expensive tests)
888 AC_ARG_ENABLE([expensivetests],
889    [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
890    [enable_expensive=${enableval}],
891    [enable_expensive=no])
892 AC_MSG_RESULT($enable_expensive)
893 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
894
895 # should ports be open for Java services?
896 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
897 AC_ARG_ENABLE([javaports],
898    [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
899    [enable_java_ports=${enableval}],
900    [enable_java_ports=no])
901 AC_MSG_RESULT($enable_java_ports)
902 if test "x$enable_java_ports" = "xyes"
903 then
904   JAVAPORT=""
905 else
906   JAVAPORT="$UNIXONLY"
907 fi
908 AC_SUBST(JAVAPORT)
909
910 # should benchmarks be run?
911 AC_MSG_CHECKING(whether to run benchmarks during make check)
912 AC_ARG_ENABLE([benchmarks],
913    [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
914    [enable_benchmarks=${enableval}],
915    [enable_benchmarks=no])
916 AC_MSG_RESULT($enable_benchmarks)
917 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
918
919 # should experimental code be compiled (code that may not yet compile)?
920 AC_MSG_CHECKING(whether to compile experimental code)
921 AC_ARG_ENABLE([experimental],
922    [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
923    [enable_experimental=${enableval}],
924    [enable_experimental=no])
925 AC_MSG_RESULT($enable_experimental)
926 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
927
928 # should code be enabled that works around missing OS functionality on Windows?
929 # used for test cases
930 if test $build_target = "mingw"
931 then
932         workarounds=1
933
934 AC_LINK_IFELSE(
935  [AC_LANG_PROGRAM(
936   [#include <ws2tcpip.h>
937   ],[
938   int s = socket (0, 0, 0);])
939  ],[
940   AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
941  ],[
942   AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
943  ])
944
945 AC_LINK_IFELSE(
946  [AC_LANG_PROGRAM(
947   [#include <ws2tcpip.h>
948   ],[
949   int s = select (0, NULL, NULL, NULL, NULL);])
950  ],[
951   AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
952  ],[
953   AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
954  ])
955
956 AC_LINK_IFELSE(
957  [AC_LANG_PROGRAM(
958   [#include <ws2tcpip.h>
959   ],[
960   struct in_addr i;
961   char *s = inet_ntoa (i);])
962  ],[
963   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
964  ],[
965   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
966  ])
967
968 AC_LINK_IFELSE(
969  [AC_LANG_PROGRAM(
970   [#include <ws2tcpip.h>
971   ],[
972   int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
973  ],[
974   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
975  ],[
976   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
977  ])
978
979 AC_LINK_IFELSE(
980  [AC_LANG_PROGRAM(
981   [#include <ws2tcpip.h>
982   ],[
983   int s = gethostname (NULL, 0);])
984  ],[
985   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
986  ],[
987   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
988  ])
989
990 AC_LINK_IFELSE(
991  [AC_LANG_PROGRAM(
992   [#include <ws2tcpip.h>
993   ],[
994   void *s = gethostbyname (NULL);])
995  ],[
996   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
997  ],[
998   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
999  ])
1000
1001 AC_LINK_IFELSE(
1002  [AC_LANG_PROGRAM(
1003   [#include <ws2tcpip.h>
1004   ],[
1005   void *s = gethostbyaddr (NULL, 0, 0);])
1006  ],[
1007   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
1008  ],[
1009   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
1010  ])
1011
1012 AC_LINK_IFELSE(
1013  [AC_LANG_PROGRAM(
1014   [#include <ws2tcpip.h>
1015   ],[
1016   int s = getaddrinfo (NULL, NULL, NULL, NULL);])
1017  ],[
1018   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1019  ],[
1020   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1021  ])
1022
1023 else
1024   AC_MSG_CHECKING(whether to enable windows workarounds)
1025   AC_ARG_ENABLE([windows_workarounds], 
1026      [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
1027      [enable_workarounds=${enableval}],
1028      [enable_workarounds=no])
1029   AC_MSG_RESULT($enable_workarounds)
1030   if test x$enable_windows_workarounds = "xyes"
1031   then
1032      workarounds=1
1033   else
1034      workarounds=0
1035    fi
1036 fi
1037 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
1038
1039 # gcov compilation
1040 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
1041 AC_ARG_ENABLE([coverage], 
1042               AS_HELP_STRING([--enable-coverage],
1043                              [compile the library with code coverage support]),
1044               [use_gcov=${enableval}], 
1045               [use_gcov=no])
1046 AC_MSG_RESULT($use_gcov)
1047 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1048
1049
1050 AC_CONFIG_FILES([ 
1051 Makefile
1052 contrib/Makefile
1053 doc/Makefile
1054 doc/man/Makefile
1055 m4/Makefile
1056 po/Makefile.in 
1057 src/Makefile
1058 src/arm/Makefile
1059 src/arm/arm.conf
1060 src/ats/Makefile
1061 src/ats/ats.conf
1062 src/block/Makefile
1063 src/chat/Makefile
1064 src/chat/chat.conf
1065 src/core/Makefile
1066 src/core/core.conf
1067 src/datacache/Makefile
1068 src/datastore/Makefile
1069 src/datastore/datastore.conf
1070 src/dht/Makefile
1071 src/dht/dht.conf
1072 src/dns/Makefile
1073 src/dns/dns.conf
1074 src/dv/Makefile
1075 src/dv/dv.conf
1076 src/exit/Makefile
1077 src/fragmentation/Makefile
1078 src/fs/Makefile
1079 src/fs/fs.conf
1080 src/gns/Makefile
1081 src/gns/gns.conf
1082 src/gns/nss/Makefile
1083 src/hello/Makefile
1084 src/include/Makefile
1085 src/include/gnunet_directories.h
1086 src/hostlist/Makefile
1087 src/lockmanager/Makefile
1088 src/lockmanager/lockmanager.conf
1089 src/mesh/Makefile
1090 src/mesh/mesh.conf
1091 src/mysql/Makefile
1092 src/namestore/Makefile
1093 src/namestore/namestore.conf
1094 src/nat/Makefile
1095 src/nse/Makefile
1096 src/nse/nse.conf
1097 src/peerinfo/Makefile
1098 src/peerinfo/peerinfo.conf
1099 src/peerinfo-tool/Makefile
1100 src/postgres/Makefile
1101 src/pt/Makefile
1102 src/regex/Makefile
1103 src/statistics/Makefile
1104 src/statistics/statistics.conf
1105 src/stream/Makefile
1106 src/template/Makefile
1107 src/testbed/Makefile
1108 src/testbed/testbed.conf
1109 src/testing/Makefile
1110 src/testing_old/Makefile
1111 src/topology/Makefile
1112 src/transport/Makefile
1113 src/transport/transport.conf
1114 src/tun/Makefile
1115 src/util/Makefile
1116 src/util/resolver.conf
1117 src/vpn/Makefile
1118 src/vpn/vpn.conf
1119 src/integration-tests/Makefile
1120 pkgconfig/Makefile
1121 pkgconfig/gnunetarm.pc
1122 pkgconfig/gnunetblock.pc
1123 pkgconfig/gnunetcore.pc
1124 pkgconfig/gnunetdatacache.pc
1125 pkgconfig/gnunetdatastore.pc
1126 pkgconfig/gnunetdht.pc
1127 pkgconfig/gnunetdhtlog.pc
1128 pkgconfig/gnunetdv.pc
1129 pkgconfig/gnunetfragmentation.pc
1130 pkgconfig/gnunetfs.pc
1131 pkgconfig/gnunethello.pc
1132 pkgconfig/gnunetnat.pc
1133 pkgconfig/gnunetnse.pc
1134 pkgconfig/gnunetpeerinfo.pc
1135 pkgconfig/gnunetregex.pc
1136 pkgconfig/gnunetstatistics.pc
1137 pkgconfig/gnunettesting.pc
1138 pkgconfig/gnunettransport.pc
1139 pkgconfig/gnunetutil.pc
1140 ])
1141 AC_OUTPUT
1142
1143 # Finally: summary!
1144
1145 # warn user if mysql found but not used due to version
1146 if test "$mysqlfail" = "true"
1147 then
1148   AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1149 fi
1150
1151 # sqlite
1152 if test "x$sqlite" = "x0"
1153 then
1154   AC_MSG_NOTICE([NOTICE: sqlite not found.  sqLite support will not be compiled.])
1155 fi
1156
1157 # libcurl
1158 if test "x$curl" = "x0"
1159 then
1160   AC_MSG_NOTICE([NOTICE: libcurl not found.  http client support will not be compiled.])
1161 fi
1162
1163 #gnutls
1164 if test x$gnutls != xtrue
1165 then
1166   AC_MSG_NOTICE([NOTICE: gnutls not found, gnunet-gns-proxy will not be built])
1167 fi
1168
1169 # java ports
1170 if test "x$enable_java_ports" = "xyes"
1171 then
1172   AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1173 fi
1174
1175 if test "x$lmhd" != "x1"
1176 then
1177  AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1178 fi
1179
1180 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1181
1182 if test "$enable_framework_build" = "yes"
1183 then
1184   AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1185 fi
1186
1187 if test "x$SUDO_BINARY" = "x" -a ! -w /
1188 then
1189   AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1190 fi
1191
1192
1193 AC_MSG_NOTICE([********************************************
1194 Please make sure that you have created a user and group 'gnunet'
1195 and additionally a group 'gnunetdns'.  Make sure that '/var/lib/gnunet'
1196 is owned (and writable) by user 'gnunet'.  Then, you can compile GNUnet 
1197 with
1198         make
1199 After that, run (if necessary as 'root')
1200         make install
1201 to install everything. 
1202 Then, in order to start your peer, run as the 'gnunet' user
1203         mkdir ~gnunet/.gnunet/
1204         touch ~gnunet/.gnunet/gnunet.conf
1205         gnunet-arm -s
1206
1207 Each GNUnet user should also be added to the 'gnunet' group (may
1208 require fresh login to come into effect) and create an (at least 
1209 initially) empty configuration file:
1210         mkdir $HOME/.gnunet/
1211         touch $HOME/.gnunet/gnunet.conf
1212         
1213 Optionally, download and compile:
1214 - gnunet-gtk to get a GUI for file-sharing and configuration.
1215 ********************************************])