Blame configure.ac

Packit d7e8d0
# configure.ac for GPGME
Packit d7e8d0
# Copyright (C) 2000 Werner Koch (dd9jn)
Packit Service 30b792
# Copyright (C) 2001-2018 g10 Code GmbH
Packit d7e8d0
#
Packit d7e8d0
# This file is part of GPGME.
Packit d7e8d0
#
Packit d7e8d0
# GPGME is free software; you can redistribute it and/or modify it
Packit d7e8d0
# under the terms of the GNU Lesser General Public License as
Packit d7e8d0
# published by the Free Software Foundation; either version 2.1 of the
Packit d7e8d0
# License, or (at your option) any later version.
Packit d7e8d0
#
Packit d7e8d0
# GPGME is distributed in the hope that it will be useful, but WITHOUT
Packit d7e8d0
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
Packit d7e8d0
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
Packit d7e8d0
# Public License for more details.
Packit d7e8d0
#
Packit Service 30b792
# You should have received a copy of the GNU Lesser General Public
Packit Service 30b792
# License along with this program; if not, see <https://gnu.org/licenses/>.
Packit Service 30b792
# SPDX-License-Identifier: LGPL-2.1-or-later
Packit d7e8d0
Packit d7e8d0
# (Process this file with autoconf to produce a configure script.)
Packit d7e8d0
AC_PREREQ(2.59)
Packit d7e8d0
min_automake_version="1.14"
Packit d7e8d0
Packit d7e8d0
# To build a release you need to create a tag with the version number
Packit d7e8d0
# (git tag -s gpgme-n.m.k) and run "./autogen.sh --force".  Please
Packit d7e8d0
# bump the version number immediately after the release and do another
Packit d7e8d0
# commit and push so that the git magic is able to work.  See below
Packit d7e8d0
# for the LT versions.
Packit Service 30b792
m4_define([mym4_package],[gpgme])
Packit Service 30b792
m4_define([mym4_major], [1])
Packit Service 30b792
m4_define([mym4_minor], [13])
Packit Service 30b792
m4_define([mym4_micro], [1])
Packit Service 30b792
Packit Service 30b792
# Below is m4 magic to extract and compute the git revision number,
Packit Service 30b792
# the decimalized short revision number, a beta version string and a
Packit Service 30b792
# flag indicating a development version (mym4_isbeta).  Note that the
Packit Service 30b792
# m4 processing is done by autoconf and not during the configure run.
Packit Service 30b792
m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
Packit Service 30b792
                           mym4_package mym4_major mym4_minor mym4_micro),[:]))
Packit Service 30b792
m4_define([mym4_isbeta],       m4_argn(2, mym4_verslist))
Packit Service 30b792
m4_define([mym4_version],      m4_argn(4, mym4_verslist))
Packit Service 30b792
m4_define([mym4_revision],     m4_argn(7, mym4_verslist))
Packit Service 30b792
m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
Packit Service 30b792
m4_esyscmd([echo ]mym4_version[>VERSION])
Packit Service 30b792
AC_INIT([mym4_package],[mym4_version], [https://bugs.gnupg.org])
Packit d7e8d0
Packit d7e8d0
# LT Version numbers, remember to change them just *before* a release.
Packit d7e8d0
#   (Code changed:			REVISION++)
Packit d7e8d0
#   (Interfaces added/removed/changed:	CURRENT++, REVISION=0)
Packit d7e8d0
#   (Interfaces added:			AGE++)
Packit Service 30b792
#   (Interfaces removed:		AGE=0)
Packit d7e8d0
#
Packit Service 30b792
LIBGPGME_LT_CURRENT=33
Packit Service 30b792
LIBGPGME_LT_AGE=22
Packit Service 30b792
LIBGPGME_LT_REVISION=1
Packit d7e8d0
Packit d7e8d0
# If there is an ABI break in gpgmepp or qgpgme also bump the
Packit d7e8d0
# version in IMPORTED_LOCATION in the GpgmeppConfig-w32.cmake.in.in
Packit d7e8d0
Packit Service 30b792
LIBGPGMEPP_LT_CURRENT=16
Packit Service 30b792
LIBGPGMEPP_LT_AGE=10
Packit d7e8d0
LIBGPGMEPP_LT_REVISION=0
Packit d7e8d0
Packit d7e8d0
LIBQGPGME_LT_CURRENT=10
Packit d7e8d0
LIBQGPGME_LT_AGE=3
Packit Service 30b792
LIBQGPGME_LT_REVISION=4
Packit Service 30b792
################################################
Packit Service 30b792
Packit Service 30b792
AC_SUBST(LIBGPGME_LT_CURRENT)
Packit Service 30b792
AC_SUBST(LIBGPGME_LT_AGE)
Packit Service 30b792
AC_SUBST(LIBGPGME_LT_REVISION)
Packit Service 30b792
Packit Service 30b792
AC_SUBST(LIBGPGMEPP_LT_CURRENT)
Packit Service 30b792
AC_SUBST(LIBGPGMEPP_LT_AGE)
Packit Service 30b792
AC_SUBST(LIBGPGMEPP_LT_REVISION)
Packit Service 30b792
Packit Service 30b792
AC_SUBST(LIBQGPGME_LT_CURRENT)
Packit Service 30b792
AC_SUBST(LIBQGPGME_LT_AGE)
Packit Service 30b792
AC_SUBST(LIBQGPGME_LT_REVISION)
Packit d7e8d0
Packit d7e8d0
# If the API is changed in an incompatible way: increment the next counter.
Packit d7e8d0
GPGME_CONFIG_API_VERSION=1
Packit d7e8d0
##############################################
Packit d7e8d0
Packit d7e8d0
NEED_GPG_ERROR_VERSION=1.24
Packit d7e8d0
NEED_LIBASSUAN_API=2
Packit d7e8d0
NEED_LIBASSUAN_VERSION=2.4.2
Packit d7e8d0
Packit d7e8d0
Packit Service 30b792
VERSION_MAJOR=mym4_major
Packit Service 30b792
VERSION_MINOR=mym4_minor
Packit Service 30b792
VERSION_MICRO=mym4_micro
Packit d7e8d0
Packit d7e8d0
AC_CONFIG_AUX_DIR([build-aux])
Packit d7e8d0
AC_CONFIG_MACRO_DIR([m4])
Packit d7e8d0
AC_CONFIG_SRCDIR(src/gpgme.h.in)
Packit Service 30b792
AC_CONFIG_HEADER(conf/config.h)
Packit d7e8d0
AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip])
Packit d7e8d0
AM_MAINTAINER_MODE
Packit d7e8d0
AC_CANONICAL_HOST
Packit d7e8d0
AM_SILENT_RULES
Packit d7e8d0
AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
Packit d7e8d0
Packit d7e8d0
# Enable GNU extensions on systems that have them.
Packit d7e8d0
AC_GNU_SOURCE
Packit d7e8d0
Packit Service 30b792
# Taken from mpfr-4.0.1, then modified for LDADD_FOR_TESTS_KLUDGE
Packit Service 30b792
dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH
Packit Service 30b792
dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has
Packit Service 30b792
dnl the precedence over the run path, so that if a compatible MPFR library
Packit Service 30b792
dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested
Packit Service 30b792
dnl MPFR library will be this library instead of the MPFR library from the
Packit Service 30b792
dnl build tree. Other OS with the same issue might be added later.
Packit Service 30b792
dnl
Packit Service 30b792
dnl References:
Packit Service 30b792
dnl   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
Packit Service 30b792
dnl   http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
Packit Service 30b792
dnl
Packit Service 30b792
dnl We need to check whether --disable-new-dtags is supported as alternate
Packit Service 30b792
dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc).
Packit Service 30b792
dnl
Packit Service 30b792
case $host in
Packit Service 30b792
  *-*-linux*)
