anastasis

Credential backup and recovery protocol and service
Log | Files | Refs | Submodules | README | LICENSE

commit a973793efdd6bce7e1d872ec506ae047d12aeabc
parent bb7b14166cf56198deef8a287d139347e2332db9
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Wed, 22 Apr 2026 11:35:32 +0200

build: convert to meson

Diffstat:
DMakefile.am | 26--------------------------
Mbootstrap | 10++++++----
Dconfigure.ac | 382-------------------------------------------------------------------------------
Dcontrib/Makefile.am | 57---------------------------------------------------------
Mcontrib/extract.sh | 26+++++++++++++++++---------
Acontrib/meson.build | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ddoc/Makefile.am | 26--------------------------
Adoc/anastasis-figures/meson.build | 13+++++++++++++
Adoc/meson.build | 41+++++++++++++++++++++++++++++++++++++++++
Aflake.lock | 822+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aflake.nix | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dm4/ax_compare_version.m4 | 177-------------------------------------------------------------------------------
Dm4/ax_lib_postgresql.m4 | 247-------------------------------------------------------------------------------
Dm4/ax_prog_doxygen.m4 | 586-------------------------------------------------------------------------------
Dm4/gettext.m4 | 420-------------------------------------------------------------------------------
Dm4/iconv.m4 | 271-------------------------------------------------------------------------------
Dm4/lib-ld.m4 | 119-------------------------------------------------------------------------------
Dm4/lib-link.m4 | 777-------------------------------------------------------------------------------
Dm4/lib-prefix.m4 | 224-------------------------------------------------------------------------------
Dm4/libcurl.m4 | 251-------------------------------------------------------------------------------
Dm4/nls.m4 | 32--------------------------------
Dm4/po.m4 | 453-------------------------------------------------------------------------------
Dm4/progtest.m4 | 91-------------------------------------------------------------------------------
Ameson.build | 372+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ameson.options | 5+++++
Dsrc/Makefile.am | 3---
Dsrc/authorization/Makefile.am | 184-------------------------------------------------------------------------------
Dsrc/authorization/libanastasiseufin/Makefile.am | 29-----------------------------
Asrc/authorization/libanastasiseufin/meson.build | 30++++++++++++++++++++++++++++++
Asrc/authorization/meson.build | 188+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/backend/Makefile.am | 46----------------------------------------------
Asrc/backend/meson.build | 36++++++++++++++++++++++++++++++++++++
Dsrc/cli/Makefile.am | 86-------------------------------------------------------------------------------
Asrc/cli/meson.build | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/cli/resources/meson.build | 19+++++++++++++++++++
Dsrc/include/Makefile.am | 17-----------------
Asrc/include/meson.build | 20++++++++++++++++++++
Dsrc/lib/Makefile.am | 29-----------------------------
Asrc/lib/meson.build | 31+++++++++++++++++++++++++++++++
Asrc/meson.build | 11+++++++++++
Dsrc/reducer/Makefile.am | 50--------------------------------------------------
Asrc/reducer/meson.build | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/restclient/Makefile.am | 37-------------------------------------
Asrc/restclient/meson.build | 42++++++++++++++++++++++++++++++++++++++++++
Dsrc/stasis/Makefile.am | 96-------------------------------------------------------------------------------
Asrc/stasis/meson.build | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/testing/Makefile.am | 78------------------------------------------------------------------------------
Asrc/testing/meson.build | 100+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/testing/test_anastasis_api_home/taler/exchange/offline-keys/meson.build | 2++
Dsrc/util/Makefile.am | 70----------------------------------------------------------------------
Asrc/util/meson.build | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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, +) + +