gpg: Rename cipher.c to cipher-cfb.c
[gnupg.git] / acinclude.m4
index 5f742b2..690dc42 100644 (file)
@@ -5,17 +5,16 @@ dnl This file is part of GnuPG.
 dnl
 dnl GnuPG is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
+dnl the Free Software Foundation; either version 3 of the License, or
 dnl (at your option) any later version.
-dnl 
+dnl
 dnl GnuPG is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
-dnl 
+dnl
 dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+dnl along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
 dnl Check whether a typedef exists and create a #define $2 if it exists
@@ -39,7 +38,7 @@ AC_DEFUN([GNUPG_CHECK_TYPEDEF],
 dnl GNUPG_CHECK_GNUMAKE
 dnl
 AC_DEFUN([GNUPG_CHECK_GNUMAKE],
-  [ 
+  [
     if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
         :
     else
@@ -60,7 +59,7 @@ AC_DEFUN([GNUPG_CHECK_FAQPROG],
     if faqprog.pl -V 2>/dev/null | grep '^faqprog.pl ' >/dev/null 2>&1; then
         working_faqprog=yes
         FAQPROG="faqprog.pl"
-    else 
+    else
        working_faqprog=no
         FAQPROG=": "
     fi
@@ -78,7 +77,7 @@ dnl ***    ftp://ftp.gnupg.org/gcrypt/contrib/faqprog.pl )
 dnl *** No need to worry about this warning.
 dnl ***]])
 dnl     fi
-   ])       
+   ])
 
 dnl GNUPG_CHECK_DOCBOOK_TO_TEXI
 dnl
@@ -94,7 +93,7 @@ AC_DEFUN([GNUPG_CHECK_DOCBOOK_TO_TEXI],
     fi
     AC_MSG_RESULT($working_sgmltotexi)
     AM_CONDITIONAL(HAVE_DOCBOOK_TO_TEXI, test "$working_sgmltotexi" = "yes" )
-   ])       
+   ])
 
 
 