Packit Service 30b792
    if test -n "$LD_LIBRARY_PATH"; then
Packit Service 30b792
      saved_LDFLAGS="$LDFLAGS"
Packit Service 30b792
      LDADD_FOR_TESTS_KLUDGE="-Wl,--disable-new-dtags"
Packit Service 30b792
      LDFLAGS="$LDFLAGS $LDADD_FOR_TESTS_KLUDGE"
Packit Service 30b792
      AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker)
Packit Service 30b792
      AC_LINK_IFELSE([AC_LANG_SOURCE([[
Packit Service 30b792
int main (void) { return 0; }
Packit Service 30b792
      ]])],
Packit Service 30b792
      [AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))],
Packit Service 30b792
      [AC_MSG_RESULT(no)
Packit Service 30b792
       LDADD_FOR_TESTS_KLUDGE=""
Packit Service 30b792
      ])
Packit Service 30b792
      LDFLAGS="$saved_LDFLAGS"
Packit Service 30b792
    fi
Packit Service 30b792
    ;;
Packit Service 30b792
esac
Packit Service 30b792
AC_SUBST([LDADD_FOR_TESTS_KLUDGE])
Packit Service 30b792
Packit d7e8d0
AH_VERBATIM([_REENTRANT],
Packit d7e8d0
[/* To allow the use of GPGME in multithreaded programs we have to use
Packit d7e8d0
  special features from the library.
Packit d7e8d0
  IMPORTANT: gpgme is not yet fully reentrant and you should use it
Packit d7e8d0
  only from one thread.  */
Packit d7e8d0
#ifndef _REENTRANT
Packit d7e8d0
# define _REENTRANT 1
Packit d7e8d0
#endif])
Packit d7e8d0
Packit d7e8d0
AC_PROG_CC
Packit d7e8d0
AC_PROG_CPP
Packit d7e8d0
AC_PROG_CXX
Packit d7e8d0
Packit d7e8d0
# Note: A suitable gitlog-to-changelog script can be found in GnuPG master.
Packit d7e8d0
AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog, [gitlog-to-changelog])
Packit d7e8d0
Packit d7e8d0
AC_SUBST(VERSION_MAJOR)
Packit d7e8d0
AC_SUBST(VERSION_MINOR)
Packit d7e8d0
AC_SUBST(VERSION_MICRO)
Packit Service 30b792
Packit Service 30b792
VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_major \
Packit Service 30b792
                          mym4_minor mym4_micro)
Packit d7e8d0
AC_SUBST(VERSION_NUMBER)
Packit d7e8d0
Packit d7e8d0
# We need to compile and run a program on the build machine.  A
Packit d7e8d0
# comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
Packit d7e8d0
# the AC archive is broken for autoconf 2.57.  Given that there is no
Packit d7e8d0
# newer version of that macro, we assume that it is also broken for
Packit d7e8d0
# autoconf 2.61 and thus we use a simple but usually sufficient
Packit d7e8d0
# approach.
Packit d7e8d0
AC_MSG_CHECKING(for cc for build)
Packit d7e8d0
if test "$cross_compiling" = "yes"; then
Packit d7e8d0
  CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
Packit d7e8d0
else
Packit d7e8d0
  CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
Packit d7e8d0
fi
Packit d7e8d0
AC_MSG_RESULT($CC_FOR_BUILD)
Packit d7e8d0
AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Don't default to build static libs.
Packit d7e8d0
LT_PREREQ([2.2.6])
Packit d7e8d0
LT_INIT([win32-dll disable-static])
Packit d7e8d0
LT_LANG([Windows Resource])
Packit d7e8d0
Packit d7e8d0
# For now we hardcode the use of version scripts.  It would be better
Packit d7e8d0
# to write a test for this or even implement this within libtool.
Packit d7e8d0
have_ld_version_script=no
Packit d7e8d0
case "${host}" in
Packit d7e8d0
    *-*-linux*)
Packit d7e8d0
	have_ld_version_script=yes
Packit d7e8d0
        ;;
Packit d7e8d0
    *-*-gnu*)
Packit d7e8d0
	have_ld_version_script=yes
Packit d7e8d0
        ;;
Packit d7e8d0
    *-apple-darwin*)
Packit d7e8d0
        AC_DEFINE(_DARWIN_C_SOURCE, 900000L,
Packit d7e8d0
                  Expose all libc features (__DARWIN_C_FULL).)
Packit d7e8d0
        AC_DEFINE(_XOPEN_SOURCE, 500, Activate POSIX interface on MacOS X)
Packit d7e8d0
        ;;
Packit d7e8d0
esac
Packit d7e8d0
Packit d7e8d0
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
Packit d7e8d0
Packit d7e8d0
GPG_DEFAULT=no
Packit d7e8d0
GPGSM_DEFAULT=no
Packit d7e8d0
GPGCONF_DEFAULT=no
Packit d7e8d0
G13_DEFAULT=no
Packit d7e8d0
component_system=None
Packit d7e8d0
have_dosish_system=no
Packit d7e8d0
have_android_system=no
Packit d7e8d0
have_w32_system=no
Packit d7e8d0
have_w64_system=no
Packit d7e8d0
have_macos_system=no
Packit d7e8d0
build_w32_glib=no
Packit d7e8d0
build_w32_qt=no
Packit Service 30b792
available_languages="cl cpp python qt"
Packit d7e8d0
default_languages="cl cpp python qt"
Packit d7e8d0
case "${host}" in
Packit d7e8d0
    x86_64-*mingw32*)
