# configure.ac for GPGME
# Copyright (C) 2000 Werner Koch (dd9jn)
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-# 2009, 2010, 2011, 2012, 2013 g10 Code GmbH
+# Copyright (C) 2001-2021 g10 Code GmbH
#
# This file is part of GPGME.
#
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
# Public License for more details.
#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, see <https://gnu.org/licenses/>.
+# SPDX-License-Identifier: LGPL-2.1-or-later
# (Process this file with autoconf to produce a configure script.)
-AC_PREREQ(2.59)
-min_automake_version="1.11"
+AC_PREREQ([2.59])
+min_automake_version="1.14"
# To build a release you need to create a tag with the version number
-# (git tag -s gpgme-n.m.k) and run "./autogen.sh --force". Please
-# bump the version number immediately after the release and do another
-# commit and push so that the git magic is able to work. See below
+# "gpgme-n.m.k" and run "./autogen.sh --force". Please bump the
+# version number immediately after the release and do another commit
+# and push so that the git magic is able to work. If you start a new
+# series by bumping the minor (m) remember to also create a tag named
+# "gpgme-n.m-base" as the start point for beta numbering. See below
# for the LT versions.
-m4_define(mym4_version_major, [1])
-m4_define(mym4_version_minor, [4])
-m4_define(mym4_version_micro, [3])
-
-# Below is m4 magic to extract and compute the revision number, the
-# decimalized short revision number, a beta version string, and a flag
-# indicating a development version (mym4_isgit). Note that the m4
-# processing is done by autoconf and not during the configure run.
-m4_define(mym4_version,
- [mym4_version_major.mym4_version_minor.mym4_version_micro])
-m4_define([mym4_revision],
- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
-m4_define([mym4_revision_dec],
- m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
-m4_define([mym4_betastring],
- m4_esyscmd_s([git describe --match 'gpgme-[0-9].*[0-9]' --long|\
- awk -F- '$3!=0{print"-beta"$3}']))
-m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
-m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
-
-AC_INIT([gpgme],[mym4_full_version],[http://bugs.gnupg.org])
+m4_define([mym4_package],[gpgme])
+m4_define([mym4_major], [1])
+m4_define([mym4_minor], [16])
+m4_define([mym4_micro], [0])
+
+# Below is m4 magic to extract and compute the git revision number,
+# the decimalized short revision number, a beta version string and a
+# flag indicating a development version (mym4_isbeta). Note that the
+# m4 processing is done by autoconf and not during the configure run.
+m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
+ mym4_package mym4_major mym4_minor mym4_micro),[:]))
+m4_define([mym4_isbeta], m4_argn(2, mym4_verslist))
+m4_define([mym4_version], m4_argn(4, mym4_verslist))
+m4_define([mym4_revision], m4_argn(7, mym4_verslist))
+m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
+m4_esyscmd([echo ]mym4_version[>VERSION])
+AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org])
# LT Version numbers, remember to change them just *before* a release.
# (Code changed: REVISION++)
# (Interfaces added/removed/changed: CURRENT++, REVISION=0)
# (Interfaces added: AGE++)
-# (Interfaces removed/changed: AGE=0)
+# (Interfaces removed: AGE=0)
#
-LIBGPGME_LT_CURRENT=22
-# Subtract 2 from this value if you want to make the LFS transition an
-# ABI break. [Note to self: Remove this comment with the next regular break.]
-LIBGPGME_LT_AGE=11
+LIBGPGME_LT_CURRENT=36
+LIBGPGME_LT_AGE=25
LIBGPGME_LT_REVISION=0
+# If there is an ABI break in gpgmepp or qgpgme also bump the
+# version in IMPORTED_LOCATION in the GpgmeppConfig-w32.cmake.in.in
+
+LIBGPGMEPP_LT_CURRENT=19
+LIBGPGMEPP_LT_AGE=13
+LIBGPGMEPP_LT_REVISION=0
+
+LIBQGPGME_LT_CURRENT=13
+LIBQGPGME_LT_AGE=6
+LIBQGPGME_LT_REVISION=0
+################################################
+
+AC_SUBST(LIBGPGME_LT_CURRENT)
+AC_SUBST(LIBGPGME_LT_AGE)
+AC_SUBST(LIBGPGME_LT_REVISION)
+
+AC_SUBST(LIBGPGMEPP_LT_CURRENT)
+AC_SUBST(LIBGPGMEPP_LT_AGE)
+AC_SUBST(LIBGPGMEPP_LT_REVISION)
+
+AC_SUBST(LIBQGPGME_LT_CURRENT)
+AC_SUBST(LIBQGPGME_LT_AGE)
+AC_SUBST(LIBQGPGME_LT_REVISION)
+
# If the API is changed in an incompatible way: increment the next counter.
GPGME_CONFIG_API_VERSION=1
##############################################
-NEED_GPG_ERROR_VERSION=1.8
+NEED_GPG_ERROR_VERSION=1.36
NEED_LIBASSUAN_API=2
-NEED_LIBASSUAN_VERSION=2.0.2
+NEED_LIBASSUAN_VERSION=2.4.2
-PACKAGE=$PACKAGE_NAME
-VERSION=$PACKAGE_VERSION
+VERSION_MAJOR=mym4_major
+VERSION_MINOR=mym4_minor
+VERSION_MICRO=mym4_micro
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(src/gpgme.h.in)
-AC_CONFIG_HEADER(config.h)
-# Note: For automake 1.13 add the option
-# serial-tests
-AM_INIT_AUTOMAKE
+AC_CONFIG_HEADER(conf/config.h)
+AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
+AM_SILENT_RULES
+AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
# Enable GNU extensions on systems that have them.
-AC_GNU_SOURCE
+AC_USE_SYSTEM_EXTENSIONS
+
+# Taken from mpfr-4.0.1, then modified for LDADD_FOR_TESTS_KLUDGE
+dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH
+dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has
+dnl the precedence over the run path, so that if a compatible MPFR library
+dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested
+dnl MPFR library will be this library instead of the MPFR library from the
+dnl build tree. Other OS with the same issue might be added later.
+dnl
+dnl References:
+dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
+dnl http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
+dnl
+dnl We need to check whether --disable-new-dtags is supported as alternate
+dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc).
+dnl
+case $host in
+ *-*-linux*)
+ if test -n "$LD_LIBRARY_PATH"; then
+ saved_LDFLAGS="$LDFLAGS"
+ LDADD_FOR_TESTS_KLUDGE="-Wl,--disable-new-dtags"
+ LDFLAGS="$LDFLAGS $LDADD_FOR_TESTS_KLUDGE"
+ AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
+int main (void) { return 0; }
+ ]])],
+ [AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))],
+ [AC_MSG_RESULT(no)
+ LDADD_FOR_TESTS_KLUDGE=""
+ ])
+ LDFLAGS="$saved_LDFLAGS"
+ fi
+ ;;
+esac
+AC_SUBST([LDADD_FOR_TESTS_KLUDGE])
AH_VERBATIM([_REENTRANT],
[/* To allow the use of GPGME in multithreaded programs we have to use
#endif])
AC_PROG_CC
+AC_PROG_CPP
AC_PROG_CXX
# Note: A suitable gitlog-to-changelog script can be found in GnuPG master.
AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog, [gitlog-to-changelog])
-AC_SUBST(LIBGPGME_LT_CURRENT)
-AC_SUBST(LIBGPGME_LT_AGE)
-AC_SUBST(LIBGPGME_LT_REVISION)
+AC_SUBST(VERSION_MAJOR)
+AC_SUBST(VERSION_MINOR)
+AC_SUBST(VERSION_MICRO)
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
-VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_version_major \
- mym4_version_minor mym4_version_micro)
+VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_major \
+ mym4_minor mym4_micro)
AC_SUBST(VERSION_NUMBER)
+# We need to compile and run a program on the build machine. A
+# comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
+# the AC archive is broken for autoconf 2.57. Given that there is no
+# newer version of that macro, we assume that it is also broken for
+# autoconf 2.61 and thus we use a simple but usually sufficient
+# approach.
+AC_MSG_CHECKING(for cc for build)
+if test "$cross_compiling" = "yes"; then
+ CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
+else
+ CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
+fi
+AC_MSG_RESULT($CC_FOR_BUILD)
+AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
+
+
# Don't default to build static libs.
LT_PREREQ([2.2.6])
LT_INIT([win32-dll disable-static])
have_ld_version_script=yes
;;
*-apple-darwin*)
+ AC_DEFINE(_DARWIN_C_SOURCE, 1,
+ Expose all libc features (__DARWIN_C_FULL).)
AC_DEFINE(_XOPEN_SOURCE, 500, Activate POSIX interface on MacOS X)
;;
esac
have_android_system=no
have_w32_system=no
have_w64_system=no
+have_macos_system=no
build_w32_glib=no
build_w32_qt=no
+available_languages="cl cpp python qt"
+default_languages="cl cpp python qt"
case "${host}" in
x86_64-*mingw32*)
have_w64_system=yes
;;
- *-mingw32ce*)
- have_w32ce_system=yes
- ;;
*-linux-androideabi)
have_android_system=yes
;;
+ *-apple-darwin*)
+ have_macos_system=yes
+ ;;
esac
case "${host}" in
- *-mingw32ce*|*-mingw32*)
+ *-mingw32*)
have_dosish_system=yes
have_w32_system=yes
GPG_DEFAULT='c:\\gnupg\\gpg.exe'
AM_PATH_GLIB_2_0
AC_ARG_ENABLE(w32-glib,
- AC_HELP_STRING([--enable-w32-glib], [build GPGME Glib for W32]),
+ AS_HELP_STRING([--enable-w32-glib],[build GPGME Glib for W32]),
build_w32_glib=$enableval)
-
- # Check disabled, because the qt-dev packages in gpg4win do
- # not provide any support for cross compilation.
- # PKG_CHECK_MODULES(QT4_CORE, QtCore)
-
- # Use it like this:
- # ./configure --enable-w32-qt QT4_CORE_CFLAGS="..." QT4_CORE_LIBS="..."
- AC_SUBST(QT4_CORE_CFLAGS)
- AC_SUBST(QT4_CORE_LIBS)
- AC_ARG_ENABLE(w32-qt,
- AC_HELP_STRING([--enable-w32-qt], [build GPGME Qt for W32]),
- build_w32_qt=$enableval)
- ;;
+ ;;
*)
- AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes)
- if test "$have_pthread" = yes; then
- AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.])
- fi
# XXX: Probably use exec-prefix here?
# GPG_DEFAULT='/usr/bin/gpg'
fi
AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
-if test "$have_w32ce_system" = yes; then
- AC_DEFINE(HAVE_W32CE_SYSTEM,1,
- [Defined if we run on a W32 CE API based system])
-fi
-AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
-
if test "$have_android_system" = yes; then
AC_DEFINE(HAVE_ANDROID_SYSTEM,1, [Defined if we build for an Android system])
fi
AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
+if test "$have_macos_system" = yes; then
+ AC_DEFINE(HAVE_MACOS_SYSTEM,1,
+ [Defined if we build for an MacOS system])
+fi
+AM_CONDITIONAL(HAVE_MACOS_SYSTEM, test "$have_macos_system" = yes)
+
AM_CONDITIONAL(BUILD_W32_GLIB, test "$build_w32_glib" = yes)
-AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes)
-AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
+AC_ARG_ENABLE([fixed-path],
+ AS_HELP_STRING([--enable-fixed-path=PATH],
+ [locate binaries only via this PATH]),
+ [fixed_search_path="$enableval"],
+ [fixed_search_path=""])
+if test x$fixed_search_path != x ; then
+ AC_DEFINE_UNQUOTED(FIXED_SEARCH_PATH, "$fixed_search_path",
+ [Locate binaries only via this PATH])
+fi
+
+
+# Note: You need to declare all possible languages also in
+# lang/Makefile.am's DIST_SUBDIRS.
+AC_ARG_ENABLE([languages],
+ AS_HELP_STRING([--enable-languages=languages],
+ [enable only specific language bindings]),
+ [enabled_languages=`echo $enableval | \
+ tr ',:' ' ' | tr '[A-Z]' '[a-z]' | \
+ sed 's/c++/cpp/'`],
+ [enabled_languages="maybe"])
+if test "x$enabled_languages" = "x" \
+ -o "$enabled_languages" = "no"; then
+ enabled_languages=
+fi
+
+# If languages are explicitly set missing requirements
+# for the languages are treated as errors otherwise
+# there will be a warning.
+explicit_languages=1
+if test "x$enabled_languages" = "xmaybe"; then
+ explicit_languages=0
+ enabled_languages="$default_languages"
+fi
+
+for language in $enabled_languages; do
+ LIST_MEMBER($language, $available_languages)
+ if test "$found" = "0"; then
+ AC_MSG_ERROR([unsupported language binding specified])
+ fi
+done
+
+
+
+# Enable C++ 11 if cpp language is requested
+LIST_MEMBER("cpp", $enabled_languages)
+if test "$found" = "1"; then
+ AX_CXX_COMPILE_STDCXX(11, noext, optional)
+ if test "$HAVE_CXX11" != "1"; then
+ if test "$explicit_languages" = "1"; then
+ AC_MSG_ERROR([[
+***
+*** A compiler with c++11 support is required for the c++ binding.
+***]])
+ else
+ enabled_languages=$(echo $enabled_languages | sed 's/cpp//')
+ enabled_languages=$(echo $enabled_languages | sed 's/qt//')
+ AC_MSG_WARN([[
+***
+*** No c++11 support detected. C++ and Qt bindings will be disabled.
+***]])
+ fi
+ fi
+fi
+
+# Check that if qt is enabled cpp also is enabled
+LIST_MEMBER("qt", $enabled_languages)
+if test "$found" = "1"; then
+ # We need to ensure that in the language order qt comes after cpp
+ # so we remove qt first and explicitly add it as last list member.
+ enabled_languages=$(echo $enabled_languages | sed 's/qt//')
+ LIST_MEMBER("cpp", $enabled_languages)
+ if test "$found" = "0"; then
+ AC_MSG_ERROR([[
+***
+*** Qt language binding depends on cpp binding.
+***]])
+ fi
+ FIND_QT
+ if test "$have_qt5_libs" != "yes"; then
+ if test "$explicit_languages" = "1"; then
+ AC_MSG_ERROR([[
+***
+*** Qt5 (Qt5Core) is required for Qt binding.
+***]])
+ else
+ AC_MSG_WARN([[
+***
+*** Qt5 (Qt5Core) not found Qt Binding will be disabled.
+***]])
+ fi
+ else
+ enabled_languages=`echo $enabled_languages qt`
+
+ AC_CHECK_PROGS([DOXYGEN], [doxygen])
+ if test -z "$DOXYGEN";
+ # This is not highlighted because it's not really important.
+ then AC_MSG_WARN([Doxygen not found - Qt binding doc will not be built.])
+ fi
+ AC_CHECK_PROGS([GRAPHVIZ], [dot])
+ if test -z "$GRAPHVIZ";
+ then AC_MSG_WARN([Graphviz not found - Qt binding doc will not have diagrams.])
+ fi
+ fi
+fi
+AM_CONDITIONAL([HAVE_DOXYGEN],
+ [test -n "$DOXYGEN"])
+if test -n "$GRAPHVIZ"; then
+ HAVE_DOT="YES"
+else
+ HAVE_DOT="NO"
+fi
+AC_SUBST(HAVE_DOT)
+
+# Python bindings.
+LIST_MEMBER("python", $enabled_languages)
+found_py=$found
+if test "$found_py" = "1"; then
+ AX_PKG_SWIG
+ if test -z "$SWIG"; then
+ if test "$explicit_languages" = "1"; then
+ AC_MSG_ERROR([[
+***
+*** You need SWIG to build the Python bindings.
+***]])
+ else
+ enabled_languages=$(echo $enabled_languages | sed 's/python//')
+ fi
+ else
+ # Reset the version collecting vars.
+ PYTHONS=
+ PYTHON_VERSIONS=
+
+ if test "$found_py" = "1" -o "$found_py3" = "1"; then
+ # Reset everything, so that we can look for another Python.
+ m4_foreach([mym4pythonver],
+ [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]],
+ [unset PYTHON
+ unset PYTHON_VERSION
+ unset PYTHON_CPPFLAGS
+ unset PYTHON_LDFLAGS
+ unset PYTHON_SITE_PKG
+ unset PYTHON_EXTRA_LIBS
+ unset PYTHON_EXTRA_LDFLAGS
+ unset ac_cv_path_PYTHON
+ unset am_cv_pathless_PYTHON
+ unset am_cv_python_version
+ unset am_cv_python_platform
+ unset am_cv_python_pythondir
+ unset am_cv_python_pyexecdir
+ AM_PATH_PYTHON(mym4pythonver, [
+ AX_PYTHON_DEVEL
+ if test "$PYTHON_VERSION"; then
+ PYTHONS="$(echo $PYTHONS $PYTHON)"
+ PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
+ fi
+ ], :, m4_if([mym4pythonver],[all],[],[python]mym4pythonver))
+ ])
+ fi
+
+ # Recover some values lost in the second attempt to find Python.
+ PYTHON="$(echo $PYTHONS | cut -d ' ' -f 1)"
+ PYTHON_VERSION="$(echo $PYTHON_VERSIONS | cut -d ' ' -f 1)"
+
+ # Remove duplicates.
+ PYTHONS="$(echo $PYTHONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
+ PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
+
+ if test "$PYTHON_VERSIONS"; then
+ enabled_languages_v=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python ($PYTHON_VERSIONS)/")
+ enabled_languages=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python/")
+ else
+ if test "$explicit_languages" = "1"; then
+ AC_MSG_ERROR([[
+***
+*** Please install the python development packages.
+***]])
+ else
+ enabled_languages=$(echo $enabled_languages | sed 's/python//')
+ fi
+ fi
+
+ AC_SUBST(PYTHONS, $PYTHONS)
+ fi
+fi
+
+AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
#
# Provide information about the build.
[GIT commit id revision used to build this package])
changequote(,)dnl
-BUILD_FILEVERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
+BUILD_VERSION=`echo "$PACKAGE_VERSION" | sed 's/\([0-9.]*\).*/\1./'`
changequote([,])dnl
-BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
+BUILD_VERSION="${BUILD_VERSION}mym4_revision_dec"
+BUILD_FILEVERSION=`echo "${BUILD_VERSION}" | tr . ,`
+AC_SUBST(BUILD_VERSION)
AC_SUBST(BUILD_FILEVERSION)
-BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
+AC_ARG_ENABLE([build-timestamp],
+ AS_HELP_STRING([--enable-build-timestamp],
+ [set an explicit build timestamp for reproducibility.
+ (default is the current time in ISO-8601 format)]),
+ [if test "$enableval" = "yes"; then
+ BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
+ else
+ BUILD_TIMESTAMP="$enableval"
+ fi],
+ [BUILD_TIMESTAMP="<none>"])
AC_SUBST(BUILD_TIMESTAMP)
AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
[The time this package was configured for a build])
+#
+# Options to disable some regression tests
+#
+run_gpgconf_test="yes"
+AC_ARG_ENABLE(gpgconf-test,
+ AS_HELP_STRING([--disable-gpgconf-test],[disable GPGCONF regression test]),
+ run_gpgconf_test=$enableval)
+AM_CONDITIONAL(RUN_GPGCONF_TESTS, test "$run_gpgconf_test" = "yes")
+
+run_gpg_test="yes"
+AC_ARG_ENABLE(gpg-test,
+ AS_HELP_STRING([--disable-gpg-test],[disable GPG regression test]),
+ run_gpg_test=$enableval)
+AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
+
+run_gpgsm_test="yes"
+AC_ARG_ENABLE(gpgsm-test,
+ AS_HELP_STRING([--disable-gpgsm-test],[disable GPGSM regression test]),
+ run_gpgsm_test=$enableval)
+AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
+
+run_g13_test="yes"
+AC_ARG_ENABLE(g13-test,
+ AS_HELP_STRING([--disable-g13-test],[disable G13 regression test]),
+ run_g13_test=$enableval)
+AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes")
# Checks for header files.
-AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h
+AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h stdint.h
unistd.h sys/time.h sys/types.h sys/stat.h])
AC_TYPE_OFF_T
AC_TYPE_UINTPTR_T
+# We require uint64_t
+if test "$ac_cv_header_stdint_h" != yes; then
+ AC_MSG_ERROR([[
+***
+*** No stdint.h and thus no uint64_t type. Can't build this library.
+***]])
+fi
+
+
# A simple compile time check in gpgme.h for GNU/Linux systems that
# prevents a file offset bits mismatch between gpgme and the application.
NEED__FILE_OFFSET_BITS=0
# Checks for compiler features.
if test "$GCC" = yes; then
CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+ CFLAGS="$CFLAGS -Wno-format-y2k"
+
+ # If -Wno-missing-field-initializers is supported we can expect a
+ # a larger set of warning options.
+ AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
+ _gcc_cflags_save=$CFLAGS
+ CFLAGS="-Wno-missing-field-initializers"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
+ AC_MSG_RESULT($_gcc_wopt)
+ CFLAGS=$_gcc_cflags_save;
+ if test x"$_gcc_wopt" = xyes ; then
+ CFLAGS="$CFLAGS -Wno-missing-field-initializers"
+ CFLAGS="$CFLAGS -Wno-sign-compare"
+ CFLAGS="$CFLAGS -Wno-format-zero-length"
+ CFLAGS="$CFLAGS -Wno-format-truncation"
+ CFLAGS="$CFLAGS -Wno-sizeof-pointer-div"
+ fi
+ if test "$USE_MAINTAINER_MODE" = "yes"; then
+ if test x"$_gcc_wopt" = xyes ; then
+ CFLAGS="$CFLAGS -W -Wextra -Wbad-function-cast"
+ CFLAGS="$CFLAGS -Wwrite-strings"
+ CFLAGS="$CFLAGS -Wdeclaration-after-statement"
+ fi
+ CFLAGS="$CFLAGS -Wformat -Wformat-security"
+ CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-shadow"
+
+ AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
+ _gcc_cflags_save=$CFLAGS
+ CFLAGS="-Wpointer-arith"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
+ AC_MSG_RESULT($_gcc_wopt)
+ CFLAGS=$_gcc_cflags_save;
+ if test x"$_gcc_wopt" = xyes ; then
+ CFLAGS="$CFLAGS -Wpointer-arith"
+ fi
+ fi
if test "$have_w32_system" = yes; then
CFLAGS="$CFLAGS -mms-bitfields"
fi
AC_FUNC_FSEEKO
-AC_REPLACE_FUNCS(vasprintf)
-if test "$ac_cv_func_vasprintf" != yes; then
- GNUPG_CHECK_VA_COPY
-fi
-
# Try to find a thread-safe version of ttyname().
gnupg_REPLACE_TTYNAME_R
if test "$ac_cv_func_ttyname_r" != yes; then
# Try to find a thread-safe version of getenv().
have_thread_safe_getenv=no
jm_GLIBC21
-if test $GLIBC21 = yes; then
+if test $GLIBC21 = yes -o $have_w32_system = yes; then
have_thread_safe_getenv=yes
fi
if test $have_thread_safe_getenv = yes; then
AC_DEFINE_UNQUOTED(GPGME_LIBASSUAN_VERSION, "$libassuan_version",
[version of the libassuan library])
fi
-AM_CONDITIONAL(HAVE_ASSUAN, test "$have_libassuan" = "yes")
-if test "$have_libassuan" = "yes"; then
- AC_DEFINE(ENABLE_ASSUAN,1,[Whether Assuan support is enabled])
-fi
-
-# Checks for system services
-NEED_GPG_VERSION_DEFAULT=1.4.0
-NEED_GPGSM_VERSION_DEFAULT=1.9.6
-NEED_GPGCONF_VERSION_DEFAULT=2.0.4
-NEED_G13_VERSION_DEFAULT=2.1.0
-NEED_GPG_VERSION="$NEED_GPG_VERSION_DEFAULT"
-NEED_GPGSM_VERSION="$NEED_GPGSM_VERSION_DEFAULT"
-NEED_GPGCONF_VERSION="$NEED_GPGCONF_VERSION_DEFAULT"
-NEED_G13_VERSION="$NEED_G13_VERSION_DEFAULT"
-AC_ARG_WITH(gpg-version,
- AC_HELP_STRING([--with-gpg-version=VER], [require GnuPG version VER]),
- NEED_GPG_VERSION=$withval)
-if test "$NEED_GPG_VERSION" = "yes"; then
- NEED_GPG_VERSION="$NEED_GPG_VERSION_DEFAULT"
-fi
-if test "$NEED_GPG_VERSION" = "no"; then
- NEED_GPG_VERSION=0.0.0
-fi
-AC_ARG_WITH(gpgsm-version,
- AC_HELP_STRING([--with-gpgsm-version=VER], [require GPGSM version VER]),
- NEED_GPGSM_VERSION=$withval)
-if test "$NEED_GPGSM_VERSION" = "yes"; then
- NEED_GPGSM_VERSION="$NEED_GPGSM_VERSION_DEFAULT"
-fi
-if test "$NEED_GPGSM_VERSION" = "no"; then
- NEED_GPGSM_VERSION=0.0.0
-fi
-AC_ARG_WITH(gpgconf-version,
- AC_HELP_STRING([--with-gpgconf-version=VER], [require GPGCONF version VER]),
- NEED_GPGCONF_VERSION=$withval)
-if test "$NEED_GPGCONF_VERSION" = "yes"; then
- NEED_GPGCONF_VERSION="$NEED_GPGCONF_VERSION_DEFAULT"
-fi
-if test "$NEED_GPGCONF_VERSION" = "no"; then
- NEED_GPGCONF_VERSION=0.0.0
-fi
-AC_ARG_WITH(g13-version,
- AC_HELP_STRING([--with-g13-version=VER], [require G13 version VER]),
- NEED_G13_VERSION=$withval)
-if test "$NEED_G13_VERSION" = "yes"; then
- NEED_G13_VERSION="$NEED_G13_VERSION_DEFAULT"
-fi
-if test "$NEED_G13_VERSION" = "no"; then
- NEED_G13_VERSION=0.0.0
-fi
-
-AC_DEFINE_UNQUOTED(NEED_GPGCONF_VERSION, "$NEED_GPGCONF_VERSION",
- [Min. needed GPGCONF version.])
-AC_DEFINE_UNQUOTED(NEED_GPG_VERSION, "$NEED_GPG_VERSION",
- [Min. needed GnuPG version.])
-AC_DEFINE_UNQUOTED(NEED_GPGSM_VERSION, "$NEED_GPGSM_VERSION",
- [Min. needed GPGSM version.])
-AC_DEFINE_UNQUOTED(NEED_G13_VERSION, "$NEED_G13_VERSION",
- [Min. needed G13 version.])
-
-#
-# Check for GPGCONF
-#
-gpgconf_usable_for_test=no
-NO_OVERRIDE=no
-AC_ARG_WITH(gpgconf,
- AC_HELP_STRING([--with-gpgconf=PATH],
- [use gpgconf binary at PATH]),
- GPGCONF=$withval, NO_OVERRIDE=yes)
-if test "$NO_OVERRIDE" = "yes" || test "$GPGCONF" = "yes"; then
- GPGCONF=
- NO_OVERRIDE=yes
- if test "$cross_compiling" != "yes"; then
- AC_PATH_PROG(GPGCONF, gpgconf)
- fi
- if test -z "$GPGCONF"; then
- GPGCONF="$GPGCONF_DEFAULT"
- fi
-fi
-if test "$GPGCONF" = no; then
- if test "$NO_OVERRIDE" = "yes"; then
- if test "$cross_compiling" != "yes"; then
- AC_MSG_WARN([
-***
-*** Could not find gpgconf, install gpgconf or use --with-gpgconf=PATH to enable it
-***])
- else
- AC_MSG_ERROR([
-***
-*** Can not determine path to gpgconf when cross-compiling, use --with-gpgconf=PATH
-***])
- fi
- fi
-else
- AC_DEFINE_UNQUOTED(GPGCONF_PATH, "$GPGCONF", [Path to the GPGCONF binary.])
- AC_DEFINE(ENABLE_GPGCONF,1,[Whether GPGCONF support is enabled])
-fi
-AM_CONDITIONAL(HAVE_GPGCONF, test "$GPGCONF" != "no")
-
-dnl Check for GPGCONF version requirement.
-GPGCONF_VERSION=unknown
-ok=maybe
-if test -z "$GPGCONF" -o "x$GPGCONF" = "xno"; then
- ok=no
-else
- if test "$cross_compiling" = "yes"; then
- AC_MSG_WARN([GPGCONF version can not be checked when cross compiling])
- ok=no
- else
- if test ! -x "$GPGCONF"; then
- AC_MSG_WARN([GPGCONF not executable, version check disabled])
- ok=no
- fi
- fi
-fi
-if test "$ok" = "maybe"; then
- AC_MSG_CHECKING(for GPGCONF >= $NEED_GPGCONF_VERSION)
- req_major=`echo $NEED_GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
- req_minor=`echo $NEED_GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $NEED_GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
- GPGCONF_VERSION=`$GPGCONF --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
- major=`echo $GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
- micro=`echo $GPGCONF_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
- if test "$major" -gt "$req_major"; then
- ok=yes
- else
- if test "$major" -eq "$req_major"; then
- if test "$minor" -gt "$req_minor"; then
- ok=yes
- else
- if test "$minor" -eq "$req_minor"; then
- if test "$micro" -ge "$req_micro"; then
- ok=yes
- fi
- fi
- fi
- fi
- fi
- if test "$ok" = "yes"; then
- AC_MSG_RESULT(yes)
- if test "$cross_compiling" != "yes"; then
- gpgconf_usable_for_test=yes
- fi
- else
- AC_MSG_RESULT(no)
- AC_MSG_WARN([GPGCONF must be at least version $NEED_GPGCONF_VERSION])
- fi
-fi
-run_gpgconf_test="$ok"
-AC_ARG_ENABLE(gpgconf-test,
- AC_HELP_STRING([--disable-gpgconf-test], [disable GPGCONF run test]),
- run_gpgconf_test=$enableval)
-AM_CONDITIONAL(RUN_GPGCONF_TESTS, test "$run_gpgconf_test" = "yes")
-
-
-#
-# Check for GPG
-#
-NO_OVERRIDE=no
-AC_ARG_WITH(gpg,
- AC_HELP_STRING([--with-gpg=PATH], [use GnuPG binary at PATH]),
- GPG=$withval, NO_OVERRIDE=yes)
-if test "$NO_OVERRIDE" = "yes" || test "$GPG" = "yes"; then
- GPG=
- NO_OVERRIDE=yes
- if test "$cross_compiling" != "yes"; then
- if test "$gpgconf_usable_for_test" = "yes"; then
- GPG="`$GPGCONF --list-components | grep ^gpg: | cut -d: -f 3`"
- else
- AC_PATH_PROG(GPG, gpg)
- fi
- fi
- if test -z "$GPG"; then
- GPG="$GPG_DEFAULT"
- fi
-fi
-if test "$GPG" = no; then
- if test "$NO_OVERRIDE" = "yes"; then
- if test "$cross_compiling" != "yes"; then
- AC_MSG_WARN([
-***
-*** Could not find GnuPG, install GnuPG or use --with-gpg=PATH to enable it
-***])
- else
- AC_MSG_ERROR([
-***
-*** Can not determine path to GnuPG when cross-compiling, use --with-gpg=PATH
-***])
- fi
- fi
-else
- AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG", [Path to the GnuPG binary.])
- AC_SUBST(GPG)
-fi
-dnl Check for GnuPG version requirement.
-GPG_VERSION=unknown
-ok=maybe
-if test -z "$GPG" -o "x$GPG" = "xno"; then
- ok=no
-else
- if test "$cross_compiling" = "yes"; then
- AC_MSG_WARN([GnuPG version can not be checked when cross compiling])
- ok=no
- else
- if test ! -x "$GPG"; then
- AC_MSG_WARN([GnuPG not executable, version check disabled])
- ok=no
- fi
- fi
-fi
-if test "$ok" = "maybe"; then
- AC_MSG_CHECKING(for GPG >= $NEED_GPG_VERSION)
- req_major=`echo $NEED_GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
- req_minor=`echo $NEED_GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $NEED_GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
- GPG_VERSION=`$GPG --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
- major=`echo $GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
- micro=`echo $GPG_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
- if test "$major" -gt "$req_major"; then
- ok=yes
- else
- if test "$major" -eq "$req_major"; then
- if test "$minor" -gt "$req_minor"; then
- ok=yes
- else
- if test "$minor" -eq "$req_minor"; then
- if test "$micro" -ge "$req_micro"; then
- ok=yes
- fi
- fi
- fi
- fi
- fi
- if test "$ok" = "yes"; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_WARN([GPG must be at least version $NEED_GPG_VERSION])
- fi
-fi
-run_gpg_test="$ok"
-AC_ARG_ENABLE(gpg-test,
- AC_HELP_STRING([--disable-gpg-test], [disable GPG run test]),
- run_gpg_test=$enableval)
-AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
-AC_SUBST(GPG_PATH)
-
-
-#
-# Check for GPGSM
-#
-NO_OVERRIDE=no
-AC_ARG_WITH(gpgsm,
- AC_HELP_STRING([--with-gpgsm=PATH], [use GpgSM binary at PATH]),
- GPGSM=$withval, NO_OVERRIDE=yes)
-if test "$NO_OVERRIDE" = "yes" || test "$GPGSM" = "yes"; then
- GPGSM=
- NO_OVERRIDE=yes
- if test "$cross_compiling" != "yes"; then
- if test "$gpgconf_usable_for_test" = "yes"; then
- GPGSM="`$GPGCONF --list-components | grep ^gpgsm: | cut -d: -f 3`"
- else
- AC_PATH_PROG(GPGSM, gpgsm)
- fi
- fi
- if test -z "$GPGSM"; then
- GPGSM="$GPGSM_DEFAULT"
- fi
-fi
-if test "$GPGSM" = no; then
- if test "$NO_OVERRIDE" = "yes"; then
- if test "$cross_compiling" != "yes"; then
- AC_MSG_WARN([
-***
-*** Could not find GpgSM, install GpgSM or use --with-gpgsm=PATH to enable it
-***])
- else
- AC_MSG_ERROR([
-***
-*** Can not determine path to GpgSM when cross-compiling, use --with-gpgsm=PATH
-***])
- fi
- fi
-else
- AC_DEFINE_UNQUOTED(GPGSM_PATH, "$GPGSM", [Path to the GPGSM binary.])
- AC_DEFINE(ENABLE_GPGSM,1,[Whether GPGSM support is enabled])
-fi
-AM_CONDITIONAL(HAVE_GPGSM, test "$GPGSM" != "no")
-
-
-dnl Check for GPGSM version requirement.
-GPGSM_VERSION=unknown
-ok=maybe
-if test -z "$GPGSM" -o "x$GPGSM" = "xno"; then
- ok=no
-else
- if test "$cross_compiling" = "yes"; then
- AC_MSG_WARN([GPGSM version can not be checked when cross compiling])
- ok=no
- else
- if test ! -x "$GPGSM"; then
- AC_MSG_WARN([GPGSM not executable, version check disabled])
- ok=no
- fi
- fi
-fi
-if test "$ok" = "maybe"; then
- AC_MSG_CHECKING(for GPGSM >= $NEED_GPGSM_VERSION)
- req_major=`echo $NEED_GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
- req_minor=`echo $NEED_GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $NEED_GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
- GPGSM_VERSION=`$GPGSM --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
- major=`echo $GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
- micro=`echo $GPGSM_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
- if test "$major" -gt "$req_major"; then
- ok=yes
- else
- if test "$major" -eq "$req_major"; then
- if test "$minor" -gt "$req_minor"; then
- ok=yes
- else
- if test "$minor" -eq "$req_minor"; then
- if test "$micro" -ge "$req_micro"; then
- ok=yes
- fi
- fi
- fi
- fi
- fi
- if test "$ok" = "yes"; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_WARN([GPGSM must be at least version $NEED_GPGSM_VERSION])
- fi
-fi
-run_gpgsm_test="$ok"
-AC_ARG_ENABLE(gpgsm-test,
- AC_HELP_STRING([--disable-gpgsm-test], [disable GPGSM run test]),
- run_gpgsm_test=$enableval)
-AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
-
-
-#
-# Check for G13
-#
-NO_OVERRIDE=no
-AC_ARG_WITH(g13,
- AC_HELP_STRING([--with-g13=PATH],
- [use g13 binary at PATH]),
- G13=$withval, NO_OVERRIDE=yes)
-if test "$NO_OVERRIDE" = "yes" || test "$G13" = "yes"; then
- G13=
- NO_OVERRIDE=yes
- if test "$cross_compiling" != "yes"; then
- if test "$gpgconf_usable_for_test" = "yes"; then
- G13="`$GPGCONF --list-components | grep ^g13: | cut -d: -f 3`"
- if test -z "$G13"; then
- # Use a hack if gpgconf has no support for g13.
- G13="`$GPGCONF --list-dirs | grep ^bindir: | cut -d: -f 2`/g13"
- fi
- else
- AC_PATH_PROG(G13, g13)
- fi
- fi
- if test -z "$G13"; then
- G13="$G13_DEFAULT"
- fi
-fi
-if test "$G13" = no; then
- if test "$NO_OVERRIDE" = "yes"; then
- if test "$cross_compiling" != "yes"; then
- AC_MSG_WARN([
-***
-*** Could not find g13, install g13 or use --with-g13=PATH to enable it
-***])
- else
- AC_MSG_ERROR([
-***
-*** Can not determine path to g13 when cross-compiling, use --with-g13=PATH
-***])
- fi
- fi
-else
- AC_DEFINE_UNQUOTED(G13_PATH, "$G13", [Path to the G13 binary.])
- AC_DEFINE(ENABLE_G13,1,[Whether G13 support is enabled])
-fi
-AM_CONDITIONAL(HAVE_G13, test "$G13" != "no")
-
-dnl Check for G13 version requirement.
-G13_VERSION=unknown
-ok=maybe
-if test -z "$G13" -o "x$G13" = "xno"; then
- ok=no
-else
- if test "$cross_compiling" = "yes"; then
- AC_MSG_WARN([G13 version can not be checked when cross compiling])
- ok=no
- else
- if test ! -x "$G13"; then
- AC_MSG_WARN([G13 not executable, version check disabled])
- ok=no
- fi
- fi
-fi
-if test "$ok" = "maybe"; then
- AC_MSG_CHECKING(for G13 >= $NEED_G13_VERSION)
- req_major=`echo $NEED_G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
- req_minor=`echo $NEED_G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $NEED_G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
- G13_VERSION=`$G13 --version | sed -n '1 s/.*\ \([[0-9]].*\)/\1/p'`
- major=`echo $G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
- micro=`echo $G13_VERSION | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
- if test "$major" -gt "$req_major"; then
- ok=yes
- else
- if test "$major" -eq "$req_major"; then
- if test "$minor" -gt "$req_minor"; then
- ok=yes
- else
- if test "$minor" -eq "$req_minor"; then
- if test "$micro" -ge "$req_micro"; then
- ok=yes
- fi
- fi
- fi
- fi
- fi
- if test "$ok" = "yes"; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- AC_MSG_WARN([G13 must be at least version $NEED_G13_VERSION])
- fi
-fi
-run_g13_test="$ok"
-AC_ARG_ENABLE(g13-test,
- AC_HELP_STRING([--disable-g13-test], [disable G13 run test]),
- run_g13_test=$enableval)
-AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes")
#
# Other checks
#
-# Check for funopen
-AC_CHECK_FUNCS(funopen)
-if test $ac_cv_func_funopen != yes; then
- # No funopen but we can implement that in terms of fopencookie.
- AC_CHECK_FUNCS(fopencookie)
- if test $ac_cv_func_fopencookie = yes; then
- AC_REPLACE_FUNCS(funopen)
- else
- AC_MSG_WARN([
-***
-*** No implementation of fopencookie or funopen available
-***])
- fi
-fi
-
# Check for getgid etc
-AC_CHECK_FUNCS(getgid getegid)
+AC_CHECK_FUNCS(getgid getegid closefrom)
# Replacement functions.
#include <unistd.h>
])
-
-dnl There seems to be a problem with Apple and decriptor passing.
-dnl Until we found a solution we change the default to no.
-dnl See bug 1483.
-case "${host}" in
- *-apple-darwin*)
- use_descriptor_passing=no
- ;;
- *)
- use_descriptor_passing=yes
- ;;
-esac
+use_descriptor_passing=yes
AC_ARG_ENABLE(fd-passing,
- AC_HELP_STRING([--disable-fd-passing], [do not use FD passing]),
+ AS_HELP_STRING([--disable-fd-passing],[do not use FD passing]),
use_descriptor_passing=$enableval)
if test "$supports_descriptor_passing" != "yes"; then
AM_CONDITIONAL(HAVE_UISERVER, test "$uiserver" != "no")
+# Option --disable-linux-getdents
+#
+# By default we use SYS_getdents on Linux to optimize fd closing
+# before an exec. This option allows to switch this optimization off.
+use_linux_getdents=yes
+AC_ARG_ENABLE(linux-getdents,
+ AS_HELP_STRING([--disable-linux-getdents],
+ [do not use SYS_getdents on Linux]),
+ use_linux_getdents=$enableval)
+if test "$use_linux_getdents" = "yes"; then
+ case "${host}" in
+ *-*-linux*)
+ AC_DEFINE(USE_LINUX_GETDENTS,1,
+ [Defined if SYS_getdents can be used on Linux])
+ ;;
+ esac
+fi
+
+
+#
# Add a few constants to help porting to W32
+#
AH_VERBATIM([SEPCONSTANTS],
[
/* Separators as used in $PATH and file name. */
#define GPG_ERR_ENABLE_ERRNO_MACROS 1
#define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
- "Copyright (C) 2001--2013 g10 Code GmbH\n"
+ "Copyright (C) 2001--2021 g10 Code GmbH\n"
])
GPGME_CONFIG_LIBS="-lgpgme"
GPGME_CONFIG_CFLAGS=""
GPGME_CONFIG_HOST="$host"
+GPGME_CONFIG_AVAIL_LANG="$enabled_languages"
AC_SUBST(GPGME_CONFIG_API_VERSION)
AC_SUBST(GPGME_CONFIG_LIBS)
AC_SUBST(GPGME_CONFIG_CFLAGS)
AC_SUBST(GPGME_CONFIG_HOST)
+AC_SUBST(GPGME_CONFIG_AVAIL_LANG)
# Frob'da Variables
LTLIBOBJS=`echo "$LIB@&t@OBJS" |
AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
AC_SUBST(emacs_local_vars_end, ['End:'])
-
# Last check.
die=no
if test "$have_gpg_error" = "no"; then
***
*** You need libgpg-error to build this program.
** This library is for example available at
-*** ftp://ftp.gnupg.org/gcrypt/libgpg-error
+*** https://www.gnupg.org/ftp/gcrypt/libgpg-error/
*** (at least version $NEED_GPG_ERROR_VERSION is required.)
***]])
fi
die=yes
AC_MSG_NOTICE([[
***
-*** You need libassuan to build this program with GPGSM support.
+*** You need libassuan to build this program.
*** This library is for example available at
-*** ftp://ftp.gnupg.org/gcrypt/libassuan/
+*** https://www.gnupg.org/ftp/gcrypt/libassuan/
*** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
***]])
fi
tests/gpg/Makefile
tests/gpgsm/Makefile
tests/opassuan/Makefile
+ tests/json/Makefile
doc/Makefile
src/versioninfo.rc
+ src/gpgme.pc
+ src/gpgme-glib.pc
src/gpgme.h)
AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config)
+AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile)
+AC_CONFIG_FILES(lang/cpp/tests/Makefile)
+AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig-w32.cmake.in)
+AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig.cmake.in)
+AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfigVersion.cmake)
+AC_CONFIG_FILES(lang/cpp/src/gpgmepp_version.h)
+AC_CONFIG_FILES(lang/qt/Makefile lang/qt/src/Makefile)
+AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig-w32.cmake.in)
+AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig.cmake.in)
+AC_CONFIG_FILES(lang/qt/src/QGpgmeConfigVersion.cmake)
+AC_CONFIG_FILES(lang/qt/tests/Makefile)
+AC_CONFIG_FILES(lang/qt/src/qgpgme_version.h)
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
+AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
+AC_CONFIG_FILES([lang/js/Makefile lang/js/src/Makefile
+ lang/js/BrowserTestExtension/Makefile
+ lang/js/DemoExtension/Makefile])
+AC_CONFIG_FILES(lang/qt/doc/Makefile)
+AC_CONFIG_FILES([lang/python/Makefile
+ lang/python/version.py
+ lang/python/tests/Makefile
+ lang/python/src/Makefile
+ lang/python/examples/Makefile
+ lang/python/doc/Makefile])
+AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
AC_OUTPUT
echo "
GPGME v${VERSION} has been configured as follows:
- Revision: mym4_revision (mym4_revision_dec)
- Platform: $host
+ Revision: mym4_revision (mym4_revision_dec)
+ Platform: $host
- Gpgconf at: $GPGCONF
- Gpgconf version: $GPGCONF_VERSION, min. $NEED_GPGCONF_VERSION
- GPG at: $GPG
- GPG version: $GPG_VERSION, min. $NEED_GPG_VERSION
- Gpgsm at: $GPGSM
- Gpgsm version: $GPGSM_VERSION, min. $NEED_GPGSM_VERSION
- G13 at: $G13
- G13 version: $G13_VERSION, min. $NEED_G13_VERSION
+ UI Server: $uiserver
+ FD Passing: $use_descriptor_passing
- Assuan version: $libassuan_config_version, min. $NEED_LIBASSUAN_VERSION
-
- UI Server: $uiserver
- FD Passing: $use_descriptor_passing
- GPGME Pthread: $have_pthread
+ Language bindings: ${enabled_languages_v:-$enabled_languages}
"
+if test "x${gpg_config_script_warn}" != x; then
+cat <<G10EOF
+ Mismatches between the target platform and the to
+ be used libraries have been been detected for:
+ ${gpg_config_script_warn}
+ Please check above for warning messages.
+
+G10EOF
+fi