@@ -104,6 +103,7 @@ dnl
 AC_DEFUN([GNUPG_CHECK_ENDIAN],
   [
     tmp_assumed_endian=big
+    tmp_assume_warn=""
     if test "$cross_compiling" = yes; then
       case "$host_cpu" in
          i@<:@345678@:>@* )
@@ -112,9 +112,8 @@ AC_DEFUN([GNUPG_CHECK_ENDIAN],
          *)
             ;;
       esac
-      AC_MSG_WARN(cross compiling; assuming $tmp_assumed_endian endianess)
     fi
-    AC_MSG_CHECKING(endianess)
+    AC_MSG_CHECKING(endianness)
     AC_CACHE_VAL(gnupg_cv_c_endian,
       [ gnupg_cv_c_endian=unknown
         # See if sys/param.h defines the BYTE_ORDER macro.
@@ -142,10 +141,11 @@ AC_DEFUN([GNUPG_CHECK_ENDIAN],
               gnupg_cv_c_endian=little,
               gnupg_cv_c_endian=big,
               gnupg_cv_c_endian=$tmp_assumed_endian
+              tmp_assumed_warn=" (assumed)"
             )
         fi
       ])
-    AC_MSG_RESULT([$gnupg_cv_c_endian])
+    AC_MSG_RESULT([${gnupg_cv_c_endian}${tmp_assumed_warn}])
     if test "$gnupg_cv_c_endian" = little; then
       AC_DEFINE(LITTLE_ENDIAN_HOST,1,
                 [Defined if the host has little endian byte ordering])
@@ -157,96 +157,55 @@ AC_DEFUN([GNUPG_CHECK_ENDIAN],
 
 
 
-# Check for the getsockopt SO_PEERCRED
-AC_DEFUN([GNUPG_SYS_SO_PEERCRED],
-  [ AC_MSG_CHECKING(for SO_PEERCRED)
-    AC_CACHE_VAL(gnupg_cv_sys_so_peercred,
-      [AC_TRY_COMPILE([#include <sys/socket.h>], 
-                    [struct ucred cr; 
-                     int cl = sizeof cr;
-                     getsockopt (1, SOL_SOCKET, SO_PEERCRED, &cr, &cl);],
-                    gnupg_cv_sys_so_peercred=yes,
-                    gnupg_cv_sys_so_peercred=no)
-      ])
-    AC_MSG_RESULT($gnupg_cv_sys_so_peercred) 
-    if test $gnupg_cv_sys_so_peercred = yes; then
-         AC_DEFINE(HAVE_SO_PEERCRED, 1,
-                            [Defined if SO_PEERCRED is supported (Linux)])
-    fi
-  ])
-
-
 
 # GNUPG_BUILD_PROGRAM(NAME,DEFAULT)
 # Add a --enable-NAME option to configure an set the
 # shell variable build_NAME either to "yes" or "no".  DEFAULT must
 # either be "yes" or "no" and decided on the default value for
-# build_NAME and whether --enable-NAME or --disable-NAME is shown with 
+# build_NAME and whether --enable-NAME or --disable-NAME is shown with
 # ./configure --help
 AC_DEFUN([GNUPG_BUILD_PROGRAM],
-  [build_$1=$2
+  [m4_define([my_build], [m4_bpatsubst(build_$1, [[^a-zA-Z0-9_]], [_])])
+   my_build=$2
    m4_if([$2],[yes],[
       AC_ARG_ENABLE([$1], AC_HELP_STRING([--disable-$1],
                                          [do not build the $1 program]),
-                           build_$1=$enableval, build_$1=$2)
+                           my_build=$enableval, my_build=$2)
     ],[
       AC_ARG_ENABLE([$1], AC_HELP_STRING([--enable-$1],
                                          [build the $1 program]),
-                           build_$1=$enableval, build_$1=$2)
+                           my_build=$enableval, my_build=$2)
     ])
-   case "$build_$1" in
+   case "$my_build" in
          no|yes)
            ;;
-         *) 
+         *)
            AC_MSG_ERROR([only yes or no allowed for feature --enable-$1])
            ;;
    esac
+   m4_undefine([my_build])
   ])
 
 
 
-# GNUPG_PTH_VERSION_CHECK(REQUIRED)
-# 
-# If the version is sufficient, HAVE_PTH will be set to yes.
+# GNUPG_DISABLE_GPG_ALGO(NAME,DESCRIPTION)
 #
-# Taken form the m4 macros which come with Pth
-AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
-  [
-    _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print [$]3}'`
-    _req_version="ifelse([$1],,1.2.0,$1)"
-    for _var in _pth_version _req_version; do
-        eval "_val=\"\$${_var}\""
-        _major=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\1/'`
-        _minor=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\2/'`
-        _rtype=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\3/'`
-        _micro=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\4/'`
-        case $_rtype in
-            "a" ) _rtype=0 ;;
-            "b" ) _rtype=1 ;;
-            "." ) _rtype=2 ;;
-        esac
-        _hex=`echo dummy | awk '{ printf("%d%02d%1d%02d", major, minor, rtype, micro); }' \
-              "major=$_major" "minor=$_minor" "rtype=$_rtype" "micro=$_micro"`
-        eval "${_var}_hex=\"\$_hex\""
-    done
-    have_pth=no
-    if test ".$_pth_version_hex" != .; then
-        if test ".$_req_version_hex" != .; then
-            if test $_pth_version_hex -ge $_req_version_hex; then
-                have_pth=yes
-            fi
-        fi
-    fi
-    if test $have_pth = no; then
-       AC_MSG_WARN([[
-***
-*** Found Pth version $_pth_version, but require at least
-*** version $_req_version.  Please upgrade Pth first.
-***]])
-    fi    
+# Add a --disable-gpg-NAME option and the corresponding ac_define
+# GPG_USE_<NAME>.
+AC_DEFUN([GNUPG_GPG_DISABLE_ALGO],
+  [AC_MSG_CHECKING([whether to enable the $2 for gpg])
+   AC_ARG_ENABLE([gpg-$1], AC_HELP_STRING([--disable-gpg-$1],
+                                          [disable the $2 algorithm in gpg]),
+                                          , enableval=yes)
+   AC_MSG_RESULT($enableval)
+   if test x"$enableval" = xyes ; then
+     AC_DEFINE(GPG_USE_[]m4_toupper($1), 1, [Define to support the $2])
+   fi
   ])
 
 
