AS_IF([gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1],
[CFLAGS="-fno-strict-aliasing $CFLAGS"])
+# A helper which allows us to check cflags if compiler
+AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
+ AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
+ [ac_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1 -Werror"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])],
+ [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
+ [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
+ CFLAGS="$ac_save_CFLAGS"
+ ])
+
+ AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
+ [$2], [$3])
+])
+
+
+# CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found])
+# Check for CFLAG and appends them to CFLAGS if supported
+AC_DEFUN([CC_CHECK_CFLAG_APPEND], [
+ AC_CACHE_CHECK([if $CC supports -Wno-$1 flag],
+ AS_TR_SH([cc_cv_cflags_-W$1]),
+ CC_CHECK_CFLAGS_SILENT([-W$1]) #gcc is stupid. It does not fail with the -W-no option for backwards compat but then shows the error "in case something goes wrong".
+ )
+
+ AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_-W$1])[ = xyes],
+ [CFLAGS="$CFLAGS -Wno-$1"; $2], [$3])
+])
+
+
+# We make heavy use of this, llvm/gcc and gcc-9 give warnings so disable.
+CC_CHECK_CFLAG_APPEND([address-of-packed-member])
+
# Use Linux interface name unless the OS has a different preference
DEFAULT_INTERFACE="\"eth0\""
DLLDIR=lib
UNIXONLY="#"
],
- [*cygwin*],[
- AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
- AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
- AC_CHECK_LIB(intl, gettext)
- CFLAGS="-mms-bitfields $CFLAGS"
- build_target="cygwin"
- LIBPREFIX=lib
- DLLDIR=bin
- AC_PROG_CXX
- UNIXONLY=""
- ],
- [*mingw*],[
- AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
- AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
- AC_DEFINE_UNQUOTED(_WIN32,1,[This is a Windows system])
- AC_CHECK_LIB(intl, gettext)
- LDFLAGS="$LDFLAGS -Wl,--export-all-symbols"
- LIBS="$LIBS -lws2_32 -lplibc -lgnurx -lole32"
- CFLAGS="-mms-bitfields $CFLAGS"
- CPPFLAGS="-D_WIN32_WINNT=0x0501 -DHAVE_STAT64=1 -D__USE_MINGW_ANSI_STDIO=1 $CPPFLAGS"
- build_target="mingw"
- AC_PROG_CXX
- LIBPREFIX=lib
- DLLDIR=bin
- UNIXONLY=""
- funcstocheck=""
- native_srcdir=$(cd $srcdir; pwd -W)
- ],
[gnu*],[
AC_DEFINE_UNQUOTED(GNU,1,[This is a GNU system])
build_target="gnu"
AC_MSG_CHECKING([for build target])
AM_CONDITIONAL(DARWIN, test "$build_target" = "darwin")
-AM_CONDITIONAL(CYGWIN, test "$build_target" = "cygwin")
-AM_CONDITIONAL(MINGW, test "$build_target" = "mingw")
AM_CONDITIONAL(SOLARIS, test "$build_target" = "solaris")
AM_CONDITIONAL(XFREEBSD, test "$build_target" = "freebsd")
AM_CONDITIONAL(OPENBSD, test "$build_target" = "openbsd")
[VAR_IP6TABLES_BINARY="/sbin/ip6tables"],
[AS_IF([test -x "/usr/sbin/ip6tables"],
[VAR_IP6TABLES_BINARY="/usr/sbin/ip6tables"])])])
-
+
AS_IF([test x"$VAR_IP6TABLES_BINARY" != x"false"],
[AC_DEFINE_UNQUOTED([IP6TABLES], "$VAR_IP6TABLES_BINARY", [Path to ip6tables])],
AM_CONDITIONAL(HAVE_GETADDRINFO_A,
[test "$have_addrinfo_a" = 1])
-# tests only run on Windows
-AS_IF([test "x$build_target" = "xmingw"],
- [AC_CHECK_LIB(plibc,
- plibc_init,
- [],
- [AC_MSG_ERROR([GNUnet requires PlibC on Windows])])
- AC_CHECK_LIB(gnurx,
- regexec,
- [],
- [AC_MSG_ERROR([GNUnet requires libgnurx on Windows])])])
-
# libgcrypt
gcrypt=0
NEED_LIBGCRYPT_API=1
# check for libpulse(audio) library
pulse=0
-CHECK_LIBHEADER(LIBPULSE, pulse, pa_stream_peek, pulse/simple.h,jansson=1,)
+libpulse_msg="no"
+CHECK_LIBHEADER(LIBPULSE, pulse, pa_stream_peek, pulse/simple.h,pulse=1,)
AS_IF([test "$build_target" = "mingw"],
[pulse=0])
AS_IF([test "$pulse" = 1],
- [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])])
+ [AC_DEFINE([HAVE_PULSE],[1],[Have libpulse(audio) library])
+ libpulse_msg="yes"])
# check for libopus(audio) library
opus=0
+libopus_msg="no"
CHECK_LIBHEADER(LIBOPUS,
opus,
opus_decode_float,
opus/opus.h,
AC_CHECK_DECL([OPUS_SET_GAIN],[opus=1],[],[[#include <opus/opus.h>]]))
AS_IF([test "x$opus" = x1],
- [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])])
+ [AC_DEFINE([HAVE_OPUS],[1],[Have libopus library])
+ libopus_msg="yes"])
# libogg
AC_CHECK_LIB(ogg, ogg_stream_flush_fill,
AC_DEFINE([HAVE_PBC],[0],[Lacking glib library])])
gst=0
+gstreamer_msg="no"
PKG_CHECK_MODULES(
[GST],
[glib-2.0 gobject-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-audio-1.0],
- [gst=1],
+ [gst=1
+ gstreamer_msg="yes"],
[gst=0])
# Pulse Audio
AM_CONDITIONAL(BUILD_EXPERIMENTAL_HELPERS, false)
])
+AS_IF([test "x$conversation_backend" = "xnone"],
+ AM_CONDITIONAL(BUILD_CONVERSATION, false),
+ AM_CONDITIONAL(BUILD_CONVERSATION, true))
+
# libgnurl
LIBGNURL_CHECK_CONFIG(,7.34.0,gnurl=1,gnurl=0)
AC_CHECK_TYPES([sigset_t, off_t], [], [], [#include <sys/types.h>])
AC_CHECK_TYPES([size_t], [], [], [#include <stdio.h>])
-AS_IF([test "$build_target" = "mingw"]
- [CYGWIN_MYSQL_MAGIC="#include <mysql/my_global.h>"])
-
# test for mysql
mysql=false
mysqlfail=false
[yes|""],[
AC_CHECK_HEADERS(mysql/mysql.h,
AC_CHECK_LIB(mysqlclient, mysql_init,
- mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
+ mysql=true), [], [])
],[
LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql $LDFLAGS $ZLIBS"
CPPFLAGS="-I$with_mysql/include $CPPFLAGS"
MYSQL_LDFLAGS="-L$with_mysql/lib -L$with_mysql/lib/mysql"
MYSQL_CPPFLAGS="-I$with_mysql/include"
- mysql=true), [], [$CYGWIN_MYSQL_MAGIC])
+ mysql=true), [], [])
])
],
[AC_MSG_RESULT([--with-mysql not specified])
MYSQL_LDFLAGS="-L$MYSQL_LIBDIR"
mysql=true
- , [], [$CYGWIN_MYSQL_MAGIC])])
+ , [], [])])
])
AC_SUBST(MYSQL_LDFLAGS)
[
AC_MSG_CHECKING(mysql version)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
- [[$CYGWIN_MYSQL_MAGIC
+ [[
#include <mysql/mysql.h>]],
[[
#if (MYSQL_VERSION_ID < 40100)
# libmicrohttpd
lmhd=0
-AC_MSG_CHECKING([for libmicrohttpd])
+m4_define([MHD_MODULE], [libmicrohttpd >= 0.9.63])
AC_ARG_WITH(microhttpd,
- [ --with-microhttpd=PFX base of libmicrohttpd installation],
- [AC_MSG_RESULT([$with_microhttpd])
- AS_CASE([$with_microhttpd],
- [no],[],
- [yes|""],[
- AC_CHECK_HEADERS([microhttpd.h],
- AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.63])
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- #include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>
- #if (MHD_VERSION < 0x0096300)
- #error needs at least version 0.9.63
- #endif
- int main () { return 0; }
- ])],
- [AC_MSG_RESULT(ok)
- lmhd=1],
- [AC_MSG_RESULT(failed)])]),
- [],[#include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>]),,
- [#include "$native_srcdir/src/include/platform.h"])
- ],[
- LDFLAGS="-L$with_microhttpd/lib $LDFLAGS"
- CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"
- AC_CHECK_HEADERS(microhttpd.h,
- AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
- EXT_LIB_PATH="-L$with_microhttpd/lib $EXT_LIB_PATH"
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- #include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>
- #if (MHD_VERSION < 0x0094200)
- #error needs at least version 0.9.42
- #endif
- int main () { return 0; }
- ])],
- [AC_MSG_RESULT(ok)
- lmhd=1],
- [AC_MSG_RESULT(failed)])]),
- [],[#include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>]),,
- [#include "$native_srcdir/src/include/platform.h"])
- ])
- ],
- [AC_MSG_RESULT([--with-microhttpd not specified])
- AC_CHECK_HEADERS([microhttpd.h],
- AC_CHECK_DECL(MHD_OPTION_PER_IP_CONNECTION_LIMIT,
- AC_CHECK_LIB([microhttpd], [MHD_get_fdset2],
- [AC_MSG_CHECKING([for libmicrohttpd >= 0.9.52])
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- #include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>
- #if (MHD_VERSION < 0x0094200)
- #error needs at least version 0.9.52
- #endif
- ])],
- [AC_MSG_RESULT(ok)
- lmhd=1],
- [AC_MSG_RESULT(failed)])]),
- [],[#include "$native_srcdir/src/include/platform.h"
- #include <microhttpd.h>]),,
- [#include "$native_srcdir/src/include/platform.h"])])
+ [AS_HELP_STRING([--with-microhttpd[[=PFX]]],
+ [base of libmicrohttpd installation])],
+ [],
+ [with_microhttpd=check])
+AS_CASE([$with_microhttpd],
+ [no], [],
+ [yes], [PKG_CHECK_MODULES([MHD], [MHD_MODULE], [lmhd=1])],
+ [check], [PKG_CHECK_MODULES([MHD], [MHD_MODULE],
+ [lmhd=1],
+ [AC_MSG_WARN([Building without libmicrohttpd])])],
+ [SAVE_PKG_CONFIG_PATH=$PKG_CONFIG_PATH
+ PKG_CONFIG_PATH=$with_microhttpd/lib/pkgconfig
+ export PKG_CONFIG_PATH
+ PKG_CHECK_MODULES([MHD], [MHD_MODULE], [lmhd=1])
+ PKG_CONFIG_PATH=$SAVE_PKG_CONFIG_PATH])
AM_CONDITIONAL(HAVE_MHD, test x$lmhd = x1)
AC_DEFINE_UNQUOTED([HAVE_MHD], $lmhd, [We have libmicrohttpd])