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