Packit d7e8d0
        have_w64_system=yes
Packit d7e8d0
        ;;
Packit d7e8d0
    *-linux-androideabi)
Packit d7e8d0
        have_android_system=yes
Packit d7e8d0
        ;;
Packit d7e8d0
    *-apple-darwin*)
Packit d7e8d0
        have_macos_system=yes
Packit d7e8d0
        ;;
Packit d7e8d0
esac
Packit d7e8d0
case "${host}" in
Packit Service 30b792
    *-mingw32*)
Packit d7e8d0
	have_dosish_system=yes
Packit d7e8d0
        have_w32_system=yes
Packit d7e8d0
        GPG_DEFAULT='c:\\gnupg\\gpg.exe'
Packit d7e8d0
	GPGSM_DEFAULT='c:\\gnupg\\gpgsm.exe'
Packit d7e8d0
        GPGCONF_DEFAULT='c:\\gnupg\\gpgconf.exe'
Packit d7e8d0
        G13_DEFAULT='c:\\gnupg\\g13.exe'
Packit d7e8d0
        #component_system='COM+'
Packit d7e8d0
Packit d7e8d0
	AM_PATH_GLIB_2_0
Packit d7e8d0
	AC_ARG_ENABLE(w32-glib,
Packit d7e8d0
	    AC_HELP_STRING([--enable-w32-glib], [build GPGME Glib for W32]),
Packit d7e8d0
	    		   build_w32_glib=$enableval)
Packit d7e8d0
       ;;
Packit d7e8d0
    *)
Packit d7e8d0
Packit d7e8d0
	# XXX: Probably use exec-prefix here?
Packit d7e8d0
#	GPG_DEFAULT='/usr/bin/gpg'
Packit d7e8d0
#	GPGSM_DEFAULT='/usr/bin/gpgsm'
Packit d7e8d0
#	GPGCONF_DEFAULT='/usr/bin/gpgconf'
Packit d7e8d0
#	G13_DEFAULT='/usr/bin/g13'
Packit d7e8d0
	;;
Packit d7e8d0
esac
Packit d7e8d0
Packit d7e8d0
if test "$have_dosish_system" = yes; then
Packit d7e8d0
   AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
Packit d7e8d0
             [Defined if we run on some of the PCDOS like systems
Packit d7e8d0
              (DOS, Windoze. OS/2) with special properties like
Packit d7e8d0
              no file modes])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
Packit d7e8d0
Packit d7e8d0
if test "$have_w32_system" = yes; then
Packit d7e8d0
   AC_DEFINE(HAVE_W32_SYSTEM,1,
Packit d7e8d0
             [Defined if we run on any kind of W32 API based system])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
Packit d7e8d0
Packit d7e8d0
if test "$have_w64_system" = yes; then
Packit d7e8d0
   AC_DEFINE(HAVE_W64_SYSTEM,1,
Packit d7e8d0
             [Defined if we run on a 64 bit W32 API based system])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
Packit d7e8d0
Packit d7e8d0
if test "$have_android_system" = yes; then
Packit d7e8d0
   AC_DEFINE(HAVE_ANDROID_SYSTEM,1, [Defined if we build for an Android system])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
Packit d7e8d0
Packit d7e8d0
if test "$have_macos_system" = yes; then
Packit d7e8d0
   AC_DEFINE(HAVE_MACOS_SYSTEM,1,
Packit d7e8d0
             [Defined if we build for an MacOS system])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_MACOS_SYSTEM, test "$have_macos_system" = yes)
Packit d7e8d0
Packit d7e8d0
AM_CONDITIONAL(BUILD_W32_GLIB, test "$build_w32_glib" = yes)
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
AC_ARG_ENABLE([fixed-path],
Packit d7e8d0
              AC_HELP_STRING([--enable-fixed-path=PATH],
Packit d7e8d0
                             [locate binaries only via this PATH]),
Packit d7e8d0
              [fixed_search_path="$enableval"],
Packit d7e8d0
              [fixed_search_path=""])
Packit d7e8d0
if test x$fixed_search_path != x ; then
Packit d7e8d0
  AC_DEFINE_UNQUOTED(FIXED_SEARCH_PATH, "$fixed_search_path",
Packit d7e8d0
                    [Locate binaries only via this PATH])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Note: You need to declare all possible languages also in
Packit d7e8d0
#       lang/Makefile.am's DIST_SUBDIRS.
Packit d7e8d0
AC_ARG_ENABLE([languages],
Packit d7e8d0
              AC_HELP_STRING([--enable-languages=languages],
Packit d7e8d0
                             [enable only specific language bindings]),
Packit d7e8d0
                             [enabled_languages=`echo $enableval | \
Packit d7e8d0
                             tr ',:' '  ' | tr '[A-Z]' '[a-z]' | \
Packit d7e8d0
                             sed 's/c++/cpp/'`],
Packit d7e8d0
                             [enabled_languages="maybe"])
Packit d7e8d0
if test "x$enabled_languages" = "x" \
Packit d7e8d0
   -o "$enabled_languages" = "no"; then
Packit d7e8d0
   enabled_languages=
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
# If languages are explicitly set missing requirements
Packit d7e8d0
# for the languages are treated as errors otherwise
Packit d7e8d0
# there will be a warning.
Packit d7e8d0
explicit_languages=1
Packit d7e8d0
if test "x$enabled_languages" = "xmaybe"; then
Packit d7e8d0
    explicit_languages=0
Packit d7e8d0
    enabled_languages="$default_languages"
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
for language in $enabled_languages; do
Packit d7e8d0
    LIST_MEMBER($language, $available_languages)
Packit d7e8d0
    if test "$found" = "0"; then
Packit d7e8d0
       AC_MSG_ERROR([unsupported language binding specified])
Packit d7e8d0
    fi
Packit d7e8d0
done
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Enable C++ 11 if cpp language is requested
Packit d7e8d0
LIST_MEMBER("cpp", $enabled_languages)
Packit d7e8d0
if test "$found" = "1"; then
Packit d7e8d0
    AX_CXX_COMPILE_STDCXX(11, noext, optional)
Packit d7e8d0
    if test "$HAVE_CXX11" != "1"; then
Packit d7e8d0
        if test "$explicit_languages" = "1"; then
Packit d7e8d0
            AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** A compiler with c++11 support is required for the c++ binding.
Packit d7e8d0
***]])
Packit d7e8d0
        else
Packit d7e8d0
            enabled_languages=$(echo $enabled_languages | sed 's/cpp//')
Packit d7e8d0
            enabled_languages=$(echo $enabled_languages | sed 's/qt//')
