2002-06-29 14:15:02 +00:00
|
|
|
dnl macros to configure gnupg
|
2003-06-18 19:56:13 +00:00
|
|
|
dnl Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
|
2002-06-29 14:15:02 +00:00
|
|
|
dnl
|
|
|
|
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
|
2007-07-04 19:49:40 +00:00
|
|
|
dnl the Free Software Foundation; either version 3 of the License, or
|
2002-06-29 14:15:02 +00:00
|
|
|
dnl (at your option) any later version.
|
2014-01-31 22:47:11 +01:00
|
|
|
dnl
|
2002-06-29 14:15:02 +00:00
|
|
|
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.
|
2014-01-31 22:47:11 +01:00
|
|
|
dnl
|
2002-06-29 14:15:02 +00:00
|
|
|
dnl You should have received a copy of the GNU General Public License
|
2016-11-05 12:02:19 +01:00
|
|
|
dnl along with this program; if not, see <https://www.gnu.org/licenses/>.
|
1998-02-02 14:36:06 +00:00
|
|
|
|
1998-12-10 19:20:47 +00:00
|
|
|
dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
|
1998-04-14 17:51:16 +00:00
|
|
|
dnl Check whether a typedef exists and create a #define $2 if it exists
|
1998-02-26 16:56:31 +00:00
|
|
|
dnl
|
2004-12-15 14:15:54 +00:00
|
|
|
AC_DEFUN([GNUPG_CHECK_TYPEDEF],
|
1998-02-26 16:56:31 +00:00
|
|
|
[ AC_MSG_CHECKING(for $1 typedef)
|
1998-12-10 19:20:47 +00:00
|
|
|
AC_CACHE_VAL(gnupg_cv_typedef_$1,
|
2002-06-29 14:15:02 +00:00
|
|
|
[AC_TRY_COMPILE([#define _GNU_SOURCE 1
|
|
|
|
#include <stdlib.h>
|
1998-02-26 16:56:31 +00:00
|
|
|
#include <sys/types.h>], [
|
|
|
|
#undef $1
|
|
|
|
int a = sizeof($1);
|
1998-12-10 19:20:47 +00:00
|
|
|
], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )])
|
|
|
|
AC_MSG_RESULT($gnupg_cv_typedef_$1)
|
|
|
|
if test "$gnupg_cv_typedef_$1" = yes; then
|
2002-06-29 14:15:02 +00:00
|
|
|
AC_DEFINE($2,1,[Defined if a `]$1[' is typedef'd])
|
1999-12-09 16:23:35 +00:00
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
1998-02-26 16:56:31 +00:00
|
|
|
|
2003-06-18 19:56:13 +00:00
|
|
|
dnl GNUPG_CHECK_GNUMAKE
|
|
|
|
dnl
|
2004-12-15 14:15:54 +00:00
|
|
|
AC_DEFUN([GNUPG_CHECK_GNUMAKE],
|
2014-01-31 22:47:11 +01:00
|
|
|
[
|
2003-06-18 19:56:13 +00:00
|
|
|
if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
|
|
|
|
:
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([[
|
|
|
|
***
|
|
|
|
*** It seems that you are not using GNU make. Some make tools have serious
|
|
|
|
*** flaws and you may not be able to build this software at all. Before you
|
|
|
|
*** complain, please try GNU make: GNU make is easy to build and available
|
|
|
|
*** at all GNU archives. It is always available from ftp.gnu.org:/gnu/make.
|
|
|
|
***]])
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
dnl GNUPG_CHECK_ENDIAN
|
|
|
|
dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
|
|
|
|
dnl
|
2004-12-15 14:15:54 +00:00
|
|
|
AC_DEFUN([GNUPG_CHECK_ENDIAN],
|
2003-06-18 19:56:13 +00:00
|
|
|
[
|
|
|
|
tmp_assumed_endian=big
|
2010-03-10 12:24:58 +00:00
|
|
|
tmp_assume_warn=""
|
2003-06-18 19:56:13 +00:00
|
|
|
if test "$cross_compiling" = yes; then
|
|
|
|
case "$host_cpu" in
|
|
|
|
i@<:@345678@:>@* )
|
|
|
|
tmp_assumed_endian=little
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
Fix more spelling
* NEWS, acinclude.m4, agent/command-ssh.c, agent/command.c,
agent/gpg-agent.c, agent/keyformat.txt, agent/protect-tool.c,
common/asshelp.c, common/b64enc.c, common/recsel.c, doc/DETAILS,
doc/HACKING, doc/Notes, doc/TRANSLATE, doc/dirmngr.texi,
doc/faq.org, doc/gpg-agent.texi, doc/gpg.texi, doc/gpgsm.texi,
doc/instguide.texi, g10/armor.c, g10/gpg.c, g10/keyedit.c,
g10/mainproc.c, g10/pkclist.c, g10/tofu.c, g13/sh-cmd.c,
g13/sh-dmcrypt.c, kbx/keybox-init.c, m4/pkg.m4, sm/call-dirmngr.c,
sm/gpgsm.c, tests/Makefile.am, tests/gpgscm/Manual.txt,
tests/gpgscm/scheme.c, tests/openpgp/gpgv-forged-keyring.scm,
tests/openpgp/multisig.test, tests/openpgp/verify.scm,
tests/pkits/README, tools/applygnupgdefaults,
tools/gpg-connect-agent.c, tools/mime-maker.c, tools/mime-parser.c:
minor spelling cleanup.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2016-09-15 14:21:15 -04:00
|
|
|
AC_MSG_CHECKING(endianness)
|
2003-06-18 19:56:13 +00:00
|
|
|
AC_CACHE_VAL(gnupg_cv_c_endian,
|
|
|
|
[ gnupg_cv_c_endian=unknown
|
|
|
|
# See if sys/param.h defines the BYTE_ORDER macro.
|
2020-11-18 13:51:38 +09:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
|
|
|
|
#include <sys/param.h>]], [[
|
2003-06-18 19:56:13 +00:00
|
|
|
#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
|
|
|
|
bogus endian macros
|
2020-11-18 13:51:38 +09:00
|
|
|
#endif]])], [# It does; now see whether it defined to BIG_ENDIAN or not.
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
|
|
|
|
#include <sys/param.h>]], [[
|
2003-06-18 19:56:13 +00:00
|
|
|
#if BYTE_ORDER != BIG_ENDIAN
|
|
|
|
not big endian
|
2020-11-18 13:51:38 +09:00
|
|
|
#endif]])], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)])
|
2003-06-18 19:56:13 +00:00
|
|
|
if test "$gnupg_cv_c_endian" = unknown; then
|
2020-11-18 13:51:38 +09:00
|
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[main () {
|
2003-06-18 19:56:13 +00:00
|
|
|
/* Are we little or big endian? From Harbison&Steele. */
|
|
|
|
union
|
|
|
|
{
|
|
|
|
long l;
|
|
|
|
char c[sizeof (long)];
|
|
|
|
} u;
|
|
|
|
u.l = 1;
|
|
|
|
exit (u.c[sizeof (long) - 1] == 1);
|
2020-11-18 13:51:38 +09:00
|
|
|
}]])],
|
2003-06-18 19:56:13 +00:00
|
|
|
gnupg_cv_c_endian=little,
|
|
|
|
gnupg_cv_c_endian=big,
|
|
|
|
gnupg_cv_c_endian=$tmp_assumed_endian
|
2010-03-10 12:24:58 +00:00
|
|
|
tmp_assumed_warn=" (assumed)"
|
2003-06-18 19:56:13 +00:00
|
|
|
)
|
|
|
|
fi
|
|
|
|
])
|
2010-03-10 12:24:58 +00:00
|
|
|
AC_MSG_RESULT([${gnupg_cv_c_endian}${tmp_assumed_warn}])
|
2003-06-18 19:56:13 +00:00
|
|
|
if test "$gnupg_cv_c_endian" = little; then
|
|
|
|
AC_DEFINE(LITTLE_ENDIAN_HOST,1,
|
|
|
|
[Defined if the host has little endian byte ordering])
|
|
|
|
else
|
|
|
|
AC_DEFINE(BIG_ENDIAN_HOST,1,
|
|
|
|
[Defined if the host has big endian byte ordering])
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
|
1998-12-10 19:20:47 +00:00
|
|
|
|
2002-10-19 07:55:27 +00:00
|
|
|
# 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
|
2014-01-31 22:47:11 +01:00
|
|
|
# build_NAME and whether --enable-NAME or --disable-NAME is shown with
|
2002-10-19 07:55:27 +00:00
|
|
|
# ./configure --help
|
2004-12-15 14:15:54 +00:00
|
|
|
AC_DEFUN([GNUPG_BUILD_PROGRAM],
|
2016-06-29 11:39:49 +02:00
|
|
|
[m4_define([my_build], [m4_bpatsubst(build_$1, [[^a-zA-Z0-9_]], [_])])
|
|
|
|
my_build=$2
|
2002-10-19 07:55:27 +00:00
|
|
|
m4_if([$2],[yes],[
|
2020-11-18 13:51:38 +09:00
|
|
|
AC_ARG_ENABLE([$1], AS_HELP_STRING([--disable-$1],
|
2002-10-19 07:55:27 +00:00
|
|
|
[do not build the $1 program]),
|
2016-06-29 11:39:49 +02:00
|
|
|
my_build=$enableval, my_build=$2)
|
2002-10-19 07:55:27 +00:00
|
|
|
],[
|
2020-11-18 13:51:38 +09:00
|
|
|
AC_ARG_ENABLE([$1], AS_HELP_STRING([--enable-$1],
|
2002-10-19 07:55:27 +00:00
|
|
|
[build the $1 program]),
|
2016-06-29 11:39:49 +02:00
|
|
|
my_build=$enableval, my_build=$2)
|
2002-10-19 07:55:27 +00:00
|
|
|
])
|
2016-06-29 11:39:49 +02:00
|
|
|
case "$my_build" in
|
2002-10-19 07:55:27 +00:00
|
|
|
no|yes)
|
|
|
|
;;
|
2014-01-31 22:47:11 +01:00
|
|
|
*)
|
2002-10-19 07:55:27 +00:00
|
|
|
AC_MSG_ERROR([only yes or no allowed for feature --enable-$1])
|
|
|
|
;;
|
|
|
|
esac
|
2016-06-29 11:39:49 +02:00
|
|
|
m4_undefine([my_build])
|
2002-10-19 07:55:27 +00:00
|
|
|
])
|
1998-12-10 19:20:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-31 22:47:11 +01:00
|
|
|
# GNUPG_DISABLE_GPG_ALGO(NAME,DESCRIPTION)
|
|
|
|
#
|
|
|
|
# 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])
|
2020-11-18 13:51:38 +09:00
|
|
|
AC_ARG_ENABLE([gpg-$1], AS_HELP_STRING([--disable-gpg-$1],
|
2014-01-31 22:47:11 +01:00
|
|
|
[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
|
|
|
|
])
|
|
|
|
|
2010-10-27 11:26:53 +00:00
|
|
|
# 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,
|
2021-12-22 10:36:26 +09:00
|
|
|
[AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY(
|
2010-10-27 11:26:53 +00:00
|
|
|
[AC_INCLUDES_DEFAULT([])
|
2021-12-22 10:36:26 +09:00
|
|
|
#if HAVE_SYS_TIME_H
|
2010-10-27 11:26:53 +00:00
|
|
|
# include <sys/time.h>
|
|
|
|
#else
|
2021-12-22 10:36:26 +09:00
|
|
|
# include <time.h>
|
2010-10-27 11:26:53 +00:00
|
|
|
#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
|
|
|
|
])# GNUPG_TIME_T_UNSIGNED
|