dpcs: python howto
[gpgme.git] / configure.ac
index ba26901..1813cc5 100644 (file)
@@ -1,7 +1,6 @@
 # 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, 2014, 2015  g10 Code GmbH
+# Copyright (C) 2001-2018 g10 Code GmbH
 #
 # This file is part of GPGME.
 #
@@ -28,8 +27,8 @@ min_automake_version="1.14"
 # commit and push so that the git magic is able to work.  See below
 # for the LT versions.
 m4_define(mym4_version_major, [1])
-m4_define(mym4_version_minor, [8])
-m4_define(mym4_version_micro, [1])
+m4_define(mym4_version_minor, [11])
+m4_define(mym4_version_micro, [2])
 
 # Below is m4 magic to extract and compute the revision number, the
 # decimalized short revision number, a beta version string, and a flag
@@ -55,28 +54,28 @@ AC_INIT([gpgme],[mym4_full_version],[http://bugs.gnupg.org])
 #   (Interfaces added:                 AGE++)
 #   (Interfaces removed/changed:       AGE=0)
 #
-LIBGPGME_LT_CURRENT=28
-LIBGPGME_LT_AGE=17
-LIBGPGME_LT_REVISION=0
+LIBGPGME_LT_CURRENT=31
+LIBGPGME_LT_AGE=20
+LIBGPGME_LT_REVISION=1
 
 # 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=9
-LIBGPGMEPP_LT_AGE=3
+LIBGPGMEPP_LT_CURRENT=13
+LIBGPGMEPP_LT_AGE=7
 LIBGPGMEPP_LT_REVISION=0
 
-LIBQGPGME_LT_CURRENT=8
-LIBQGPGME_LT_AGE=1
-LIBQGPGME_LT_REVISION=0
+LIBQGPGME_LT_CURRENT=10
+LIBQGPGME_LT_AGE=3
+LIBQGPGME_LT_REVISION=2
 
 # If the API is changed in an incompatible way: increment the next counter.
 GPGME_CONFIG_API_VERSION=1
 ##############################################
 
-NEED_GPG_ERROR_VERSION=1.17
+NEED_GPG_ERROR_VERSION=1.24
 NEED_LIBASSUAN_API=2
-NEED_LIBASSUAN_VERSION=2.0.2
+NEED_LIBASSUAN_VERSION=2.4.2
 
 
 PACKAGE=$PACKAGE_NAME
@@ -109,6 +108,7 @@ AH_VERBATIM([_REENTRANT],
 #endif])
 
 AC_PROG_CC
+AC_PROG_CPP
 AC_PROG_CXX
 
 # Note: A suitable gitlog-to-changelog script can be found in GnuPG master.
@@ -279,7 +279,7 @@ if test x$fixed_search_path != x ; then
 fi
 
 
-# Note: You need to declare all possible langauges also in
+# Note: You need to declare all possible languages also in
 #       lang/Makefile.am's DIST_SUBDIRS.
 AC_ARG_ENABLE([languages],
               AC_HELP_STRING([--enable-languages=languages],
@@ -335,7 +335,7 @@ 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 langauge order qt comes after cpp
+    # 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)
@@ -418,12 +418,13 @@ if test "$found_py" = "1" -o "$found_py2" = "1" -o "$found_py3" = "1"; then
        unset am_cv_python_pyexecdir
 
        if test "$found_py" = "1" -o "$found_py2" = "1"; then
-           AM_PATH_PYTHON([2.7])
-           AX_PYTHON_DEVEL
-           if test "$PYTHON_VERSION"; then
-               PYTHONS="$(echo $PYTHONS $PYTHON)"
-               PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
-           fi
+           AM_PATH_PYTHON([2.7], [
+               AX_PYTHON_DEVEL
+               if test "$PYTHON_VERSION"; then
+                       PYTHONS="$(echo $PYTHONS $PYTHON)"
+                       PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
+               fi
+           ], :)
        fi
 
        if test "$found_py" = "1" -o "$found_py3" = "1"; then
@@ -441,17 +442,26 @@ if test "$found_py" = "1" -o "$found_py2" = "1" -o "$found_py3" = "1"; then
            unset am_cv_python_platform
            unset am_cv_python_pythondir
            unset am_cv_python_pyexecdir
-           AM_PATH_PYTHON([3.4])
-           AX_PYTHON_DEVEL
-           if test "$PYTHON_VERSION"; then
-               PYTHONS="$(echo $PYTHONS $PYTHON)"
-               PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
-           fi
+           AM_PATH_PYTHON([3.4], [
+               AX_PYTHON_DEVEL
+               if test "$PYTHON_VERSION"; then
+                       PYTHONS="$(echo $PYTHONS $PYTHON)"
+                       PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
+               fi
+           ], :)
        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 "s/python\([[23]]\)\?/python ($PYTHON_VERSIONS)/")
-          enabled_languages=$(echo $enabled_languages | sed "s/python\([[23]]\)\?/python/")
+          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([[
@@ -464,7 +474,6 @@ if test "$found_py" = "1" -o "$found_py2" = "1" -o "$found_py3" = "1"; then
        fi
 
        AC_SUBST(PYTHONS, $PYTHONS)
-       AC_SUBST(PYTHON_VERSIONS, $PYTHON_VERSIONS)
     fi
 fi
 
@@ -528,7 +537,7 @@ 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])
 
 
@@ -539,6 +548,15 @@ AC_SYS_LARGEFILE
 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
@@ -646,7 +664,7 @@ fi
 # 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
@@ -752,7 +770,28 @@ fi
 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,
+              AC_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.  */
@@ -779,7 +818,7 @@ AH_BOTTOM([
 #define GPG_ERR_ENABLE_ERRNO_MACROS 1
 
 #define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
-                    "Copyright (C) 2001--2016 g10 Code GmbH\n"
+                    "Copyright (C) 2001--2018 g10 Code GmbH\n"
 ])
 
 
@@ -869,9 +908,12 @@ 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/gpg/version.py
+                lang/python/version.py
                 lang/python/tests/Makefile])
 AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
 AC_OUTPUT