commit a973793efdd6bce7e1d872ec506ae047d12aeabc
parent bb7b14166cf56198deef8a287d139347e2332db9
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Wed, 22 Apr 2026 11:35:32 +0200
build: convert to meson
Diffstat:
51 files changed, 2270 insertions(+), 4877 deletions(-)
diff --git a/Makefile.am b/Makefile.am
@@ -1,26 +0,0 @@
-# This Makefile is in the public domain
-
-if DOC_ONLY
-if ENABLE_DOC
- SUBDIRS = . doc po
-else
- SUBDIRS = . po
-endif
-else
-if ENABLE_DOC
- SUBDIRS = . contrib src doc po
-else
- SUBDIRS = . contrib src po
-endif
-endif
-
-@DX_RULES@
-
-ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = \
- config.rpath \
- AUTHORS \
- COPYING.AGPL
-
-gana-update:
- ./contrib/gana-update.sh master
diff --git a/bootstrap b/bootstrap
@@ -5,9 +5,11 @@ if ! git --version >/dev/null; then
exit 1
fi
-echo "$0: Updating submodules"
-git submodule update --init --force
+if [ -d ".git" ]; then
+ echo "$0: Updating submodules"
+ git submodule update --init --force
+fi
# This is more portable than `which' but comes with
# the caveat of not(?) properly working on busybox's ash:
@@ -28,5 +30,5 @@ else
fi
-echo "$0: Running autoreconf"
-autoreconf -if
+#echo "$0: Running autoreconf"
+#autoreconf -if
diff --git a/configure.ac b/configure.ac
@@ -1,382 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-#
-# This configure file is in the public domain
-
-AC_PREREQ([2.71])
-AC_INIT([anastasis],[0.7.1],[taler-bug@gnu.org])
-AC_CONFIG_SRCDIR([src/backend/anastasis-httpd.c])
-AC_CONFIG_HEADERS([anastasis_config.h])
-# support for non-recursive builds
-AM_INIT_AUTOMAKE([subdir-objects 1.9 tar-pax])
-
-# pretty build rules
-AM_SILENT_RULES([yes])
-
-AC_CONFIG_MACRO_DIR([m4])
-
-AC_PROG_AWK
-AC_PROG_CC
-AC_PROG_OBJC
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-AM_PROG_CC_C_O
-
-LT_INIT([disable-static dlopen])
-
-DX_INIT_DOXYGEN([anastasis],,,
-DX_PS_FEATURE(OFF),
-DX_PDF_FEATURE(OFF),
-DX_RTF_FEATURE(OFF),
-DX_CHI_FEATURE(OFF),
-DX_XML_FEATURE(OFF))
-
-
-AC_CHECK_PROG([DPKG_ARCH], [dpkg-architecture], [yes], [no])
-if test "x$DPKG_ARCH" = "xyes"; then
- MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH`
-else
- MULTIARCH=""
-fi
-
-AC_MSG_CHECKING([whether to compile documentation ONLY])
-AC_ARG_ENABLE([only-doc],
- [AS_HELP_STRING([--enable-only-doc], [only compile Taler documentation])],
- [doc_only=${enableval}],
- [doc_only=no])
-AC_MSG_RESULT($doc_only)
-AM_CONDITIONAL([DOC_ONLY], [test "$doc_only" = "yes"])
-
-
-# Not indented as it covers most of the file...
-AS_IF([test "x$doc_only" != xyes],[
-
-
-# Checks for programs.
-AC_PROG_CC
-
-# check for gettext
-AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.19.8])
-
-
-CFLAGS="-Wall $CFLAGS"
-
-# Checks for header files.
-AC_CHECK_HEADERS([stdint.h stdlib.h string.h unistd.h])
-
-ANASTASIS_LIB_LDFLAGS="-export-dynamic -no-undefined"
-ANASTASIS_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined"
-
-AC_SUBST(ANASTASIS_LIB_LDFLAGS)
-AC_SUBST(ANASTASIS_PLUGIN_LDFLAGS)
-
-
-# Save before checks clobber them
-CFLAGS_SAVE=$CFLAGS
-LDFLAGS_SAVE=$LDFLAGS
-LIBS_SAVE=$LIBS
-
-
-# Check for GNUnet's libgnunetutil.
-libgnunetutil=0
-AC_MSG_CHECKING([for libgnunetutil])
-AC_ARG_WITH(gnunet,
- [AS_HELP_STRING([--with-gnunet=PFX], [base of GNUnet installation])],
- [AC_MSG_RESULT([given as $with_gnunet])],
- [AC_MSG_RESULT(not given)
- with_gnunet=yes])
-AS_CASE([$with_gnunet],
- [yes], [],
- [no], [AC_MSG_ERROR([--with-gnunet is required])],
- [LDFLAGS="-L$with_gnunet/lib/$MULTIARCH -L$with_gnunet/lib/ $LDFLAGS"
- CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"])
-AC_CHECK_HEADERS([gnunet/gnunet_util_lib.h],
- [AC_CHECK_LIB([gnunetutil],
- [GNUNET_SCHEDULER_run],
- [libgnunetutil=1])])
-AS_IF([test $libgnunetutil != 1],
- [AC_MSG_ERROR([[
-***
-*** You need libgnunetutil >= 0.20.0 to build this program.
-*** This library is part of GNUnet, available at
-*** https://gnunet.org
-*** ]])])
-
-
-AC_CHECK_HEADERS([taler/taler_mhd_lib.h],
- [AC_CHECK_LIB([talermhd], [TALER_MHD_listen_bind], libtalermhd=1)])
-AM_CONDITIONAL(HAVE_TALERMHD, test x$libtalermhd = x1)
-AS_IF([test $libtalermhd != 1],
- [AC_MSG_ERROR([[
-***
-*** You need libtalermhd >= 1.1.0 (API v6) to build this program.
-*** This library is part of the GNU Taler exchange, available at
-*** https://taler.net
-*** ]])])
-
-# check for libcurl
-LIBCURL_CHECK_CONFIG(,7.34.0,[curl=1],[curl=0])
-
-# cURL must support CURLINFO_TLS_SESSION, version >= 7.34
-AS_IF([test "x$curl" = x1],[
- AC_CHECK_HEADER([curl/curl.h],
- [AC_CHECK_DECLS(CURLINFO_TLS_SESSION,[curl=1],[curl=0],[[#include <curl/curl.h>]])],
- [curl=0])
-])
-
-# libcurl should be mutually exclusive
-AS_IF([test "$curl" = 1],
- AM_CONDITIONAL(HAVE_LIBCURL, true)
- AC_DEFINE([HAVE_LIBCURL],[1],[Have libcurl])
- [LIBCURL_LIBS="-lcurl"],
- [AC_MSG_ERROR([FATAL: No libcurl])])
-
-AC_SUBST([LIBCURL_LIBS])
-
-# Check for GNUnet's libgnunetcurl.
-libgnunetcurl=0
-AC_MSG_CHECKING([for libgnunetcurl])
-AC_ARG_WITH(gnunet,
- [AS_HELP_STRING([--with-gnunet=PFX], [base of GNUnet installation])],
- [AC_MSG_RESULT([given as $with_gnunet])],
- [AC_MSG_RESULT(not given)
- with_gnunet=yes])
-AS_CASE([$with_gnunet],
- [yes], [],
- [no], [AC_MSG_ERROR([--with-gnunet is required])],
- [LDFLAGS="-L$with_gnunet/lib/$MULTIARCH -L$with_gnunet/lib/ $LDFLAGS"
- CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"])
-AC_CHECK_HEADERS([gnunet/gnunet_curl_lib.h],
- [AC_CHECK_LIB([gnunetcurl], [GNUNET_CURL_get_select_info], libgnunetcurl=1)])
-AS_IF([test $libgnunetcurl != 1],
- [AC_MSG_ERROR([[
-***
-*** You need libgnunetcurl to build this program.
-*** Make sure you have libcurl installed while
-*** building GNUnet.
-*** ]])])
-
-
-# Restore after curl checks messed up these values
-CFLAGS=$CFLAGS_SAVE
-LDFLAGS=$LDFLAGS_SAVE
-LIBS=$LIBS_SAVE
-
-
-# gcov compilation
-AC_MSG_CHECKING(whether to compile with support for code coverage analysis)
-AC_ARG_ENABLE([coverage],
- AS_HELP_STRING([--enable-coverage],
- [compile the library with code coverage support]),
- [use_gcov=${enableval}],
- [use_gcov=no])
-AC_MSG_RESULT($use_gcov)
-AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
-
-
-# test for postgres
-AX_LIB_POSTGRESQL([15])
-AS_IF([test "x$found_postgresql" = "xyes"],[postgres=true])
-AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
-
-libsodium=0
-# test for libsodium >=1.018 (introduction of
-# crypto_scalarmult_ed25519_base_noclamp API)
-AC_CHECK_HEADER([sodium.h],
- [AC_CHECK_LIB([sodium], [crypto_core_ed25519_scalar_mul],
- [libsodium=1])])
-
-AS_IF([test x$libsodium = x0],
- [AC_MSG_ERROR([Anastasis requires libsodium >= 1.0.18.])])
-
-
-# Check for Taler's libtalerutil
-libtalerutil=0
-AC_MSG_CHECKING([for libtalerutil])
-AC_ARG_WITH(exchange,
- [AS_HELP_STRING([--with-exchange=PFX], [base of Taler EXCHANGE installation])],
- [AC_MSG_RESULT([given as $with_exchange])],
- [AC_MSG_RESULT(not given)
- with_exchange=yes])
-AS_CASE([$with_exchange],
- [yes], [],
- [no], [AC_MSG_ERROR([--with-exchange is required])],
- [LDFLAGS="-L$with_exchange/lib/$MULTIARCH -L$with_exchange/lib/ $LDFLAGS"
- CPPFLAGS="-I$with_exchange/include $CPPFLAGS $POSTGRESQL_CPPFLAGS"])
-
-AC_CHECK_HEADERS([taler/taler_util.h],
- [AC_CHECK_LIB([talerutil],
- [TALER_pattern_matches],
- [with_exchange=yes],
- [AC_MSG_ERROR([libtalerutil too old])])],
- [AC_MSG_ERROR([taler/taler_util.h found])])
-
-
-CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
-
-# Require minimum libgcrypt version
-need_libgcrypt_version=1.6.1
-AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], ["$need_libgcrypt_version"],
- [minimum version of libgcrypt required])
-AM_PATH_LIBGCRYPT([$need_libgcrypt_version])
-
-AC_CHECK_HEADERS([taler/taler_util.h],
- [AC_CHECK_LIB([talerutil],
- [TALER_b2s],
- [libtalerutil=1],
- [AC_MSG_ERROR([libtalerutil not found])])],
- [AC_MSG_ERROR([taler/taler_util.h not found])],
- [#include <taler/platform.h>])
-
-# Check for Taler's libtalermerchant
-libtalermerchant=0
-AC_MSG_CHECKING([for libtalermerchant])
-AC_ARG_WITH(merchant,
- [AS_HELP_STRING([--with-merchant=PFX], [base of Taler MERCHANT installation])],
- [AC_MSG_RESULT([given as $with_merchant])],
- [AC_MSG_RESULT(not given)
- with_merchant=yes])
-AS_CASE([$with_merchant],
- [yes], [],
- [no], [AC_MSG_ERROR([--with-merchant is required])],
- [LDFLAGS="-L$with_merchant/lib/$MULTIARCH -L$with_merchant/lib/ $LDFLAGS"
- CPPFLAGS="-I$with_merchant/include $CPPFLAGS $POSTGRESQL_CPPFLAGS"])
-
-AC_CHECK_HEADERS([taler/taler_merchant_service.h],
- [AC_CHECK_LIB([talermerchant],
- [TALER_MERCHANT_parse_pay_uri],
- [libtalermerchant=1],
- [AC_MSG_ERROR([libtalermerchant not found])])],
- [AC_MSG_ERROR([taler/taler_merchant_service.h found])])
-
-
-
-
-# check for libmicrohttpd
-microhttpd=0
-AC_MSG_CHECKING([for microhttpd])
-AC_ARG_WITH([microhttpd],
- [AS_HELP_STRING([--with-microhttpd=PFX], [base of microhttpd installation])],
- [AC_MSG_RESULT([given as $with_microhttpd])],
- [AC_MSG_RESULT([not given])
- with_microhttpd=yes])
-AS_CASE([$with_microhttpd],
- [yes], [],
- [no], [AC_MSG_ERROR([--with-microhttpd is required])],
- [LDFLAGS="-L$with_microhttpd/lib/$MULTIARCH -L$with_microhttpd/lib/ $LDFLAGS"
- CPPFLAGS="-I$with_microhttpd/include $CPPFLAGS"])
-AC_CHECK_LIB(microhttpd,MHD_start_daemon,
- [AC_CHECK_HEADER([microhttpd.h],[microhttpd=1])])
-AS_IF([test $microhttpd = 0],
- [AC_MSG_ERROR([[
-***
-*** You need libmicrohttpd to build this program.
-*** ]])])
-
-jansson=0
-PKG_CHECK_MODULES([JANSSON], [jansson >= 2.3],
- [LDFLAGS="$JANSSON_LIBS $LDFLAGS"
- CPPFLAGS="$JANSSON_CFLAGS $CPPFLAGS"],
- [AC_MSG_ERROR([[
-***
-*** You need libjansson to build this program.
-***]])])
-
-# logging
-extra_logging=0
-AC_ARG_ENABLE([logging],
- AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. Possible values: yes,no,verbose ('yes' is the default)]),
- [AS_IF([test "x$enableval" = "xyes"], [],
- [test "x$enableval" = "xno"], [AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
- [test "x$enableval" = "xverbose"], [extra_logging=1]
- [test "x$enableval" = "xveryverbose"], [extra_logging=2])
- ], [])
-AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging is enabled, 2 for very verbose extra logging, 0 otherwise])
-
-# version info
-AC_PATH_PROG(gitcommand, git)
-AC_MSG_CHECKING(for source being under a VCS)
-git_version=
-AS_IF([test ! "X$gitcommand" = "X"],
-[
- git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null)
-])
-AS_IF([test "X$git_version" = "X"],
- [
- vcs_name="no"
- vcs_version="\"release\""
- ],
- [
- vcs_name="yes, git-svn"
- vcs_version="\"git-$git_version\""
- ])
-AC_MSG_RESULT($vcs_name)
-
-AC_MSG_CHECKING(VCS version)
-AC_MSG_RESULT($vcs_version)
-AC_DEFINE_UNQUOTED(VCS_VERSION, [$vcs_version], [VCS revision/hash or tarball version])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AC_TYPE_INTMAX_T
-AC_TYPE_UINTMAX_T
-
-# Checks for library functions.
-AC_CHECK_FUNCS([strdup])
-
-
-AC_ARG_ENABLE([[doc]],
- [AS_HELP_STRING([[--disable-doc]], [do not build any documentation])], ,
- [enable_doc=yes])
-test "x$enable_doc" = "xno" || enable_doc=yes
-AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = "xyes"])
-
-
-],[ # this is about the doc-only if on top of the file
-
-# logic if doc_only is set, make sure conditionals are still defined
-AM_CONDITIONAL([HAVE_POSTGRESQL], [false])
-AM_CONDITIONAL([HAVE_LIBCURL], [false])
-AM_CONDITIONAL([USE_COVERAGE], [false])
-AM_CONDITIONAL([ENABLE_DOC], [true])
-
-
-# end of 'doc_only'
-])
-
-
-# should experimental code be compiled (code that may not yet compile / have passing test cases)?
-AC_MSG_CHECKING(whether to compile experimental code)
-AC_ARG_ENABLE([experimental],
- [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])],
- [enable_experimental=${enableval}],
- [enable_experimental=no])
-AC_MSG_RESULT($enable_experimental)
-AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
-
-
-AC_CONFIG_FILES([
-Makefile
-contrib/Makefile
-doc/Makefile
-po/Makefile.in
-src/Makefile
-src/authorization/Makefile
-src/authorization/libanastasiseufin/Makefile
-src/backend/Makefile
-src/cli/Makefile
-src/include/Makefile
-src/lib/Makefile
-src/util/Makefile
-src/reducer/Makefile
-src/restclient/Makefile
-src/stasis/Makefile
-src/testing/Makefile
-])
-AC_OUTPUT
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
@@ -1,57 +0,0 @@
-# This Makefile.am is in the public domain
-# Process this file with automake to produce Makefile.in
-
-SUBDIRS = .
-
-bin_SCRIPTS = \
- anastasis-dbconfig
-
-termsdir=$(datadir)/anastasis/terms/
-terms_DATA = \
- anastasis-tos-v0.rst \
- anastasis-pp-v0.rst
-
-install-exec-local:
- find locale/ -name "*.po"
- mkdir -p $(DESTDIR)$(datadir)
- cp --parents -r $$(find locale/ -name "*.po") $(DESTDIR)$(datadir)
-
-extracted.h: *.json
- ./extract.sh
-
-noinst_SCRIPTS = extracted.h
-
-pkgdatadir= $(prefix)/share/anastasis/
-
-EXTRA_DIST = \
- locale/de/LC_MESSAGES/anastasis-tos-v0.po \
- $(bin_SCRIPTS) \
- $(pkgdata_DATA) \
- $(terms_DATA) \
- pogen.sh \
- uncrustify.cfg \
- uncrustify_precommit \
- gana.sh \
- gana-update.sh \
- microhttpd.tag \
- extract.sh \
- extracted.h
-
-pkgdata_DATA = \
- redux.al.json \
- redux.be.json \
- redux.ch.json \
- redux.cz.json \
- redux.de.json \
- redux.dk.json \
- redux.es.json \
- redux.fr.json \
- redux.in.json \
- redux.it.json \
- redux.jp.json \
- redux.nl.json \
- redux.sk.json \
- redux.us.json \
- redux.xx.json \
- redux.countries.json \
- provider-list.json
diff --git a/contrib/extract.sh b/contrib/extract.sh
@@ -6,18 +6,26 @@
# gettext, and not in the actual code. We still make
# sure it is legal C code.
-for n in redux.??.json
+BASEDIR=$(dirname $0)
+
+if [ -z $1 ]; then
+ TGTDIR=$BASEDIR
+else
+ TGTDIR=$1
+fi
+
+for n in ${BASEDIR}/redux.??.json
do
- jq '.required_attributes[].label' < $n | awk '{print "_(" $0 "),"}' >> prep.h
+ jq '.required_attributes[].label' < $n | awk '{print "_(" $0 "),"}' >> ${TGTDIR}/prep.h
done
-jq '.countries[].continent' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
+jq '.countries[].continent' < ${BASEDIR}/redux.countries.json | awk '{print "_(" $0 "),"}' >> ${TGTDIR}/prep.h
-jq '.countries[].name' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
+jq '.countries[].name' < ${BASEDIR}/redux.countries.json | awk '{print "_(" $0 "),"}' >> ${TGTDIR}/prep.h
-echo "// This is a generated file, see extract.sh" > extracted.h
-echo "const char * i18n[] = {" >> extracted.h
-sort prep.h | uniq >> extracted.h
-echo "};" >> extracted.h
+echo "// This is a generated file, see extract.sh" > ${TGTDIR}/extracted.h
+echo "const char * i18n[] = {" >> ${TGTDIR}/extracted.h
+sort ${TGTDIR}/prep.h | uniq >> ${TGTDIR}/extracted.h
+echo "};" >> ${TGTDIR}/extracted.h
-rm -f prep.h
+rm -f ${TGTDIR}/prep.h
diff --git a/contrib/meson.build b/contrib/meson.build
@@ -0,0 +1,59 @@
+# This file is in the public domain
+
+configure_file(
+ input: 'anastasis-dbconfig',
+ output: 'anastasis-dbconfig',
+ copy: true,
+ install: true,
+ install_dir: get_option('bindir'),
+)
+
+
+terms_DATA = ['anastasis-tos-v0.rst', 'anastasis-pp-v0.rst']
+install_data(
+ sources: terms_DATA,
+ install_dir: get_option('datadir') / 'anastasis' / 'terms',
+)
+
+
+#install-exec-local:
+# find locale/ -name "*.po"
+# mkdir -p $(DESTDIR)$(datadir)
+# cp --parents -r $$(find locale/ -name "*.po") $(DESTDIR)$(datadir)
+
+# FIXME: extracted.h should be put into the dist tarball?
+extract_h = custom_target(
+ 'extracted.h',
+ output: 'extracted.h',
+ command: ['./extract.sh', meson.current_build_dir()],
+ install: true,
+ install_dir: pkgdatadir,
+)
+
+foreach f : [
+ 'redux.al.json',
+ 'redux.be.json',
+ 'redux.ch.json',
+ 'redux.cz.json',
+ 'redux.de.json',
+ 'redux.dk.json',
+ 'redux.es.json',
+ 'redux.fr.json',
+ 'redux.in.json',
+ 'redux.it.json',
+ 'redux.jp.json',
+ 'redux.nl.json',
+ 'redux.sk.json',
+ 'redux.us.json',
+ 'redux.xx.json',
+ 'redux.countries.json',
+ 'provider-list.json',
+]
+ configure_file(
+ input: f,
+ output: f,
+ configuration: cdata,
+ install: true,
+ install_dir: pkgdatadir,
+ )
+endforeach
diff --git a/doc/Makefile.am b/doc/Makefile.am
@@ -1,26 +0,0 @@
-# This Makefile.am is in the public domain
-
-# SUBDIRS = . doxygen
-
-man_MANS = \
- anastasis-dbconfig.1 \
- anastasis-dbinit.1 \
- anastasis-httpd.1 \
- anastasis-helper-authorization-iban.1 \
- anastasis-reducer.1 \
- anastasis.conf.5 \
- anastasis-config.1
-
-info_TEXINFOS = \
- anastasis.texi
-
-EXTRA_DIST = \
- $(info_TEXINFOS) \
- $(man_MANS) \
- anastasis-figures/anastasis-db.png \
- anastasis-figures/anastasis_reducer_backup.png \
- anastasis-figures/anastasis_truth_payment.png \
- anastasis-figures/anastasis_challenge_payment.png \
- anastasis-figures/anastasis_reducer_recovery.png \
- anastasis-figures/anastasis_challengecode.png \
- anastasis-figures/anastasis_truth.png
diff --git a/doc/anastasis-figures/meson.build b/doc/anastasis-figures/meson.build
@@ -0,0 +1,13 @@
+# This file is in the public domain
+
+foreach f : [
+ 'anastasis-db.png',
+ 'anastasis_reducer_backup.png',
+ 'anastasis_truth_payment.png',
+ 'anastasis_challenge_payment.png',
+ 'anastasis_reducer_recovery.png',
+ 'anastasis_challengecode.png',
+ 'anastasis_truth.png',
+]
+ configure_file(input: f, output: f, copy: true)
+endforeach
diff --git a/doc/meson.build b/doc/meson.build
@@ -0,0 +1,41 @@
+# This file is in the public domain
+
+install_man(
+ [
+ 'anastasis-dbconfig.1',
+ 'anastasis-dbinit.1',
+ 'anastasis-httpd.1',
+ 'anastasis-helper-authorization-iban.1',
+ 'anastasis-reducer.1',
+ 'anastasis.conf.5',
+ 'anastasis-config.1',
+ ],
+)
+
+subdir('anastasis-figures')
+
+configure_file(input: 'anastasis.texi', output: 'anastasis.texi', copy: true)
+
+makeinfo = find_program('makeinfo', native: true, required: false)
+
+if makeinfo.found()
+
+ f_info = '@0@.info'.format('anastasis')
+ f_texi = meson.current_build_dir() / '@0@.texi'.format('anastasis')
+
+ custom_target(
+ f_info,
+ output: f_info,
+ command: [
+ makeinfo,
+ '--no-split',
+ '--no-headers',
+ f_texi,
+ '-o',
+ '@OUTPUT0@',
+ ],
+ install: true,
+ install_dir: get_option('infodir'),
+ )
+
+endif
diff --git a/flake.lock b/flake.lock
@@ -0,0 +1,822 @@
+{
+ "nodes": {
+ "donau": {
+ "inputs": {
+ "exchange": "exchange",
+ "gnunet": "gnunet_2",
+ "nixpkgs": "nixpkgs_4",
+ "systems": "systems_4"
+ },
+ "locked": {
+ "lastModified": 1776068074,
+ "narHash": "sha256-/UG1yoOAak34+mZ/fTB8+/FMMEaj4enPn+IxOV8R/4A=",
+ "ref": "refs/heads/master",
+ "rev": "4f609168fe263891f134eff01f86288066acdd81",
+ "revCount": 1050,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/donau"
+ },
+ "original": {
+ "rev": "4f609168fe263891f134eff01f86288066acdd81",
+ "type": "git",
+ "url": "https://git.gnunet.org/donau"
+ }
+ },
+ "donau_2": {
+ "inputs": {
+ "exchange": "exchange_3",
+ "gnunet": "gnunet_6",
+ "nixpkgs": "nixpkgs_11",
+ "systems": "systems_11"
+ },
+ "locked": {
+ "lastModified": 1776068074,
+ "narHash": "sha256-/UG1yoOAak34+mZ/fTB8+/FMMEaj4enPn+IxOV8R/4A=",
+ "ref": "refs/heads/master",
+ "rev": "4f609168fe263891f134eff01f86288066acdd81",
+ "revCount": 1050,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/donau"
+ },
+ "original": {
+ "rev": "4f609168fe263891f134eff01f86288066acdd81",
+ "type": "git",
+ "url": "https://git.gnunet.org/donau"
+ }
+ },
+ "exchange": {
+ "inputs": {
+ "gnunet": "gnunet",
+ "nixpkgs": "nixpkgs_2",
+ "systems": "systems_2"
+ },
+ "locked": {
+ "lastModified": 1776020637,
+ "narHash": "sha256-U/KHaAaE/JrlS3RYbRRiRRe0ur2JACkKysevCrzCXYY=",
+ "ref": "refs/heads/master",
+ "rev": "1b474b461597d11382e4e036520259a96f254e9b",
+ "revCount": 9931,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ },
+ "original": {
+ "rev": "1b474b461597d11382e4e036520259a96f254e9b",
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ }
+ },
+ "exchange_2": {
+ "inputs": {
+ "gnunet": "gnunet_3",
+ "nixpkgs": "nixpkgs_6",
+ "systems": "systems_6"
+ },
+ "locked": {
+ "lastModified": 1776021477,
+ "narHash": "sha256-V6qYPCNgaalQi6tRkDZ+Per3PPifm1Ze2pShV6LGomg=",
+ "ref": "refs/heads/master",
+ "rev": "92da4e81006404494f6443781c8f55249e723847",
+ "revCount": 9932,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ },
+ "original": {
+ "rev": "92da4e81006404494f6443781c8f55249e723847",
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ }
+ },
+ "exchange_3": {
+ "inputs": {
+ "gnunet": "gnunet_5",
+ "nixpkgs": "nixpkgs_9",
+ "systems": "systems_9"
+ },
+ "locked": {
+ "lastModified": 1776020637,
+ "narHash": "sha256-U/KHaAaE/JrlS3RYbRRiRRe0ur2JACkKysevCrzCXYY=",
+ "ref": "refs/heads/master",
+ "rev": "1b474b461597d11382e4e036520259a96f254e9b",
+ "revCount": 9931,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ },
+ "original": {
+ "rev": "1b474b461597d11382e4e036520259a96f254e9b",
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ }
+ },
+ "exchange_4": {
+ "inputs": {
+ "gnunet": "gnunet_7",
+ "nixpkgs": "nixpkgs_13",
+ "systems": "systems_13"
+ },
+ "locked": {
+ "lastModified": 1776021477,
+ "narHash": "sha256-V6qYPCNgaalQi6tRkDZ+Per3PPifm1Ze2pShV6LGomg=",
+ "ref": "refs/heads/master",
+ "rev": "92da4e81006404494f6443781c8f55249e723847",
+ "revCount": 9932,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ },
+ "original": {
+ "rev": "92da4e81006404494f6443781c8f55249e723847",
+ "type": "git",
+ "url": "https://git.gnunet.org/exchange"
+ }
+ },
+ "gnunet": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_2": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_3",
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_3": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_5",
+ "systems": "systems_5"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_4": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_7",
+ "systems": "systems_7"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_5": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_8",
+ "systems": "systems_8"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_6": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_10",
+ "systems": "systems_10"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_7": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_12",
+ "systems": "systems_12"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "gnunet_8": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_14",
+ "systems": "systems_14"
+ },
+ "locked": {
+ "lastModified": 1774899416,
+ "narHash": "sha256-YcGma1gX/t76xDv9DW71nKkWFhzXYz3NkN/WEceHbZM=",
+ "ref": "refs/heads/master",
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "revCount": 33194,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ },
+ "original": {
+ "rev": "7c6b613e37e301b0e81fb94af5878d00c98e5b75",
+ "type": "git",
+ "url": "https://git.gnunet.org/gnunet"
+ }
+ },
+ "merchant": {
+ "inputs": {
+ "donau": "donau_2",
+ "exchange": "exchange_4",
+ "gnunet": "gnunet_8",
+ "nixpkgs": "nixpkgs_15",
+ "systems": "systems_15"
+ },
+ "locked": {
+ "lastModified": 1776070816,
+ "narHash": "sha256-R+a90LanaprK2S4XzUXyW5tAUXOf+pVD7ljCfvulgAM=",
+ "ref": "refs/heads/master",
+ "rev": "b174138726171601b666fff346762502be5150a1",
+ "revCount": 5567,
+ "submodules": true,
+ "type": "git",
+ "url": "https://git.gnunet.org/merchant"
+ },
+ "original": {
+ "rev": "b174138726171601b666fff346762502be5150a1",
+ "type": "git",
+ "url": "https://git.gnunet.org/merchant"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_10": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_11": {
+ "locked": {
+ "lastModified": 1775825553,
+ "narHash": "sha256-LH0FGBWngFpvqXYfN1eks+L5n3aXy1ALTTRRhxP0HGA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ca62ee54d15571e3122309abb6740578906bcdf7",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_12": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_13": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_14": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_15": {
+ "locked": {
+ "lastModified": 1775730577,
+ "narHash": "sha256-5i3MKmxBFQP9/wp3QyFWyS7DqURq/M4T8gr1JSbyygI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "0d5a853f7004a5fc57b61a97ccb02832f8e7ed9d",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_16": {
+ "locked": {
+ "lastModified": 1776360938,
+ "narHash": "sha256-Tq/T/Us82tBQIRuyuZyWR1EMVJ0EStmk/u8qQgsKlVM=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "67664cad2361605c8fce9712d9ce6a8e026d2380",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_4": {
+ "locked": {
+ "lastModified": 1775825553,
+ "narHash": "sha256-LH0FGBWngFpvqXYfN1eks+L5n3aXy1ALTTRRhxP0HGA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ca62ee54d15571e3122309abb6740578906bcdf7",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_5": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_6": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_7": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_8": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_9": {
+ "locked": {
+ "lastModified": 1774799055,
+ "narHash": "sha256-Tsq9BCz0q47ej1uFF39m4tuhcwru/ls6vCCJzutEpaw=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "107cba9eb4a8d8c9f8e9e61266d78d340867913a",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "release-25.11",
+ "type": "indirect"
+ }
+ },
+ "root": {
+ "inputs": {
+ "donau": "donau",
+ "exchange": "exchange_2",
+ "gnunet": "gnunet_4",
+ "merchant": "merchant",
+ "nixpkgs": "nixpkgs_16",
+ "systems": "systems_16"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_10": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_11": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_12": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_13": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_14": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_15": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_16": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_4": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_5": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_6": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_7": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_8": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_9": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
@@ -0,0 +1,141 @@
+# This is a nix flake. To use it, you need nix (with flake support) installed.
+# If you do not have nix and do not intend to use it, you can ignore this file.
+# Why should you use it? Using this flake will allow you to enter a developer shell
+# which has all necessary packages for this repository already installed.
+# The shell will allow you to code against the specific revisions of the dependencies
+# pinned in this file.
+# This is useful when git HEAD of your dependencies already contains breaking changes
+# you should not (yet) code against.
+# OTOH, if you should code against a newer, not yet released revision, you can specify
+# this revision in this file.
+# You can use this file in three ways:
+# 1. Build: $ nix build
+# this will build the package (it runs make for you in an environment with the dependencies installed)
+# 2. Develop: $ nix develop
+# This will drop you inside a shell in which you can develop and compile (and test) your code.
+# It even starts and sets up the test database for you.
+# 3. Use this repository in a new project
+# Should you create a new project that depends on this project you are in luck. You can create a flake.nix
+# in your repository and include this packages as a dependency just like the dependencies of this package are
+# included here.
+
+{
+ inputs = {
+ nixpkgs.url = "nixpkgs/release-25.11";
+ systems.url = "github:nix-systems/default";
+ gnunet.url = "git+https://git.gnunet.org/gnunet?rev=7c6b613e37e301b0e81fb94af5878d00c98e5b75";
+ exchange.url = "git+https://git.gnunet.org/exchange?rev=92da4e81006404494f6443781c8f55249e723847";
+ merchant.url = "git+https://git.gnunet.org/merchant?rev=b174138726171601b666fff346762502be5150a1";
+ donau.url = "git+https://git.gnunet.org/donau?rev=4f609168fe263891f134eff01f86288066acdd81";
+ self.submodules = true;
+ };
+
+ outputs = { self, nixpkgs, gnunet, exchange, donau, merchant, systems, ... } @ inputs:
+ let
+ supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+ forEachSystem = nixpkgs.lib.genAttrs supportedSystems;
+ nixpkgsFor = forEachSystem (system: import nixpkgs { inherit system; });
+ in
+ {
+ # This defines (installable) package derivations
+ # For use in flakes that use this flake as input in order
+ # to specify/use this package from git as a dependency
+ packages = forEachSystem (system:
+ let
+ pkgs = nixpkgsFor.${system};
+ gnunetpkgs = gnunet.packages.${system};
+ exchangepkgs = exchange.packages.${system};
+ donaupkgs = donau.packages.${system};
+ merchantpkgs = merchant.packages.${system};
+ in {
+ anastasis = pkgs.stdenv.mkDerivation {
+ name = "anastasis";
+ src = ./.;
+ nativeBuildInputs = [
+ pkgs.gnumake
+ pkgs.meson
+ pkgs.ninja
+ pkgs.pkg-config
+ pkgs.python3
+ pkgs.texinfo
+ pkgs.typst
+ pkgs.pdftk
+ ];
+ buildInputs = [
+ pkgs.libtool
+ pkgs.jansson
+ pkgs.git
+ pkgs.gettext
+ pkgs.postgresql
+ (pkgs.python3.withPackages (python-pkgs: [
+ python-pkgs.jinja2
+ ]))
+ pkgs.libmicrohttpd
+ pkgs.libsodium
+ pkgs.libgcrypt
+ pkgs.libunistring
+ pkgs.curlWithGnuTls
+ pkgs.jq
+ pkgs.qrencode
+ gnunetpkgs.gnunet
+ exchangepkgs.exchange
+ donaupkgs.donau
+ merchantpkgs.merchant
+ ];
+ preConfigure = ''
+ patchShebangs --build contrib/check-prebuilt
+ ./bootstrap
+ '';
+ };
+ }
+ );
+ defaultPackage = forEachSystem (system: self.packages.${system}.anastasis);
+ # This defines a development shell in which you can compile
+ # (and use) exchange
+ devShells = forEachSystem
+ (system:
+ let
+ pkgs = nixpkgsFor.${system};
+ gnunetpkgs = gnunet.packages.${system};
+ exchangepkgs = exchange.packages.${system};
+ donaupkgs = donau.packages.${system};
+ merchantpkgs = merchant.packages.${system};
+ in
+ {
+ default = pkgs.mkShell {
+ packages = [
+ pkgs.gcc
+ pkgs.meson
+ pkgs.ninja
+ pkgs.gnumake
+ pkgs.texinfo
+ pkgs.pkg-config
+ pkgs.libtool
+ pkgs.jansson
+ pkgs.git
+ pkgs.gettext
+ pkgs.postgresql
+ pkgs.curlWithGnuTls
+ gnunetpkgs.gnunet
+ pkgs.codespell
+ pkgs.clang-tools
+ pkgs.uncrustify
+ pkgs.jq #probably not needed
+ pkgs.doxygen
+ pkgs.typst
+ pkgs.pdftk
+ pkgs.qrencode
+ exchangepkgs.exchange
+ donaupkgs.donau
+ merchantpkgs.merchant
+ ];
+
+ shellHook = ''
+ echo "anastasis environment loaded."
+ export CC=gcc
+ export CFLAGS="-O"
+ '';
+ };
+ });
+ };
+}
diff --git a/m4/ax_compare_version.m4 b/m4/ax_compare_version.m4
@@ -1,177 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_compare_version.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
-#
-# DESCRIPTION
-#
-# This macro compares two version strings. Due to the various number of
-# minor-version numbers that can exist, and the fact that string
-# comparisons are not compatible with numeric comparisons, this is not
-# necessarily trivial to do in a autoconf script. This macro makes doing
-# these comparisons easy.
-#
-# The six basic comparisons are available, as well as checking equality
-# limited to a certain number of minor-version levels.
-#
-# The operator OP determines what type of comparison to do, and can be one
-# of:
-#
-# eq - equal (test A == B)
-# ne - not equal (test A != B)
-# le - less than or equal (test A <= B)
-# ge - greater than or equal (test A >= B)
-# lt - less than (test A < B)
-# gt - greater than (test A > B)
-#
-# Additionally, the eq and ne operator can have a number after it to limit
-# the test to that number of minor versions.
-#
-# eq0 - equal up to the length of the shorter version
-# ne0 - not equal up to the length of the shorter version
-# eqN - equal up to N sub-version levels
-# neN - not equal up to N sub-version levels
-#
-# When the condition is true, shell commands ACTION-IF-TRUE are run,
-# otherwise shell commands ACTION-IF-FALSE are run. The environment
-# variable 'ax_compare_version' is always set to either 'true' or 'false'
-# as well.
-#
-# Examples:
-#
-# AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8])
-# AX_COMPARE_VERSION([3.15],[lt],[3.15.8])
-#
-# would both be true.
-#
-# AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8])
-# AX_COMPARE_VERSION([3.15],[gt],[3.15.8])
-#
-# would both be false.
-#
-# AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8])
-#
-# would be true because it is only comparing two minor versions.
-#
-# AX_COMPARE_VERSION([3.15.7],[eq0],[3.15])
-#
-# would be true because it is only comparing the lesser number of minor
-# versions of the two values.
-#
-# Note: The characters that separate the version numbers do not matter. An
-# empty string is the same as version 0. OP is evaluated by autoconf, not
-# configure, so must be a string, not a variable.
-#
-# The author would like to acknowledge Guido Draheim whose advice about
-# the m4_case and m4_ifvaln functions make this macro only include the
-# portions necessary to perform the specific comparison specified by the
-# OP argument in the final configure script.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Tim Toolan <toolan@ele.uri.edu>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 13
-
-dnl #########################################################################
-AC_DEFUN([AX_COMPARE_VERSION], [
- AC_REQUIRE([AC_PROG_AWK])
-
- # Used to indicate true or false condition
- ax_compare_version=false
-
- # Convert the two version strings to be compared into a format that
- # allows a simple string comparison. The end result is that a version
- # string of the form 1.12.5-r617 will be converted to the form
- # 0001001200050617. In other words, each number is zero padded to four
- # digits, and non digits are removed.
- AS_VAR_PUSHDEF([A],[ax_compare_version_A])
- A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
- -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
- -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
- -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
- -e 's/[[^0-9]]//g'`
-
- AS_VAR_PUSHDEF([B],[ax_compare_version_B])
- B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
- -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
- -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
- -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
- -e 's/[[^0-9]]//g'`
-
- dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary
- dnl # then the first line is used to determine if the condition is true.
- dnl # The sed right after the echo is to remove any indented white space.
- m4_case(m4_tolower($2),
- [lt],[
- ax_compare_version=`echo "x$A
-x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"`
- ],
- [gt],[
- ax_compare_version=`echo "x$A
-x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"`
- ],
- [le],[
- ax_compare_version=`echo "x$A
-x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"`
- ],
- [ge],[
- ax_compare_version=`echo "x$A
-x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"`
- ],[
- dnl Split the operator from the subversion count if present.
- m4_bmatch(m4_substr($2,2),
- [0],[
- # A count of zero means use the length of the shorter version.
- # Determine the number of characters in A and B.
- ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'`
- ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'`
-
- # Set A to no more than B's length and B to no more than A's length.
- A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"`
- B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"`
- ],
- [[0-9]+],[
- # A count greater than zero means use only that many subversions
- A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
- B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
- ],
- [.+],[
- AC_WARNING(
- [invalid OP numeric parameter: $2])
- ],[])
-
- # Pad zeros at end of numbers to make same length.
- ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`"
- B="$B`echo $A | sed 's/./0/g'`"
- A="$ax_compare_version_tmp_A"
-
- # Check for equality or inequality as necessary.
- m4_case(m4_tolower(m4_substr($2,0,2)),
- [eq],[
- test "x$A" = "x$B" && ax_compare_version=true
- ],
- [ne],[
- test "x$A" != "x$B" && ax_compare_version=true
- ],[
- AC_WARNING([invalid OP parameter: $2])
- ])
- ])
-
- AS_VAR_POPDEF([A])dnl
- AS_VAR_POPDEF([B])dnl
-
- dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE.
- if test "$ax_compare_version" = "true" ; then
- m4_ifvaln([$4],[$4],[:])dnl
- m4_ifvaln([$5],[else $5])dnl
- fi
-]) dnl AX_COMPARE_VERSION
diff --git a/m4/ax_lib_postgresql.m4 b/m4/ax_lib_postgresql.m4
@@ -1,247 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_lib_postgresql.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_LIB_POSTGRESQL([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-#
-# DESCRIPTION
-#
-# This macro provides tests of availability of PostgreSQL 'libpq' library
-# of particular version or newer.
-#
-# AX_LIB_POSTGRESQL macro takes only one argument which is optional. If
-# there is no required version passed, then macro does not run version
-# test.
-#
-# The --with-postgresql option takes one of three possible values:
-#
-# no - do not check for PostgreSQL client library
-#
-# yes - do check for PostgreSQL library in standard locations (pg_config
-# should be in the PATH)
-#
-# path - complete path to pg_config utility, use this option if pg_config
-# can't be found in the PATH (You could set also PG_CONFIG variable)
-#
-# This macro calls:
-#
-# AC_SUBST(POSTGRESQL_CPPFLAGS)
-# AC_SUBST(POSTGRESQL_LDFLAGS)
-# AC_SUBST(POSTGRESQL_LIBS)
-# AC_SUBST(POSTGRESQL_VERSION)
-#
-# And sets:
-#
-# HAVE_POSTGRESQL
-#
-# It execute if found ACTION-IF-FOUND (empty by default) and
-# ACTION-IF-NOT-FOUND (AC_MSG_FAILURE by default) if not found.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
-# Copyright (c) 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
-# Copyright (c) 2018 Bastien Roucaries <rouca@debian.org>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 22
-
-AC_DEFUN([_AX_LIB_POSTGRESQL_OLD],[
- found_postgresql="no"
- _AX_LIB_POSTGRESQL_OLD_fail="no"
- while true; do
- AC_CACHE_CHECK([for the pg_config program], [ac_cv_path_PG_CONFIG],
- [AC_PATH_PROGS_FEATURE_CHECK([PG_CONFIG], [pg_config],
- [[ac_cv_path_PG_CONFIG="";$ac_path_PG_CONFIG --includedir > /dev/null \
- && ac_cv_path_PG_CONFIG=$ac_path_PG_CONFIG ac_path_PG_CONFIG_found=:]],
- [ac_cv_path_PG_CONFIG=""])])
- PG_CONFIG=$ac_cv_path_PG_CONFIG
- AS_IF([test "X$PG_CONFIG" = "X"],[break])
-
- AC_CACHE_CHECK([for the PostgreSQL libraries CPPFLAGS],[ac_cv_POSTGRESQL_CPPFLAGS],
- [ac_cv_POSTGRESQL_CPPFLAGS="-I`$PG_CONFIG --includedir`" || _AX_LIB_POSTGRESQL_OLD_fail=yes])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_OLD_fail" = "Xyes"],[break])
- POSTGRESQL_CPPFLAGS="$ac_cv_POSTGRESQL_CPPFLAGS"
-
- AC_CACHE_CHECK([for the PostgreSQL libraries LDFLAGS],[ac_cv_POSTGRESQL_LDFLAGS],
- [ac_cv_POSTGRESQL_LDFLAGS="-L`$PG_CONFIG --libdir`" || _AX_LIB_POSTGRESQL_OLD_fail=yes])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_OLD_fail" = "Xyes"],[break])
- POSTGRESQL_LDFLAGS="$ac_cv_POSTGRESQL_LDFLAGS"
-
- AC_CACHE_CHECK([for the PostgreSQL libraries LIBS],[ac_cv_POSTGRESQL_LIBS],
- [ac_cv_POSTGRESQL_LIBS="-lpq"])
- POSTGRESQL_LIBS="$ac_cv_POSTGRESQL_LIBS"
-
- AC_CACHE_CHECK([for the PostgreSQL version],[ac_cv_POSTGRESQL_VERSION],
- [
- ac_cv_POSTGRESQL_VERSION=`$PG_CONFIG --version | sed "s/^PostgreSQL[[[:space:]]][[[:space:]]]*\([[0-9.]][[0-9.]]*\).*/\1/"` \
- || _AX_LIB_POSTGRESQL_OLD_fail=yes
- ])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_OLD_fail" = "Xyes"],[break])
- POSTGRESQL_VERSION="$ac_cv_POSTGRESQL_VERSION"
-
-
- dnl
- dnl Check if required version of PostgreSQL is available
- dnl
- AS_IF([test X"$postgresql_version_req" != "X"],[
- AC_MSG_CHECKING([if PostgreSQL version $POSTGRESQL_VERSION is >= $postgresql_version_req])
- AX_COMPARE_VERSION([$POSTGRESQL_VERSION],[ge],[$postgresql_version_req],
- [found_postgresql_req_version=yes],[found_postgresql_req_version=no])
- AC_MSG_RESULT([$found_postgresql_req_version])
- ])
- AS_IF([test "Xfound_postgresql_req_version" = "Xno"],[break])
-
- found_postgresql="yes"
- break
- done
-])
-
-AC_DEFUN([_AX_LIB_POSTGRESQL_PKG_CONFIG],
-[
- AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- found_postgresql=no
-
- while true; do
- PKG_PROG_PKG_CONFIG
- AS_IF([test X$PKG_CONFIG = X],[break])
-
- _AX_LIB_POSTGRESQL_PKG_CONFIG_fail=no;
- AS_IF([test "X$postgresql_version_req" = "X"],
- [PKG_CHECK_EXISTS([libpq],[found_postgresql_pkg_config=yes],[found_postgresql=no])],
- [PKG_CHECK_EXISTS([libpq >= "$postgresql_version_req"],
- [found_postgresql=yes],[found_postgresql=no])])
- AS_IF([test "X$found_postgresql" = "no"],[break])
-
- AC_CACHE_CHECK([for the PostgreSQL libraries CPPFLAGS],[ac_cv_POSTGRESQL_CPPFLAGS],
- [ac_cv_POSTGRESQL_CPPFLAGS="`$PKG_CONFIG libpq --cflags-only-I`" || _AX_LIB_POSTGRESQL_PKG_CONFIG_fail=yes])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_PKG_CONFIG_fail" = "Xyes"],[break])
- POSTGRESQL_CPPFLAGS="$ac_cv_POSTGRESQL_CPPFLAGS"
-
-
- AC_CACHE_CHECK([for the PostgreSQL libraries LDFLAGS],[ac_cv_POSTGRESQL_LDFLAGS],
- [ac_cv_POSTGRESQL_LDFLAGS="`$PKG_CONFIG libpq --libs-only-L --libs-only-other`" || _AX_LIB_POSTGRESQL_PKG_CONFIG_fail=yes])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_PKG_CONFIG_fail" = "Xyes"],[break])
- POSTGRESQL_LDFLAGS="$ac_cv_POSTGRESQL_LDFLAGS"
-
-
- AC_CACHE_CHECK([for the PostgreSQL libraries LIBS],[ac_cv_POSTGRESQL_LIBS],
- [ac_cv_POSTGRESQL_LIBS="`$PKG_CONFIG libpq --libs-only-l`" || _AX_LIB_POSTGRESQL_PKG_CONFIG_fail=ye])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_PKG_CONFIG_fail" = "Xyes"],[break])
- POSTGRESQL_LIBS="$ac_cv_POSTGRESQL_LIBS"
-
- dnl already checked by exist but need to be recovered
- AC_CACHE_CHECK([for the PostgreSQL version],[ac_cv_POSTGRESQL_VERSION],
- [ac_cv_POSTGRESQL_VERSION="`$PKG_CONFIG libpq --modversion`" || _AX_LIB_POSTGRESQL_PKG_CONFIG_fail=yes])
- AS_IF([test "X$_AX_LIB_POSTGRESQL_PKG_CONFIG_fail" = "Xyes"],[break])
- POSTGRESQL_VERSION="$ac_cv_POSTGRESQL_VERSION"
-
- found_postgresql=yes
- break;
- done
-
-])
-
-
-
-AC_DEFUN([AX_LIB_POSTGRESQL],
-[
- AC_ARG_WITH([postgresql],
- AS_HELP_STRING([--with-postgresql=@<:@ARG@:>@],
- [use PostgreSQL library @<:@default=yes@:>@, optionally specify path to pg_config]
- ),
- [
- AS_CASE([$withval],
- [[[nN]][[oO]]],[want_postgresql="no"],
- [[[yY]][[eE]][[sS]]],[want_postgresql="yes"],
- [
- want_postgresql="yes"
- PG_CONFIG="$withval"
- ])
- ],
- [want_postgresql="yes"]
- )
-
- AC_ARG_VAR([POSTGRESQL_CPPFLAGS],[cpp flags for PostgreSQL overriding detected flags])
- AC_ARG_VAR([POSTGRESQL_LIBFLAGS],[libs for PostgreSQL overriding detected flags])
- AC_ARG_VAR([POSTGRESQL_LDFLAGS],[linker flags for PostgreSQL overriding detected flags])
-
- # populate cache
- AS_IF([test "X$POSTGRESQL_CPPFLAGS" != X],[ac_cv_POSTGRESQL_CPPFLAGS="$POSTGRESQL_CPPFLAGS"])
- AS_IF([test "X$POSTGRESQL_LDFLAGS" != X],[ac_cv_POSTGRESQL_LDFLAGS="$POSTGRESQL_LDFLAGS"])
- AS_IF([test "X$POSTGRESQL_LIBS" != X],[ac_cv_POSTGRESQL_LIBS="$POSTGRESQL_LIBS"])
-
- postgresql_version_req=ifelse([$1], [], [], [$1])
- found_postgresql="no"
-
- POSTGRESQL_VERSION=""
-
- dnl
- dnl Check PostgreSQL libraries (libpq)
- dnl
- AS_IF([test X"$want_postgresql" = "Xyes"],[
- _AX_LIB_POSTGRESQL_PKG_CONFIG
-
-
- AS_IF([test X"$found_postgresql" = "Xno"],
- [_AX_LIB_POSTGRESQL_OLD])
-
- AS_IF([test X"$found_postgresql" = Xyes],[
- _AX_LIB_POSTGRESQL_OLD_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
- _AX_LIB_POSTGRESQL_OLD_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $POSTGRESQL_LDFLAGS"
- _AX_LIB_POSTGRESQL_OLD_LIBS="$LIBS"
- LIBS="$LIBS $POSTGRESQL_LIBS"
- while true; do
- dnl try to compile
- AC_CHECK_HEADER([libpq-fe.h],[],[found_postgresql=no])
- AS_IF([test "X$found_postgresql" = "Xno"],[break])
- dnl try now to link
- AC_CACHE_CHECK([for the PostgreSQL library linking is working],[ac_cv_postgresql_found],
- [
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM(
- [
- #include <libpq-fe.h>
- ],
- [[
- char conninfo[]="dbname = postgres";
- PGconn *conn;
- conn = PQconnectdb(conninfo);
- ]]
- )
- ],[ac_cv_postgresql_found=yes],
- [ac_cv_postgresql_found=no])
- ])
- found_postgresql="$ac_cv_postgresql_found"
- AS_IF([test "X$found_postgresql" = "Xno"],[break])
- break
- done
- CPPFLAGS="$_AX_LIB_POSTGRESQL_OLD_CPPFLAGS"
- LDFLAGS="$_AX_LIB_POSTGRESQL_OLD_LDFLAGS"
- LIBS="$_AX_LIB_POSTGRESQL_OLD_LIBS"
- ])
-
-
- AS_IF([test "x$found_postgresql" = "xyes"],[
- AC_DEFINE([HAVE_POSTGRESQL], [1],
- [Define to 1 if PostgreSQL libraries are available])])
- ])
-
- AC_SUBST([POSTGRESQL_VERSION])
- AC_SUBST([POSTGRESQL_CPPFLAGS])
- AC_SUBST([POSTGRESQL_LDFLAGS])
- AC_SUBST([POSTGRESQL_LIBS])
-
- AS_IF([test "x$found_postgresql" = "xyes"],
- [ifelse([$2], , :, [$2])],
- [ifelse([$3], , AS_IF([test X"$want_postgresql" = "Xyes"],[AC_MSG_ERROR([Library requirements (PostgreSQL) not met.])],[:]), [$3])])
-
-])
diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4
@@ -1,586 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...)
-# DX_DOXYGEN_FEATURE(ON|OFF)
-# DX_DOT_FEATURE(ON|OFF)
-# DX_HTML_FEATURE(ON|OFF)
-# DX_CHM_FEATURE(ON|OFF)
-# DX_CHI_FEATURE(ON|OFF)
-# DX_MAN_FEATURE(ON|OFF)
-# DX_RTF_FEATURE(ON|OFF)
-# DX_XML_FEATURE(ON|OFF)
-# DX_PDF_FEATURE(ON|OFF)
-# DX_PS_FEATURE(ON|OFF)
-#
-# DESCRIPTION
-#
-# The DX_*_FEATURE macros control the default setting for the given
-# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for
-# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML
-# help (for MS users), 'CHI' for generating a separate .chi file by the
-# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate
-# output formats. The environment variable DOXYGEN_PAPER_SIZE may be
-# specified to override the default 'a4wide' paper size.
-#
-# By default, HTML, PDF and PS documentation is generated as this seems to
-# be the most popular and portable combination. MAN pages created by
-# Doxygen are usually problematic, though by picking an appropriate subset
-# and doing some massaging they might be better than nothing. CHM and RTF
-# are specific for MS (note that you can't generate both HTML and CHM at
-# the same time). The XML is rather useless unless you apply specialized
-# post-processing to it.
-#
-# The macros mainly control the default state of the feature. The use can
-# override the default by specifying --enable or --disable. The macros
-# ensure that contradictory flags are not given (e.g.,
-# --enable-doxygen-html and --enable-doxygen-chm,
-# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each
-# feature will be automatically disabled (with a warning) if the required
-# programs are missing.
-#
-# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN
-# with the following parameters: a one-word name for the project for use
-# as a filename base etc., an optional configuration file name (the
-# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and an
-# optional output directory name (the default is 'doxygen-doc'). To run
-# doxygen multiple times for different configuration files and output
-# directories provide more parameters: the second, forth, sixth, etc
-# parameter are configuration file names and the third, fifth, seventh,
-# etc parameter are output directories. No checking is done to catch
-# duplicates.
-#
-# Automake Support
-#
-# The DX_RULES substitution can be used to add all needed rules to the
-# Makefile. Note that this is a substitution without being a variable:
-# only the @DX_RULES@ syntax will work.
-#
-# The provided targets are:
-#
-# doxygen-doc: Generate all doxygen documentation.
-#
-# doxygen-run: Run doxygen, which will generate some of the
-# documentation (HTML, CHM, CHI, MAN, RTF, XML)
-# but will not do the post processing required
-# for the rest of it (PS, PDF).
-#
-# doxygen-ps: Generate doxygen PostScript documentation.
-#
-# doxygen-pdf: Generate doxygen PDF documentation.
-#
-# Note that by default these are not integrated into the automake targets.
-# If doxygen is used to generate man pages, you can achieve this
-# integration by setting man3_MANS to the list of man pages generated and
-# then adding the dependency:
-#
-# $(man3_MANS): doxygen-doc
-#
-# This will cause make to run doxygen and generate all the documentation.
-#
-# The following variable is intended for use in Makefile.am:
-#
-# DX_CLEANFILES = everything to clean.
-#
-# Then add this variable to MOSTLYCLEANFILES.
-#
-# LICENSE
-#
-# Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org>
-# Copyright (c) 2015 Olaf Mandel <olaf@mandel.name>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 23
-
-## ----------##
-## Defaults. ##
-## ----------##
-
-DX_ENV=""
-AC_DEFUN([DX_FEATURE_doc], ON)
-AC_DEFUN([DX_FEATURE_dot], OFF)
-AC_DEFUN([DX_FEATURE_man], OFF)
-AC_DEFUN([DX_FEATURE_html], ON)
-AC_DEFUN([DX_FEATURE_chm], OFF)
-AC_DEFUN([DX_FEATURE_chi], OFF)
-AC_DEFUN([DX_FEATURE_rtf], OFF)
-AC_DEFUN([DX_FEATURE_xml], OFF)
-AC_DEFUN([DX_FEATURE_pdf], ON)
-AC_DEFUN([DX_FEATURE_ps], ON)
-
-## --------------- ##
-## Private macros. ##
-## --------------- ##
-
-# DX_ENV_APPEND(VARIABLE, VALUE)
-# ------------------------------
-# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it
-# as a substitution (but not a Makefile variable). The substitution
-# is skipped if the variable name is VERSION.
-AC_DEFUN([DX_ENV_APPEND],
-[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl
-m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl
-AM_SUBST_NOTMAKE([$1])])dnl
-])
-
-# DX_DIRNAME_EXPR
-# ---------------
-# Expand into a shell expression prints the directory part of a path.
-AC_DEFUN([DX_DIRNAME_EXPR],
- [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']])
-
-# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF)
-# -------------------------------------
-# Expands according to the M4 (static) status of the feature.
-AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])])
-
-# DX_REQUIRE_PROG(VARIABLE, PROGRAM)
-# ----------------------------------
-# Require the specified program to be found for the DX_CURRENT_FEATURE to work.
-AC_DEFUN([DX_REQUIRE_PROG], [
-AC_PATH_TOOL([$1], [$2])
-if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then
- AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION])
- AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
-fi
-])
-
-# DX_TEST_FEATURE(FEATURE)
-# ------------------------
-# Expand to a shell expression testing whether the feature is active.
-AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1])
-
-# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE)
-# -------------------------------------------------
-# Verify that a required features has the right state before trying to turn on
-# the DX_CURRENT_FEATURE.
-AC_DEFUN([DX_CHECK_DEPEND], [
-test "$DX_FLAG_$1" = "$2" \
-|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1,
- requires, contradicts) doxygen-DX_CURRENT_FEATURE])
-])
-
-# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE)
-# ----------------------------------------------------------
-# Turn off the DX_CURRENT_FEATURE if the required feature is off.
-AC_DEFUN([DX_CLEAR_DEPEND], [
-test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
-])
-
-# DX_FEATURE_ARG(FEATURE, DESCRIPTION,
-# CHECK_DEPEND, CLEAR_DEPEND,
-# REQUIRE, DO-IF-ON, DO-IF-OFF)
-# --------------------------------------------
-# Parse the command-line option controlling a feature. CHECK_DEPEND is called
-# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND),
-# otherwise CLEAR_DEPEND is called to turn off the default state if a required
-# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional
-# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and
-# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature.
-AC_DEFUN([DX_ARG_ABLE], [
- AC_DEFUN([DX_CURRENT_FEATURE], [$1])
- AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2])
- AC_ARG_ENABLE(doxygen-$1,
- [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1],
- [--enable-doxygen-$1]),
- DX_IF_FEATURE([$1], [don't $2], [$2]))],
- [
-case "$enableval" in
-#(
-y|Y|yes|Yes|YES)
- AC_SUBST([DX_FLAG_$1], 1)
- $3
-;; #(
-n|N|no|No|NO)
- AC_SUBST([DX_FLAG_$1], 0)
-;; #(
-*)
- AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1])
-;;
-esac
-], [
-AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)])
-$4
-])
-if DX_TEST_FEATURE([$1]); then
- $5
- :
-fi
-if DX_TEST_FEATURE([$1]); then
- $6
- :
-else
- $7
- :
-fi
-])
-
-## -------------- ##
-## Public macros. ##
-## -------------- ##
-
-# DX_XXX_FEATURE(DEFAULT_STATE)
-# -----------------------------
-AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])])
-AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])])
-AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])])
-AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])])
-AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])])
-AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])])
-AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])])
-AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])])
-AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])])
-AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])])
-AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])])
-
-# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...)
-# --------------------------------------------------------------
-# PROJECT also serves as the base name for the documentation files.
-# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is
-# "doxygen-doc".
-# More arguments are interpreted as interleaved CONFIG-FILE and
-# OUTPUT-DOC-DIR values.
-AC_DEFUN([DX_INIT_DOXYGEN], [
-
-# Files:
-AC_SUBST([DX_PROJECT], [$1])
-AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])'])
-AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])'])
-m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2,
- [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]),
- 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
- [$(srcdir)/Doxyfile])')])])dnl
-m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2,
- [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]),
- 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
- [doxygen-doc])')])])dnl
-m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1,
- [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])],
- [])))dnl
-
-# Environment variables used inside doxygen.cfg:
-DX_ENV_APPEND(SRCDIR, $srcdir)
-DX_ENV_APPEND(PROJECT, $DX_PROJECT)
-DX_ENV_APPEND(VERSION, $PACKAGE_VERSION)
-
-# Doxygen itself:
-DX_ARG_ABLE(doc, [generate any doxygen documentation],
- [],
- [],
- [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen)
- DX_REQUIRE_PROG([DX_PERL], perl)],
- [DX_ENV_APPEND(PERL_PATH, $DX_PERL)])
-
-# Dot for graphics:
-DX_ARG_ABLE(dot, [generate graphics for doxygen documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [DX_REQUIRE_PROG([DX_DOT], dot)],
- [DX_ENV_APPEND(HAVE_DOT, YES)
- DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])],
- [DX_ENV_APPEND(HAVE_DOT, NO)])
-
-# Man pages generation:
-DX_ARG_ABLE(man, [generate doxygen manual pages],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [],
- [DX_ENV_APPEND(GENERATE_MAN, YES)],
- [DX_ENV_APPEND(GENERATE_MAN, NO)])
-
-# RTF file generation:
-DX_ARG_ABLE(rtf, [generate doxygen RTF documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [],
- [DX_ENV_APPEND(GENERATE_RTF, YES)],
- [DX_ENV_APPEND(GENERATE_RTF, NO)])
-
-# XML file generation:
-DX_ARG_ABLE(xml, [generate doxygen XML documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [],
- [DX_ENV_APPEND(GENERATE_XML, YES)],
- [DX_ENV_APPEND(GENERATE_XML, NO)])
-
-# (Compressed) HTML help generation:
-DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [DX_REQUIRE_PROG([DX_HHC], hhc)],
- [DX_ENV_APPEND(HHC_PATH, $DX_HHC)
- DX_ENV_APPEND(GENERATE_HTML, YES)
- DX_ENV_APPEND(GENERATE_HTMLHELP, YES)],
- [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)])
-
-# Separate CHI file generation.
-DX_ARG_ABLE(chi, [generate doxygen separate compressed HTML help index file],
- [DX_CHECK_DEPEND(chm, 1)],
- [DX_CLEAR_DEPEND(chm, 1)],
- [],
- [DX_ENV_APPEND(GENERATE_CHI, YES)],
- [DX_ENV_APPEND(GENERATE_CHI, NO)])
-
-# Plain HTML pages generation:
-DX_ARG_ABLE(html, [generate doxygen plain HTML documentation],
- [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)],
- [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)],
- [],
- [DX_ENV_APPEND(GENERATE_HTML, YES)],
- [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)])
-
-# PostScript file generation:
-DX_ARG_ABLE(ps, [generate doxygen PostScript documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [DX_REQUIRE_PROG([DX_LATEX], latex)
- DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
- DX_REQUIRE_PROG([DX_DVIPS], dvips)
- DX_REQUIRE_PROG([DX_EGREP], egrep)])
-
-# PDF file generation:
-DX_ARG_ABLE(pdf, [generate doxygen PDF documentation],
- [DX_CHECK_DEPEND(doc, 1)],
- [DX_CLEAR_DEPEND(doc, 1)],
- [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex)
- DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
- DX_REQUIRE_PROG([DX_EGREP], egrep)])
-
-# LaTeX generation for PS and/or PDF:
-if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then
- DX_ENV_APPEND(GENERATE_LATEX, YES)
-else
- DX_ENV_APPEND(GENERATE_LATEX, NO)
-fi
-
-# Paper size for PS and/or PDF:
-AC_ARG_VAR(DOXYGEN_PAPER_SIZE,
- [a4wide (default), a4, letter, legal or executive])
-case "$DOXYGEN_PAPER_SIZE" in
-#(
-"")
- AC_SUBST(DOXYGEN_PAPER_SIZE, "")
-;; #(
-a4wide|a4|letter|legal|executive)
- DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE)
-;; #(
-*)
- AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'])
-;;
-esac
-
-# Rules:
-AS_IF([[test $DX_FLAG_html -eq 1]],
-[[DX_SNIPPET_html="## ------------------------------- ##
-## Rules specific for HTML output. ##
-## ------------------------------- ##
-
-DX_CLEAN_HTML = \$(DX_DOCDIR)/html]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/html]])[
-
-"]],
-[[DX_SNIPPET_html=""]])
-AS_IF([[test $DX_FLAG_chi -eq 1]],
-[[DX_SNIPPET_chi="
-DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])["]],
-[[DX_SNIPPET_chi=""]])
-AS_IF([[test $DX_FLAG_chm -eq 1]],
-[[DX_SNIPPET_chm="## ------------------------------ ##
-## Rules specific for CHM output. ##
-## ------------------------------ ##
-
-DX_CLEAN_CHM = \$(DX_DOCDIR)/chm]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/chm]])[\
-${DX_SNIPPET_chi}
-
-"]],
-[[DX_SNIPPET_chm=""]])
-AS_IF([[test $DX_FLAG_man -eq 1]],
-[[DX_SNIPPET_man="## ------------------------------ ##
-## Rules specific for MAN output. ##
-## ------------------------------ ##
-
-DX_CLEAN_MAN = \$(DX_DOCDIR)/man]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/man]])[
-
-"]],
-[[DX_SNIPPET_man=""]])
-AS_IF([[test $DX_FLAG_rtf -eq 1]],
-[[DX_SNIPPET_rtf="## ------------------------------ ##
-## Rules specific for RTF output. ##
-## ------------------------------ ##
-
-DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/rtf]])[
-
-"]],
-[[DX_SNIPPET_rtf=""]])
-AS_IF([[test $DX_FLAG_xml -eq 1]],
-[[DX_SNIPPET_xml="## ------------------------------ ##
-## Rules specific for XML output. ##
-## ------------------------------ ##
-
-DX_CLEAN_XML = \$(DX_DOCDIR)/xml]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/xml]])[
-
-"]],
-[[DX_SNIPPET_xml=""]])
-AS_IF([[test $DX_FLAG_ps -eq 1]],
-[[DX_SNIPPET_ps="## ----------------------------- ##
-## Rules specific for PS output. ##
-## ----------------------------- ##
-
-DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]])[
-
-DX_PS_GOAL = doxygen-ps
-
-doxygen-ps: \$(DX_CLEAN_PS)
-
-]m4_foreach([DX_i], [DX_loop],
-[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
- \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
- rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
- \$(DX_LATEX) refman.tex; \\
- \$(DX_MAKEINDEX) refman.idx; \\
- \$(DX_LATEX) refman.tex; \\
- countdown=5; \\
- while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
- refman.log > /dev/null 2>&1 \\
- && test \$\$countdown -gt 0; do \\
- \$(DX_LATEX) refman.tex; \\
- countdown=\`expr \$\$countdown - 1\`; \\
- done; \\
- \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi
-
-]])["]],
-[[DX_SNIPPET_ps=""]])
-AS_IF([[test $DX_FLAG_pdf -eq 1]],
-[[DX_SNIPPET_pdf="## ------------------------------ ##
-## Rules specific for PDF output. ##
-## ------------------------------ ##
-
-DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]])[
-
-DX_PDF_GOAL = doxygen-pdf
-
-doxygen-pdf: \$(DX_CLEAN_PDF)
-
-]m4_foreach([DX_i], [DX_loop],
-[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
- \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
- rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
- \$(DX_PDFLATEX) refman.tex; \\
- \$(DX_MAKEINDEX) refman.idx; \\
- \$(DX_PDFLATEX) refman.tex; \\
- countdown=5; \\
- while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
- refman.log > /dev/null 2>&1 \\
- && test \$\$countdown -gt 0; do \\
- \$(DX_PDFLATEX) refman.tex; \\
- countdown=\`expr \$\$countdown - 1\`; \\
- done; \\
- mv refman.pdf ../\$(PACKAGE).pdf
-
-]])["]],
-[[DX_SNIPPET_pdf=""]])
-AS_IF([[test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1]],
-[[DX_SNIPPET_latex="## ------------------------------------------------- ##
-## Rules specific for LaTeX (shared for PS and PDF). ##
-## ------------------------------------------------- ##
-
-DX_V_LATEX = \$(_DX_v_LATEX_\$(V))
-_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY))
-_DX_v_LATEX_0 = @echo \" LATEX \" \$][@;
-
-DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex]dnl
-m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
- \$(DX_DOCDIR]DX_i[)/latex]])[
-
-"]],
-[[DX_SNIPPET_latex=""]])
-
-AS_IF([[test $DX_FLAG_doc -eq 1]],
-[[DX_SNIPPET_doc="## --------------------------------- ##
-## Format-independent Doxygen rules. ##
-## --------------------------------- ##
-
-${DX_SNIPPET_html}\
-${DX_SNIPPET_chm}\
-${DX_SNIPPET_man}\
-${DX_SNIPPET_rtf}\
-${DX_SNIPPET_xml}\
-${DX_SNIPPET_ps}\
-${DX_SNIPPET_pdf}\
-${DX_SNIPPET_latex}\
-DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V))
-_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY))
-_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<;
-
-.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
-
-.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
-
-doxygen-run:]m4_foreach([DX_i], [DX_loop],
- [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]])[
-
-doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
-
-]m4_foreach([DX_i], [DX_loop],
-[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) \$(pkginclude_HEADERS)
- \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[)
- \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[)
- \$(A""M_V_at)echo Timestamp >\$][@
-
-]])dnl
-[DX_CLEANFILES = \\]
-m4_foreach([DX_i], [DX_loop],
-[[ \$(DX_DOCDIR]DX_i[)/doxygen_sqlite3.db \\
- \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\
-]])dnl
-[ -r \\
- \$(DX_CLEAN_HTML) \\
- \$(DX_CLEAN_CHM) \\
- \$(DX_CLEAN_CHI) \\
- \$(DX_CLEAN_MAN) \\
- \$(DX_CLEAN_RTF) \\
- \$(DX_CLEAN_XML) \\
- \$(DX_CLEAN_PS) \\
- \$(DX_CLEAN_PDF) \\
- \$(DX_CLEAN_LATEX)"]],
-[[DX_SNIPPET_doc=""]])
-AC_SUBST([DX_RULES],
-["${DX_SNIPPET_doc}"])dnl
-AM_SUBST_NOTMAKE([DX_RULES])
-
-#For debugging:
-#echo DX_FLAG_doc=$DX_FLAG_doc
-#echo DX_FLAG_dot=$DX_FLAG_dot
-#echo DX_FLAG_man=$DX_FLAG_man
-#echo DX_FLAG_html=$DX_FLAG_html
-#echo DX_FLAG_chm=$DX_FLAG_chm
-#echo DX_FLAG_chi=$DX_FLAG_chi
-#echo DX_FLAG_rtf=$DX_FLAG_rtf
-#echo DX_FLAG_xml=$DX_FLAG_xml
-#echo DX_FLAG_pdf=$DX_FLAG_pdf
-#echo DX_FLAG_ps=$DX_FLAG_ps
-#echo DX_ENV=$DX_ENV
-])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
@@ -1,420 +0,0 @@
-# gettext.m4 serial 68 (gettext-0.19.8)
-dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl default (if it is not specified or empty) is 'no-libtool'.
-dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl depending on --{enable,disable}-{shared,static} and on the presence of
-dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl implementations (in libc or libintl) without the ngettext() function
-dnl will be ignored. If NEEDSYMBOL is specified and is
-dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries. If empty,
-dnl the value '$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl and used.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl Catalog format: none
-dnl Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
- dnl Argument checking.
- ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
- ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
- [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
- ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
- define([gt_included_intl],
- ifelse([$1], [external],
- ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
- [yes]))
- define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
- gt_NEEDS_INIT
- AM_GNU_GETTEXT_NEED([$2])
-
- AC_REQUIRE([AM_PO_SUBDIRS])dnl
- ifelse(gt_included_intl, yes, [
- AC_REQUIRE([AM_INTL_SUBDIR])dnl
- ])
-
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- dnl Ideally we would do this search only after the
- dnl if test "$USE_NLS" = "yes"; then
- dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
- dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
- dnl the configure script would need to contain the same shell code
- dnl again, outside any 'if'. There are two solutions:
- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
- dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
- dnl documented, we avoid it.
- ifelse(gt_included_intl, yes, , [
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- ])
-
- dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
- gt_INTL_MACOSX
-
- dnl Set USE_NLS.
- AC_REQUIRE([AM_NLS])
-
- ifelse(gt_included_intl, yes, [
- BUILD_INCLUDED_LIBINTL=no
- USE_INCLUDED_LIBINTL=no
- ])
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- dnl Add a version number to the cache macros.
- case " $gt_needs " in
- *" need-formatstring-macros "*) gt_api_version=3 ;;
- *" need-ngettext "*) gt_api_version=2 ;;
- *) gt_api_version=1 ;;
- esac
- gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
- gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
- ifelse(gt_included_intl, yes, [
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH([included-gettext],
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- ])
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If GNU gettext is available we use this. Else we have
- dnl to fall back to GNU NLS library.
-
- if test $gt_api_version -ge 3; then
- gt_revision_test_code='
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-'
- else
- gt_revision_test_code=
- fi
- if test $gt_api_version -ge 2; then
- gt_expression_test_code=' + * ngettext ("", "", 0)'
- else
- gt_expression_test_code=
- fi
-
- AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
- ]],
- [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
- ]])],
- [eval "$gt_func_gnugettext_libc=yes"],
- [eval "$gt_func_gnugettext_libc=no"])])
-
- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- ifelse(gt_included_intl, yes, , [
- AM_ICONV_LINK
- ])
- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
- dnl even if libiconv doesn't exist.
- AC_LIB_LINKFLAGS_BODY([intl])
- AC_CACHE_CHECK([for GNU gettext in libintl],
- [$gt_func_gnugettext_libintl],
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- dnl Now see whether libintl exists and does not depend on libiconv.
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
- ]],
- [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
- ]])],
- [eval "$gt_func_gnugettext_libintl=yes"],
- [eval "$gt_func_gnugettext_libintl=no"])
- dnl Now see whether libintl exists and depends on libiconv.
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
- ]],
- [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
- ]])],
- [LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- eval "$gt_func_gnugettext_libintl=yes"
- ])
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- fi
-
- dnl If an already present or preinstalled GNU gettext() is found,
- dnl use it. But if this macro is used in GNU gettext, and GNU
- dnl gettext is already preinstalled in libintl, we update this
- dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
- || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
- && test "$PACKAGE" != gettext-runtime \
- && test "$PACKAGE" != gettext-tools; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- dnl Reset the values set by searching for libintl.
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
- ifelse(gt_included_intl, yes, [
- if test "$gt_use_preinstalled_gnugettext" != "yes"; then
- dnl GNU gettext is not found in the C library.
- dnl Fall back on included GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- BUILD_INCLUDED_LIBINTL=yes
- USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
- fi
-
- CATOBJEXT=
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions to use GNU gettext tools.
- CATOBJEXT=.gmo
- fi
- ])
-
- if test -n "$INTL_MACOSX_LIBS"; then
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Some extra flags are needed during linking.
- LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
- LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
- fi
- fi
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE([ENABLE_NLS], [1],
- [Define to 1 if translation of program messages to the user's native language
- is requested.])
- else
- USE_NLS=no
- fi
- fi
-
- AC_MSG_CHECKING([whether to use NLS])
- AC_MSG_RESULT([$USE_NLS])
- if test "$USE_NLS" = "yes"; then
- AC_MSG_CHECKING([where the gettext function comes from])
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
- gt_source="external libintl"
- else
- gt_source="libc"
- fi
- else
- gt_source="included intl directory"
- fi
- AC_MSG_RESULT([$gt_source])
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
- AC_MSG_CHECKING([how to link with libintl])
- AC_MSG_RESULT([$LIBINTL])
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
- fi
-
- dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE([HAVE_GETTEXT], [1],
- [Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE([HAVE_DCGETTEXT], [1],
- [Define if the GNU dcgettext() function is already present or preinstalled.])
- fi
-
- dnl We need to process the po/ directory.
- POSUB=po
- fi
-
- ifelse(gt_included_intl, yes, [
- dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
- dnl to 'yes' because some of the testsuite requires it.
- if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
- BUILD_INCLUDED_LIBINTL=yes
- fi
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST([BUILD_INCLUDED_LIBINTL])
- AC_SUBST([USE_INCLUDED_LIBINTL])
- AC_SUBST([CATOBJEXT])
-
- dnl For backward compatibility. Some configure.ins may be using this.
- nls_cv_header_intl=
- nls_cv_header_libgt=
-
- dnl For backward compatibility. Some Makefiles may be using this.
- DATADIRNAME=share
- AC_SUBST([DATADIRNAME])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INSTOBJEXT=.mo
- AC_SUBST([INSTOBJEXT])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- GENCAT=gencat
- AC_SUBST([GENCAT])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLOBJS=
- if test "$USE_INCLUDED_LIBINTL" = yes; then
- INTLOBJS="\$(GETTOBJS)"
- fi
- AC_SUBST([INTLOBJS])
-
- dnl Enable libtool support if the surrounding package wishes it.
- INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
- ])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLLIBS="$LIBINTL"
- AC_SUBST([INTLLIBS])
-
- dnl Make all documented variables known to autoconf.
- AC_SUBST([LIBINTL])
- AC_SUBST([LTLIBINTL])
- AC_SUBST([POSUB])
-])
-
-
-dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
-m4_define([gt_NEEDS_INIT],
-[
- m4_divert_text([DEFAULTS], [gt_needs=])
- m4_define([gt_NEEDS_INIT], [])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
-AC_DEFUN([AM_GNU_GETTEXT_NEED],
-[
- m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-
-dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff --git a/m4/iconv.m4 b/m4/iconv.m4
@@ -1,271 +0,0 @@
-# iconv.m4 serial 19 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
- AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <stdlib.h>
-#include <iconv.h>
- ]],
- [[iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);]])],
- [am_cv_func_iconv=yes])
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <stdlib.h>
-#include <iconv.h>
- ]],
- [[iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);]])],
- [am_cv_lib_iconv=yes]
- [am_cv_func_iconv=yes])
- LIBS="$am_save_LIBS"
- fi
- ])
- if test "$am_cv_func_iconv" = yes; then
- AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
- dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
- dnl Solaris 10.
- am_save_LIBS="$LIBS"
- if test $am_cv_lib_iconv = yes; then
- LIBS="$LIBS $LIBICONV"
- fi
- am_cv_func_iconv_works=no
- for ac_iconv_const in '' 'const'; do
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <iconv.h>
-#include <string.h>
-
-#ifndef ICONV_CONST
-# define ICONV_CONST $ac_iconv_const
-#endif
- ]],
- [[int result = 0;
- /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
- returns. */
- {
- iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
- if (cd_utf8_to_88591 != (iconv_t)(-1))
- {
- static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
- char buf[10];
- ICONV_CONST char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_utf8_to_88591,
- &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (res == 0)
- result |= 1;
- iconv_close (cd_utf8_to_88591);
- }
- }
- /* Test against Solaris 10 bug: Failures are not distinguishable from
- successful returns. */
- {
- iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
- if (cd_ascii_to_88591 != (iconv_t)(-1))
- {
- static ICONV_CONST char input[] = "\263";
- char buf[10];
- ICONV_CONST char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_ascii_to_88591,
- &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (res == 0)
- result |= 2;
- iconv_close (cd_ascii_to_88591);
- }
- }
- /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
- {
- iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
- if (cd_88591_to_utf8 != (iconv_t)(-1))
- {
- static ICONV_CONST char input[] = "\304";
- static char buf[2] = { (char)0xDE, (char)0xAD };
- ICONV_CONST char *inptr = input;
- size_t inbytesleft = 1;
- char *outptr = buf;
- size_t outbytesleft = 1;
- size_t res = iconv (cd_88591_to_utf8,
- &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
- result |= 4;
- iconv_close (cd_88591_to_utf8);
- }
- }
-#if 0 /* This bug could be worked around by the caller. */
- /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
- {
- iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
- if (cd_88591_to_utf8 != (iconv_t)(-1))
- {
- static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- char buf[50];
- ICONV_CONST char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_88591_to_utf8,
- &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if ((int)res > 0)
- result |= 8;
- iconv_close (cd_88591_to_utf8);
- }
- }
-#endif
- /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
- provided. */
- if (/* Try standardized names. */
- iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
- /* Try IRIX, OSF/1 names. */
- && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
- /* Try AIX names. */
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- result |= 16;
- return result;
-]])],
- [am_cv_func_iconv_works=yes], ,
- [case "$host_os" in
- aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
- *) am_cv_func_iconv_works="guessing yes" ;;
- esac])
- test "$am_cv_func_iconv_works" = no || break
- done
- LIBS="$am_save_LIBS"
- ])
- case "$am_cv_func_iconv_works" in
- *no) am_func_iconv=no am_cv_lib_iconv=no ;;
- *) am_func_iconv=yes ;;
- esac
- else
- am_func_iconv=no am_cv_lib_iconv=no
- fi
- if test "$am_func_iconv" = yes; then
- AC_DEFINE([HAVE_ICONV], [1],
- [Define if you have the iconv() function and it works.])
- fi
- if test "$am_cv_lib_iconv" = yes; then
- AC_MSG_CHECKING([how to link with libiconv])
- AC_MSG_RESULT([$LIBICONV])
- else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
- AC_SUBST([LIBICONV])
- AC_SUBST([LTLIBICONV])
-])
-
-dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
-dnl avoid warnings like
-dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
-dnl This is tricky because of the way 'aclocal' is implemented:
-dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
-dnl Otherwise aclocal's initial scan pass would miss the macro definition.
-dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
-dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
-dnl warnings.
-m4_define([gl_iconv_AC_DEFUN],
- m4_version_prereq([2.64],
- [[AC_DEFUN_ONCE(
- [$1], [$2])]],
- [m4_ifdef([gl_00GNULIB],
- [[AC_DEFUN_ONCE(
- [$1], [$2])]],
- [[AC_DEFUN(
- [$1], [$2])]])]))
-gl_iconv_AC_DEFUN([AM_ICONV],
-[
- AM_ICONV_LINK
- if test "$am_cv_func_iconv" = yes; then
- AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL([am_cv_proto_iconv], [
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
- ]],
- [[]])],
- [am_cv_proto_iconv_arg1=""],
- [am_cv_proto_iconv_arg1="const"])
- am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
- am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([
- $am_cv_proto_iconv])
- AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
- [Define as const if the declaration of iconv() needs const.])
- dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
- m4_ifdef([gl_ICONV_H_DEFAULTS],
- [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
- if test -n "$am_cv_proto_iconv_arg1"; then
- ICONV_CONST="const"
- fi
- ])
- fi
-])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
@@ -1,119 +0,0 @@
-# lib-ld.m4 serial 6
-dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
-dnl collision with libtool.m4.
-
-dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- acl_cv_prog_gnu_ld=yes
- ;;
-*)
- acl_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-2.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld [default=no]])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
- # contains only /bin. Note that ksh looks also at the FPATH variable,
- # so we have to set that as well for the test.
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
- && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
- || PATH_SEPARATOR=';'
- }
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
- while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL([acl_cv_path_LD],
-[if test -z "$LD"; then
- acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$acl_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$acl_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT([$LD])
-else
- AC_MSG_RESULT([no])
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
@@ -1,777 +0,0 @@
-# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_PREREQ([2.54])
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
-dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- pushdef([Name],[m4_translit([$1],[./+-], [____])])
- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
- ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
- ])
- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
- LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- AC_SUBST([LIB]NAME[_PREFIX])
- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
- dnl results of this search when this library appears as a dependency.
- HAVE_LIB[]NAME=yes
- popdef([NAME])
- popdef([Name])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. The missing-message
-dnl defaults to 'no' and may contain additional hints for the user.
-dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
-dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
-dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- pushdef([Name],[m4_translit([$1],[./+-], [____])])
- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-
- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
- dnl because if the user has installed lib[]Name and not disabled its use
- dnl via --without-lib[]Name-prefix, he wants to use it.
- ac_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
- ac_save_LIBS="$LIBS"
- dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
- dnl because these -l options might require -L options that are present in
- dnl LIBS. -l options benefit only from the -L options listed before it.
- dnl Otherwise, add it to the front of LIBS, because it may be a static
- dnl library that depends on another static library that is present in LIBS.
- dnl Static libraries benefit only from the static libraries listed after
- dnl it.
- case " $LIB[]NAME" in
- *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
- *) LIBS="$LIB[]NAME $LIBS" ;;
- esac
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[$3]], [[$4]])],
- [ac_cv_lib[]Name=yes],
- [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
- LIBS="$ac_save_LIBS"
- ])
- if test "$ac_cv_lib[]Name" = yes; then
- HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
- AC_MSG_CHECKING([how to link with lib[]$1])
- AC_MSG_RESULT([$LIB[]NAME])
- else
- HAVE_LIB[]NAME=no
- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
- dnl $INC[]NAME either.
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIB[]NAME=
- LTLIB[]NAME=
- LIB[]NAME[]_PREFIX=
- fi
- AC_SUBST([HAVE_LIB]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- AC_SUBST([LIB]NAME[_PREFIX])
- popdef([NAME])
- popdef([Name])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl acl_libext,
-dnl acl_shlibext,
-dnl acl_libname_spec,
-dnl acl_library_names_spec,
-dnl acl_hardcode_libdir_flag_spec,
-dnl acl_hardcode_libdir_separator,
-dnl acl_hardcode_direct,
-dnl acl_hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
- dnl Tell automake >= 1.10 to complain if config.rpath is missing.
- m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
- ])
- wl="$acl_cv_wl"
- acl_libext="$acl_cv_libext"
- acl_shlibext="$acl_cv_shlibext"
- acl_libname_spec="$acl_cv_libname_spec"
- acl_library_names_spec="$acl_cv_library_names_spec"
- acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- acl_hardcode_direct="$acl_cv_hardcode_direct"
- acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
- dnl Determine whether the user wants rpath handling at all.
- AC_ARG_ENABLE([rpath],
- [ --disable-rpath do not hardcode runtime library paths],
- :, enable_rpath=yes)
-])
-
-dnl AC_LIB_FROMPACKAGE(name, package)
-dnl declares that libname comes from the given package. The configure file
-dnl will then not have a --with-libname-prefix option but a
-dnl --with-package-prefix option. Several libraries can come from the same
-dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
-dnl macro call that searches for libname.
-AC_DEFUN([AC_LIB_FROMPACKAGE],
-[
- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
- define([acl_frompackage_]NAME, [$2])
- popdef([NAME])
- pushdef([PACK],[$2])
- pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
- define([acl_libsinpackage_]PACKUP,
- m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
- popdef([PACKUP])
- popdef([PACK])
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
-dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
- pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
- pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
- pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
- dnl Autoconf >= 2.61 supports dots in --with options.
- pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_ARG_WITH(P_A_C_K[-prefix],
-[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
- --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/$acl_libdirstem"
- if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
- additional_libdir="$withval/$acl_libdirstem2"
- fi
- fi
- fi
-])
- dnl Search the library and its dependencies in $additional_libdir and
- dnl $LDFLAGS. Using breadth-first-seach.
- LIB[]NAME=
- LTLIB[]NAME=
- INC[]NAME=
- LIB[]NAME[]_PREFIX=
- dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
- dnl computed. So it has to be reset here.
- HAVE_LIB[]NAME=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='$1 $2'
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
- dnl or AC_LIB_HAVE_LINKFLAGS call.
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
- else
- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
- dnl that this library doesn't exist. So just drop it.
- :
- fi
- else
- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
- dnl and the already constructed $LIBNAME/$LTLIBNAME.
- found_dir=
- found_la=
- found_so=
- found_a=
- eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
- if test -n "$acl_shlibext"; then
- shrext=".$acl_shlibext" # typically: shrext=.so
- else
- shrext=
- fi
- if test $use_additional = yes; then
- dir="$additional_libdir"
- dnl The same code as in the loop below:
- dnl First look for a shared library.
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- dnl Then look for a static library.
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- dnl First look for a shared library.
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- dnl Then look for a static library.
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- dnl Found the library.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- dnl Linking with a shared library. We attempt to hardcode its
- dnl directory into the executable's runpath, unless it's the
- dnl standard /usr/lib.
- if test "$enable_rpath" = no \
- || test "X$found_dir" = "X/usr/$acl_libdirstem" \
- || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
- dnl No hardcoding is needed.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- dnl The hardcoding into $LIBNAME is system dependent.
- if test "$acl_hardcode_direct" = yes; then
- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
- dnl resulting binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- dnl Rely on "-L$found_dir".
- dnl But don't add it if it's already contained in the LDFLAGS
- dnl or the already constructed $LIBNAME
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
- fi
- if test "$acl_hardcode_minus_L" != no; then
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
- dnl here, because this doesn't fit in flags passed to the
- dnl compiler. So give up. No hardcoding. This affects only
- dnl very old systems.
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- dnl Linking with a static library.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
- else
- dnl We shouldn't come here, but anyway it's good to have a
- dnl fallback.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
- fi
- fi
- dnl Assume the include files are nearby.
- additional_includedir=
- case "$found_dir" in
- */$acl_libdirstem | */$acl_libdirstem/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
- if test "$name" = '$1'; then
- LIB[]NAME[]_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- */$acl_libdirstem2 | */$acl_libdirstem2/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
- if test "$name" = '$1'; then
- LIB[]NAME[]_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- dnl Potentially add $additional_includedir to $INCNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
- dnl 3. if it's already present in $CPPFLAGS or the already
- dnl constructed $INCNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INC[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $INCNAME.
- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- dnl Look for dependencies.
- if test -n "$found_la"; then
- dnl Read the .la file. It defines the variables
- dnl dlname, library_names, old_library, dependency_libs, current,
- dnl age, revision, installed, dlopen, dlpreopen, libdir.
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- dnl We use only dependency_libs.
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 3. if it's already present in $LDFLAGS or the already
- dnl constructed $LIBNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
- && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
- || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- dnl Handle this in the next round.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- dnl Handle this in the next round. Throw away the .la's
- dnl directory; it is already contained in a preceding -L
- dnl option.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- dnl Most likely an immediate library name.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
- ;;
- esac
- done
- fi
- else
- dnl Didn't find the library; assume it is in the system directories
- dnl known to the linker and runtime loader. (All the system
- dnl directories known to the linker should also be known to the
- dnl runtime loader, otherwise the system is severely misconfigured.)
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$acl_hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user must
- dnl pass all path elements in one option. We can arrange that for a
- dnl single library, but not when more than one $LIBNAMEs are used.
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
- done
- dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- else
- dnl The -rpath options are cumulative.
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- dnl When using libtool, the option that works for both libraries and
- dnl executables is -R. The -R options are cumulative.
- for found_dir in $ltrpathdirs; do
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
- done
- fi
- popdef([P_A_C_K])
- popdef([PACKLIBS])
- popdef([PACKUP])
- popdef([PACK])
- popdef([NAME])
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
- for element in [$2]; do
- haveit=
- for x in $[$1]; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- [$1]="${[$1]}${[$1]:+ }$element"
- fi
- done
-])
-
-dnl For those cases where a variable contains several -L and -l options
-dnl referring to unknown libraries and directories, this macro determines the
-dnl necessary additional linker options for the runtime path.
-dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
-dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
-dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
-dnl otherwise linking without libtool is assumed.
-AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
-[
- AC_REQUIRE([AC_LIB_RPATH])
- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
- $1=
- if test "$enable_rpath" != no; then
- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode directories into the resulting
- dnl binary.
- rpathdirs=
- next=
- for opt in $2; do
- if test -n "$next"; then
- dir="$next"
- dnl No need to hardcode the standard /usr/lib.
- if test "X$dir" != "X/usr/$acl_libdirstem" \
- && test "X$dir" != "X/usr/$acl_libdirstem2"; then
- rpathdirs="$rpathdirs $dir"
- fi
- next=
- else
- case $opt in
- -L) next=yes ;;
- -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
- dnl No need to hardcode the standard /usr/lib.
- if test "X$dir" != "X/usr/$acl_libdirstem" \
- && test "X$dir" != "X/usr/$acl_libdirstem2"; then
- rpathdirs="$rpathdirs $dir"
- fi
- next= ;;
- *) next= ;;
- esac
- fi
- done
- if test "X$rpathdirs" != "X"; then
- if test -n ""$3""; then
- dnl libtool is used for linking. Use -R options.
- for dir in $rpathdirs; do
- $1="${$1}${$1:+ }-R$dir"
- done
- else
- dnl The linker is used for linking directly.
- if test -n "$acl_hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user
- dnl must pass all path elements in one option.
- alldirs=
- for dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- $1="$flag"
- else
- dnl The -rpath options are cumulative.
- for dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$dir"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- $1="${$1}${$1:+ }$flag"
- done
- fi
- fi
- fi
- fi
- fi
- AC_SUBST([$1])
-])
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
@@ -1,224 +0,0 @@
-# lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/$acl_libdirstem"
- fi
- fi
-])
- if test $use_additional = yes; then
- dnl Potentially add $additional_includedir to $CPPFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's already present in $CPPFLAGS,
- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- for x in $CPPFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $CPPFLAGS.
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- dnl Potentially add $additional_libdir to $LDFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's already present in $LDFLAGS,
- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
- haveit=
- for x in $LDFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LDFLAGS.
- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
- dnl Unfortunately, prefix and exec_prefix get only finally determined
- dnl at the end of configure.
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- $1
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_PREPARE_MULTILIB creates
-dnl - a variable acl_libdirstem, containing the basename of the libdir, either
-dnl "lib" or "lib64" or "lib/64",
-dnl - a variable acl_libdirstem2, as a secondary possible value for
-dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
-dnl "lib/amd64".
-AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
-[
- dnl There is no formal standard regarding lib and lib64.
- dnl On glibc systems, the current practice is that on a system supporting
- dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
- dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
- dnl the compiler's default mode by looking at the compiler's library search
- dnl path. If at least one of its elements ends in /lib64 or points to a
- dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
- dnl Otherwise we use the default, namely "lib".
- dnl On Solaris systems, the current practice is that on a system supporting
- dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
- dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
- dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
- AC_REQUIRE([AC_CANONICAL_HOST])
- acl_libdirstem=lib
- acl_libdirstem2=
- case "$host_os" in
- solaris*)
- dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
- dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
- dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
- dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
- dnl symlink is missing, so we set acl_libdirstem2 too.
- AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
- [AC_EGREP_CPP([sixtyfour bits], [
-#ifdef _LP64
-sixtyfour bits
-#endif
- ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
- ])
- if test $gl_cv_solaris_64bit = yes; then
- acl_libdirstem=lib/64
- case "$host_cpu" in
- sparc*) acl_libdirstem2=lib/sparcv9 ;;
- i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
- esac
- fi
- ;;
- *)
- searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
- if test -n "$searchpath"; then
- acl_save_IFS="${IFS= }"; IFS=":"
- for searchdir in $searchpath; do
- if test -d "$searchdir"; then
- case "$searchdir" in
- */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
- */../ | */.. )
- # Better ignore directories of this form. They are misleading.
- ;;
- *) searchdir=`cd "$searchdir" && pwd`
- case "$searchdir" in
- */lib64 ) acl_libdirstem=lib64 ;;
- esac ;;
- esac
- fi
- done
- IFS="$acl_save_IFS"
- fi
- ;;
- esac
- test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
-])
diff --git a/m4/libcurl.m4 b/m4/libcurl.m4
@@ -1,251 +0,0 @@
-# LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION],
-# [ACTION-IF-YES], [ACTION-IF-NO])
-# ----------------------------------------------------------
-# David Shaw <dshaw@jabberwocky.com> May-09-2006
-#
-# Checks for libcurl. DEFAULT-ACTION is the string yes or no to
-# specify whether to default to --with-libcurl or --without-libcurl.
-# If not supplied, DEFAULT-ACTION is yes. MINIMUM-VERSION is the
-# minimum version of libcurl to accept. Pass the version as a regular
-# version number like 7.10.1. If not supplied, any version is
-# accepted. ACTION-IF-YES is a list of shell commands to run if
-# libcurl was successfully found and passed the various tests.
-# ACTION-IF-NO is a list of shell commands that are run otherwise.
-# Note that using --without-libcurl does run ACTION-IF-NO.
-#
-# This macro #defines HAVE_LIBCURL if a working libcurl setup is
-# found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary
-# values. Other useful defines are LIBCURL_FEATURE_xxx where xxx are
-# the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy
-# where yyy are the various protocols supported by libcurl. Both xxx
-# and yyy are capitalized. See the list of AH_TEMPLATEs at the top of
-# the macro for the complete list of possible defines. Shell
-# variables $libcurl_feature_xxx and $libcurl_protocol_yyy are also
-# defined to 'yes' for those features and protocols that were found.
-# Note that xxx and yyy keep the same capitalization as in the
-# curl-config list (e.g. it's "HTTP" and not "http").
-#
-# Users may override the detected values by doing something like:
-# LIBCURL="-lcurl" LIBCURL_CPPFLAGS="-I/usr/myinclude" ./configure
-#
-# For the sake of sanity, this macro assumes that any libcurl that is
-# found is after version 7.7.2, the first version that included the
-# curl-config script. Note that it is very important for people
-# packaging binary versions of libcurl to include this script!
-# Without curl-config, we can only guess what protocols are available,
-# or use curl_version_info to figure it out at runtime.
-
-AC_DEFUN([LIBCURL_CHECK_CONFIG],
-[
- AH_TEMPLATE([LIBCURL_FEATURE_SSL],[Defined if libcurl supports SSL])
- AH_TEMPLATE([LIBCURL_FEATURE_KRB4],[Defined if libcurl supports KRB4])
- AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6])
- AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz])
- AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports AsynchDNS])
- AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN])
- AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI])
- AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM])
-
- AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS])
- AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS])
- AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE])
- AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET])
- AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT])
- AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_RTSP],[Defined if libcurl supports RTSP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_POP3],[Defined if libcurl supports POP3])
- AH_TEMPLATE([LIBCURL_PROTOCOL_IMAP],[Defined if libcurl supports IMAP])
- AH_TEMPLATE([LIBCURL_PROTOCOL_SMTP],[Defined if libcurl supports SMTP])
-
- AC_ARG_WITH(libcurl,
- AS_HELP_STRING([--with-libcurl=PREFIX],[look for the curl library in PREFIX/lib and headers in PREFIX/include]),
- [_libcurl_with=$withval],[_libcurl_with=ifelse([$1],,[yes],[$1])])
-
- if test "$_libcurl_with" != "no" ; then
-
- AC_PROG_AWK
-
- _libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); X=256*256*A[[1]]+256*A[[2]]+A[[3]]; print X;}'"
-
- _libcurl_try_link=yes
-
- if test -d "$_libcurl_with" ; then
- LIBCURL_CPPFLAGS="-I$withval/include"
- _libcurl_ldflags="-L$withval/lib"
- AC_PATH_PROG([_libcurl_config],[curl-config],[],
- ["$withval/bin"])
- else
- AC_PATH_PROG([_libcurl_config],[curl-config],[],[$PATH])
- fi
-
- if test x$_libcurl_config != "x" ; then
- AC_CACHE_CHECK([for the version of libcurl],
- [libcurl_cv_lib_curl_version],
- [libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $[]2}'`])
-
- _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse`
- _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse`
-
- if test $_libcurl_wanted -gt 0 ; then
- AC_CACHE_CHECK([for libcurl >= version $2],
- [libcurl_cv_lib_version_ok],
- [
- if test $_libcurl_version -ge $_libcurl_wanted ; then
- libcurl_cv_lib_version_ok=yes
- else
- libcurl_cv_lib_version_ok=no
- fi
- ])
- fi
-
- if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then
- if test x"$LIBCURL_CPPFLAGS" = "x" ; then
- LIBCURL_CPPFLAGS=`$_libcurl_config --cflags`
- fi
- if test x"$LIBCURL" = "x" ; then
- LIBCURL=`$_libcurl_config --libs`
-
- # This is so silly, but Apple actually has a bug in their
- # curl-config script. Fixed in Tiger, but there are still
- # lots of Panther installs around.
- case "${host}" in
- powerpc-apple-darwin7*)
- LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'`
- ;;
- esac
- fi
-
- # All curl-config scripts support --feature
- _libcurl_features=`$_libcurl_config --feature`
-
- # Is it modern enough to have --protocols? (7.12.4)
- if test $_libcurl_version -ge 461828 ; then
- _libcurl_protocols=`$_libcurl_config --protocols`
- fi
- else
- _libcurl_try_link=no
- fi
-
- unset _libcurl_wanted
- fi
-
- if test $_libcurl_try_link = yes ; then
-
- # we didn't find curl-config, so let's see if the user-supplied
- # link line (or failing that, "-lcurl") is enough.
- LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"}
-
- AC_CACHE_CHECK([whether libcurl is usable],
- [libcurl_cv_lib_curl_usable],
- [
- _libcurl_save_cppflags=$CPPFLAGS
- CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS"
- _libcurl_save_libs=$LIBS
- LIBS="$LIBCURL $LIBS"
-
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
-/* Try and use a few common options to force a failure if we are
- missing symbols or can't link. */
-int x;
-curl_easy_setopt(NULL,CURLOPT_URL,NULL);
-x=CURL_ERROR_SIZE;
-x=CURLOPT_WRITEFUNCTION;
-x=CURLOPT_WRITEDATA;
-x=CURLOPT_ERRORBUFFER;
-x=CURLOPT_STDERR;
-x=CURLOPT_VERBOSE;
-if (x) ;
-]])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no)
-
- CPPFLAGS=$_libcurl_save_cppflags
- LIBS=$_libcurl_save_libs
- unset _libcurl_save_cppflags
- unset _libcurl_save_libs
- ])
-
- if test $libcurl_cv_lib_curl_usable = yes ; then
-
- # Does curl_free() exist in this version of libcurl?
- # If not, fake it with free()
-
- _libcurl_save_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
- _libcurl_save_libs=$LIBS
- LIBS="$LIBS $LIBCURL"
-
- AC_CHECK_FUNC(curl_free,,
- AC_DEFINE(curl_free,free,
- [Define curl_free() as free() if our version of curl lacks curl_free.]))
-
- CPPFLAGS=$_libcurl_save_cppflags
- LIBS=$_libcurl_save_libs
- unset _libcurl_save_cppflags
- unset _libcurl_save_libs
-
- AC_DEFINE(HAVE_LIBCURL,1,
- [Define to 1 if you have a functional curl library.])
- AC_SUBST(LIBCURL_CPPFLAGS)
- AC_SUBST(LIBCURL)
-
- for _libcurl_feature in $_libcurl_features ; do
- AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1])
- eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes
- done
-
- if test "x$_libcurl_protocols" = "x" ; then
-
- # We don't have --protocols, so just assume that all
- # protocols are available
- _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP"
-
- if test x$libcurl_feature_SSL = xyes ; then
- _libcurl_protocols="$_libcurl_protocols HTTPS"
-
- # FTPS wasn't standards-compliant until version
- # 7.11.0 (0x070b00 == 461568)
- if test $_libcurl_version -ge 461568; then
- _libcurl_protocols="$_libcurl_protocols FTPS"
- fi
- fi
-
- # RTSP, IMAP, POP3 and SMTP were added in
- # 7.20.0 (0x071400 == 463872)
- if test $_libcurl_version -ge 463872; then
- _libcurl_protocols="$_libcurl_protocols RTSP IMAP POP3 SMTP"
- fi
- fi
-
- for _libcurl_protocol in $_libcurl_protocols ; do
- AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1])
- eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes
- done
- else
- unset LIBCURL
- unset LIBCURL_CPPFLAGS
- fi
- fi
-
- unset _libcurl_try_link
- unset _libcurl_version_parse
- unset _libcurl_config
- unset _libcurl_feature
- unset _libcurl_features
- unset _libcurl_protocol
- unset _libcurl_protocols
- unset _libcurl_version
- unset _libcurl_ldflags
- fi
-
- if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then
- # This is the IF-NO path
- ifelse([$4],,:,[$4])
- else
- # This is the IF-YES path
- ifelse([$3],,:,[$3])
- fi
-
- unset _libcurl_with
-])dnl
diff --git a/m4/nls.m4 b/m4/nls.m4
@@ -1,32 +0,0 @@
-# nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software
-dnl Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ([2.50])
-
-AC_DEFUN([AM_NLS],
-[
- AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE([nls],
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT([$USE_NLS])
- AC_SUBST([USE_NLS])
-])
diff --git a/m4/po.m4 b/m4/po.m4
@@ -1,453 +0,0 @@
-# po.m4 serial 24 (gettext-0.19)
-dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ([2.60])
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
- AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AC_PROG_MKDIR_P])dnl
- AC_REQUIRE([AC_PROG_SED])dnl
- AC_REQUIRE([AM_NLS])dnl
-
- dnl Release version of the gettext macros. This is used to ensure that
- dnl the gettext macros and po/Makefile.in.in are in sync.
- AC_SUBST([GETTEXT_MACRO_VERSION], [0.19])
-
- dnl Perform the following tests also if --disable-nls has been given,
- dnl because they are needed for "make dist" to work.
-
- dnl Search for GNU msgfmt in the PATH.
- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
- dnl The second test excludes FreeBSD msgfmt.
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
-
- dnl Test whether it is GNU msgfmt >= 0.15.
-changequote(,)dnl
- case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
- *) MSGFMT_015=$MSGFMT ;;
- esac
-changequote([,])dnl
- AC_SUBST([MSGFMT_015])
-changequote(,)dnl
- case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
- *) GMSGFMT_015=$GMSGFMT ;;
- esac
-changequote([,])dnl
- AC_SUBST([GMSGFMT_015])
-
- dnl Search for GNU xgettext 0.12 or newer in the PATH.
- dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
- dnl The second test excludes FreeBSD xgettext.
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
-
- dnl Test whether it is GNU xgettext >= 0.15.
-changequote(,)dnl
- case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
- *) XGETTEXT_015=$XGETTEXT ;;
- esac
-changequote([,])dnl
- AC_SUBST([XGETTEXT_015])
-
- dnl Search for GNU msgmerge 0.11 or newer in the PATH.
- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
-
- dnl Installation directories.
- dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
- dnl have to define it here, so that it can be used in po/Makefile.
- test -n "$localedir" || localedir='${datadir}/locale'
- AC_SUBST([localedir])
-
- dnl Support for AM_XGETTEXT_OPTION.
- test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
- AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
-
- AC_CONFIG_COMMANDS([po-directories], [[
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- # Treat a directory as a PO directory if and only if it has a
- # POTFILES.in file. This allows packages to have multiple PO
- # directories under different names or in different locations.
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- gt_tab=`printf '\t'`
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- POMAKEFILEDEPS="POTFILES.in"
- # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assignment from automake < 1.5.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # The set of available languages was given in configure.in.
- # Hide the ALL_LINGUAS assignment from automake < 1.5.
- eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
- fi
- # Compute POFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
- # Compute UPDATEPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
- # Compute DUMMYPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
- # Compute GMOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- GMOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done]],
- [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
- # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
- # from automake < 1.5.
- eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
- ])
-])
-
-dnl Postprocesses a Makefile in a directory containing PO files.
-AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
-[
- # When this code is run, in config.status, two variables have already been
- # set:
- # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
- # - LINGUAS is the value of the environment variable LINGUAS at configure
- # time.
-
-changequote(,)dnl
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- # Find a way to echo strings without interpreting backslash.
- if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
- gt_echo='echo'
- else
- if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
- gt_echo='printf %s\n'
- else
- echo_func () {
- cat <<EOT
-$*
-EOT
- }
- gt_echo='echo_func'
- fi
- fi
-
- # A sed script that extracts the value of VARIABLE from a Makefile.
- tab=`printf '\t'`
- sed_x_variable='
-# Test if the hold space is empty.
-x
-s/P/P/
-x
-ta
-# Yes it was empty. Look if we have the expected variable definition.
-/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
- # Seen the first line of the variable definition.
- s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
- ba
-}
-bd
-:a
-# Here we are processing a line from the variable definition.
-# Remove comment, more precisely replace it with a space.
-s/#.*$/ /
-# See if the line ends in a backslash.
-tb
-:b
-s/\\$//
-# Print the line, without the trailing backslash.
-p
-tc
-# There was no trailing backslash. The end of the variable definition is
-# reached. Clear the hold space.
-s/^.*$//
-x
-bd
-:c
-# A trailing backslash means that the variable definition continues in the
-# next line. Put a nonempty string into the hold space to indicate this.
-s/^.*$/P/
-x
-:d
-'
-changequote([,])dnl
-
- # Set POTFILES to the value of the Makefile variable POTFILES.
- sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
- POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
- # Compute POTFILES_DEPS as
- # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
- POTFILES_DEPS=
- for file in $POTFILES; do
- POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
- done
- POMAKEFILEDEPS=""
-
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
- sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
- ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
- fi
- # Hide the ALL_LINGUAS assignment from automake < 1.5.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- # Compute POFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
- # Compute UPDATEPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
- # Compute DUMMYPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
- # Compute GMOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
- # Compute PROPERTIESFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
- # Compute CLASSFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
- # Compute QMFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
- # Compute MSGFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
- # Compute RESOURCESDLLFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- GMOFILES=
- PROPERTIESFILES=
- CLASSFILES=
- QMFILES=
- MSGFILES=
- RESOURCESDLLFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
- CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
- QMFILES="$QMFILES $srcdirpre$lang.qm"
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- JAVACATALOGS=
- QTCATALOGS=
- TCLCATALOGS=
- CSHARPCATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
- QTCATALOGS="$QTCATALOGS $lang.qm"
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
- done
- fi
-
- sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
- tab=`printf '\t'`
- if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
- # Add dependencies that cannot be formulated as a simple suffix rule.
- for lang in $ALL_LINGUAS; do
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- cat >> "$ac_file.tmp" <<EOF
-$frobbedlang.msg: $lang.po
-${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
- done
- fi
- if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
- # Add dependencies that cannot be formulated as a simple suffix rule.
- for lang in $ALL_LINGUAS; do
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- cat >> "$ac_file.tmp" <<EOF
-$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
- done
- fi
- if test -n "$POMAKEFILEDEPS"; then
- cat >> "$ac_file.tmp" <<EOF
-Makefile: $POMAKEFILEDEPS
-EOF
- fi
- mv "$ac_file.tmp" "$ac_file"
-])
-
-dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
-AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
-[
- XGETTEXT_EXTRA_OPTIONS=
-])
-
-dnl Registers an option to be passed to xgettext in the po subdirectory.
-AC_DEFUN([AM_XGETTEXT_OPTION],
-[
- AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
- XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
-])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
@@ -1,91 +0,0 @@
-# progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-AC_PREREQ([2.50])
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
- # contains only /bin. Note that ksh looks also at the FPATH variable,
- # so we have to set that as well for the test.
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
- && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
- || PATH_SEPARATOR=';'
- }
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL([ac_cv_path_$1],
-[case "[$]$1" in
- [[\\/]]* | ?:[[\\/]]*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$][$1])
-else
- AC_MSG_RESULT([no])
-fi
-AC_SUBST([$1])dnl
-])
diff --git a/meson.build b/meson.build
@@ -0,0 +1,372 @@
+project(
+ 'anastasis',
+ 'c',
+ license: 'AGPLv3',
+ meson_version: '>=1.1.0',
+ version: '0.7.1',
+)
+
+cc = meson.get_compiler('c')
+incdir = include_directories('src/include')
+
+# Used to populate gnunet_private_config.h
+private_config = configuration_data()
+
+
+plugindir = get_option('libdir') / 'anastasis'
+pkgdatadir = get_option('datadir') / 'anastasis'
+pkgcfgdir = pkgdatadir / 'config.d'
+docdir = get_option('datadir') / 'doc' / 'anastasis'
+
+if get_option('install-rpath')
+ rpath_option = get_option('prefix') / get_option('libdir')
+else
+ rpath_option = ''
+endif
+
+install_emptydir(docdir)
+install_data('README', 'COPYING', install_dir: docdir)
+
+gnunet_user = false
+dpkg_architecture_bin = find_program(
+ 'dpkg-architecture',
+ '/usr/bin/dpkg-architecture',
+ required: false,
+)
+if dpkg_architecture_bin.found()
+ private_config.set(
+ 'MULTIARCH',
+ dpkg_architecture_bin.full_path() + ' -qDEB_HOST_MULTIARCH',
+ )
+endif
+
+TALER_PLUGIN_LDFLAGS = [
+ '-export-dynamic',
+ '-avoid-version',
+ '-module',
+ '--no-undefined',
+]
+
+cdata = configuration_data()
+if not get_option('only-doc')
+ add_project_arguments(
+ '-Wall',
+ '-Wno-address-of-packed-member',
+ language: 'c',
+ )
+ taler_lib_ldflags = '-export-dynamic -no-undefined'
+
+ check_headers = ['stdint.h', 'stdlib.h', 'string.h', 'unistd.h']
+
+ foreach h : check_headers
+ if cc.check_header(h)
+ define = 'HAVE_' + h.underscorify().to_upper()
+ message(define)
+ private_config.set(define, 1)
+ endif
+ endforeach
+
+ # Gettext
+ i18n = import('i18n')
+
+ gettext_package = 'anastasis'
+ add_project_arguments('-DGETTEXT_PACKAGE=' + gettext_package, language: 'c')
+ add_project_arguments('-DENABLE_NLS=1', language: 'c')
+
+ zlib_dep = dependency('zlib', required: false)
+ if not zlib_dep.found()
+ zlib_dep = cc.find_library('zlib', required: true)
+ endif
+ dl_dep = dependency('libdl', required: false)
+ if not dl_dep.found()
+ dl_dep = cc.find_library('dl', required: true)
+ endif
+ m_dep = cc.find_library('m', required: false)
+ if m_dep.found()
+ private_config.set('HAVE_LIBM', 1)
+ endif
+
+
+ mhd_dep = dependency('libmicrohttpd', required: false)
+ if not mhd_dep.found()
+ mhd_dep = cc.find_library('microhttpd', required: true)
+ endif
+
+ mhd2_dep = dependency('libmicrohttpd2', required: false)
+ if not mhd2_dep.found()
+ mhd_dep2 = cc.find_library('microhttpd2', required: false)
+ endif
+
+ json_dep = dependency('jansson', required: false)
+ if not json_dep.found()
+ json_dep = cc.find_library('jansson', required: true)
+ endif
+
+ gcrypt_dep = dependency('libgcrypt', required: false)
+ if not gcrypt_dep.found()
+ gcrypt_dep = cc.find_library('gcrypt', required: true)
+ endif
+
+ private_config.set_quoted('NEED_LIBGCRYPT_VERSION', '1.6.1')
+
+ gnunetutil_dep = dependency('gnunetutil', required: false)
+ if not gnunetutil_dep.found()
+ gnunetutil_dep = cc.find_library('gnunetutil', required: true)
+ endif
+
+ cc.has_header_symbol(
+ 'gnunet/gnunet_util_lib.h',
+ 'GNUNET_TIME_round_up',
+ dependencies: [gnunetutil_dep],
+ required: true,
+ )
+
+ gnunetjson_dep = dependency('gnunetjson', required: false)
+ if not gnunetjson_dep.found()
+ gnunetjson_dep = cc.find_library('gnunetjson', required: true)
+ endif
+ sodium_dep = dependency('libsodium', required: false, version: '>=1.0.18')
+ if not sodium_dep.found()
+ sodium_dep = cc.find_library('sodium', required: true)
+ sodium_version_check = '''#include <sodium.h>
+ int main(int argc, char **argv) {
+ #if !((SODIUM_LIBRARY_VERSION_MAJOR > 10) || \
+ ((SODIUM_LIBRARY_VERSION_MAJOR == 10) && \
+ (SODIUM_LIBRARY_VERSION_MINOR >= 3)))
+ #error "libsodium version >= 1.0.18 required"
+ #endif
+ return 0
+ }
+ '''
+ if not cc.compiles(
+ sodium_version_check,
+ name: 'sodium version check',
+ dependencies: sodium_dep,
+ )
+ error('libsodium version >=1.0.18 required')
+ endif
+ endif
+
+ curl_dep = dependency('libcurl', version: '>=7.34.0', required: false)
+ if not curl_dep.found()
+ curl_dep = cc.find_library('curl', required: true)
+ curl_version_check = '''#include <curl/curl.h>
+ int main(int argc, char **argv) {
+ #if LIBCURL_VERSION_NUM < 0x073400
+ #error "cURL version >= 7.34.0 required"
+ #endif
+ return 0;
+ }
+ '''
+ if not cc.compiles(
+ curl_version_check,
+ name: 'cURL version check',
+ dependencies: curl_dep,
+ )
+ error('cURL version >=7.34.0 required')
+ endif
+ endif
+
+ gnunetcurl_dep = dependency('gnunetcurl', required: false)
+ if not gnunetcurl_dep.found()
+ gnunetcurl_dep = cc.find_library('gnunetcurl', required: true)
+ endif
+ cc.has_header_symbol(
+ 'gnunet/gnunet_curl_lib.h',
+ 'GNUNET_CURL_get_select_info',
+ dependencies: [gnunetcurl_dep],
+ required: true,
+ )
+ pq_dep = dependency('libpq', required: false)
+ if not pq_dep.found()
+ pq_dep = cc.find_library('pq', required: true)
+ endif
+
+ gnunetpq_dep = dependency('gnunetpq', required: false)
+ if not gnunetpq_dep.found()
+ gnunetpq_dep = cc.find_library('gnunetpq', required: true)
+ endif
+ cc.has_header_symbol(
+ 'gnunet/gnunet_pq_lib.h',
+ 'GNUNET_PQ_query_param_blind_sign_priv',
+ required: true,
+ dependencies: [pq_dep, gnunetpq_dep],
+ )
+ private_config.set10('HAVE_GNUNETPQ', gnunetpq_dep.found())
+
+
+ talerutil_dep = dependency('talerutil', required: false)
+ if not talerutil_dep.found()
+ talerutil_dep = cc.find_library('talerutil', required: true)
+ endif
+ cc.has_header_symbol(
+ 'taler/taler_util.h',
+ 'TALER_merchant_instance_auth_hash_with_salt',
+ required: true,
+ dependencies: [talerutil_dep],
+ )
+ private_config.set10('HAVE_TALERUTIL', talerutil_dep.found())
+
+ talerexchange_dep = dependency('talerexchange', required: false)
+ if not talerexchange_dep.found()
+ talerexchange_dep = cc.find_library('talerexchange', required: true)
+ endif
+ private_config.set10('HAVE_TALEREXCHANGE', talerexchange_dep.found())
+
+ talercurl_dep = dependency('talercurl', required: false)
+ if not talercurl_dep.found()
+ talercurl_dep = cc.find_library('talercurl', required: true)
+ endif
+ talertesting_dep = dependency('talertesting', required: false)
+ if not talertesting_dep.found()
+ talertesting_dep = cc.find_library('talertesting', required: true)
+ endif
+
+ talermhd_dep = dependency('talermhd', required: false)
+ if not talermhd_dep.found()
+ talermhd_dep = cc.find_library('talermhd', required: true)
+ endif
+ cc.has_header_symbol(
+ 'taler/taler_mhd_lib.h',
+ 'TALER_MHD_parse_request_arg_rel_time',
+ required: true,
+ dependencies: [talermhd_dep],
+ )
+ private_config.set10('HAVE_TALERMHD', talermhd_dep.found())
+
+
+ talermerchant_dep = dependency('talermerchant', required: false)
+ if not talermerchant_dep.found()
+ talermerchant_dep = cc.find_library('talermerchant', required: true)
+ endif
+ cc.has_header_symbol(
+ 'taler/taler_merchant_service.h',
+ 'TALER_MERCHANT_parse_pay_uri',
+ required: true,
+ dependencies: [talermerchant_dep],
+ )
+ private_config.set10('HAVE_TALERMERCHANT', talermerchant_dep.found())
+ talermerchanttesting_dep = dependency(
+ 'talermerchanttesting',
+ required: false,
+ )
+ if not talermerchanttesting_dep.found()
+ talermerchanttesting_dep = cc.find_library(
+ 'talermerchanttesting',
+ required: true,
+ )
+ endif
+
+ talerjson_dep = dependency('talerjson', required: false)
+ if not talerjson_dep.found()
+ talerjson_dep = cc.find_library('talerjson', required: true)
+ endif
+ cc.has_header_symbol(
+ 'taler/taler_json_lib.h',
+ 'TALER_JSON_currency_specs_to_json',
+ required: true,
+ dependencies: [talerjson_dep],
+ )
+ private_config.set10('HAVE_TALERJSON', talerjson_dep.found())
+
+
+ talerpq_dep = dependency('talerpq', required: false)
+ if not talerpq_dep.found()
+ talerpq_dep = cc.find_library('talerpq', required: true)
+ endif
+ cc.has_header_symbol(
+ 'taler/taler_pq_lib.h',
+ 'TALER_PQ_query_param_array_blinded_denom_sig',
+ required: true,
+ dependencies: [talerpq_dep, pq_dep],
+ )
+ private_config.set10('HAVE_TALERPQ', talerpq_dep.found())
+
+ logging_opt = get_option('logging')
+ logging_verbosity = 0
+
+ if logging_opt == 'yes'
+ logging_verbosity = 1
+ endif
+ if logging_opt == 'no'
+ add_project_arguments('-DGNUNET_CULL_LOGGING=1', language: 'c')
+ endif
+ if logging_opt == 'verbose'
+ logging_verbosity = 2
+ endif
+ if logging_opt == 'veryverbose'
+ logging_verbosity = 3
+ endif
+
+ #add_project_arguments('-DGNUNET_EXTRA_LOGGING=@0@'.format(logging_verbosity), language: 'c')
+
+
+ # todo gcov has meson builtin
+
+ # Used to populate configuration file and script templates
+
+
+ libltversions = [
+ ['libanastasis', '0:0:0'],
+ ['libanastasisutil', '0:0:0'],
+ ['libanastasisauthorization', '0:0:0'],
+ ['libanastasiseufin', '0:0:0'],
+ ['libanastasisdb', '2:0:0'],
+ ['libanastasisrest', '0:0:0'],
+ ['libanastasistesting', '0:0:0'],
+ ['libanastasisredux', '0:0:0'],
+ ]
+
+ solibversions = {}
+
+ foreach libversion : libltversions
+ ltversion = libversion[1].split(':')
+ current = ltversion[0].to_int()
+ revision = ltversion[1].to_int()
+ age = ltversion[2].to_int()
+ soversion_str = '@0@'.format(current - age)
+ ltversion_str = '@0@.@1@.@2@'.format(current - age, age, revision)
+ solibversions = solibversions + {
+ libversion[0]: {
+ 'soversion': soversion_str,
+ 'version': ltversion_str,
+ },
+ }
+ endforeach
+
+ private_config.set_quoted('PACKAGE', meson.project_name())
+ private_config.set_quoted('PACKAGE_VERSION', meson.project_version())
+ # Compatibility. Used in source.
+ private_config.set_quoted('VERSION', meson.project_version())
+ private_config.set_quoted('VCS_VERSION', 'mesonbuild')
+ private_config.set_quoted('PACKAGE_BUGREPORT', 'taler@gnu.org')
+ configure_file(output: 'anastasis_config.h', configuration: private_config)
+ configuration_inc = include_directories('.')
+
+ cdata.merge_from(private_config)
+ add_project_arguments('-DHAVE_CONFIG_H', language: 'c')
+
+ pkg = import('pkgconfig')
+ subdir('contrib')
+ subdir('src')
+ if not get_option('disable-doc')
+ subdir('doc')
+ endif
+
+ taler_prefix = get_option('prefix') / get_option('libdir')
+
+ add_test_setup(
+ 'default',
+ env: ['ANASTASIS_PREFIX=' + taler_prefix],
+ exclude_suites: ['perf', 'installcheck', 'integrationtests'],
+ is_default: true,
+ )
+else
+ subdir('contrib')
+ if not get_option('disable-doc')
+ subdir('doc')
+ endif
+endif
+
+#meson.add_dist_script('meson-dist-script')
+
diff --git a/meson.options b/meson.options
@@ -0,0 +1,5 @@
+# Build options
+option('only-doc', type : 'boolean', value : false, description: 'whether to compile documentation ONLY')
+option('disable-doc', type : 'boolean', value : false, description: 'whether to disable documentation')
+option('install-rpath', type : 'boolean', value : false, description: 'Add rpath to installed binaries if set')
+option('logging', type : 'string', value: 'yes', description: 'Log setting. Can be set to "yes" (logging, default), "no" (no logging), "verbose" (extra logging"), "veryverbose" (even more logging)')
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -1,3 +0,0 @@
-# This Makefile is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-SUBDIRS = include util stasis authorization backend restclient lib testing reducer cli
diff --git a/src/authorization/Makefile.am b/src/authorization/Makefile.am
@@ -1,184 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-cfgdir = $(prefix)/share/anastasis/config.d/
-
-cfg_DATA = \
- authorization-email.conf
-
-
-SUBDIRS = libanastasiseufin .
-
-pkgcfgdir = $(prefix)/share/anastasis/config.d/
-plugindir = $(libdir)/anastasis
-pkgdatadir= $(prefix)/share/anastasis/
-
-pkgdata_DATA = \
- authorization-email-messages.json \
- authorization-iban-messages.json \
- authorization-post-messages.json \
- authorization-sms-messages.json
-
-EXTRA_DIST = \
- $(pkgdata_DATA) \
- $(cfg_DATA) \
- $(bin_SCRIPTS) \
- iban.h iban.c
-
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-bin_PROGRAMS = \
- anastasis-helper-authorization-iban
-
-bin_SCRIPTS = \
- anastasis-authorization-email.sh \
- anastasis-authorization-sms.sh \
- anastasis-authorization-sms-clicksend.sh \
- anastasis-authorization-sms-telesign.sh \
- anastasis-authorization-post.sh
-
-anastasis_helper_authorization_iban_SOURCES = \
- anastasis-helper-authorization-iban.c
-anastasis_helper_authorization_iban_LDADD = \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/authorization/libanastasiseufin/libanastasiseufin.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalermhd \
- -ltalerutil \
- -lgnunetcurl \
- -lgnunetutil \
- -ljansson \
- -lmicrohttpd \
- -lpthread
-
-
-lib_LTLIBRARIES = \
- libanastasisauthorization.la
-
-libanastasisauthorization_la_SOURCES = \
- anastasis_authorization_plugin.c
-libanastasisauthorization_la_LIBADD = \
- $(LTLIBINTL)
-libanastasisauthorization_la_LDFLAGS = \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerutil \
- -lgnunetutil \
- -lmicrohttpd \
- -lltdl \
- $(XLIB)
-
-plugin_LTLIBRARIES = \
- libanastasis_plugin_authorization_email.la \
- libanastasis_plugin_authorization_file.la \
- libanastasis_plugin_authorization_iban.la \
- libanastasis_plugin_authorization_post.la \
- libanastasis_plugin_authorization_sms.la \
- libanastasis_plugin_authorization_totp.la
-
-
-libanastasis_plugin_authorization_file_la_SOURCES = \
- anastasis_authorization_plugin_file.c
-libanastasis_plugin_authorization_file_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_file_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -lmicrohttpd \
- -ljansson \
- $(XLIB)
-
-libanastasis_plugin_authorization_email_la_SOURCES = \
- anastasis_authorization_plugin_email.c
-libanastasis_plugin_authorization_email_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_email_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -lmicrohttpd \
- -ljansson \
- $(XLIB)
-
-libanastasis_plugin_authorization_iban_la_SOURCES = \
- anastasis_authorization_plugin_iban.c
-libanastasis_plugin_authorization_iban_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_iban_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -lmicrohttpd \
- -ljansson \
- $(XLIB)
-
-libanastasis_plugin_authorization_post_la_SOURCES = \
- anastasis_authorization_plugin_post.c
-libanastasis_plugin_authorization_post_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_post_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -lmicrohttpd \
- -ljansson \
- $(XLIB)
-
-libanastasis_plugin_authorization_sms_la_SOURCES = \
- anastasis_authorization_plugin_sms.c
-libanastasis_plugin_authorization_sms_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_sms_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -lmicrohttpd \
- $(XLIB)
-
-
-libanastasis_plugin_authorization_totp_la_SOURCES = \
- anastasis_authorization_plugin_totp.c
-libanastasis_plugin_authorization_totp_la_LIBADD = \
- $(LTLIBINTL)
-libanastasis_plugin_authorization_totp_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS) \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerjson \
- -ltalermhd \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -lmicrohttpd \
- -lgcrypt \
- $(XLIB)
diff --git a/src/authorization/libanastasiseufin/Makefile.am b/src/authorization/libanastasiseufin/Makefile.am
@@ -1,29 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-lib_LTLIBRARIES = \
- libanastasiseufin.la
-
-libanastasiseufin_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-libanastasiseufin_la_SOURCES = \
- lae_common.c lae_common.h \
- lae_credit.c \
- lae_parse.c
-libanastasiseufin_la_LIBADD = \
- -ltalerjson \
- -ltalercurl \
- -ltalerutil \
- -lgnunetcurl \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -lcurl \
- $(LIBGNURLCURL_LIBS) \
- $(XLIB)
diff --git a/src/authorization/libanastasiseufin/meson.build b/src/authorization/libanastasiseufin/meson.build
@@ -0,0 +1,30 @@
+# This file is in the public domain
+libanastasiseufin = library(
+ 'anastasiseufin',
+ ['lae_common.c', 'lae_credit.c', 'lae_parse.c'],
+ soversion: solibversions['libanastasiseufin']['soversion'],
+ version: solibversions['libanastasiseufin']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ talerjson_dep,
+ talercurl_dep,
+ talerutil_dep,
+ gnunetcurl_dep,
+ gnunetutil_dep,
+ gnunetjson_dep,
+ json_dep,
+ curl_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasiseufin_dep = declare_dependency(link_with: libanastasiseufin)
+pkg.generate(
+ libanastasiseufin,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis eufin utilities library',
+)
+
+
diff --git a/src/authorization/meson.build b/src/authorization/meson.build
@@ -0,0 +1,188 @@
+# This file is in the public domain
+install_data('authorization-email.conf', install_dir: pkgcfgdir)
+
+subdir('libanastasiseufin')
+
+install_data(
+ 'authorization-email-messages.json',
+ 'authorization-iban-messages.json',
+ 'authorization-post-messages.json',
+ 'authorization-sms-messages.json',
+ install_dir: pkgdatadir,
+)
+
+install_data(
+ 'anastasis-authorization-email.sh',
+ 'anastasis-authorization-sms.sh',
+ 'anastasis-authorization-sms-clicksend.sh',
+ 'anastasis-authorization-sms-telesign.sh',
+ 'anastasis-authorization-post.sh',
+ install_dir: get_option('bindir'),
+)
+
+executable(
+ 'anastasis-helper-authorization-iban',
+ ['anastasis-helper-authorization-iban.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ libanastasiseufin_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ json_dep,
+ mhd_dep,
+ talerutil_dep,
+ talermhd_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+
+libanastasisauthorization_SOURCES = ['anastasis_authorization_plugin.c']
+
+libanastasisauthorization = library(
+ 'anastasisauthorization',
+ libanastasisauthorization_SOURCES,
+ soversion: solibversions['libanastasisauthorization']['soversion'],
+ version: solibversions['libanastasisauthorization']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ libanastasisutil_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ talerutil_dep,
+ mhd_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasisauthorization_dep = declare_dependency(
+ link_with: libanastasisauthorization,
+)
+pkg.generate(
+ libanastasisauthorization,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis authorization library',
+)
+
+
+shared_module(
+ 'anastasis_plugin_authorization_file',
+ ['anastasis_authorization_plugin_file.c'],
+ dependencies: [
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+shared_module(
+ 'anastasis_plugin_authorization_email',
+ ['anastasis_authorization_plugin_email.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+shared_module(
+ 'anastasis_plugin_authorization_iban',
+ ['anastasis_authorization_plugin_iban.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+
+shared_module(
+ 'anastasis_plugin_authorization_post',
+ ['anastasis_authorization_plugin_post.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+
+shared_module(
+ 'anastasis_plugin_authorization_sms',
+ ['anastasis_authorization_plugin_sms.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+shared_module(
+ 'anastasis_plugin_authorization_totp',
+ ['anastasis_authorization_plugin_totp.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerjson_dep,
+ talermhd_dep,
+ talerutil_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ json_dep,
+ gcrypt_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+)
+
+
diff --git a/src/backend/Makefile.am b/src/backend/Makefile.am
@@ -1,46 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-pkgcfgdir = $(prefix)/share/anastasis/config.d/
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-pkgcfg_DATA = \
- anastasis.conf
-
-bin_PROGRAMS = \
- anastasis-httpd
-
-anastasis_httpd_SOURCES = \
- anastasis-httpd.c anastasis-httpd.h \
- anastasis-httpd_mhd.c anastasis-httpd_mhd.h \
- anastasis-httpd_policy.c anastasis-httpd_policy.h \
- anastasis-httpd_policy-meta.c anastasis-httpd_policy-meta.h \
- anastasis-httpd_policy-upload.c \
- anastasis-httpd_truth.h \
- anastasis-httpd_terms.c anastasis-httpd_terms.h \
- anastasis-httpd_config.c anastasis-httpd_config.h \
- anastasis-httpd_truth-challenge.c \
- anastasis-httpd_truth-solve.c \
- anastasis-httpd_truth-upload.c
-
-anastasis_httpd_LDADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- $(top_builddir)/src/stasis/libanastasisdb.la \
- $(top_builddir)/src/authorization/libanastasisauthorization.la \
- -ljansson \
- -ltalermerchant \
- -ltalermhd \
- -ltalerjson \
- -ltalerutil \
- -lgnunetcurl \
- -lgnunetjson \
- -lgnunetutil \
- -lmicrohttpd \
- $(XLIB)
-
-EXTRA_DIST = \
- $(pkgcfg_DATA)
diff --git a/src/backend/meson.build b/src/backend/meson.build
@@ -0,0 +1,36 @@
+# This file is in the public domain
+install_data('anastasis.conf', install_dir: pkgcfgdir)
+
+anastasis_httpd_SOURCES = [
+ 'anastasis-httpd.c',
+ 'anastasis-httpd_mhd.c',
+ 'anastasis-httpd_policy.c',
+ 'anastasis-httpd_policy-meta.c',
+ 'anastasis-httpd_policy-upload.c',
+ 'anastasis-httpd_terms.c',
+ 'anastasis-httpd_config.c',
+ 'anastasis-httpd_truth-challenge.c',
+ 'anastasis-httpd_truth-solve.c',
+ 'anastasis-httpd_truth-upload.c',
+]
+
+executable(
+ 'anastasis-httpd',
+ anastasis_httpd_SOURCES,
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ libanastasisauthorization_dep,
+ talermerchant_dep,
+ talermhd_dep,
+ talerjson_dep,
+ json_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ gnunetjson_dep,
+ mhd_dep,
+ talerutil_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am
@@ -1,86 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-bin_PROGRAMS = \
- anastasis-discover \
- anastasis-reducer
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-check_SCRIPTS = \
- test_anastasis_reducer_initialize_state.sh \
- test_anastasis_reducer_select_continent.sh \
- test_anastasis_reducer_select_country.sh \
- test_anastasis_reducer_backup_enter_user_attributes.sh \
- test_anastasis_reducer_add_authentication.sh \
- test_anastasis_reducer_done_authentication.sh \
- test_anastasis_reducer_done_policy_review.sh \
- test_anastasis_reducer_enter_secret.sh \
- test_anastasis_reducer_recovery_enter_user_attributes.sh \
- test_anastasis_reducer_recovery_no_pay.sh \
- test_anastasis_reducer_recovery_hanging.sh
-
-# Removed for now, libeufin is not yet working OK for this.
-# test_iban.sh
-
-
-AM_TESTS_ENVIRONMENT=export ANASTASIS_PREFIX=$${ANASTASIS_PREFIX:-@libdir@};export PATH=$${ANASTASIS_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
-
-TESTS = \
- $(check_SCRIPTS)
-
-EXTRA_DIST = \
- $(check_SCRIPTS) \
- setup.sh \
- test_reducer_home/.local/share/taler/exchange-offline/master.priv \
- test_reducer.conf \
- test_reducer_free.conf \
- test_free_reducer.conf \
- test_anastasis_reducer_1.conf \
- test_anastasis_reducer_2.conf \
- test_anastasis_reducer_3.conf \
- test_anastasis_reducer_4.conf \
- test_anastasis_reducer_free_1.conf \
- test_anastasis_reducer_free_2.conf \
- test_anastasis_reducer_free_3.conf \
- test_anastasis_reducer_free_4.conf \
- resources/00-backup.json \
- resources/01-backup.json \
- resources/02-backup.json \
- resources/03-backup.json \
- resources/04-backup.json \
- resources/05-backup.json \
- resources/06-backup.json \
- resources/00-recovery.json \
- resources/01-recovery.json \
- resources/02-recovery.json
-
-anastasis_reducer_SOURCES = \
- anastasis-cli-redux.c
-anastasis_reducer_LDADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- $(top_builddir)/src/reducer/libanastasisredux.la \
- -ltalerjson \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetcurl \
- -lgnunetutil \
- -ljansson \
- $(XLIB)
-
-
-anastasis_discover_SOURCES = \
- anastasis-cli-discover.c
-anastasis_discover_LDADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- $(top_builddir)/src/reducer/libanastasisredux.la \
- -ltalerjson \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetcurl \
- -lgnunetutil \
- -ljansson \
- $(XLIB)
diff --git a/src/cli/meson.build b/src/cli/meson.build
@@ -0,0 +1,91 @@
+# This file is in the public domain
+check_SCRIPTS = [
+ 'test_anastasis_reducer_initialize_state',
+ 'test_anastasis_reducer_select_continent',
+ 'test_anastasis_reducer_select_country',
+ 'test_anastasis_reducer_backup_enter_user_attributes',
+ 'test_anastasis_reducer_add_authentication',
+ 'test_anastasis_reducer_done_authentication',
+ 'test_anastasis_reducer_done_policy_review',
+ 'test_anastasis_reducer_enter_secret',
+ 'test_anastasis_reducer_recovery_enter_user_attributes',
+ 'test_anastasis_reducer_recovery_no_pay',
+ 'test_anastasis_reducer_recovery_hanging',
+]
+
+foreach f : check_SCRIPTS
+ t = configure_file(
+ copy: true,
+ input: '@0@.sh'.format(f),
+ output: '@0@.sh'.format(f),
+ )
+ test(
+ f,
+ t,
+ workdir: meson.current_build_dir(),
+ suite: ['cli'],
+ is_parallel: false,
+ )
+endforeach
+# Removed for now, libeufin is not yet working OK for this.
+# test_iban.sh
+
+
+EXTRA_DIST = [
+ 'setup.sh',
+ 'test_reducer.conf',
+ 'test_reducer_free.conf',
+ 'test_free_reducer.conf',
+ 'test_anastasis_reducer_1.conf',
+ 'test_anastasis_reducer_2.conf',
+ 'test_anastasis_reducer_3.conf',
+ 'test_anastasis_reducer_4.conf',
+ 'test_anastasis_reducer_free_1.conf',
+ 'test_anastasis_reducer_free_2.conf',
+ 'test_anastasis_reducer_free_3.conf',
+ 'test_anastasis_reducer_free_4.conf',
+]
+
+foreach f : EXTRA_DIST
+ configure_file(input: f, output: f, copy: true)
+endforeach
+
+subdir('test_reducer_home' / '.local' / 'share' / 'taler' / 'exchange-offline')
+subdir('resources')
+
+
+executable(
+ 'anastasis-reducer',
+ ['anastasis-cli-redux.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisredux_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ gnunetjson_dep,
+ json_dep,
+ talerutil_dep,
+ talerjson_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+executable(
+ 'anastasis-discover',
+ ['anastasis-cli-discover.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisredux_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ gnunetjson_dep,
+ json_dep,
+ talerutil_dep,
+ talerjson_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+
diff --git a/src/cli/resources/meson.build b/src/cli/resources/meson.build
@@ -0,0 +1,19 @@
+# This file is in the public domain
+EXTRA_DIST = [
+ '00-backup.json',
+ '01-backup.json',
+ '02-backup.json',
+ '03-backup.json',
+ '04-backup.json',
+ '05-backup.json',
+ '06-backup.json',
+ '00-recovery.json',
+ '01-recovery.json',
+ '02-recovery.json',
+]
+
+foreach f : EXTRA_DIST
+ configure_file(input: f, output: f, copy: true)
+endforeach
+
+
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
@@ -1,17 +0,0 @@
-# This Makefile.am is in the public domain
-anastasisincludedir = $(includedir)/anastasis
-
-anastasisinclude_HEADERS = \
- platform.h gettext.h \
- anastasis_authorization_lib.h \
- anastasis_authorization_plugin.h \
- anastasis_crypto_lib.h \
- anastasis_database_lib.h \
- anastasis_database_plugin.h \
- anastasis_eufin_lib.h \
- anastasis_error_codes.h \
- anastasis_redux.h \
- anastasis_service.h \
- anastasis_testing_lib.h \
- anastasis_util_lib.h \
- anastasis.h
diff --git a/src/include/meson.build b/src/include/meson.build
@@ -0,0 +1,20 @@
+# This file is in the public domain
+anastasisincludedir = get_option('includedir') / 'anastasis'
+
+install_data(
+ 'platform.h',
+ 'gettext.h',
+ 'anastasis_authorization_lib.h',
+ 'anastasis_authorization_plugin.h',
+ 'anastasis_crypto_lib.h',
+ 'anastasis_database_lib.h',
+ 'anastasis_database_plugin.h',
+ 'anastasis_eufin_lib.h',
+ 'anastasis_error_codes.h',
+ 'anastasis_redux.h',
+ 'anastasis_service.h',
+ 'anastasis_testing_lib.h',
+ 'anastasis_util_lib.h',
+ 'anastasis.h',
+ install_dir: anastasisincludedir,
+)
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
@@ -1,29 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_srcdir)/src/backend -I$(top_srcdir)/src/lib
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-lib_LTLIBRARIES = \
- libanastasis.la
-
-libanastasis_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-libanastasis_la_SOURCES = \
- anastasis_backup.c \
- anastasis_meta.c \
- anastasis_recovery.c
-libanastasis_la_LIBADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- $(top_builddir)/src/restclient/libanastasisrest.la \
- -ltalerjson \
- -ltalerutil \
- -ltalermerchant \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -lz \
- $(XLIB)
diff --git a/src/lib/meson.build b/src/lib/meson.build
@@ -0,0 +1,31 @@
+# This file is in the public domain
+libanastasis = library(
+ 'anastasis',
+ ['anastasis_backup.c', 'anastasis_meta.c', 'anastasis_recovery.c'],
+ soversion: solibversions['libanastasis']['soversion'],
+ version: solibversions['libanastasis']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ libanastasisrest_dep,
+ talerjson_dep,
+ talerutil_dep,
+ talermerchant_dep,
+ gnunetjson_dep,
+ json_dep,
+ gnunetutil_dep,
+ libanastasisutil_dep,
+ zlib_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasis_dep = declare_dependency(link_with: libanastasis)
+pkg.generate(
+ libanastasis,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis library',
+)
+
+
diff --git a/src/meson.build b/src/meson.build
@@ -0,0 +1,11 @@
+# This file is in the public domain
+subdir('include')
+subdir('util')
+subdir('stasis')
+subdir('authorization')
+subdir('backend')
+subdir('restclient')
+subdir('lib')
+subdir('testing')
+subdir('reducer')
+subdir('cli')
diff --git a/src/reducer/Makefile.am b/src/reducer/Makefile.am
@@ -1,50 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_srcdir)/src/backend -I$(top_srcdir)/src/lib
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-.NOTPARALLEL:
-
-lib_LTLIBRARIES = \
- libanastasisredux.la
-
-libanastasisredux_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-libanastasisredux_la_SOURCES = \
- anastasis_api_discovery.c \
- anastasis_api_providers.c \
- anastasis_api_redux.c anastasis_api_redux.h \
- anastasis_api_recovery_redux.c \
- anastasis_api_backup_redux.c \
- validation_CH_AHV.c \
- validation_CZ_BN.c \
- validation_DE_SVN.c \
- validation_DE_TIN.c \
- validation_ES_DNI.c \
- validation_FR_INSEE.c \
- validation_IN_AADHAR.c \
- validation_IT_CF.c \
- validation_NL_BSN.c \
- validation_XX_SQUARE.c \
- validation_XY_PRIME.c
-libanastasisredux_la_LIBADD = \
- $(top_builddir)/src/restclient/libanastasisrest.la \
- $(top_builddir)/src/lib/libanastasis.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -lgnunetjson \
- -lgnunetcurl \
- -lgnunetutil \
- -ltalermhd \
- -ltalerutil \
- -ltalerexchange \
- -ltalermerchant \
- -ltalerjson \
- -ljansson \
- -lgcrypt \
- -ldl \
- -lm \
- $(XLIB)
diff --git a/src/reducer/meson.build b/src/reducer/meson.build
@@ -0,0 +1,56 @@
+# This file is in the public domain
+libanastasisredux_SOURCES = [
+ 'anastasis_api_discovery.c',
+ 'anastasis_api_providers.c',
+ 'anastasis_api_redux.c',
+ 'anastasis_api_recovery_redux.c',
+ 'anastasis_api_backup_redux.c',
+ 'validation_CH_AHV.c',
+ 'validation_CZ_BN.c',
+ 'validation_DE_SVN.c',
+ 'validation_DE_TIN.c',
+ 'validation_ES_DNI.c',
+ 'validation_FR_INSEE.c',
+ 'validation_IN_AADHAR.c',
+ 'validation_IT_CF.c',
+ 'validation_NL_BSN.c',
+ 'validation_XX_SQUARE.c',
+ 'validation_XY_PRIME.c',
+]
+
+libanastasisredux = library(
+ 'anastasisredux',
+ libanastasisredux_SOURCES,
+ soversion: solibversions['libanastasisredux']['soversion'],
+ version: solibversions['libanastasisredux']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ gnunetutil_dep,
+ gnunetjson_dep,
+ gnunetcurl_dep,
+ talermhd_dep,
+ talerutil_dep,
+ talerexchange_dep,
+ talermerchant_dep,
+ talerjson_dep,
+ json_dep,
+ gcrypt_dep,
+ dl_dep,
+ m_dep,
+ libanastasisutil_dep,
+ libanastasisrest_dep,
+ libanastasis_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasisredux_dep = declare_dependency(link_with: libanastasisredux)
+pkg.generate(
+ libanastasisredux,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis redux library',
+)
+
+
diff --git a/src/restclient/Makefile.am b/src/restclient/Makefile.am
@@ -1,37 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_srcdir)/src/backend -I$(top_srcdir)/src/lib
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-.NOTPARALLEL:
-
-lib_LTLIBRARIES = \
- libanastasisrest.la
-
-libanastasisrest_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-libanastasisrest_la_SOURCES = \
- anastasis_api_config.c \
- anastasis_api_policy_store.c \
- anastasis_api_policy_lookup.c \
- anastasis_api_policy_meta_lookup.c \
- anastasis_api_truth_challenge.c \
- anastasis_api_truth_solve.c \
- anastasis_api_truth_store.c \
- anastasis_api_curl_defaults.c anastasis_api_curl_defaults.h
-libanastasisrest_la_LIBADD = \
- -lgnunetcurl \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -ltalerjson \
- -ltalercurl \
- -ltalermerchant \
- -ltalerjson \
- -ltalerutil \
- -lcurl \
- $(XLIB)
diff --git a/src/restclient/meson.build b/src/restclient/meson.build
@@ -0,0 +1,42 @@
+# This file is in the public domain
+libanastasisrest_SOURCES = [
+ 'anastasis_api_config.c',
+ 'anastasis_api_policy_store.c',
+ 'anastasis_api_policy_lookup.c',
+ 'anastasis_api_policy_meta_lookup.c',
+ 'anastasis_api_truth_challenge.c',
+ 'anastasis_api_truth_solve.c',
+ 'anastasis_api_truth_store.c',
+ 'anastasis_api_curl_defaults.c',
+]
+libanastasisrest = library(
+ 'anastasisrest',
+ libanastasisrest_SOURCES,
+ soversion: solibversions['libanastasisrest']['soversion'],
+ version: solibversions['libanastasisrest']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ gnunetjson_dep,
+ json_dep,
+ talerjson_dep,
+ talercurl_dep,
+ talermerchant_dep,
+ talerjson_dep,
+ talerutil_dep,
+ curl_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasisrest_dep = declare_dependency(link_with: libanastasisrest)
+pkg.generate(
+ libanastasisrest,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis REST utilities library',
+)
+
+
diff --git a/src/stasis/Makefile.am b/src/stasis/Makefile.am
@@ -1,96 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-plugindir = $(libdir)/anastasis
-
-if HAVE_POSTGRESQL
-plugin_LTLIBRARIES = \
- libanastasis_plugin_db_postgres.la
-endif
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-sqldir = $(prefix)/share/anastasis/sql/
-
-sql_DATA = \
- versioning.sql \
- stasis-0001.sql \
- drop.sql
-
-pkgcfgdir = $(prefix)/share/anastasis/config.d/
-
-pkgcfg_DATA = \
- stasis-postgres.conf
-
-bin_PROGRAMS = \
- anastasis-dbinit
-
-anastasis_dbinit_SOURCES = \
- anastasis-dbinit.c
-
-anastasis_dbinit_LDADD = \
- $(LIBGCRYPT_LIBS) \
- libanastasisdb.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -lgnunetutil \
- -ltalerutil \
- -ltalerpq \
- $(XLIB)
-
-
-lib_LTLIBRARIES = \
- libanastasisdb.la
-
-libanastasisdb_la_SOURCES = \
- anastasis_db_plugin.c
-libanastasisdb_la_LIBADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- -lgnunetpq \
- -lpq \
- -lgnunetutil \
- -lltdl \
- $(XLIB)
-libanastasisdb_la_LDFLAGS = \
- $(POSTGRESQL_LDFLAGS) \
- -version-info 2:0:0 \
- -no-undefined
-
-libanastasis_plugin_db_postgres_la_SOURCES = \
- plugin_anastasis_postgres.c
-libanastasis_plugin_db_postgres_la_LDFLAGS = \
- $(ANASTASIS_PLUGIN_LDFLAGS)
-libanastasis_plugin_db_postgres_la_LIBADD = \
- $(LTLIBINTL) \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerpq \
- -ltalerutil \
- -lgnunetpq \
- -lgnunetutil \
- -lpq \
- $(XLIB)
-
-check_PROGRAMS = \
- $(TESTS)
-
-test_anastasis_db_postgres_SOURCES = \
- test_anastasis_db.c
-test_anastasis_db_postgres_LDFLAGS = \
- $(top_builddir)/src/util/libanastasisutil.la \
- libanastasisdb.la \
- -lgnunetutil \
- -lgnunetpq \
- -ltalerutil \
- -ltalerpq \
- $(XLIB)
-
-AM_TESTS_ENVIRONMENT=export ANASTASIS_PREFIX=$${ANASTASIS_PREFIX:-@libdir@};export PATH=$${ANASTASIS_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
-TESTS = \
- test_anastasis_db-postgres
-
-EXTRA_DIST = \
- test_anastasis_db_postgres.conf \
- $(pkgcfg_DATA) \
- $(sql_DATA)
diff --git a/src/stasis/meson.build b/src/stasis/meson.build
@@ -0,0 +1,96 @@
+# This Makefile.am is in the public domain
+
+plugindir = get_option('libdir') / 'anastasis'
+sqldir = get_option('datadir') / 'anastasis' / 'sql'
+
+install_data(
+ 'versioning.sql',
+ 'stasis-0001.sql',
+ 'drop.sql',
+ install_dir: sqldir,
+)
+
+install_data('stasis-postgres.conf', install_dir: pkgcfgdir)
+
+libanastasisdb = library(
+ 'anastasisdb',
+ ['anastasis_db_plugin.c'],
+ soversion: solibversions['libanastasisdb']['soversion'],
+ version: solibversions['libanastasisdb']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [gnunetutil_dep, gnunetpq_dep, pq_dep, libanastasisutil_dep],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasisdb_dep = declare_dependency(link_with: libanastasisdb)
+pkg.generate(
+ libanastasisdb,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis DB utilities library',
+)
+
+
+executable(
+ 'anastasis-dbinit',
+ ['anastasis-dbinit.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ gcrypt_dep,
+ talerutil_dep,
+ talerpq_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+if pq_dep.found()
+ shared_module(
+ 'anastasis_plugin_db_postgres',
+ ['plugin_anastasis_postgres.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ gnunetutil_dep,
+ talerpq_dep,
+ talerutil_dep,
+ gnunetpq_dep,
+ pq_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: plugindir,
+ )
+endif
+
+test_anastasis_db_postgres = executable(
+ 'test_anastasis_db-postgres',
+ ['test_anastasis_db.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ libanastasisdb_dep,
+ gnunetutil_dep,
+ talerutil_dep,
+ talerpq_dep,
+ gnunetpq_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ build_by_default: false,
+ install: false,
+)
+test(
+ 'test_anastasis_db_postgres',
+ test_anastasis_db_postgres,
+ workdir: meson.current_build_dir(),
+ suite: ['stasis'],
+ is_parallel: false,
+)
+
+
+configure_file(
+ input: 'test_anastasis_db_postgres.conf',
+ output: 'test_anastasis_db_postgres.conf',
+ copy: true,
+)
diff --git a/src/testing/Makefile.am b/src/testing/Makefile.am
@@ -1,78 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_srcdir)/src/backend -I$(top_srcdir)/src/lib
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-lib_LTLIBRARIES = \
- libanastasistesting.la
-
-libanastasistesting_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-libanastasistesting_la_SOURCES = \
- testing_api_cmd_policy_store.c \
- testing_api_cmd_truth_challenge.c \
- testing_api_cmd_truth_solve.c \
- testing_api_cmd_truth_store.c \
- testing_api_cmd_policy_lookup.c \
- testing_api_cmd_config.c \
- testing_api_helpers.c \
- testing_api_traits.c \
- testing_cmd_truth_upload.c \
- testing_cmd_policy_create.c \
- testing_cmd_secret_share.c \
- testing_cmd_recover_secret.c \
- testing_cmd_challenge_answer.c
-libanastasistesting_la_LIBADD = \
- $(top_builddir)/src/restclient/libanastasisrest.la \
- $(top_builddir)/src/lib/libanastasis.la \
- $(top_builddir)/src/util/libanastasisutil.la \
- -ltalerexchange \
- -ltalermerchant \
- -ltalerjson \
- -ltalerutil \
- -lgnunetcurl \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- -ltalertesting \
- $(XLIB)
-
-
-check_PROGRAMS = \
- test_anastasisrest_api \
- test_anastasis
-
-AM_TESTS_ENVIRONMENT=export ANASTASIS_PREFIX=$${ANASTASIS_PREFIX:-@libdir@};export PATH=$${ANASTASIS_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
-TESTS = \
- $(check_PROGRAMS)
-
-test_anastasisrest_api_SOURCES = \
- test_anastasis_api.c
-test_anastasisrest_api_LDADD = \
- libanastasistesting.la \
- -ltalermerchanttesting \
- -ltalertesting \
- -lgnunetutil \
- $(XLIB)
-
-test_anastasis_SOURCES = \
- test_anastasis.c
-test_anastasis_LDADD = \
- libanastasistesting.la \
- -ltalermerchanttesting \
- -ltalertesting \
- -ltalerexchange \
- -lgnunetutil \
- $(XLIB)
-
-EXTRA_DIST = \
- test_anastasis_api.conf \
- test_anastasis_api_home/taler/exchange/offline-keys/master.priv \
- sms_authentication.sh
-
-MOSTLYCLEANFILES = \
- test_anastasis_api_home/taler/exchange/offline-keys/secm_tofus.pub
diff --git a/src/testing/meson.build b/src/testing/meson.build
@@ -0,0 +1,100 @@
+# This file is in the public domain
+libanastasistesting_SOURCES = [
+ 'testing_api_cmd_policy_store.c',
+ 'testing_api_cmd_truth_challenge.c',
+ 'testing_api_cmd_truth_solve.c',
+ 'testing_api_cmd_truth_store.c',
+ 'testing_api_cmd_policy_lookup.c',
+ 'testing_api_cmd_config.c',
+ 'testing_api_helpers.c',
+ 'testing_api_traits.c',
+ 'testing_cmd_truth_upload.c',
+ 'testing_cmd_policy_create.c',
+ 'testing_cmd_secret_share.c',
+ 'testing_cmd_recover_secret.c',
+ 'testing_cmd_challenge_answer.c',
+]
+libanastasistesting = library(
+ 'anastasistesting',
+ libanastasistesting_SOURCES,
+ soversion: solibversions['libanastasistesting']['soversion'],
+ version: solibversions['libanastasistesting']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ libanastasis_dep,
+ libanastasisrest_dep,
+ talerexchange_dep,
+ talermerchant_dep,
+ talerjson_dep,
+ talerutil_dep,
+ gnunetutil_dep,
+ gnunetcurl_dep,
+ gnunetjson_dep,
+ json_dep,
+ talertesting_dep,
+ libanastasisutil_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasistesting_dep = declare_dependency(link_with: libanastasistesting)
+pkg.generate(
+ libanastasistesting,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis testing library',
+)
+
+
+test_anastasisrest_api = executable(
+ 'test_anastasisrest_api',
+ ['test_anastasis_api.c'],
+ dependencies: [
+ libanastasistesting_dep,
+ talermerchanttesting_dep,
+ talertesting_dep,
+ gnunetutil_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: false,
+)
+test(
+ 'test_anastasisrest_api',
+ test_anastasisrest_api,
+ workdir: meson.current_build_dir(),
+ suite: ['testing'],
+ is_parallel: false,
+)
+
+
+
+test_anastasis = executable(
+ 'test_anastasis',
+ ['test_anastasis.c'],
+ dependencies: [
+ libanastasistesting_dep,
+ talermerchanttesting_dep,
+ talertesting_dep,
+ talerexchange_dep,
+ gnunetutil_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: false,
+)
+test(
+ 'test_anastasis',
+ test_anastasis,
+ workdir: meson.current_build_dir(),
+ suite: ['testing'],
+ is_parallel: false,
+)
+
+
+
+EXTRA_DIST = ['test_anastasis_api.conf', 'sms_authentication.sh']
+foreach f : EXTRA_DIST
+ configure_file(input: f, output: f, copy: true)
+endforeach
+
+subdir('test_anastasis_api_home' / 'taler' / 'exchange' / 'offline-keys')
diff --git a/src/testing/test_anastasis_api_home/taler/exchange/offline-keys/meson.build b/src/testing/test_anastasis_api_home/taler/exchange/offline-keys/meson.build
@@ -0,0 +1,2 @@
+configure_file(input: 'master.priv', output: 'master.priv', copy: true)
+
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
@@ -1,70 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LIBGCRYPT_CFLAGS)
-
-if USE_COVERAGE
- AM_CFLAGS = --coverage -O0
- XLIB = -lgcov
-endif
-
-bin_PROGRAMS = \
- anastasis-config \
- anastasis-crypto-tvg
-
-anastasis_config_SOURCES = \
- anastasis-config.c
-anastasis_config_LDADD = \
- libanastasisutil.la \
- -lgnunetutil \
- $(XLIB)
-
-pkgcfgdir = $(prefix)/share/anastasis/config.d/
-
-pkgcfg_DATA = \
- paths.conf
-
-EXTRA_DIST = \
- $(pkgcfg_DATA)
-
-
-lib_LTLIBRARIES = \
- libanastasisutil.la
-
-libanastasisutil_la_SOURCES = \
- anastasis_crypto.c \
- os_installation.c \
- pin.c
-libanastasisutil_la_LIBADD = \
- -lgnunetutil \
- $(LIBGCRYPT_LIBS) \
- -lsodium \
- -ljansson \
- -ltalerutil \
- $(XLIB)
-libanastasisutil_la_LDFLAGS = \
- -version-info 0:0:0 \
- -no-undefined
-
-check_PROGRAMS = \
- test_anastasis_crypto
-
-TESTS = \
- $(check_PROGRAMS)
-
-test_anastasis_crypto_SOURCES = \
- test_anastasis_crypto.c
-test_anastasis_crypto_LDADD = \
- $(top_builddir)/src/util/libanastasisutil.la \
- -lgnunetutil \
- -ltalerutil \
- $(XLIB)
-
-anastasis_crypto_tvg_SOURCES = \
- anastasis-crypto-tvg.c
-anastasis_crypto_tvg_LDADD = \
- libanastasisutil.la \
- -ltalerjson \
- -ltalerutil \
- -lgnunetjson \
- -lgnunetutil \
- -ljansson \
- $(XLIB)
diff --git a/src/util/meson.build b/src/util/meson.build
@@ -0,0 +1,72 @@
+# This file is in the public domain
+install_data('paths.conf', install_dir: pkgcfgdir)
+
+libanastasisutil_SOURCES = ['anastasis_crypto.c', 'os_installation.c', 'pin.c']
+
+libanastasisutil = library(
+ 'anastasisutil',
+ libanastasisutil_SOURCES,
+ soversion: solibversions['libanastasisutil']['soversion'],
+ version: solibversions['libanastasisutil']['soversion'],
+ install_rpath: rpath_option,
+ dependencies: [
+ gnunetutil_dep,
+ gnunetjson_dep,
+ gcrypt_dep,
+ talerutil_dep,
+ sodium_dep,
+ json_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+ install_dir: get_option('libdir'),
+)
+
+libanastasisutil_dep = declare_dependency(link_with: libanastasisutil)
+pkg.generate(
+ libanastasisutil,
+ url: 'https://taler.net',
+ description: 'GNU Taler anastasis utilities library',
+)
+
+executable(
+ 'anastasis-config',
+ ['anastasis-config.c'],
+ dependencies: [libanastasisutil_dep, gnunetutil_dep],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+
+test_anastasis_crypto = executable(
+ 'test_anastasis_crypto',
+ ['test_anastasis_crypto.c'],
+ dependencies: [gnunetutil_dep, talerutil_dep, libanastasisutil_dep],
+ include_directories: [incdir, configuration_inc],
+ build_by_default: false,
+ install: false,
+)
+test(
+ 'test_anastasis_crypto',
+ test_anastasis_crypto,
+ workdir: meson.current_build_dir(),
+ suite: ['util'],
+ is_parallel: false,
+)
+
+executable(
+ 'anastasis-crypto-tvg',
+ ['anastasis-crypto-tvg.c'],
+ dependencies: [
+ libanastasisutil_dep,
+ gnunetutil_dep,
+ gnunetjson_dep,
+ json_dep,
+ talerutil_dep,
+ talerjson_dep,
+ ],
+ include_directories: [incdir, configuration_inc],
+ install: true,
+)
+
+