Packit d7e8d0
            AC_MSG_WARN([[
Packit d7e8d0
***
Packit d7e8d0
*** No c++11 support detected. C++ and Qt bindings will be disabled.
Packit d7e8d0
***]])
Packit d7e8d0
        fi
Packit d7e8d0
    fi
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
# Check that if qt is enabled cpp also is enabled
Packit d7e8d0
LIST_MEMBER("qt", $enabled_languages)
Packit d7e8d0
if test "$found" = "1"; then
Packit d7e8d0
    # We need to ensure that in the language order qt comes after cpp
Packit d7e8d0
    # so we remove qt first and explicitly add it as last list member.
Packit d7e8d0
    enabled_languages=$(echo $enabled_languages | sed 's/qt//')
Packit d7e8d0
    LIST_MEMBER("cpp", $enabled_languages)
Packit d7e8d0
    if test "$found" = "0"; then
Packit d7e8d0
        AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** Qt language binding depends on cpp binding.
Packit d7e8d0
***]])
Packit d7e8d0
    fi
Packit d7e8d0
    FIND_QT
Packit d7e8d0
    if test "$have_qt5_libs" != "yes"; then
Packit d7e8d0
        if test "$explicit_languages" = "1"; then
Packit d7e8d0
        AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** Qt5 (Qt5Core) is required for Qt binding.
Packit d7e8d0
***]])
Packit d7e8d0
        else
Packit d7e8d0
           AC_MSG_WARN([[
Packit d7e8d0
***
Packit d7e8d0
*** Qt5 (Qt5Core) not found Qt Binding will be disabled.
Packit d7e8d0
***]])
Packit d7e8d0
        fi
Packit d7e8d0
    else
Packit d7e8d0
        enabled_languages=`echo $enabled_languages qt`
Packit d7e8d0
Packit d7e8d0
        AC_CHECK_PROGS([DOXYGEN], [doxygen])
Packit d7e8d0
        if test -z "$DOXYGEN";
Packit Service 30b792
            # This is not highlighted because it's not really important.
Packit d7e8d0
            then AC_MSG_WARN([Doxygen not found - Qt binding doc will not be built.])
Packit d7e8d0
        fi
Packit d7e8d0
        AC_CHECK_PROGS([GRAPHVIZ], [dot])
Packit d7e8d0
        if test -z "$GRAPHVIZ";
Packit d7e8d0
            then AC_MSG_WARN([Graphviz not found - Qt binding doc will not have diagrams.])
Packit d7e8d0
        fi
Packit d7e8d0
    fi
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL([HAVE_DOXYGEN],
Packit d7e8d0
               [test -n "$DOXYGEN"])
Packit d7e8d0
if test -n "$GRAPHVIZ"; then
Packit d7e8d0
    HAVE_DOT="YES"
Packit d7e8d0
else
Packit d7e8d0
    HAVE_DOT="NO"
Packit d7e8d0
fi
Packit d7e8d0
AC_SUBST(HAVE_DOT)
Packit d7e8d0
Packit d7e8d0
# Python bindings.
Packit d7e8d0
LIST_MEMBER("python", $enabled_languages)
Packit d7e8d0
found_py=$found
Packit Service 30b792
if test "$found_py" = "1"; then
Packit d7e8d0
    AX_PKG_SWIG
Packit d7e8d0
    if test -z "$SWIG"; then
Packit d7e8d0
        if test "$explicit_languages" = "1"; then
Packit d7e8d0
            AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** You need SWIG to build the Python bindings.
Packit d7e8d0
***]])
Packit d7e8d0
        else
Packit d7e8d0
            enabled_languages=$(echo $enabled_languages | sed 's/python//')
Packit d7e8d0
        fi
Packit d7e8d0
    else
Packit Service 30b792
        # Reset the version collecting vars.
Packit d7e8d0
	PYTHONS=
Packit d7e8d0
	PYTHON_VERSIONS=
Packit d7e8d0
Packit d7e8d0
	if test "$found_py" = "1" -o "$found_py3" = "1"; then
Packit Service 30b792
	  # Reset everything, so that we can look for another Python.
Packit Service 30b792
          m4_foreach([mym4pythonver],
Packit Service 30b792
                     [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[all]],
Packit Service 30b792
           [unset PYTHON
Packit d7e8d0
	    unset PYTHON_VERSION
Packit d7e8d0
	    unset PYTHON_CPPFLAGS
Packit d7e8d0
	    unset PYTHON_LDFLAGS
Packit d7e8d0
	    unset PYTHON_SITE_PKG
Packit d7e8d0
	    unset PYTHON_EXTRA_LIBS
Packit d7e8d0
	    unset PYTHON_EXTRA_LDFLAGS
Packit d7e8d0
	    unset ac_cv_path_PYTHON
Packit d7e8d0
	    unset am_cv_pathless_PYTHON
Packit d7e8d0
	    unset am_cv_python_version
Packit d7e8d0
	    unset am_cv_python_platform
Packit d7e8d0
	    unset am_cv_python_pythondir
Packit d7e8d0
	    unset am_cv_python_pyexecdir
Packit Service 30b792
	    AM_PATH_PYTHON(mym4pythonver, [
Packit d7e8d0
		AX_PYTHON_DEVEL
Packit d7e8d0
		if test "$PYTHON_VERSION"; then
Packit d7e8d0
			PYTHONS="$(echo $PYTHONS $PYTHON)"
Packit d7e8d0
			PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
Packit d7e8d0
		fi
Packit Service 30b792
	    ], :, m4_if([mym4pythonver],[all],[],[python]mym4pythonver))
Packit Service 30b792
           ])
Packit d7e8d0
	fi
Packit d7e8d0
Packit d7e8d0
	# Recover some values lost in the second attempt to find Python.
Packit d7e8d0
	PYTHON="$(echo $PYTHONS | cut -d ' ' -f 1)"
Packit d7e8d0
	PYTHON_VERSION="$(echo $PYTHON_VERSIONS | cut -d ' ' -f 1)"
Packit d7e8d0
Packit d7e8d0
	# Remove duplicates.
Packit d7e8d0
	PYTHONS="$(echo $PYTHONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
Packit d7e8d0
	PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
Packit d7e8d0
Packit d7e8d0
	if test "$PYTHON_VERSIONS"; then
Packit d7e8d0
	   enabled_languages_v=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python ($PYTHON_VERSIONS)/")
Packit d7e8d0
	   enabled_languages=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python/")
Packit d7e8d0
	else
Packit d7e8d0
            if test "$explicit_languages" = "1"; then
Packit d7e8d0
                AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** Please install the python development packages.
Packit d7e8d0
***]])
Packit d7e8d0
	    else
