228ff17e024f509657eaa71ac715785046a3d49c
[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="socket select inet_ntoa 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 system])
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 system])
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 if test $build = $target
260 then
261 AC_MSG_CHECKING([for working HMAC])
262 AC_LANG_PUSH(C)
263 LIBS="$LIBS $LIBGCRYPT_LIBS"
264 CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
265 AC_RUN_IFELSE(
266   [AC_LANG_PROGRAM([#include <gcrypt.h> 
267         #include <stdio.h>], [[
268         gcry_md_hd_t mac;
269       
270         unsigned char data[] = { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72,
271             0x11, 0xa1, 0xdc, 0x0b, 0x07, 0xdb, 0x1a, 0x5e, 0xd9, 0xb9, 0x81, 0xbe,
272             0xea, 0xe4, 0x31, 0x5f, 0x24, 0xff, 0xfe, 0x50, 0x8a, 0xde };
273         unsigned char key[] = { 0xfc, 0x62, 0x76, 0x35 };
274         unsigned char result[] = {0xa2, 0xb, 0x1, 0xd9, 0xc0, 0x8b, 0x5a, 0x12, 0x80,
275             0xd5, 0x50, 0x12, 0x8e, 0xd0, 0x5b, 0xb6, 0x5c, 0x87, 0x24, 0xe2, 0xd0,
276             0xd2, 0xaf, 0x63, 0xae, 0xd1, 0xd6, 0x64, 0x14, 0xe3, 0x6e, 0x61, 0x5b,
277             0xd, 0xba, 0x17, 0x7d, 0xd3, 0x10, 0xb1, 0x37, 0x41, 0x91, 0x7d, 0xeb,
278             0x1, 0x4d, 0x71, 0xe8, 0x59, 0x71, 0x42, 0x8e, 0xd6, 0xf3, 0x29, 0x3b,
279             0x90, 0xf2, 0xd1, 0xaf, 0x65, 0x1e, 0xb3};
280       
281         if (!gcry_check_version (GCRYPT_VERSION))
282         {
283           fprintf (stderr, "Version mismatch %s <-> %s \n", gcry_check_version (NULL), GCRYPT_VERSION);
284           return 1;
285         }
286   
287         gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
288         gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
289   
290         if (gcry_md_open(&mac, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
291         {
292           fprintf (stderr, "gcry_md_open error\n");
293           return 2;
294         }
295   
296         gcry_md_setkey (mac, key, sizeof (key));
297         gcry_md_write (mac, data, sizeof (data));
298   
299         if (memcmp(gcry_md_read (mac, 0), result, gcry_md_get_algo_dlen (gcry_md_get_algo (mac))) != 0)
300         {
301           fprintf (stderr, "memcmp error\n");
302           return 3;
303         }
304   
305         gcry_md_close (mac);
306   
307         return 0;
308     ]])],
309   [AC_MSG_RESULT([yes])],
310   [
311    RESULT=$?
312    if test $RESULT = 3
313    then
314      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.])
315    fi
316    if test $RESULT = 2
317    then
318      AC_MSG_FAILURE([HMAC test failed])
319    fi
320    if test $RESULT = 1
321    then
322      AC_MSG_FAILURE([libgcrypt header version does not match library version])
323    fi
324   ])
325 AC_LANG_POP(C)
326 fi      # $build = $target
327
328 # libcurl
329 LIBCURL_CHECK_CONFIG(,7.20.1,,AC_MSG_ERROR([GNUnet requires libcurl >= 7.20.1]))
330 # restore LIBS
331 LIBS=$SAVE_LIBS
332
333
334 AC_CHECK_HEADERS([glpk.h],[glpk=true],[gplk=false])
335 AC_CHECK_LIB([glpk],[glp_create_prob],,[gplk=false])
336 # GLPK must support atm MLP presolving, version >= 4.32
337 AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include <glpk.h>]])
338 if test x$gplk = xfalse
339 then
340         AM_CONDITIONAL(HAVE_LIBGLPK, false)
341         AC_MSG_WARN([GNUnet requires GLPK  >= 4.32])
342 else
343         AM_CONDITIONAL(HAVE_LIBGLPK, true)
344         AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK])
345 fi
346
347
348
349 AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false])
350 if test x$nss = xfalse
351 then
352         AM_CONDITIONAL(HAVE_GLIBCNSS, false)
353         AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin])
354 else
355         AM_CONDITIONAL(HAVE_GLIBCNSS, true)
356 fi
357
358
359
360 # test for kvm and kstat (for CPU stats under BSD/Solaris)
361 AC_CHECK_LIB([kvm],[kvm_open])
362 AC_CHECK_LIB([kstat],[kstat_open])
363
364 # test for libextractor
365 extractor=0
366 AC_MSG_CHECKING(for libextractor)
367 AC_ARG_WITH(extractor,
368    [  --with-extractor=PFX    base of libextractor installation],
369    [AC_MSG_RESULT([$with_extractor])
370     case $with_extractor in
371       no)
372         ;;
373       yes)
374         AC_CHECK_HEADERS(extractor.h,
375           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
376             extractor=1))
377         ;;
378       *)
379         LDFLAGS="-L$with_extractor/lib $LDFLAGS"
380         CPPFLAGS="-I$with_extractor/include $CPPFLAGS"
381         AC_CHECK_HEADERS(extractor.h,
382           AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
383             EXT_LIB_PATH="-L$with_extractor/lib $EXT_LIB_PATH"
384             extractor=1))
385         ;;
386     esac
387    ],
388    [AC_MSG_RESULT([--with-extractor not specified])
389     AC_CHECK_HEADERS(extractor.h,
390      AC_CHECK_LIB([extractor], [EXTRACTOR_plugin_add_defaults],
391       extractor=1))])
392 if test "$extractor" != 1
393 then
394  AC_MSG_ERROR([GNUnet requires libextractor])
395 fi
396 # restore LIBS
397 LIBS=$SAVE_LIBS
398
399 # test for libunistring
400 gl_LIBUNISTRING
401 if test $HAVE_LIBUNISTRING != yes; then
402  AC_MSG_ERROR([GNUnet requires libunistring])
403 fi
404 if test $gl_libunistring_hexversion -le 2305; then
405  AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1])
406 fi
407 # restore LIBS
408 LIBS=$SAVE_LIBS
409
410
411
412 # Checks for standard header files.
413 AC_HEADER_DIRENT
414 AC_HEADER_STDC
415
416 # Check for headers that are ALWAYS required
417 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]))
418
419 # Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
420 AC_CHECK_HEADERS([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])
421
422 SAVE_LDFLAGS=$LDFLAGS
423 SAVE_CPPFLAGS=$CPPFLAGS
424
425 # test for sqlite
426 sqlite=false
427 AC_MSG_CHECKING(for SQLite)
428 AC_ARG_WITH(sqlite,
429   [  --with-sqlite=PFX       base of SQLite installation],
430   [AC_MSG_RESULT("$with_sqlite")
431    case $with_sqlite in
432    no)
433      ;;
434    yes)
435     AC_CHECK_HEADERS(sqlite3.h,
436      sqlite=true)
437      ;;
438    *)
439     LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
440     CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
441     AC_CHECK_HEADERS(sqlite3.h,
442      EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
443      SQLITE_LDFLAGS="-L$with_sqlite/lib"
444      SQLITE_CPPFLAGS="-I$with_sqlite/include"
445      sqlite=true)
446     LDFLAGS=$SAVE_LDFLAGS
447     CPPFLAGS=$SAVE_CPPFLAGS
448     ;;
449    esac
450   ],
451   [AC_MSG_RESULT([--with-sqlite not specified])
452     AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
453 AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue)
454 AC_SUBST(SQLITE_CPPFLAGS)
455 AC_SUBST(SQLITE_LDFLAGS)
456
457 # test for postgres
458 postgres=false
459 AC_MSG_CHECKING(for postgres)
460 AC_ARG_WITH(postgres,
461   [  --with-postgres=PFX       base of postgres installation],
462   [AC_MSG_RESULT("$with_postgres")
463    case $with_postgres in
464    no)
465      ;;
466    yes)
467     AC_CHECK_HEADERS(postgresql/libpq-fe.h,
468      postgres=true)
469      ;;
470    *)
471     LDFLAGS="-L$with_postgres/lib $LDFLAGS"
472     CPPFLAGS="-I$with_postgres/include $CPPFLAGS"
473     AC_CHECK_HEADERS(postgresql/libpq-fe.h,
474      EXT_LIB_PATH="-L$with_postgres/lib $EXT_LIB_PATH"
475      POSTGRES_LDFLAGS="-L$with_postgres/lib"
476      POSTGRES_CPPFLAGS="-I$with_postgres/include"
477      postgres=true)
478     LDFLAGS=$SAVE_LDFLAGS
479     CPPFLAGS=$SAVE_CPPFLAGS
480     ;;
481    esac
482   ],
483   [AC_MSG_RESULT([--with-postgres not specified])
484     AC_CHECK_HEADERS(postgresql/libpq-fe.h, postgres=true)])
485 AM_CONDITIONAL(HAVE_POSTGRES, test x$postgres = xtrue)
486 AC_SUBST(POSTGRES_CPPFLAGS)
487 AC_SUBST(POSTGRES_LDFLAGS)
488
489 # test for libz (maybe required for linking mysql)
490 zlib=1
491 AC_CHECK_LIB(z, compress,,zlib=0)
492 AM_CONDITIONAL(HAVE_ZLIB, test x$zlib = x1)
493 if test "$zlib" != 1
494 then
495  AC_MSG_ERROR([GNUnet requires zlib])
496 fi
497
498 # mysql & windows
499 AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
500 AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
501
502 if test "$build_target" = "mingw"
503 then
504   CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"
505 fi
506
507 # test for mysql
508 mysql=false
509 mysqlfail=false
510 SAVE_LDFLAGS=$LDFLAGS
511 SAVE_CPPFLAGS=$CPPFLAGS
512 AC_MSG_CHECKING(for mysql)
513 AC_ARG_WITH(mysql,
514   [  --with-mysql=PFX        base of MySQL installation],
515   [AC_MSG_RESULT("$with_mysql")
516    if test "$with_mysql" != "no"
517    then
518     if test "$with_mysql" != "yes"
519     then
520       LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
521       CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
522     fi
523     AC_CHECK_HEADERS(mysql/mysql.h,
524      AC_CHECK_LIB(mysqlclient, mysql_init,
525       MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
526       MYSQL_CPPFLAGS="-I$with_mysql/include"
527
528       mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
529    fi
530   ],
531   [AC_MSG_RESULT([--with-mysql not specified])
532    LDFLAGS="-L/usr/lib/mysql $LDFLAGS $ZLIBS"
533    AC_CHECK_LIB(mysqlclient, mysql_init,
534     [AC_CHECK_HEADERS(mysql/mysql.h,
535       MYSQL_LDFLAGS="-L/usr/lib/mysql"
536       mysql=true
537
538      , [], [$CYGWIN_MYSQL_MAGIC])])
539   ])
540
541 AC_SUBST(MYSQL_LDFLAGS)
542 AC_SUBST(MYSQL_CPPFLAGS)
543
544 # additional version check for mysql
545 AC_ARG_ENABLE(mysql-version-check, [  --disable-mysql-version-check  do not check MySQL version],, enable_mysql_version_check=yes)
546 if test "$mysql" = "true" -a "x$enable_mysql_version_check" = "xyes"
547 then
548   AC_MSG_CHECKING(mysql version)
549   AC_RUN_IFELSE([AC_LANG_PROGRAM(
550     [[$CYGWIN_MYSQL_MAGIC
551       #include <mysql/mysql.h>]],
552     [[if (MYSQL_VERSION_ID < 40100)
553         return(-1);
554       else
555         return(0);
556     ]])
557     ],mysql=true,mysql=false)
558   if test "$mysql" = "false"
559   then
560     mysqlfail=true
561     AC_MSG_RESULT([fail, >= 4.1 required])
562   else
563     AC_MSG_RESULT(ok)
564   fi
565 fi
566 AM_CONDITIONAL(HAVE_MYSQL, test x$mysql = xtrue)
567 AM_CONDITIONAL(HAVE_MYSQLE, test "0" = "1")
568 # restore LIBS
569 LIBS=$SAVE_LIBS
570 LDFLAGS=$SAVE_LDFLAGS
571 CPPFLAGS=$SAVE_CPPFLAGS
572
573 if test "$sqlite" = 0 -a "$mysql" = 0
574 then
575  AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
576 fi
577
578 # libmicrohttpd
579 lmhd=0
580 AC_MSG_CHECKING([for libmicrohttpd])
581 AC_ARG_WITH(microhttpd,
582    [  --with-microhttpd=PFX   base of libmicrohttpd installation],
583    [AC_MSG_RESULT([$with_microhttpd])
584     case $with_microhttpd in
585       no)
586         ;;
587       yes)
588         AC_CHECK_HEADERS([microhttpd.h],
589           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
590             AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
591               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
592               AC_RUN_IFELSE([
593                 #include "$srcdir/src/include/platform.h"
594                 #include <microhttpd.h>
595                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
596                ], [
597                AC_MSG_RESULT(ok)
598                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
599             [],[#include "$srcdir/src/include/platform.h"
600                 #include <microhttpd.h>]),,
601             [#include "$srcdir/src/include/platform.h"])
602         ;;
603       *)
604         LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
605         CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
606         AC_CHECK_HEADERS(microhttpd.h,
607           AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
608             AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
609               EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
610               [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
611                AC_RUN_IFELSE([
612                 #include "$srcdir/src/include/platform.h"
613                 #include <microhttpd.h>
614                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
615                ], [
616                AC_MSG_RESULT(ok)
617                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
618             [],[#include "$srcdir/src/include/platform.h"
619                 #include <microhttpd.h>]),,
620             [#include "$srcdir/src/include/platform.h"])
621         ;;
622     esac
623    ],
624    [AC_MSG_RESULT([--with-microhttpd not specified])
625     AC_CHECK_HEADERS([microhttpd.h],
626       AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
627         AC_CHECK_LIB([microhttpd], [MHD_start_daemon],
628           [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.18])
629               AC_RUN_IFELSE([
630                 #include "$srcdir/src/include/platform.h"
631                 #include <microhttpd.h>
632                 int main () { return MHD_VERSION >= 0x0091200 ? 0 : 1; }
633                ], [
634                AC_MSG_RESULT(ok)
635                lmhd=1],[AC_MSG_RESULT(failed)],lmhd=1)]),
636         [],[#include "$srcdir/src/include/platform.h"
637             #include <microhttpd.h>]),,
638        [#include "$srcdir/src/include/platform.h"])])
639 AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
640 AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])
641
642
643 # restore LIBS
644 LIBS=$SAVE_LIBS
645
646 # check for python & pexpect (used for some testcases only)
647 AM_PATH_PYTHON([2.6],, [:])
648 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
649
650 if test "$PYTHON" != :
651 then
652   AC_MSG_CHECKING([for pexpect])
653   $PYTHON -c "import pexpect" > /dev/null 2> /dev/null
654   PYEX=$?
655   AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, test $PYEX -eq 0)
656   if test $PYEX -eq 0
657   then
658     AC_MSG_RESULT([yes])
659   else
660     AC_MSG_RESULT([not found])
661   fi
662 else
663   AM_CONDITIONAL(HAVE_PYTHON_PEXPECT, 0)
664 fi
665
666
667 # check for gettext
668 AM_GNU_GETTEXT([external])
669 AM_GNU_GETTEXT_VERSION([0.16.1])
670
671 # check for iconv
672 AM_ICONV
673
674 # Checks for standard typedefs, structures, and compiler characteristics.
675 AC_TYPE_PID_T
676 AC_TYPE_SIZE_T
677 AC_TYPE_MODE_T
678 AC_HEADER_TIME
679 AC_HEADER_STAT
680 AC_HEADER_STDBOOL
681 AC_STRUCT_TM
682
683 AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
684    [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?])
685    ],
686    [],
687    [
688       #include <sys/types.h>
689       #include <sys/socket.h>
690       #include <netinet/in.h>
691    ])
692
693
694
695 # Checks for library functions.
696 AC_FUNC_CLOSEDIR_VOID
697 AC_FUNC_FORK
698 AC_PROG_GCC_TRADITIONAL
699 AC_FUNC_MEMCMP
700 AC_FUNC_SELECT_ARGTYPES
701 AC_FUNC_CHOWN
702
703 AC_TYPE_SIGNAL
704 AC_FUNC_STAT
705 AC_FUNC_STRFTIME
706 AC_FUNC_VPRINTF
707 AC_HEADER_SYS_WAIT
708 AC_TYPE_OFF_T
709 AC_TYPE_UID_T
710 AC_CHECK_FUNCS([floor memmove rmdir strncasecmp strrchr strtol atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk mmap mremap setrlimit sysconf initgroups getifaddrs freeifaddrs localtime_r nl_langinfo putenv realpath strndup gethostbyname2 gethostbyname getpeerucred getpeereid setresuid $funcstocheck])
711
712 # restore LIBS
713 LIBS=$SAVE_LIBS
714
715 gn_user_home_dir="~/.gnunet"
716 AC_ARG_WITH(user-home-dir,
717         AC_HELP_STRING(
718                 [--with-user-home-dir=DIR],
719                 [default user home directory (~/.gnunet)]),
720         [gn_user_home_dir=$withval])
721 AC_SUBST(GN_USER_HOME_DIR, $gn_user_home_dir)
722 gn_daemon_home_dir="/var/lib/gnunet"
723 AC_ARG_WITH(daemon-home-dir,
724         AC_HELP_STRING(
725                 [--with-daemon-home-dir=DIR],
726                 [default daemon home directory (/var/lib/gnunet)]),
727         [gn_daemon_home_dir=$withval])
728 AC_SUBST(GN_DAEMON_HOME_DIR, $gn_daemon_home_dir)
729 gn_daemon_config_dir="/etc"
730 AC_ARG_WITH(daemon-config-dir,
731         AC_HELP_STRING(
732                 [--with-daemon-config-dir=DIR],
733                 [default daemon config directory (/etc)]),
734         [gn_daemon_config_dir=$withval])
735 AC_SUBST(GN_DAEMON_CONFIG_DIR, $gn_daemon_config_dir)
736
737 GN_INTLINCL=""
738 GN_LIBINTL="$LTLIBINTL"
739 AC_ARG_ENABLE(framework, [  --enable-framework      enable Mac OS X framework build helpers],enable_framework_build=$enableval)
740 AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes)
741 if test x$enable_framework_build = xyes
742 then
743   AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework])
744   GN_INTLINCL='-I$(top_srcdir)/src/intlemu'
745   GN_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation'
746   AC_LIB_APPENDTOVAR([CPPFLAGS], [$GN_INTLINCL]) 
747 fi
748
749 GN_LIB_LDFLAGS="-export-dynamic -no-undefined"
750 GN_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
751
752 AC_SUBST(GN_LIB_LDFLAGS)
753 AC_SUBST(GN_PLUGIN_LDFLAGS)
754 AC_SUBST(GN_INTLINCL)
755 AC_SUBST(GN_LIBINTL)
756
757 AC_SUBST(CPPFLAGS)
758 AC_SUBST(LIBS)
759 AC_SUBST(LDFLAGS)
760 AC_SUBST(EXT_LIB_PATH)
761 AC_SUBST(EXT_LIBS)
762
763 AC_SUBST(LIBPREFIX)
764 AC_SUBST(DLLDIR)
765 AC_SUBST(EXT_LIB_PATH)
766
767
768 # test for sudo
769 AC_MSG_CHECKING(for sudo)
770 AC_ARG_WITH(sudo,
771   [  --with-sudo=PATH       path to sudo binary (or just yes)],
772   [AC_MSG_RESULT("$with_sudo")
773    case $with_sudo in
774    no)
775      SUDO_BINARY=
776      ;;
777    yes)
778      SUDO_BINARY=sudo
779      ;;
780    *)
781      SUDO_BINARY=$with_sudo
782     ;;
783    esac
784   ],
785   [AC_MSG_RESULT([no])])
786 AC_SUBST(SUDO_BINARY)
787 AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /])
788
789 # test for gnunetdns group name
790 GNUNETDNS_GROUP=gnunetdns
791 AC_MSG_CHECKING(for gnunetdns group name)
792 AC_ARG_WITH(gnunetdns,
793   [  --with-gnunetdns=GRPNAME       name for gnunetdns group],
794   [AC_MSG_RESULT("$with_gnunetdns")
795    case $with_gnunetdns in
796    no)
797      GNUNETDNS_GROUP=gnunet
798      ;;
799    yes)
800      GNUNETDNS_GROUP=gnunetdns
801      ;;
802    *)
803      GNUNETDNS_GROUP=$with_gnunetdns
804     ;;
805    esac
806   ],
807   [AC_MSG_RESULT([gnunetdns])])
808 AC_SUBST(GNUNETDNS_GROUP)
809
810
811 # should 'make check' run tests?
812 AC_MSG_CHECKING(whether to run tests)
813 AC_ARG_ENABLE([testruns],
814    [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])],
815    [enable_tests_run=${enableval}],
816    [enable_tests_run=yes])
817 AC_MSG_RESULT($enable_test_run)
818 AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
819
820
821 # should monkey be used when running (certain) services?
822 AC_MSG_CHECKING(whether to run with monkey)
823 AC_ARG_ENABLE([monkey],
824    [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
825    [enable_monkey=${enableval}],
826    [enable_monkey=no])
827 AC_MSG_RESULT($enable_monkey)
828 AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
829 if test "x$enable_monkey" = "xyes"
830 then
831   MONKEYPREFIX="monkey"
832 else
833   MONKEYPREFIX=""
834 fi
835 AC_SUBST(MONKEYPREFIX)
836
837
838 # should expensive tests be run?
839 AC_MSG_CHECKING(whether to run expensive tests)
840 AC_ARG_ENABLE([expensivetests],
841    [AS_HELP_STRING([--enable-expensivetests], [enable running expensive testcases])],
842    [enable_expensive=${enableval}],
843    [enable_expensive=no])
844 AC_MSG_RESULT($enable_expensive)
845 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [test "x$enable_expensive" = "xyes"])
846
847 # should ports be open for Java services?
848 AC_MSG_CHECKING(whether to enable ports for gnunet-java)
849 AC_ARG_ENABLE([javaports],
850    [AS_HELP_STRING([--enable-javaports], [use non-zero ports for services with Java bindings (default is NO)])],
851    [enable_java_ports=${enableval}],
852    [enable_java_ports=no])
853 AC_MSG_RESULT($enable_java_ports)
854 if test "x$enable_java_ports" = "xyes"
855 then
856   JAVAPORT=""
857 else
858   JAVAPORT="$UNIXONLY"
859 fi
860 AC_SUBST(JAVAPORT)
861
862 # should benchmarks be run?
863 AC_MSG_CHECKING(whether to run benchmarks during make check)
864 AC_ARG_ENABLE([benchmarks],
865    [AS_HELP_STRING([--enable-benchmarks], [enable running benchmarks during make check])],
866    [enable_benchmarks=${enableval}],
867    [enable_benchmarks=no])
868 AC_MSG_RESULT($enable_benchmarks)
869 AM_CONDITIONAL([HAVE_BENCHMARKS], [test "x$enable_benchmarks" = "xyes"])
870
871 # should experimental code be compiled (code that may not yet compile)?
872 AC_MSG_CHECKING(whether to compile experimental code)
873 AC_ARG_ENABLE([experimental],
874    [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
875    [enable_experimental=${enableval}],
876    [enable_experimental=no])
877 AC_MSG_RESULT($enable_experimental)
878 AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
879
880 # should code be enabled that works around missing OS functionality on Windows?
881 # used for test cases
882 if test $build_target = "mingw"
883 then
884         workarounds=1
885
886 AC_LINK_IFELSE(
887  [AC_LANG_PROGRAM(
888   [#include <ws2tcpip.h>
889   ],[
890   int s = socket (0, 0, 0);])
891  ],[
892   AC_DEFINE_UNQUOTED([HAVE_SOCKET],1,[Define this if socket() is available])
893  ],[
894   AC_DEFINE_UNQUOTED([HAVE_SOCKET],0,[Define this if socket() is available])
895  ])
896
897 AC_LINK_IFELSE(
898  [AC_LANG_PROGRAM(
899   [#include <ws2tcpip.h>
900   ],[
901   int s = select (0, NULL, NULL, NULL, NULL);])
902  ],[
903   AC_DEFINE_UNQUOTED([HAVE_SELECT],1,[Define this if select() is available])
904  ],[
905   AC_DEFINE_UNQUOTED([HAVE_SELECT],0,[Define this if select() is available])
906  ])
907
908 AC_LINK_IFELSE(
909  [AC_LANG_PROGRAM(
910   [#include <ws2tcpip.h>
911   ],[
912   struct in_addr i;
913   char *s = inet_ntoa (i);])
914  ],[
915   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],1,[Define this if inet_ntoa() is available])
916  ],[
917   AC_DEFINE_UNQUOTED([HAVE_INET_NTOA],0,[Define this if inet_ntoa() is available])
918  ])
919
920 AC_LINK_IFELSE(
921  [AC_LANG_PROGRAM(
922   [#include <ws2tcpip.h>
923   ],[
924   int s = getnameinfo (NULL, 0, NULL, 0, NULL, 0, 0);])
925  ],[
926   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],1,[Define this if getnameinfo() is available])
927  ],[
928   AC_DEFINE_UNQUOTED([HAVE_GETNAMEINFO],0,[Define this if getnameinfo() is available])
929  ])
930
931 AC_LINK_IFELSE(
932  [AC_LANG_PROGRAM(
933   [#include <ws2tcpip.h>
934   ],[
935   int s = gethostname (NULL, 0);])
936  ],[
937   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],1,[Define this if gethostname() is available])
938  ],[
939   AC_DEFINE_UNQUOTED([HAVE_GETHOSTNAME],0,[Define this if gethostname() is available])
940  ])
941
942 AC_LINK_IFELSE(
943  [AC_LANG_PROGRAM(
944   [#include <ws2tcpip.h>
945   ],[
946   void *s = gethostbyname (NULL);])
947  ],[
948   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],1,[Define this if gethostbyname() is available])
949  ],[
950   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYNAME],0,[Define this if gethostbyname() is available])
951  ])
952
953 AC_LINK_IFELSE(
954  [AC_LANG_PROGRAM(
955   [#include <ws2tcpip.h>
956   ],[
957   void *s = gethostbyaddr (NULL, 0, 0);])
958  ],[
959   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],1,[Define this if gethostbyaddr() is available])
960  ],[
961   AC_DEFINE_UNQUOTED([HAVE_GETHOSTBYADDR],0,[Define this if gethostbyaddr() is available])
962  ])
963
964 AC_LINK_IFELSE(
965  [AC_LANG_PROGRAM(
966   [#include <ws2tcpip.h>
967   ],[
968   int s = getaddrinfo (NULL, NULL, NULL, NULL);])
969  ],[
970   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
971  ],[
972   AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
973  ])
974
975 else
976   AC_MSG_CHECKING(whether to enable windows workarounds)
977   AC_ARG_ENABLE([windows_workarounds], 
978      [AS_HELP_STRING([--enable-windows_workarounds], [enable workarounds used on Windows (only useful for test cases)])],
979      [enable_workarounds=${enableval}],
980      [enable_workarounds=no])
981   AC_MSG_RESULT($enable_workarounds)
982   if test x$enable_windows_workarounds = "xyes"
983   then
984      workarounds=1
985   else
986      workarounds=0
987    fi
988 fi
989 AC_DEFINE_UNQUOTED([ENABLE_WINDOWS_WORKAROUNDS], $workarounds, [enable workarounds used on Windows (only useful for test cases)])
990
991 # gcov compilation
992 AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
993 AC_ARG_ENABLE([coverage], 
994               AS_HELP_STRING([--enable-coverage],
995                              [compile the library with code coverage support]),
996               [use_gcov=${enableval}], 
997               [use_gcov=no])
998 AC_MSG_RESULT($use_gcov)
999 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
1000
1001
1002 AC_CONFIG_FILES([ 
1003 Makefile
1004 contrib/Makefile
1005 doc/Makefile
1006 doc/man/Makefile
1007 m4/Makefile
1008 po/Makefile.in 
1009 src/Makefile
1010 src/arm/Makefile
1011 src/arm/arm.conf
1012 src/ats/Makefile
1013 src/ats/ats.conf
1014 src/block/Makefile
1015 src/chat/Makefile
1016 src/chat/chat.conf
1017 src/core/Makefile
1018 src/core/core.conf
1019 src/datacache/Makefile
1020 src/datastore/Makefile
1021 src/datastore/datastore.conf
1022 src/dht/Makefile
1023 src/dht/dht.conf
1024 src/dns/Makefile
1025 src/dns/dns.conf
1026 src/dv/Makefile
1027 src/dv/dv.conf
1028 src/exit/Makefile
1029 src/fragmentation/Makefile
1030 src/fs/Makefile
1031 src/fs/fs.conf
1032 src/gns/Makefile
1033 src/gns/gns.conf
1034 src/gns/nss/Makefile
1035 src/hello/Makefile
1036 src/include/Makefile
1037 src/include/gnunet_directories.h
1038 src/hostlist/Makefile
1039 src/lockmanager/Makefile
1040 src/lockmanager/lockmanager.conf
1041 src/mesh/Makefile
1042 src/mesh/mesh.conf
1043 src/mysql/Makefile
1044 src/namestore/Makefile
1045 src/namestore/namestore.conf
1046 src/nat/Makefile
1047 src/nse/Makefile
1048 src/nse/nse.conf
1049 src/peerinfo/Makefile
1050 src/peerinfo/peerinfo.conf
1051 src/peerinfo-tool/Makefile
1052 src/postgres/Makefile
1053 src/pt/Makefile
1054 src/regex/Makefile
1055 src/statistics/Makefile
1056 src/statistics/statistics.conf
1057 src/stream/Makefile
1058 src/template/Makefile
1059 src/testbed/Makefile
1060 src/testing/Makefile
1061 src/topology/Makefile
1062 src/transport/Makefile
1063 src/transport/transport.conf
1064 src/tun/Makefile
1065 src/util/Makefile
1066 src/util/resolver.conf
1067 src/vpn/Makefile
1068 src/vpn/vpn.conf
1069 src/integration-tests/Makefile
1070 pkgconfig/Makefile
1071 pkgconfig/gnunetarm.pc
1072 pkgconfig/gnunetblock.pc
1073 pkgconfig/gnunetcore.pc
1074 pkgconfig/gnunetdatacache.pc
1075 pkgconfig/gnunetdatastore.pc
1076 pkgconfig/gnunetdht.pc
1077 pkgconfig/gnunetdhtlog.pc
1078 pkgconfig/gnunetdv.pc
1079 pkgconfig/gnunetfragmentation.pc
1080 pkgconfig/gnunetfs.pc
1081 pkgconfig/gnunethello.pc
1082 pkgconfig/gnunetnat.pc
1083 pkgconfig/gnunetnse.pc
1084 pkgconfig/gnunetpeerinfo.pc
1085 pkgconfig/gnunetregex.pc
1086 pkgconfig/gnunetstatistics.pc
1087 pkgconfig/gnunettesting.pc
1088 pkgconfig/gnunettransport.pc
1089 pkgconfig/gnunetutil.pc
1090 ])
1091 AC_OUTPUT
1092
1093 # Finally: summary!
1094
1095 # warn user if mysql found but not used due to version
1096 if test "$mysqlfail" = "true"
1097 then
1098   AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.])
1099 fi
1100
1101 # sqlite
1102 if test "x$sqlite" = "x0"
1103 then
1104   AC_MSG_NOTICE([NOTICE: sqlite not found.  sqLite support will not be compiled.])
1105 fi
1106
1107 # java ports
1108 if test "x$enable_java_ports" = "xyes"
1109 then
1110   AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.])
1111 fi
1112
1113 if test "x$lmhd" != "x1"
1114 then
1115  AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.])
1116 fi
1117
1118 AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres])
1119
1120 if test "$enable_framework_build" = "yes"
1121 then
1122   AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.])
1123 fi
1124
1125 if test "x$SUDO_BINARY" = "x" -a ! -w /
1126 then
1127   AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library])
1128 fi
1129
1130 AC_MSG_NOTICE([********************************************
1131 You can compile GNUnet with
1132         make
1133 now. After that, run (if necessary as 'root')
1134         make install
1135 to install everything. You may want to create a new user account
1136 to run the GNUnet service:
1137         adduser gnunet
1138 You also need to create an configuration file that should
1139 specify the path where GNUnet should store data.  For example,
1140 you could store in "/etc/gnunet.conf" the following lines:
1141
1142 [[PATHS]]
1143 SERVICEHOME = /var/lib/gnunet
1144 DEFAULTCONFIG = /etc/gnunet.conf
1145
1146 Now, in order to start your peer, run as the 'gnunet' user
1147         gnunet-arm -s
1148
1149 Each GNUnet user should also create an (at least initially) empty
1150 configuration file:
1151         mkdir $HOME/.gnunet/
1152         touch $HOME/.gnunet/gnunet.conf
1153         
1154 Optionally, download and compile:
1155 - gnunet-gtk to get a GUI for file-sharing and configuration.
1156 ********************************************])