+
+
 # Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
 # is not called from uid 0 (not tested whether uid 0 works)
 # For DECs Tru64 we have also to check whether mlock is in librt
@@ -365,72 +324,28 @@ fi
 ])
 
 
-
-
-dnl AM_PATH_OPENSC([MINIMUM-VERSION,
-dnl               [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
-dnl Test for OpenSC and define OPENSC_CFLAGS and OPENSC_LIBS
-dnl
-AC_DEFUN([AM_PATH_OPENSC],
-[ AC_ARG_WITH(opensc-prefix,
-            AC_HELP_STRING([--with-opensc-prefix=PFX],
-                           [prefix where OpenSC is installed (optional)]),
-     opensc_config_prefix="$withval", opensc_config_prefix="")
-  if test x$opensc_config_prefix != x ; then
-     opensc_config_args="$opensc_config_args --prefix=$opensc_config_prefix"
-     if test x${OPENSC_CONFIG+set} != xset ; then
-        OPENSC_CONFIG=$opensc_config_prefix/bin/opensc-config
-     fi
-  fi
-
-  AC_PATH_PROG(OPENSC_CONFIG, opensc-config, no)
-  min_opensc_version=ifelse([$1], ,0.7.0,$1)
-  AC_MSG_CHECKING(for OpenSC - version >= $min_opensc_version)
-  ok=no
-  if test "$OPENSC_CONFIG" != "no" ; then
-    req_major=`echo $min_opensc_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
-    req_minor=`echo $min_opensc_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
-    req_micro=`echo $min_opensc_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-    opensc_config_version=`$OPENSC_CONFIG $opensc_config_args --version 2>/dev/null || echo 0.0.0`
-    major=`echo $opensc_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-    minor=`echo $opensc_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-    micro=`echo $opensc_config_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
+# GNUPG_TIME_T_UNSIGNED
+# Check whether time_t is unsigned
+#
+AC_DEFUN([GNUPG_TIME_T_UNSIGNED],
+  [ AC_CACHE_CHECK(whether time_t is unsigned, gnupg_cv_time_t_unsigned,
+     [AC_REQUIRE([AC_HEADER_TIME])dnl
+      AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY(
+       [AC_INCLUDES_DEFAULT([])
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+],
+       [((time_t)-1) < 0])],
+       gnupg_cv_time_t_unsigned=no, gnupg_cv_time_t_unsigned=yes)])
+    if test $gnupg_cv_time_t_unsigned = yes; then
+      AC_DEFINE(HAVE_UNSIGNED_TIME_T,1,[Defined if time_t is an unsigned type])
     fi
-  fi
-  if test $ok = yes; then
-    OPENSC_CFLAGS=`$OPENSC_CONFIG $opensc_config_args --cflags`
-    OPENSC_LIBS=`$OPENSC_CONFIG $opensc_config_args --libs`
-    OPENSC_LIBS="$OPENSC_LIBS -lpcsclite -lpthread"
-    AC_MSG_RESULT(yes)
-    ifelse([$2], , :, [$2])
-  else
-    OPENSC_CFLAGS=""
-    OPENSC_LIBS=""
-    AC_MSG_RESULT(no)
-    ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(OPENSC_CFLAGS)
-  AC_SUBST(OPENSC_LIBS)
-])
-
-
+])# GNUPG_TIME_T_UNSIGNED