Packit d7e8d0
                enabled_languages=$(echo $enabled_languages | sed 's/python//')
Packit d7e8d0
            fi
Packit d7e8d0
	fi
Packit d7e8d0
Packit d7e8d0
	AC_SUBST(PYTHONS, $PYTHONS)
Packit d7e8d0
    fi
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
Packit d7e8d0
Packit d7e8d0
#
Packit d7e8d0
# Provide information about the build.
Packit d7e8d0
#
Packit d7e8d0
BUILD_REVISION="mym4_revision"
Packit d7e8d0
AC_SUBST(BUILD_REVISION)
Packit d7e8d0
AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
Packit d7e8d0
                   [GIT commit id revision used to build this package])
Packit d7e8d0
Packit d7e8d0
changequote(,)dnl
Packit Service 30b792
BUILD_VERSION=`echo "$PACKAGE_VERSION" | sed 's/\([0-9.]*\).*/\1./'`
Packit d7e8d0
changequote([,])dnl
Packit Service 30b792
BUILD_VERSION="${BUILD_VERSION}mym4_revision_dec"
Packit Service 30b792
BUILD_FILEVERSION=`echo "${BUILD_VERSION}" | tr . ,`
Packit Service 30b792
AC_SUBST(BUILD_VERSION)
Packit d7e8d0
AC_SUBST(BUILD_FILEVERSION)
Packit d7e8d0
Packit d7e8d0
AC_ARG_ENABLE([build-timestamp],
Packit d7e8d0
  AC_HELP_STRING([--enable-build-timestamp],
Packit d7e8d0
                 [set an explicit build timestamp for reproducibility.
Packit d7e8d0
                  (default is the current time in ISO-8601 format)]),
Packit d7e8d0
     [if test "$enableval" = "yes"; then
Packit d7e8d0
        BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
Packit d7e8d0
      else
Packit d7e8d0
        BUILD_TIMESTAMP="$enableval"
Packit d7e8d0
      fi],
Packit d7e8d0
     [BUILD_TIMESTAMP="<none>"])
Packit d7e8d0
AC_SUBST(BUILD_TIMESTAMP)
Packit d7e8d0
AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
Packit d7e8d0
                   [The time this package was configured for a build])
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
#
Packit d7e8d0
# Options to disable some regression tests
Packit d7e8d0
#
Packit d7e8d0
run_gpgconf_test="yes"
Packit d7e8d0
AC_ARG_ENABLE(gpgconf-test,
Packit d7e8d0
  AC_HELP_STRING([--disable-gpgconf-test], [disable GPGCONF regression test]),
Packit d7e8d0
         run_gpgconf_test=$enableval)
Packit d7e8d0
AM_CONDITIONAL(RUN_GPGCONF_TESTS, test "$run_gpgconf_test" = "yes")
Packit d7e8d0
Packit d7e8d0
run_gpg_test="yes"
Packit d7e8d0
AC_ARG_ENABLE(gpg-test,
Packit d7e8d0
  AC_HELP_STRING([--disable-gpg-test], [disable GPG regression test]),
Packit d7e8d0
         run_gpg_test=$enableval)
Packit d7e8d0
AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
Packit d7e8d0
Packit d7e8d0
run_gpgsm_test="yes"
Packit d7e8d0
AC_ARG_ENABLE(gpgsm-test,
Packit d7e8d0
  AC_HELP_STRING([--disable-gpgsm-test], [disable GPGSM regression test]),
Packit d7e8d0
         run_gpgsm_test=$enableval)
Packit d7e8d0
AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
Packit d7e8d0
Packit d7e8d0
run_g13_test="yes"
Packit d7e8d0
AC_ARG_ENABLE(g13-test,
Packit d7e8d0
  AC_HELP_STRING([--disable-g13-test], [disable G13 regression test]),
Packit d7e8d0
         run_g13_test=$enableval)
Packit d7e8d0
AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes")
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Checks for header files.
Packit Service 30b792
AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h stdint.h
Packit d7e8d0
                       unistd.h sys/time.h sys/types.h sys/stat.h])
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Type checks.
Packit d7e8d0
AC_C_INLINE
Packit d7e8d0
AC_CHECK_SIZEOF(unsigned int)
Packit d7e8d0
AC_SYS_LARGEFILE
Packit d7e8d0
AC_TYPE_OFF_T
Packit d7e8d0
AC_TYPE_UINTPTR_T
Packit d7e8d0
Packit Service 30b792
# We require uint64_t
Packit Service 30b792
if test "$ac_cv_header_stdint_h" != yes; then
Packit Service 30b792
   AC_MSG_ERROR([[
Packit Service 30b792
***
Packit Service 30b792
*** No stdint.h and thus no uint64_t type.  Can't build this library.
Packit Service 30b792
***]])
Packit Service 30b792
fi
Packit Service 30b792
Packit Service 30b792
Packit d7e8d0
# A simple compile time check in gpgme.h for GNU/Linux systems that
Packit d7e8d0
# prevents a file offset bits mismatch between gpgme and the application.
Packit d7e8d0
NEED__FILE_OFFSET_BITS=0
Packit d7e8d0
if test "$have_w32_system" != yes; then
Packit d7e8d0
  case "$ac_cv_sys_file_offset_bits" in
Packit d7e8d0
    "" | no | unknown) ;;
Packit d7e8d0
    *)
Packit d7e8d0
    NEED__FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits
Packit d7e8d0
    ;;
Packit d7e8d0
  esac
Packit d7e8d0
fi
Packit d7e8d0
AC_SUBST(NEED__FILE_OFFSET_BITS)
Packit d7e8d0
Packit d7e8d0
# Figure out platform dependent typedefs for gpgme.h
Packit d7e8d0
if test "$have_w32_system" = yes; then
Packit d7e8d0
    INSERT__TYPEDEFS_FOR_GPGME_H="
Packit d7e8d0
#ifdef _WIN64
Packit d7e8d0
# include <stdint.h>
Packit d7e8d0
  typedef int64_t gpgme_off_t;
Packit d7e8d0
  typedef int64_t gpgme_ssize_t;
Packit d7e8d0
#else /* _WIN32 */
Packit d7e8d0
  typedef long gpgme_off_t;
Packit d7e8d0
  typedef long gpgme_ssize_t;
Packit d7e8d0
#endif /* _WIN32 */"
Packit d7e8d0
    API__OFF_T="gpgme_off_t"
Packit d7e8d0
    API__SSIZE_T="gpgme_ssize_t"
Packit d7e8d0
else
Packit d7e8d0
    INSERT__TYPEDEFS_FOR_GPGME_H="
