X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=configure.ac;h=101fc77cb32b46eebf68e78cbc801b8a809072da;hb=e0eb3c8ba84a1dfb49f66e84a65b09b1d4ade42a;hp=ea9bfaa992aae9bfa17252aa239c6f7d1f582182;hpb=caed9f3ee509b41d7c31f5bc7dcacfd56a857a2e;p=oweals%2Fgnunet.git diff --git a/configure.ac b/configure.ac index ea9bfaa99..101fc77cb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # This file is part of GNUnet. -# (C) 2001--2016 GNUnet e.V. +# (C) 2001--2017 GNUnet e.V. # # GNUnet is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published @@ -34,7 +34,7 @@ AC_CONFIG_HEADERS([gnunet_config.h]) AH_TOP([#define _GNU_SOURCE 1]) AC_CONFIG_MACRO_DIR([m4]) AC_PROG_AWK -AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_CPP AC_PROG_CXX AC_PROG_OBJC @@ -71,7 +71,7 @@ case "$host_os" in AC_DEFINE_UNQUOTED(DARWIN,1,[This is an Apple Darwin system]) CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS" CFLAGS="-fno-common $CFLAGS" - AC_MSG_WARN([The VPN application cannot be compiled on your OS]) + AC_MSG_WARN([WARNING: The VPN application cannot be compiled on your OS]) build_target="darwin" DEFAULT_INTERFACE="\"en0\"" LIBPREFIX= @@ -269,6 +269,13 @@ AC_ARG_ENABLE(linker-hardening, fi]) +AC_ARG_ENABLE(sanitizer, + AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer), +[if test x$enableval = xyes; then + LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer" +fi]) + + extra_logging=GNUNET_NO AC_ARG_ENABLE([logging], AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose,veryverbose ('yes' is the default)]), @@ -455,15 +462,19 @@ then conversation_backend=none AM_CONDITIONAL(BUILD_PULSE_HELPERS, false) AM_CONDITIONAL(BUILD_GST_HELPERS, false) + AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false) else conversation_backend=gst AM_CONDITIONAL(BUILD_PULSE_HELPERS, false) AM_CONDITIONAL(BUILD_GST_HELPERS, true) + AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false) fi else + conversation_backend=pulse AM_CONDITIONAL(BUILD_PULSE_HELPERS, true) AM_CONDITIONAL(BUILD_GST_HELPERS, false) + AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false) fi # libgnurl @@ -511,7 +522,7 @@ then AM_CONDITIONAL(HAVE_LIBCURL, false) if test "$gnurl" = 0 then - AC_MSG_WARN([GNUnet requires libcurl-gnutls or gnurl >= 7.34]) + AC_MSG_WARN([ERROR: GNUnet requires libcurl-gnutls or gnurl >= 7.34]) fi else AM_CONDITIONAL(HAVE_LIBCURL, true) @@ -531,19 +542,18 @@ AC_CHECK_MEMBERS(glp_iocp.presolve,,[gplk=false],[[#include ]]) if test x$gplk = xfalse then AM_CONDITIONAL(HAVE_LIBGLPK, false) - AC_MSG_WARN([GNUnet requires GLPK >= 4.32]) + AC_MSG_WARN([ERROR: GNUnet requires GLPK >= 4.32]) else AM_CONDITIONAL(HAVE_LIBGLPK, true) AC_DEFINE([HAVE_LIBGLPK],[1],[Have GLPK]) fi - AC_CHECK_HEADERS([nss.h],[nss=true],[nss=false]) if test x$nss = xfalse then AM_CONDITIONAL(HAVE_GLIBCNSS, false) - AC_MSG_WARN([No GNU libc nss header, will not build NSS plugin]) + AC_MSG_WARN([ERROR: No GNU libc nss header, will not build NSS plugin]) else AM_CONDITIONAL(HAVE_GLIBCNSS, true) fi @@ -563,7 +573,14 @@ AC_ARG_ENABLE([taler-wallet], [taler_only=${enableval}], [taler_only=no]) AC_MSG_RESULT($taler_only) -AM_CONDITIONAL([TALER_ONLY], [test "x$taler_only" = "xyes"]) +if test "x$taler_only" = "xyes" +then + AM_CONDITIONAL([TALER_ONLY],true) + AC_DEFINE([TALER_WALLET_ONLY],[1],[Compiling for Taler wallet]) +else + AM_CONDITIONAL([TALER_ONLY],false) + AC_DEFINE([TALER_WALLET_ONLY],[0],[Canonical compilation]) +fi # test for libextractor extractor=0 @@ -720,9 +737,14 @@ gl_LIBUNISTRING if test $HAVE_LIBUNISTRING != yes; then AC_MSG_ERROR([GNUnet requires libunistring]) fi -if test $gl_libunistring_hexversion -le 2305; then +# under emscripten, $gl_libunistring_hexversion is undefined +if test "$taler_only" != yes; then +if test "x$gl_libunistring_hexversion" = "x" || test "$gl_libunistring_hexversion" -le 2305; then AC_MSG_ERROR([GNUnet requires libunistring >= 0.9.1.1]) fi +fi +AC_CHECK_HEADERS([unistr.h],,AC_MSG_ERROR([Compiling GNUnet requires unistr.h (from libunistring) to be installed])) + # restore LIBS LIBS=$SAVE_LIBS @@ -788,15 +810,20 @@ AM_CONDITIONAL(HAVE_SQLITE, test x$sqlite = xtrue) AC_SUBST(SQLITE_CPPFLAGS) AC_SUBST(SQLITE_LDFLAGS) +LDFLAGS=$SAVE_LDFLAGS +CPPFLAGS=$SAVE_CPPFLAGS + # test for postgres postgres=false -AX_LIB_POSTGRESQL([]) -if test "$found_postgresql" = "yes"; then - CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS" - AC_CHECK_HEADERS([libpq-fe.h], - postgres=true) +# even running the check for postgres breaks emscripten ... +if test "$taler_only" != yes; then + AX_LIB_POSTGRESQL([9.5]) + if test "$found_postgresql" = "yes"; then + CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS" + AC_CHECK_HEADERS([libpq-fe.h], + postgres=true) + fi fi - AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue) @@ -820,11 +847,17 @@ SAVE_CPPFLAGS=$CPPFLAGS AC_MSG_CHECKING(for mysql) AC_ARG_WITH(mysql, [ --with-mysql=PFX base of MySQL installation], - [AC_MSG_RESULT("$with_mysql") - if test "$with_mysql" != "no" - then - if test "$with_mysql" != "yes" - then + [AC_MSG_RESULT([$with_mysql]) + case $with_mysql in + no) + ;; + yes|"") + AC_CHECK_HEADERS(mysql/mysql.h, + AC_CHECK_LIB(mysqlclient, mysql_init, + + mysql=true), [], [$CYGWIN_MYSQL_MAGIC]) + ;; + *) LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS" CPPFLAGS="-I$with_mysql/include $CPPFLAGS" AC_CHECK_HEADERS(mysql/mysql.h, @@ -833,8 +866,8 @@ AC_ARG_WITH(mysql, MYSQL_CPPFLAGS="-I$with_mysql/include" mysql=true), [], [$CYGWIN_MYSQL_MAGIC]) - fi - fi + ;; + esac ], [AC_MSG_RESULT([--with-mysql not specified]) if test -d "/usr/lib64/mysql"; then @@ -900,7 +933,7 @@ AC_ARG_WITH(microhttpd, case $with_microhttpd in no) ;; - yes) + yes|"") AC_CHECK_HEADERS([microhttpd.h], AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT, AC_CHECK_LIB([microhttpd], [MHD_get_fdset2], @@ -966,8 +999,6 @@ AC_ARG_WITH(microhttpd, AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1) AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd]) -AM_CONDITIONAL(HAVE_REST, [test x$lmhd = x1 -a x$jansson = x1]) - AM_CONDITIONAL(HAVE_JSON, [test x$jansson = x1]) # restore LIBS @@ -1000,6 +1031,16 @@ AC_CHECK_MEMBER([struct sockaddr_in.sin_len], #include ]) +AC_CHECK_MEMBER([struct sockaddr_un.sun_len], + [ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN, 1, [Do we have sockaddr_un.sun_len?]) + ], + [], + [ + #include + #include + #include + ]) + # Checks for library functions. @@ -1075,41 +1116,6 @@ AC_SUBST(SUDO_BINARY) AM_CONDITIONAL([HAVE_SUDO], [test "x$SUDO_BINARY" != "x" -o -w /]) -# test for nssdir -AC_MSG_CHECKING(with nssdir) -AC_ARG_WITH(nssdir, - [ --with-nssdir=PATH where to install NSS plugins], - [AC_MSG_RESULT("$with_nssdir") - case $with_nssdir in - no) - NSS_DIR= - install_nss=0 - ;; - yes) - NSS_DIR="/lib" - install_nss=1 - ;; - *) - NSS_DIR=$with_nssdir - install_nss=1 - ;; - esac - ], - [ - if test "x$SUDO_BINARY" != "x" -o -w / - then - NSS_DIR="/lib" - install_nss=1 - AC_MSG_RESULT([yes, to /lib]) - else - NSS_DIR= - install_nss=0 - AC_MSG_RESULT([no]) - fi - ]) -AC_SUBST(NSS_DIR) -AM_CONDITIONAL([INSTALL_NSS], [test "x$install_nss" != "x0"]) - # test for gnunetdns group name GNUNETDNS_GROUP=gnunetdns AC_MSG_CHECKING(for gnunetdns group name) @@ -1294,15 +1300,6 @@ AC_ARG_ENABLE([experimental], AC_MSG_RESULT($enable_experimental) AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"]) -# FTBFS right now... -AC_MSG_CHECKING(whether to compile ATS test code) -AC_ARG_ENABLE([wachs], - [AS_HELP_STRING([--enable-wachs], [enable compiling ATS test code])], - [enable_wachs=${enableval}], - [enable_wachs=no]) -AC_MSG_RESULT($enable_wachs) -AM_CONDITIONAL([HAVE_WACHS], [test "x$enable_wachs" = "xyes"]) - # should malicious code be compiled (should only be used for testing)? AC_MSG_CHECKING(whether to compile malicious code) AC_ARG_ENABLE([malicious], @@ -1521,6 +1518,7 @@ src/ats/Makefile src/ats/ats.conf src/ats-tool/Makefile src/ats-tests/Makefile +src/auction/Makefile src/block/Makefile src/cadet/Makefile src/cadet/cadet.conf @@ -1530,6 +1528,7 @@ src/consensus/Makefile src/consensus/consensus.conf src/conversation/Makefile src/conversation/conversation.conf +src/curl/Makefile src/datacache/Makefile src/datastore/Makefile src/datastore/datastore.conf @@ -1553,15 +1552,20 @@ src/identity/identity.conf src/include/Makefile src/integration-tests/Makefile src/json/Makefile +src/jsonapi/Makefile src/hostlist/Makefile src/multicast/Makefile src/multicast/multicast.conf +src/my/Makefile src/mysql/Makefile src/namecache/Makefile src/namecache/namecache.conf src/namestore/Makefile src/namestore/namestore.conf src/nat/Makefile +src/nat/nat.conf +src/nat-auto/Makefile +src/nat-auto/nat-auto.conf src/nse/Makefile src/nse/nse.conf src/peerinfo/Makefile @@ -1570,7 +1574,6 @@ src/peerinfo-tool/Makefile src/peerstore/Makefile src/peerstore/peerstore.conf src/pq/Makefile -src/postgres/Makefile src/psycutil/Makefile src/psyc/Makefile src/psyc/psyc.conf @@ -1585,21 +1588,20 @@ src/rps/Makefile src/rps/rps.conf src/secretsharing/Makefile src/secretsharing/secretsharing.conf -src/sensor/Makefile -src/sensor/sensor.conf -src/sensordashboard/Makefile -src/sensordashboard/sensordashboard.conf src/scalarproduct/Makefile src/scalarproduct/scalarproduct.conf src/set/Makefile src/set/set.conf src/social/Makefile src/social/social.conf +src/sq/Makefile src/statistics/Makefile src/statistics/statistics.conf src/template/Makefile src/testbed/Makefile src/testbed/testbed.conf +src/testbed-logger/Makefile +src/testbed-logger/testbed-logger.conf src/testing/Makefile src/topology/Makefile src/transport/Makefile @@ -1609,6 +1611,8 @@ src/util/Makefile src/util/resolver.conf src/vpn/Makefile src/vpn/vpn.conf +src/zonemaster/Makefile +src/zonemaster/zonemaster.conf src/rest/Makefile src/identity-provider/Makefile pkgconfig/Makefile @@ -1640,7 +1644,6 @@ pkgconfig/gnunetnat.pc pkgconfig/gnunetnse.pc pkgconfig/gnunetpeerinfo.pc pkgconfig/gnunetpq.pc -pkgconfig/gnunetpostgres.pc pkgconfig/gnunetpsyc.pc pkgconfig/gnunetpsycstore.pc pkgconfig/gnunetregex.pc @@ -1665,7 +1668,7 @@ AC_OUTPUT # warn user if mysql found but not used due to version if test "$mysqlfail" = "true" then - AC_MSG_NOTICE([NOTICE: MySQL found, but too old. MySQL support will not be compiled.]) + AC_MSG_NOTICE([WARNING: MySQL found, but too old. MySQL support will not be compiled.]) fi # sqlite @@ -1679,7 +1682,7 @@ if test "$gnurl" = "0" then if test "x$curl" = "xfalse" then - AC_MSG_NOTICE([NOTICE: libgnurl not found. http client support will not be compiled.]) + AC_MSG_NOTICE([WARNING: libgnurl not found. http client support will not be compiled.]) AC_MSG_WARN([ERROR: libgnurl not found. hostlist daemon will not be compiled, and you probably WANT the hostlist daemon]) else AC_MSG_NOTICE([WARNING: libgnurl not found, trying to use libcurl-gnutls instead.]) @@ -1690,30 +1693,36 @@ fi # bluetooth if test "x$bluetooth" = "x0" then - AC_MSG_NOTICE([NOTICE: bluetooth library not found. bluetooth support will not be compiled.]) + AC_MSG_NOTICE([WARNING: bluetooth library not found. bluetooth support will not be compiled.]) +fi + +# jansson +if test "x$jansson" = "x0" +then + AC_MSG_NOTICE([WARNING: jansson library not found. json support will not be compiled.]) fi #gnutls if test x$gnutls != xtrue then - AC_MSG_NOTICE([NOTICE: GnuTLS not found, gnunet-gns-proxy will not be built]) + AC_MSG_NOTICE([WARNING: GnuTLS not found, gnunet-gns-proxy will not be built]) else if test "x$gnutls_dane" != "x1" then - AC_MSG_NOTICE([NOTICE: GnuTLS has no DANE support, DANE validation will not be possible]) + AC_MSG_NOTICE([WARNING: GnuTLS has no DANE support, DANE validation will not be possible]) fi fi # java ports if test "x$enable_java_ports" = "xyes" then - AC_MSG_NOTICE([NOTICE: opening ports for gnunet-java bindings by default.]) + AC_MSG_NOTICE([NOTICE: Opening ports for gnunet-java bindings by default.]) fi # MHD if test "x$lmhd" != "x1" then - AC_MSG_NOTICE([NOTICE: libmicrohttpd not found, http transport will not be installed.]) + AC_MSG_NOTICE([WARNING: libmicrohttpd not found, http transport will not be installed.]) fi # conversation @@ -1721,36 +1730,30 @@ if test "x$conversation_backend" = "xnone" then if test "x$pulse" != "x1" then - AC_MSG_NOTICE([NOTICE: libpulse(audio) not found, conversation will not be built.]) + AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.]) fi if test "x$opus" != "x1" then - AC_MSG_NOTICE([NOTICE: libopus not found, conversation will not be built.]) + AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.]) fi if test "x$gst" != "x1" then - AC_MSG_NOTICE([NOTICE: GStreamer not found, conversation will not be built.]) + AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.]) fi fi if test "$extractor" != 1 then - AC_MSG_WARN([NOTICE: libextractor not found, but various file-sharing functions require it]) + AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it]) fi AC_MSG_NOTICE([NOTICE: Database support is set to MySQL: $mysql, SQLite: $sqlite, Postgres: $postgres]) if test "$enable_framework_build" = "yes" then - AC_MSG_NOTICE([NOTICE: Mac OS X framework build enabled.]) + AC_MSG_NOTICE([Mac OS X framework build enabled.]) fi -if test "x$SUDO_BINARY" = "x" -a ! -w / -then - AC_MSG_NOTICE([NOTICE: --with-sudo not specified and not running as 'root', will not install GNS NSS library]) -fi - - AC_MSG_NOTICE([******************************************** Please make sure NOW that you have created a user and group 'gnunet' and additionally a group 'gnunetdns'. On Debian and Ubuntu GNU/Linux, type: