# This file is part of GNUnet.
-# (C) 2001--2018 GNUnet e.V.
+# (C) 2001--2019 GNUnet e.V.
#
# GNUnet is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+# SPDX-License-Identifier: AGPL3.0-or-later
#
# Process this file with autoconf to produce a configure script.
#
CPPFLAGS="-D_APPLE_C_SOURCE $CPPFLAGS"
CFLAGS="-fno-common $CFLAGS"
AC_MSG_WARN([WARNING: The VPN application cannot be compiled on your OS])
+ AC_CHECK_LIB(intl, gettext)
build_target="darwin"
DEFAULT_INTERFACE="\"en0\""
LIBPREFIX=
# some other checks for standard libs
AC_SEARCH_LIBS([gethostbyname], [nsl ws2_32])
+AC_SEARCH_LIBS([memrchr], [],
+ AC_DEFINE(HAVE_MEMRCHR,1,[memrchr supported]), [])
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(m, log)
AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
AM_CONDITIONAL(HAVE_SSH_KEY, ssh -D 12345 -o "BatchMode yes" -o "UserKnownHostsFile /tmp/gnunet_test_cosks_ssh_garbage" -o "StrictHostKeyChecking no" 127.0.0.1 echo -n)
rm -f /tmp/gnunet_test_cosks_ssh_garbage
+# autotools' m4 for python has no maximum version!
+# python3.7 for tests
+m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python3 python3.7 python])
+AM_PATH_PYTHON([3.7],, [:])
+AC_SUBST([PYTHON])
+AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
+
# iptables is a soft requirement to run tests
AC_PATH_TARGET_TOOL(VAR_IPTABLES_BINARY, iptables, false)
then
AC_DEFINE_UNQUOTED([IFCONFIG], "$VAR_IFCONFIG_BINARY", [Path to ifconfig])
else
-AC_MSG_WARN([warning: 'ifconfig' not found.])
+AC_MSG_WARN(['ifconfig' not found.])
fi
# miniupnpc / upnpc binary is a soft runtime requirement
AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
+
# tests only run on Windows
if test "x$build_target" = "xmingw"
then
AC_DEFINE([DOCUMENTATION],[0],[Not building the documentation])
fi
-# TODO: Include check for mandoc + texi2mdoc.
-# TODO: Rename the switch? Just 'section7' is too vague.
-# mdoc section 7 output.
-AC_MSG_CHECKING(wether to build section 7 mdoc output)
-AC_ARG_ENABLE([section7],
-[AS_HELP_STRING([--disable-section7], [do not build section 7 mdoc output])],
-[section7=${enableval}],
-[section7=yes])
-AC_MSG_RESULT($section7)
-if test "x$section7" = "xyes"
+AC_MSG_CHECKING(wether to include generated texi2mdoc output in installation)
+AC_ARG_ENABLE([texi2mdoc-generation],
+[AS_HELP_STRING([--disable-texi2mdoc-generation], [do not include generated texi2mdoc output in installation])],
+[texi2mdoc-generation=${enableval}],
+[texi2mdoc-generation=yes])
+AC_MSG_RESULT($texi2mdoc-generation)
+if test "x$texi2mdoc-generation" = "xyes"
then
if test "$texi2mdoc" = 0
then
AC_MSG_WARN([ERROR: texi2mdoc can be obtained via your Operating System])
AC_MSG_WARN([ERROR: package manager or from https://mandoc.bsd.lv/texi2mdoc/])
else
- AM_CONDITIONAL([SECTION7],true)
- AC_DEFINE([SECTION7],[1],[Building section 7 mdoc output])
+ AM_CONDITIONAL([TEXI2MDOC_GENERATION],true)
+ AC_DEFINE([TEXI2MDOC_GENERATION],[1],[Building section 7 mdoc output])
fi
else
- AM_CONDITIONAL([SECTION7],false)
- AC_DEFINE([SECTION7],[0],[Not building section 7 mdoc output])
+ AM_CONDITIONAL([TEXI2MDOC_GENERATION],false)
+ AC_DEFINE([TEXI2MDOC_GENERATION],[0],[Not building section 7 mdoc output])
fi
# should the build process be building only the documentation?
fi
-# Check for makeinfo version >= 5, required for building documentation.
-# TODO: add check for alternatives
-have_makeinfo_5=false
-if test x"$documentation" = xyes || test x"$documentation_only" = xyes
-then
- AC_PROG_SED
- AC_CHECK_PROG([MAKEINFO_FOUND], [makeinfo], [yes])
- if test x"${MAKEINFO_FOUND}" = xyes
- then
- MAKEINFO_VERSION_REQ=5
- AC_MSG_CHECKING([for makeinfo version >= $MAKEINFO_VERSION_REQ])
- # XXX: is this sed invocation portable?
- MAKEINFO_VERSION=`makeinfo --version | sed -ne 's/^\(makeinfo\|texi2any\) .* \([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*.*$/\2/p'`
- if test x$MAKEINFO_VERSION = x -o 0$MAKEINFO_VERSION -lt $MAKEINFO_VERSION_REQ
- then
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE([Program 'makeinfo' version >= $MAKEINFO_VERSION_REQ is required.])
- else
- AC_MSG_RESULT([yes])
- have_makeinfo_5=true
- fi
- else
- AC_MSG_FAILURE([Missing program 'makeinfo', Documentation will not be built. Please install it if you want 'info' documentation or refer to online resources at 'https://docs.gnunet.org'.])
- fi
-fi
-AM_CONDITIONAL([HAVE_MAKEINFO_5], [test x$have_makeinfo_5 = xtrue])
-
# Adam shostack suggests the following for Windows:
# -D_FORTIFY_SOURCE=2 -fstack-protector-all
AC_ARG_ENABLE(gcc-hardening,
LDFLAGS="$LDFLAGS -pie"
fi])
-
# Linker hardening options
# Currently these options are ELF specific - you can't use this with MacOSX
AC_ARG_ENABLE(linker-hardening,
PKG_CHECK_MODULES([GLIB],
[glib-2.0],
[# check for pbc library
- pbc=0
+ pbc=0
AC_CHECK_HEADER([pbc/pbc.h],pbc=1)
AC_CHECK_HEADER([gabe.h],abe=1)
AM_CONDITIONAL(HAVE_PBC, [test "x$pbc" = x1])
AC_DEFINE([HAVE_LIBCURL],[1],[Have CURL])
fi
+AC_SEARCH_LIBS(__atomic_load_8, atomic, [have_libatomic=1 AC_DEFINE(HAVE_LIBATOMIC,1,[external libatomic])])
+AM_CONDITIONAL(HAVE_LIBATOMIC, [test "$have_libatomic" = 1])
# restore LIBS & CPPFLAGS
LIBS=$SAVE_LIBS
LIBS="-lidn2 $LIBS"
AC_DEFINE_UNQUOTED([HAVE_LIBIDN2],
[1],
- [Define to 1 if you have 'libidn2' (-lidn).])],
+ [Define to 1 if you have 'libidn2' (-lidn2).])],
[MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
MISSING_SEP=", "])])
AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
# Checks for headers that are only required on some systems or opional (and where we do NOT abort if they are not there)
-AC_CHECK_HEADERS([malloc.h malloc/malloc.h malloc/malloc_np.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 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 sys/ucred.h endian.h sys/endian.h execinfo.h byteswap.h])
+AC_CHECK_HEADERS([stdatomic.h malloc.h malloc/malloc.h malloc/malloc_np.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 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 sys/ucred.h endian.h sys/endian.h execinfo.h byteswap.h])
# FreeBSD requires something more funky for netinet/in_systm.h and netinet/ip.h...
AC_CHECK_HEADERS([sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h],,,
# restore LIBS
LIBS=$SAVE_LIBS
-# check for python & pexpect (used for some testcases only)
-AM_PATH_PYTHON([2.6],, [:])
-AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
-
# check for gettext
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18.1])
AC_SUBST(DLLDIR)
AC_SUBST(EXT_LIB_PATH)
+DATAROOTDIR=$datarootdir
+AC_SUBST(DATAROOTDIR)
# test for sudo
AC_MSG_CHECKING(for sudo)
AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"])
-# should monkey be used when running (certain) services?
-AC_MSG_CHECKING(whether to run with monkey)
-AC_ARG_ENABLE([monkey],
- [AS_HELP_STRING([--enable-monkey], [enable running with monkey])],
- [enable_monkey=${enableval}],
- [enable_monkey=no])
-AC_MSG_RESULT($enable_monkey)
-AM_CONDITIONAL([ENABLE_MONKEY], [test "x$enable_monkey" = "xyes"])
-if test "x$enable_monkey" = "xyes"
-then
- MONKEYPREFIX="pathologist -d $(eval echo ${datarootdir}/gnunet/gnunet.sqlite) -p 30 --"
-else
- MONKEYPREFIX=""
-fi
-AC_SUBST(MONKEYPREFIX)
-
-
AC_MSG_CHECKING([whether to compile in benchmarks (currently for http and crypto)])
AC_ARG_ENABLE([benchmark],
[AS_HELP_STRING([--enable-benchmark], [enable benchmarking])],
AC_ARG_ENABLE([autostart],
[AS_HELP_STRING([--disable-autostart], [do not start peer's services by default])],
[enable_autostart=${enableval}
- if test "x$enable_autostart" == "xno"
+ if test "x$enable_autostart" = "xno"
then
START_ON_DEMAND="NO"
fi
src/integration-tests/Makefile
src/json/Makefile
src/hostlist/Makefile
-src/multicast/Makefile
-src/multicast/multicast.conf
src/my/Makefile
src/mysql/Makefile
src/namecache/Makefile
src/nat-auto/nat-auto.conf
src/nse/Makefile
src/nse/nse.conf
+src/nt/Makefile
src/peerinfo/Makefile
src/peerinfo/peerinfo.conf
src/peerinfo-tool/Makefile
src/peerstore/Makefile
src/peerstore/peerstore.conf
src/pq/Makefile
-src/psycutil/Makefile
-src/psyc/Makefile
-src/psyc/psyc.conf
-src/psycstore/Makefile
-src/psycstore/psycstore.conf
src/pt/Makefile
src/regex/Makefile
src/regex/regex.conf
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
pkgconfig/gnunetdatastore.pc
pkgconfig/gnunetdht.pc
pkgconfig/gnunetdns.pc
-pkgconfig/gnunetdv.pc
pkgconfig/gnunetenv.pc
pkgconfig/gnunetfragmentation.pc
pkgconfig/gnunetfs.pc
pkgconfig/gnunethello.pc
pkgconfig/gnunetidentity.pc
pkgconfig/gnunetmicrophone.pc
-pkgconfig/gnunetmulticast.pc
pkgconfig/gnunetmysql.pc
pkgconfig/gnunetnamestore.pc
pkgconfig/gnunetnat.pc
pkgconfig/gnunetnse.pc
pkgconfig/gnunetpeerinfo.pc
pkgconfig/gnunetpq.pc
-pkgconfig/gnunetpsyc.pc
-pkgconfig/gnunetpsycstore.pc
pkgconfig/gnunetregex.pc
pkgconfig/gnunetrevocation.pc
pkgconfig/gnunetrps.pc
pkgconfig/gnunetscalarproduct.pc
pkgconfig/gnunetset.pc
-pkgconfig/gnunetsocial.pc
pkgconfig/gnunetspeaker.pc
pkgconfig/gnunetstatistics.pc
pkgconfig/gnunettestbed.pc
"USERNAME" with the respective login names). If you have a global IP
address, no further configuration is required.
-For more detailed setup instructions, see https://gnunet.org/installation
+For more detailed setup instructions, see https://docs.gnunet.org/
Optionally, download and compile gnunet-gtk to get a GUI for
file-sharing and configuration. This is particularly recommended