Packit d7e8d0
#include <sys/types.h>
Packit d7e8d0
typedef off_t   gpgme_off_t;
Packit d7e8d0
typedef ssize_t gpgme_ssize_t;"
Packit d7e8d0
    API__OFF_T="off_t"
Packit d7e8d0
    API__SSIZE_T="ssize_t"
Packit d7e8d0
fi
Packit d7e8d0
AC_SUBST(INSERT__TYPEDEFS_FOR_GPGME_H)
Packit d7e8d0
AM_SUBST_NOTMAKE(INSERT__TYPEDEFS_FOR_GPGME_H)
Packit d7e8d0
AC_SUBST(API__OFF_T)
Packit d7e8d0
AM_SUBST_NOTMAKE(API__OFF_T)
Packit d7e8d0
AC_SUBST(API__SSIZE_T)
Packit d7e8d0
AM_SUBST_NOTMAKE(API__SSIZE_T)
Packit d7e8d0
Packit d7e8d0
# Checks for compiler features.
Packit d7e8d0
if test "$GCC" = yes; then
Packit d7e8d0
    CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
Packit Service 30b792
    CFLAGS="$CFLAGS -Wno-format-y2k"
Packit Service 30b792
Packit Service 30b792
    # If -Wno-missing-field-initializers is supported we can expect a
Packit Service 30b792
    # a larger set of warning options.
Packit Service 30b792
    AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
Packit Service 30b792
    _gcc_cflags_save=$CFLAGS
Packit Service 30b792
    CFLAGS="-Wno-missing-field-initializers"
Packit Service 30b792
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
Packit Service 30b792
    AC_MSG_RESULT($_gcc_wopt)
Packit Service 30b792
    CFLAGS=$_gcc_cflags_save;
Packit Service 30b792
    if test x"$_gcc_wopt" = xyes ; then
Packit Service 30b792
      CFLAGS="$CFLAGS -Wno-missing-field-initializers"
Packit Service 30b792
      CFLAGS="$CFLAGS -Wno-sign-compare"
Packit Service 30b792
      CFLAGS="$CFLAGS -Wno-format-zero-length"
Packit Service 30b792
      CFLAGS="$CFLAGS -Wno-format-truncation"
Packit Service 30b792
      CFLAGS="$CFLAGS -Wno-sizeof-pointer-div"
Packit Service 30b792
    fi
Packit d7e8d0
    if test "$USE_MAINTAINER_MODE" = "yes"; then
Packit d7e8d0
        if test x"$_gcc_wopt" = xyes ; then
Packit d7e8d0
          CFLAGS="$CFLAGS -W -Wextra -Wbad-function-cast"
Packit d7e8d0
          CFLAGS="$CFLAGS -Wwrite-strings"
Packit d7e8d0
          CFLAGS="$CFLAGS -Wdeclaration-after-statement"
Packit d7e8d0
        fi
Packit Service 30b792
        CFLAGS="$CFLAGS -Wformat -Wformat-security"
Packit d7e8d0
        CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-shadow"
Packit d7e8d0
Packit d7e8d0
        AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
Packit d7e8d0
        _gcc_cflags_save=$CFLAGS
Packit d7e8d0
        CFLAGS="-Wpointer-arith"
Packit d7e8d0
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
Packit d7e8d0
        AC_MSG_RESULT($_gcc_wopt)
Packit d7e8d0
        CFLAGS=$_gcc_cflags_save;
Packit d7e8d0
        if test x"$_gcc_wopt" = xyes ; then
Packit d7e8d0
          CFLAGS="$CFLAGS -Wpointer-arith"
Packit d7e8d0
        fi
Packit d7e8d0
    fi
Packit d7e8d0
    if test "$have_w32_system" = yes; then
Packit d7e8d0
       CFLAGS="$CFLAGS -mms-bitfields"
Packit d7e8d0
    fi
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
# Only used for debugging, so no serious test needed (for actual
Packit d7e8d0
# functionality you have to test libc as well, this only tests the
Packit d7e8d0
# compiler).
Packit d7e8d0
AC_CACHE_CHECK([for __thread],[gpgme_cv_tls_works],
Packit d7e8d0
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([__thread int foo;])],
Packit d7e8d0
                     gpgme_cv_tls_works=yes,gpgme_cv_tls_works=no))
Packit d7e8d0
if test "$gpgme_cv_tls_works" = yes; then
Packit d7e8d0
  AC_DEFINE(HAVE_TLS, [1], [Define if __thread is supported])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Checks for library functions.
Packit d7e8d0
AC_MSG_NOTICE([checking for libraries])
Packit d7e8d0
Packit d7e8d0
AC_FUNC_FSEEKO
Packit d7e8d0
Packit d7e8d0
# Try to find a thread-safe version of ttyname().
Packit d7e8d0
gnupg_REPLACE_TTYNAME_R
Packit d7e8d0
if test "$ac_cv_func_ttyname_r" != yes; then
Packit d7e8d0
  AC_MSG_WARN([
Packit d7e8d0
***
Packit d7e8d0
*** ttyname() is not thread-safe and ttyname_r() does not exist
Packit d7e8d0
***])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
# Try to find a thread-safe version of getenv().
Packit d7e8d0
have_thread_safe_getenv=no
Packit d7e8d0
jm_GLIBC21
Packit Service 30b792
if test $GLIBC21 = yes -o $have_w32_system = yes; then
Packit d7e8d0
  have_thread_safe_getenv=yes
Packit d7e8d0
fi
Packit d7e8d0
if test $have_thread_safe_getenv = yes; then
Packit d7e8d0
  AC_DEFINE(HAVE_THREAD_SAFE_GETENV, [1], [Define if getenv() is thread-safe])
Packit d7e8d0
fi
Packit d7e8d0
have_getenv_r=no
Packit d7e8d0
AC_CHECK_FUNCS(getenv_r, have_getenv_r=yes)
Packit d7e8d0
if test $have_getenv_r = no && test $have_thread_safe_getenv = no; then
Packit d7e8d0
  AC_MSG_WARN([
Packit d7e8d0
***
Packit d7e8d0
*** getenv() is not thread-safe and getenv_r() does not exist
Packit d7e8d0
***])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
# For converting time strings to seconds since Epoch, we need the timegm
Packit d7e8d0
# function.
Packit d7e8d0
AC_CHECK_FUNCS(timegm)
Packit d7e8d0
if test "$ac_cv_func_timegm" != yes; then
Packit d7e8d0
  AC_MSG_WARN([
Packit d7e8d0
***
Packit d7e8d0
*** timegm() not available - a non-thread-safe kludge will be used
Packit d7e8d0
*** and the TZ variable might be changed at runtime.
Packit d7e8d0
***])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
AC_CHECK_FUNCS(setlocale)
Packit d7e8d0
Packit d7e8d0
# Checking for libgpg-error.
Packit d7e8d0
have_gpg_error=no
Packit d7e8d0
AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
Packit d7e8d0
                  have_gpg_error=yes, have_gpg_error=no)
Packit d7e8d0
AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GPGME,
Packit d7e8d0
          [The default error source for GPGME.])
Packit d7e8d0
Packit d7e8d0
# And for libassuan.
Packit d7e8d0
have_libassuan=no
Packit d7e8d0
AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
Packit d7e8d0
                  have_libassuan=yes, have_libassuan=no)
Packit d7e8d0
if test "$have_libassuan" = "yes"; then
Packit d7e8d0
  AC_DEFINE_UNQUOTED(GPGME_LIBASSUAN_VERSION, "$libassuan_version",
Packit d7e8d0
                     [version of the libassuan library])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
#
Packit d7e8d0
# Other checks
Packit d7e8d0
#
Packit d7e8d0
Packit d7e8d0
# Check for getgid etc
Packit d7e8d0
AC_CHECK_FUNCS(getgid getegid closefrom)
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Replacement functions.
Packit d7e8d0
AC_REPLACE_FUNCS(stpcpy)
Packit d7e8d0
AC_REPLACE_FUNCS(setenv)
Packit d7e8d0
Packit d7e8d0
# Assuan check for descriptor passing.
Packit d7e8d0
AC_CHECK_MEMBER(struct cmsghdr.cmsg_len,
Packit d7e8d0
                [supports_descriptor_passing=yes],
Packit d7e8d0
                [supports_descriptor_passing=no
Packit d7e8d0
                 AC_MSG_WARN([
Packit d7e8d0
***
Packit d7e8d0
*** Data structure for sending ancillary data missing.
Packit d7e8d0
*** Descriptor passing won't work.
Packit d7e8d0
***])],[
Packit d7e8d0
#include <stdlib.h>
Packit d7e8d0
#include <stddef.h>
Packit d7e8d0
#include <stdio.h>
Packit d7e8d0
#include <sys/types.h>
Packit d7e8d0
#include <sys/socket.h>
Packit d7e8d0
#include <sys/un.h>
Packit d7e8d0
#if HAVE_SYS_UIO_H
Packit d7e8d0
#include <sys/uio.h>
Packit d7e8d0
#endif
Packit d7e8d0
#include <unistd.h>
Packit d7e8d0
       ])
Packit d7e8d0
Packit d7e8d0
use_descriptor_passing=yes
Packit d7e8d0
AC_ARG_ENABLE(fd-passing,
Packit d7e8d0
  AC_HELP_STRING([--disable-fd-passing], [do not use FD passing]),
Packit d7e8d0
  use_descriptor_passing=$enableval)
Packit d7e8d0
Packit d7e8d0
if test "$supports_descriptor_passing" != "yes"; then
Packit d7e8d0
  use_descriptor_passing=no
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
if test "$use_descriptor_passing" = "yes"; then
Packit d7e8d0
AC_DEFINE(USE_DESCRIPTOR_PASSING,1,
Packit d7e8d0
          [Defined if descriptor passing is enabled and supported])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
AM_CONDITIONAL(USE_DESCRIPTOR_PASSING, test "$use_descriptor_passing" = "yes")
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
uiserver=no
Packit d7e8d0
if test "$use_descriptor_passing" = "yes" && test "$have_libassuan" = "yes"; then
Packit d7e8d0
  uiserver=yes
Packit d7e8d0
fi
Packit d7e8d0
if test "$uiserver" != "no"; then
Packit d7e8d0
  AC_DEFINE(ENABLE_UISERVER, 1,
Packit d7e8d0
            [Defined if we are building with uiserver support.])
Packit d7e8d0
fi
Packit d7e8d0
AM_CONDITIONAL(HAVE_UISERVER, test "$uiserver" != "no")
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Option --disable-linux-getdents
Packit d7e8d0
#
Packit d7e8d0
# By default we use SYS_getdents on Linux to optimize fd closing
Packit d7e8d0
# before an exec.  This option allows to switch this optimization off.
Packit d7e8d0
use_linux_getdents=yes
Packit d7e8d0
AC_ARG_ENABLE(linux-getdents,
Packit d7e8d0
              AC_HELP_STRING([--disable-linux-getdents],
Packit d7e8d0
                             [do not use SYS_getdents on Linux]),
Packit d7e8d0
              use_linux_getdents=$enableval)
Packit d7e8d0
if test "$use_linux_getdents" = "yes"; then
Packit d7e8d0
    case "${host}" in
Packit d7e8d0
        *-*-linux*)
Packit d7e8d0
           AC_DEFINE(USE_LINUX_GETDENTS,1,
Packit d7e8d0
                     [Defined if SYS_getdents can be used on Linux])
Packit d7e8d0
           ;;
Packit d7e8d0
    esac
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
#
Packit d7e8d0
# Add a few constants to help porting to W32
Packit d7e8d0
#
Packit d7e8d0
AH_VERBATIM([SEPCONSTANTS],
Packit d7e8d0
[
Packit d7e8d0
/* Separators as used in $PATH and file name.  */
Packit d7e8d0
#ifdef HAVE_DOSISH_SYSTEM
Packit d7e8d0
#define PATHSEP_C ';'
Packit d7e8d0
#define DIRSEP_C '\\'
Packit d7e8d0
#define DIRSEP_S "\\"
Packit d7e8d0
#else
Packit d7e8d0
#define PATHSEP_C ':'
Packit d7e8d0
#define DIRSEP_C '/'
Packit d7e8d0
#define DIRSEP_S "/"
Packit d7e8d0
#endif
Packit d7e8d0
])
Packit d7e8d0
Packit d7e8d0
AH_BOTTOM([
Packit d7e8d0
/* Definition of GCC specific attributes.  */
Packit d7e8d0
#if __GNUC__ > 2
Packit d7e8d0
# define GPGME_GCC_A_PURE  __attribute__ ((__pure__))
Packit d7e8d0
#else
Packit d7e8d0
# define GPGME_GCC_A_PURE
Packit d7e8d0
#endif
Packit d7e8d0
Packit d7e8d0
/* Under WindowsCE we need gpg-error's strerror macro.  */
Packit d7e8d0
#define GPG_ERR_ENABLE_ERRNO_MACROS 1
Packit d7e8d0
Packit d7e8d0
#define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
Packit Service 30b792
                    "Copyright (C) 2001--2018 g10 Code GmbH\n"
Packit d7e8d0
])
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# Substitution used for gpgme-config
Packit d7e8d0
GPGME_CONFIG_LIBS="-lgpgme"
Packit d7e8d0
GPGME_CONFIG_CFLAGS=""
Packit d7e8d0
GPGME_CONFIG_HOST="$host"
Packit d7e8d0
GPGME_CONFIG_AVAIL_LANG="$enabled_languages"
Packit d7e8d0
AC_SUBST(GPGME_CONFIG_API_VERSION)
Packit d7e8d0
AC_SUBST(GPGME_CONFIG_LIBS)
Packit d7e8d0
AC_SUBST(GPGME_CONFIG_CFLAGS)
Packit d7e8d0
AC_SUBST(GPGME_CONFIG_HOST)
Packit d7e8d0
AC_SUBST(GPGME_CONFIG_AVAIL_LANG)
Packit d7e8d0
Packit d7e8d0
# Frob'da Variables
Packit d7e8d0
LTLIBOBJS=`echo "$LIB@&t@OBJS" |
Packit d7e8d0
           sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`
Packit d7e8d0
AC_SUBST(LTLIBOBJS)
Packit d7e8d0
Packit d7e8d0
# Some checks for gpgme-tool
Packit d7e8d0
# Done at top: AC_CHECK_HEADER([argp.h])
Packit d7e8d0
AC_CHECK_TYPES([error_t], [],
Packit d7e8d0
   [AC_DEFINE([error_t], [int],
Packit d7e8d0
   [Define to a type to use for `error_t' if it is not otherwise available.])],
Packit d7e8d0
   [#include <errno.h>])
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
# A substitution to set generated files in a Emacs buffer to read-only.
Packit d7e8d0
AC_SUBST(emacs_local_vars_begin, [['Local][ ][Variables:']])
Packit d7e8d0
AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
Packit d7e8d0
AC_SUBST(emacs_local_vars_end, ['End:'])
Packit d7e8d0
Packit d7e8d0
# Last check.
Packit d7e8d0
die=no
Packit d7e8d0
if test "$have_gpg_error" = "no"; then
Packit d7e8d0
   die=yes
Packit d7e8d0
   AC_MSG_NOTICE([[
Packit d7e8d0
***
Packit d7e8d0
*** You need libgpg-error to build this program.
Packit d7e8d0
**  This library is for example available at
Packit Service 30b792
***   https://www.gnupg.org/ftp/gcrypt/libgpg-error/
Packit d7e8d0
*** (at least version $NEED_GPG_ERROR_VERSION is required.)
Packit d7e8d0
***]])
Packit d7e8d0
fi
Packit d7e8d0
if test "$have_libassuan" = "no"; then
Packit d7e8d0
   die=yes
Packit d7e8d0
   AC_MSG_NOTICE([[
Packit d7e8d0
***
Packit d7e8d0
*** You need libassuan to build this program.
Packit d7e8d0
*** This library is for example available at
Packit Service 30b792
***   https://www.gnupg.org/ftp/gcrypt/libassuan/
Packit d7e8d0
*** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
Packit d7e8d0
***]])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
if test "$die" = "yes"; then
Packit d7e8d0
    AC_MSG_ERROR([[
Packit d7e8d0
***
Packit d7e8d0
*** Required libraries not found. Please consult the above messages
Packit d7e8d0
*** and install them before running configure again.
Packit d7e8d0
***]])
Packit d7e8d0
fi
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
#
Packit d7e8d0
# Create config files
Packit d7e8d0
Packit d7e8d0
AC_CONFIG_FILES(Makefile src/Makefile
Packit d7e8d0
		tests/Makefile
Packit d7e8d0
                tests/gpg/Makefile
Packit d7e8d0
                tests/gpgsm/Makefile
Packit d7e8d0
                tests/opassuan/Makefile
Packit Service 30b792
                tests/json/Makefile
Packit d7e8d0
		doc/Makefile
Packit d7e8d0
                src/versioninfo.rc
Packit Service 30b792
                src/gpgme.pc
Packit Service 30b792
                src/gpgme-glib.pc
Packit d7e8d0
                src/gpgme.h)
Packit d7e8d0
AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config)
Packit d7e8d0
AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile)
Packit Service 30b792
AC_CONFIG_FILES(lang/cpp/tests/Makefile)
Packit d7e8d0
AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig-w32.cmake.in)
Packit d7e8d0
AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig.cmake.in)
Packit d7e8d0
AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfigVersion.cmake)
Packit d7e8d0
AC_CONFIG_FILES(lang/cpp/src/gpgmepp_version.h)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/Makefile lang/qt/src/Makefile)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig-w32.cmake.in)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig.cmake.in)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/src/QGpgmeConfigVersion.cmake)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/tests/Makefile)
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/src/qgpgme_version.h)
Packit d7e8d0
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
Packit d7e8d0
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
Packit Service 30b792
AC_CONFIG_FILES([lang/js/Makefile lang/js/src/Makefile
Packit Service 30b792
                 lang/js/BrowserTestExtension/Makefile
Packit Service 30b792
                 lang/js/DemoExtension/Makefile])
Packit d7e8d0
AC_CONFIG_FILES(lang/qt/doc/Makefile)
Packit d7e8d0
AC_CONFIG_FILES([lang/python/Makefile
Packit d7e8d0
		 lang/python/version.py
Packit Service 30b792
		 lang/python/tests/Makefile
Packit Service 30b792
		 lang/python/src/Makefile
Packit Service 30b792
		 lang/python/examples/Makefile
Packit Service 30b792
		 lang/python/doc/Makefile])
Packit d7e8d0
AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
Packit d7e8d0
AC_OUTPUT
Packit d7e8d0
Packit d7e8d0
echo "
Packit d7e8d0
        GPGME v${VERSION} has been configured as follows:
Packit d7e8d0
Packit d7e8d0
        Revision:          mym4_revision  (mym4_revision_dec)
Packit d7e8d0
        Platform:          $host
Packit d7e8d0
Packit d7e8d0
        UI Server:         $uiserver
Packit d7e8d0
        FD Passing:        $use_descriptor_passing
Packit d7e8d0
Packit d7e8d0
        Language bindings: ${enabled_languages_v:-$enabled_languages}
Packit d7e8d0
"
Packit d7e8d0
if test "x${gpg_config_script_warn}" != x; then
Packit d7e8d0
cat <
Packit d7e8d0
        Mismatches between the target platform and the to
Packit d7e8d0
        be used libraries have been been detected for:
Packit d7e8d0
         ${gpg_config_script_warn}
Packit d7e8d0
        Please check above for warning messages.
Packit d7e8d0
Packit d7e8d0
G10EOF
Packit d7e8d0
fi