From 32cf5dfb99780919463bd2d95a4c58c00d0d57bf Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 27 Jul 2001 20:31:13 +0000 Subject: added and removed some files --- TODO | 3 + VERSION | 1 - acconfig.h | 114 --------- configure.ac | 814 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 770 ------------------------------------------------------- 5 files changed, 817 insertions(+), 885 deletions(-) delete mode 100644 VERSION delete mode 100644 acconfig.h create mode 100644 configure.ac delete mode 100644 configure.in diff --git a/TODO b/TODO index f3801e03e..b15adce59 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,7 @@ + * Change the 'no lsign with v3 key policy" to simply use a v4 + signature in that case. Hmm, that's what Thomas' patch was about. + * Put a note into readme.w32 that there is a man page and a options file; write the registry stuff in regedit format. diff --git a/VERSION b/VERSION deleted file mode 100644 index 558538557..000000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.0.6a diff --git a/acconfig.h b/acconfig.h deleted file mode 100644 index ed0509aa3..000000000 --- a/acconfig.h +++ /dev/null @@ -1,114 +0,0 @@ -/* acconfig.h - used by autoheader to make config.h.in - * Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. - * - * This file is part of GNUPG. - * - * GNUPG is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNUPG is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ -#ifndef G10_CONFIG_H -#define G10_CONFIG_H - -/* need this, because some autoconf tests rely on this (e.g. stpcpy) - * and it should be used for new programs - */ -#define _GNU_SOURCE 1 - -@TOP@ - -#undef M_DEBUG -#undef M_GUARD -#undef PRINTABLE_OS_NAME -#undef IS_DEVELOPMENT_VERSION - -/* Define if your locale.h file contains LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES - -/* Define to 1 if NLS is requested. */ -#undef ENABLE_NLS - -/* Define as 1 if you have catgets and don't want to use GNU gettext. */ -#undef HAVE_CATGETS - -/* Define as 1 if you have gettext and don't want to use GNU gettext. */ -#undef HAVE_GETTEXT - -/* libintl.h is available; this is obsolete because if we don't have - * this header we use a symlink to the one in intl/ */ -#undef HAVE_LIBINTL_H - - -#undef HAVE_STPCPY - -#undef HAVE_MLOCK - -#undef BIG_ENDIAN_HOST -#undef LITTLE_ENDIAN_HOST - -#undef HAVE_BYTE_TYPEDEF -#undef HAVE_USHORT_TYPEDEF -#undef HAVE_ULONG_TYPEDEF -#undef HAVE_U16_TYPEDEF -#undef HAVE_U32_TYPEDEF - -#undef HAVE_BROKEN_MLOCK - -/* defined if we have a /dev/random and /dev/urandom */ -#undef HAVE_DEV_RANDOM -/* and the real names of the random devices */ -#undef NAME_OF_DEV_RANDOM -#undef NAME_OF_DEV_URANDOM -/* Linux has an ioctl */ -#undef HAVE_DEV_RANDOM_IOCTL - -/* see cipher/rndegd.c */ -#undef EGD_SOCKET_NAME - - -#undef USE_DYNAMIC_LINKING -#undef HAVE_DL_DLOPEN -#undef HAVE_DL_SHL_LOAD -#undef HAVE_DLD_DLD_LINK - -#undef USE_SHM_COPROCESSING - -#undef IPC_HAVE_SHM_LOCK -#undef IPC_RMID_DEFERRED_RELEASE - -/* set this to limit filenames to the 8.3 format */ -#undef USE_ONLY_8DOT3 -/* defined if we must run on a stupid file system */ -#undef HAVE_DRIVE_LETTERS -/* defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) - * with special properties like no file modes */ -#undef HAVE_DOSISH_SYSTEM -/* because the Unix gettext has to much overhead on MingW32 systems - * and these systems lack Posix functions, we use a simplified version - * of gettext */ -#undef USE_SIMPLE_GETTEXT -/* At some point in the system we need to know that we use the Windows - * random module. */ -#undef USE_STATIC_RNDW32 - -#undef USE_CAPABILITIES - -/* Some systems have mkdir that takes a single argument. */ -#undef MKDIR_TAKES_ONE_ARG - - -@BOTTOM@ - -#include "g10defs.h" - -#endif /*G10_CONFIG_H*/ diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..4a018e5b3 --- /dev/null +++ b/configure.ac @@ -0,0 +1,814 @@ +dnl Configure.ac script for GnuPG +dnl Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +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 +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +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 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 +dnl (Process this file with autoconf to produce a configure script.) +AC_REVISION($Revision$)dnl + +AC_PREREQ(2.52) +AC_INIT(gnupg,1.0.6a) +AC_CONFIG_SRCDIR(g10/g10.c) +AC_CONFIG_AUX_DIR(scripts) +AC_CONFIG_HEADERS(config.h) +AC_CANONICAL_TARGET() + +ALL_LINGUAS="da de eo es_ES et fr id it ja nl pl pt_BR pt_PT sv tr" +static_modules="sha1 md5 rmd160" +static_random_module="" + +PACKAGE="$PACKAGE_NAME" +VERSION="$PACKAGE_VERSION" +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) +AC_DEFINE_UNQUOTED(PACKAGE, $PACKAGE, [Name of this package]) +AC_DEFINE_UNQUOTED(VERSION, $VERSION, [Version of this package]) + +AC_PROG_AWK + +MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \ + $srcdir/cipher/Makefile.am` + +dnl +dnl Check for random module options +dnl +dnl Fixme: get the list of available modules from MODULES_IN_CIPHER +dnl and check against this list + +AC_MSG_CHECKING([which static random module to use]) +AC_ARG_ENABLE(static-rnd, + [ --enable-static-rnd=[egd|unix|linux|none] ], +[use_static_rnd=$enableval], [use_static_rnd=default] ) + +if test "$use_static_rnd" = no; then + use_static_rnd=default +fi + +case "$use_static_rnd" in + egd | linux | unix | none | default ) + AC_MSG_RESULT($use_static_rnd) + ;; + * ) + AC_MSG_RESULT(invalid argument) + AC_MSG_ERROR(there is no random module rnd$use_static_rnd) + ;; +esac + +AC_ARG_WITH(egd-socket, + [ --with-egd-socket=NAME Use NAME for the EGD socket)], + egd_socket_name="$withval", egd_socket_name="" ) +AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name", + [Define if you don't want the default EGD socket name. + For details see cipher/rndegd.c]) + + +dnl +dnl See whether the user wants to disable checking for /dev/random + +AC_MSG_CHECKING([whether use of /dev/random is requested]) +AC_ARG_ENABLE(dev-random, +[ --disable-dev-random disable the use of dev random], + try_dev_random=$enableval, try_dev_random=yes) +AC_MSG_RESULT($try_dev_random) + + +dnl +dnl Check other options +dnl + +AC_MSG_CHECKING([whether use of extensions is requested]) +AC_ARG_ENABLE(dynload, +[ --disable-dynload disable use of extensions], + try_dynload=$enableval, try_dynload=yes) +AC_MSG_RESULT($try_dynload) + +AC_MSG_CHECKING([whether assembler modules are requested]) +AC_ARG_ENABLE(asm, +[ --disable-asm do not use assembler modules], + try_asm_modules=$enableval, try_asm_modules=yes) +AC_MSG_RESULT($try_asm_modules) + +AC_MSG_CHECKING([whether memory guard is requested]) +AC_ARG_ENABLE(m-guard, + [ --enable-m-guard enable memory guard facility], + use_m_guard=$enableval, use_m_guard=no) +AC_MSG_RESULT($use_m_guard) +if test "$use_m_guard" = yes ; then + AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature]) +fi + + +AC_MSG_CHECKING([whether included zlib is requested]) +AC_ARG_WITH(included-zlib, + [ --with-included-zlib use the zlib code included here], +[g10_force_zlib=yes], [g10_force_zlib=no] ) +AC_MSG_RESULT($g10_force_zlib) + + +dnl +dnl Check whether we want to use Linux capabilities +dnl +AC_MSG_CHECKING([whether use of capabilities is requested]) +AC_ARG_WITH(capabilities, + [ --with-capabilities use linux capabilities [default=no]], +[use_capabilities="$withval"],[use_capabilities=no]) +AC_MSG_RESULT($use_capabilities) + + + +AH_TOP([ +/* need this, because some autoconf tests rely on this (e.g. stpcpy) + * and it should be used for new programs */ +#define _GNU_SOURCE 1 +]) + +AH_BOTTOM([ +#include "g10defs.h" +]) + + + + +AM_MAINTAINER_MODE + +dnl Checks for programs. + +dnl +dnl Setup some stuff depending on host/target. +dnl +case "${target}" in + *-*-mingw32*) + disallowed_modules="rndunix rndlinux rndegd" + ;; + *) + disallowed_modules="rndw32" + ;; +esac + +AC_ARG_PROGRAM +AC_PROG_MAKE_SET +AM_SANITY_CHECK +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_PROG_CC +AC_PROG_CPP +AC_ISC_POSIX +AC_SYS_LARGEFILE +AC_PROG_INSTALL +AC_PROG_AWK +AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no) +AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes) +GNUPG_CHECK_FAQPROG +GNUPG_CHECK_DOCBOOK_TO_TEXI + +MPI_OPT_FLAGS="" + + +try_gettext=yes +try_gdbm=yes +case "${target}" in + *-*-mingw32*) + # special stuff for Windoze NT + ac_cv_have_dev_random=no + AC_DEFINE(USE_ONLY_8DOT3,1, + [set this to limit filenames to the 8.3 format]) + AC_DEFINE(HAVE_DRIVE_LETTERS,1, + [defined if we must run on a stupid file system]) + AC_DEFINE(HAVE_DOSISH_SYSTEM,1, + [defined if we run on some of the PCDOS like systems + (DOS, Windoze. OS/2) with special properties like + no file modes]) + AC_DEFINE(USE_SIMPLE_GETTEXT,1, + [because the Unix gettext has too much overhead on + MingW32 systems and these systems lack Posix functions, + we use a simplified version of gettext]) + try_gettext="no" + try_gdbm="no" + ;; + i?86-emx-os2 | i?86-*-os2*emx ) + # OS/2 with the EMX environment + ac_cv_have_dev_random=no + AC_DEFINE(HAVE_DRIVE_LETTERS) + AC_DEFINE(HAVE_DOSISH_SYSTEM) + try_gettext="no" + try_gdbm="no" + ;; + + i?86-*-msdosdjgpp*) + # DOS with the DJGPP environment + ac_cv_have_dev_random=no + AC_DEFINE(HAVE_DRIVE_LETTERS) + AC_DEFINE(HAVE_DOSISH_SYSTEM) + try_gettext="no" + try_gdbm="no" + ;; + + *-*-freebsd*) + # FreeBSD + CPPFLAGS="$CPPFLAGS -I/usr/local/include" + LDFLAGS="$LDFLAGS -L/usr/local/lib" + ;; + + *-*-hpux*) + if test -z "$GCC" ; then + CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE" + fi + ;; + *-dec-osf4*) + if test -z "$GCC" ; then + # Suppress all warnings + # to get rid of the unsigned/signed char mismatch warnings. + CFLAGS="$CFLAGS -w" + fi + ;; + m68k-atari-mint) + ;; + *) + ;; +esac + +AC_SUBST(MPI_OPT_FLAGS) +GNUPG_SYS_SYMBOL_UNDERSCORE +GNUPG_CHECK_PIC +GNUPG_CHECK_EXPORTDYNAMIC +if test "$NO_PIC" = yes; then + try_dynload=no +fi + + +case "${target}" in + *-*-mingw32*) + PRINTABLE_OS_NAME="MingW32" + ;; + i?86-emx-os2 | i?86-*-os2*emx ) + PRINTABLE_OS_NAME="OS/2" + ;; + i?86-*-msdosdjgpp*) + PRINTABLE_OS_NAME="MSDOS/DJGPP" + try_dynload=no + ;; + *-linux*) + PRINTABLE_OS_NAME="GNU/Linux" + ;; +dnl let that after linux to avoid gnu-linux problems + *-gnu*) + PRINTABLE_OS_NAME="GNU/Hurd" + ;; + *) + PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` + ;; +esac +AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME", + [A human readable text with the name of the OS]) + +dnl Fixme: Are these the best flags for OpenBSD???? +case "${target}" in + *-openbsd* | *-netbsd*) + NAME_OF_DEV_RANDOM="/dev/srandom" + NAME_OF_DEV_URANDOM="/dev/urandom" + DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x" + ;; + + *-solaris* | *-irix* | *-dec-osf* ) + NAME_OF_DEV_RANDOM="/dev/random" + NAME_OF_DEV_URANDOM="/dev/urandom" + DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" + ;; + + *) + NAME_OF_DEV_RANDOM="/dev/random" + NAME_OF_DEV_URANDOM="/dev/urandom" + # -shared is a gcc-ism. Find pic flags from GNUPG_CHECK_PIC. + if test -n "$GCC" ; then + DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" + else + DYNLINK_MOD_CFLAGS="$CFLAGS_PIC" + fi + ;; +esac +AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM", + [defined to the name of the strong random device]) +AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM", + [defined to the name of the weaker random device]) +AC_SUBST(MPI_OPT_FLAGS) + + +dnl Checks for libraries. + +if test "$try_gettext" = yes; then +AM_GNU_GETTEXT +else +USE_NLS=no +USE_INCLUDED_LIBINTL=no +BUILD_INCLUDED_LIBINTL=no +AC_SUBST(USE_NLS) +AC_SUBST(USE_INCLUDED_LIBINTL) +AC_SUBST(BUILD_INCLUDED_LIBINTL) +fi + +dnl +dnl There are lot of misconfigured systems. We include +dnl gdbm support only if the lib and the header is installed. +dnl +if test "$try_gdbm" = yes; then +AC_CHECK_HEADERS(gdbm.h) +if test "$ac_cv_header_gdbm_h" = yes ; then + AC_CHECK_LIB(gdbm,gdbm_firstkey) +fi +fi + +dnl Solaris needs -lsocket and -lnsl. Unisys system includes +dnl gethostbyname in libsocket but needs libnsl for socket. +dnl The test does not workfor all system, so some are hardcoded here. +case "${target}" in + i386-univel-sysv4*) + LIBS="$LIBS -lsocket -lnsl" + ;; + *) + AC_CHECK_LIB(nsl, gethostbyname) + AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1) + if test x$ac_need_libsocket = x1; then + LIBS="$LIBS -lsocket" + fi + if test x$ac_try_nsl = x1; then + AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1) + if test x$ac_need_libnsl = x1 + then + LIBS="$LIBS -lnsl" + fi + fi + ;; +esac + + +if test "$try_dynload" = yes ; then + AC_CHECK_LIB(dl,dlopen) + if test "$ac_cv_lib_dl_dlopen" = "yes"; then + AC_DEFINE(USE_DYNAMIC_LINKING,1, + [define to enable the use of extensions]) + AC_DEFINE(HAVE_DL_DLOPEN,1, + [Defined when the dlopen function family is available]) + DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" + use_gnupg_extensions=yes + else + AC_CHECK_FUNCS(dlopen) + if test "$ac_cv_func_dlopen" = "yes"; then + AC_DEFINE(USE_DYNAMIC_LINKING) + AC_DEFINE(HAVE_DL_DLOPEN) + DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" + use_gnupg_extensions=yes + else + AC_CHECK_LIB(dld,shl_load) + if test "$ac_cv_lib_dld_shl_load" = "yes"; then + AC_DEFINE(USE_DYNAMIC_LINKING) + AC_DEFINE(HAVE_DL_SHL_LOAD,1, + [Defined if the shl_load function family is available]) + DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" + use_gnupg_extensions=yes +dnl ----------------- +dnl DLD is not ready for use. So I better disable this test +dnl +dnl AC_CHECK_LIB(dld,dld_link) +dnl if test "$ac_cv_lib_dld_dld_link" = "yes"; then +dnl AC_DEFINE(USE_DYNAMIC_LINKING) +dnl AC_DEFINE(HAVE_DLD_DLD_LINK) +dnl DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" +dnl use_gnupg_extensions=yes +dnl --------------- + fi + fi + fi +else + AC_MSG_CHECKING(for dynamic loading) + DYNLINK_LDFLAGS= + DYNLINK_MOD_CFLAGS= + use_gnupg_extensions=no + AC_MSG_RESULT(has been disabled) +fi + +AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes ) +AC_SUBST(DYNLINK_LDFLAGS) +AC_SUBST(DYNLINK_MOD_CFLAGS) + + +dnl Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS(unistd.h langinfo.h termio.h) + + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIZE_T +AC_TYPE_SIGNAL +AC_DECL_SYS_SIGLIST + +GNUPG_CHECK_ENDIAN + + +GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF) +GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF) +GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF) +GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF) +GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF) + +AC_CHECK_SIZEOF(unsigned short, 2) +AC_CHECK_SIZEOF(unsigned int, 4) +AC_CHECK_SIZEOF(unsigned long, 4) +AC_CHECK_SIZEOF(unsigned long long, 0) + +if test "$ac_cv_sizeof_unsigned_short" = "0" \ + || test "$ac_cv_sizeof_unsigned_int" = "0" \ + || test "$ac_cv_sizeof_unsigned_long" = "0"; then + AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]); +fi + + + +dnl Checks for library functions. +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap) +AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit clock_gettime) +AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo) +AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fseeko) + +GNUPG_CHECK_MLOCK +GNUPG_FUNC_MKDIR_TAKES_ONE_ARG + +dnl +dnl Check whether we can use Linux capabilities as requested +dnl +if test "$use_capabilities" = "yes" ; then +use_capabilities=no +AC_CHECK_HEADERS(sys/capability.h) +if test "$ac_cv_header_sys_capability_h" = "yes" ; then + AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1) + if test "$ac_cv_lib_cap_cap_init" = "yes"; then + AC_DEFINE(USE_CAPABILITIES,1, + [define if capabilities should be used]) + LIBS="$LIBS -lcap" + use_capabilities=yes + fi +fi +if test "$use_capabilities" = "no" ; then + AC_MSG_WARN([[ +*** +*** The use of capabilities on this system is not possible. +*** You need a recent Linux kernel and some patches: +*** fcaps-2.2.9-990610.patch (kernel patch for 2.2.9) +*** fcap-module-990613.tar.gz (kernel module) +*** libcap-1.92.tar.gz (user mode library and utilities) +*** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN +*** set (filesystems menu). Be warned: This code is *really* ALPHA. +***]]) +fi +fi + + +GNUPG_CHECK_IPC +if test "$ac_cv_header_sys_shm_h" = "yes"; then + AC_DEFINE(USE_SHM_COPROCESSING,1, + [define if the shared memory interface should be made available]) +fi + +dnl +dnl check whether we have a random device +dnl +if test "$try_dev_random" = yes ; then + AC_CACHE_CHECK(for random device, ac_cv_have_dev_random, + [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then + ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi]) + if test "$ac_cv_have_dev_random" = yes; then + AC_DEFINE(HAVE_DEV_RANDOM,1, + [defined if the system supports a random device] ) + fi +else + AC_MSG_CHECKING(for random device) + ac_cv_have_dev_random=no + AC_MSG_RESULT(has been disabled) +fi + +dnl +dnl and whether this device supports ioctl +dnl (Note, that we should do a real test here) +dnl +if test "$ac_cv_have_dev_random" = yes ; then + AC_CHECK_HEADERS(linux/random.h) + AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl, + [ if test "$ac_cv_header_linux_random_h" = yes ; then + ac_cv_have_dev_random_ioctl=yes; + else + ac_cv_have_dev_random_ioctl=no; + fi + ]) + if test "$ac_cv_have_dev_random_ioctl" = yes; then + AC_DEFINE(HAVE_DEV_RANDOM_IOCTL,1, + [defined if the random device supports some IOCTLs]) + fi +fi + + +dnl +dnl Figure out the default linkage mode for random modules +dnl +print_egd_notice=no +if test "$use_static_rnd" = default; then + if test "$ac_cv_have_dev_random" = yes; then + static_random_module="rndlinux" + else + case "${target}" in + *-*-mingw32*) + static_random_module="rndw32" + AC_DEFINE(USE_STATIC_RNDW32,1, + [At some point in the code we need to know that + we use the Windows random module.]) + ;; + i?86-emx-os2|i?86-*-os2*emx) + static_random_module="rndos2" + ;; + m68k-atari-mint) + static_random_module="rndatari" + ;; + i?86-*-msdosdjgpp*) + : + ;; + *) + static_random_module="rndunix" + print_egd_notice=yes + ;; + esac + fi +else + if test "$use_static_rnd" = none; then + : + else + static_random_module="rnd$use_static_rnd" + if test "$use_static_rnd" = "unix"; then + print_egd_notice=yes + fi + fi +fi + + +if test "$print_egd_notice" = "yes"; then + AC_MSG_WARN([[ +*** +*** The performance of the UNIX random gatherer module is not very good +*** and it does not keep the entropy pool over multiple invocations of +*** GnuPG. The suggested way to overcome this problem is to use the +*** +*** Entropy Gathering Daemon (EGD) +*** +*** which provides a entropy source for the whole system. It is written +*** in Perl and available at the GnuPG FTP servers. For more information +*** consult the GnuPG webpages: +*** +*** http://www.gnupg.org/download.html#egd +*** +*** You may want to run ./configure with --enable-static-rnd=none to be +*** able to load the EGD client code dynamically; this way you can choose +*** between RNDUNIX and RNDEGD without recompilation. +***]]) +fi + +dnl +dnl Parse the modules list and build the list +dnl of static and dymically linked modules +dnl +dnl (We always need a static rmd160) +static_modules="$static_modules rmd160 $static_random_module" +STATIC_CIPHER_NAMES="" +STATIC_CIPHER_OBJS="" +DYNAMIC_CIPHER_MODS="" +show_dynlink="" +for name in $MODULES_IN_CIPHER; do + x="yes" + for i in $disallowed_modules; do + if test "$name" = "$i" ; then x="no" ; fi + done; + if test $x = yes; then + x="no" + for i in $static_modules; do + if test "$name" = "$i" ; then + x="yes" + fi + done; + if test $x = yes; then + STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name" + STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.o" + else + DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name" + show_dynlink="$show_dynlink $name" + fi + fi +done +AC_SUBST(STATIC_CIPHER_OBJS) +AC_SUBST(STATIC_CIPHER_NAMES) +AC_SUBST(DYNAMIC_CIPHER_MODS) + +dnl +dnl And build the constructor file +dnl + +test -d cipher || mkdir cipher +cat <cipher/construct.c +/* automatically generated by configure - do not edit */ + +G10EOF +show_statlink="" +for name in $STATIC_CIPHER_NAMES; do + echo "void ${name}_constructor(void);" >>cipher/construct.c + show_statlink="$show_statlink $name" +done + +cat <>cipher/construct.c + +void +cipher_modules_constructor(void) +{ + static int done = 0; + if( done ) + return; + done = 1; + +G10EOF +for name in $STATIC_CIPHER_NAMES; do + echo " ${name}_constructor();" >>cipher/construct.c +done +echo '}' >>cipher/construct.c + + + + +dnl +dnl Figure how to link the cipher modules +dnl +AC_SUBST(STATIC_CIPHER_OBJS) +AC_SUBST(DYNAMIC_CIPHER_MODS) + + +dnl setup assembler stuff +AC_MSG_CHECKING(for mpi assembler functions) +if test -f $srcdir/mpi/config.links ; then + . $srcdir/mpi/config.links + AC_CONFIG_LINKS("$mpi_ln_list") + ac_cv_mpi_extra_asm_modules="$mpi_extra_modules" + ac_cv_mpi_sflags="$mpi_sflags" + ac_cv_mpi_config_done="yes" + AC_MSG_RESULT(done) +else + AC_MSG_RESULT(failed) + AC_MSG_ERROR([mpi/config.links missing!]) +fi +MPI_EXTRA_ASM_OBJS="" +show_extraasm="" +if test "$ac_cv_mpi_extra_asm_modules" != ""; then +for i in $ac_cv_mpi_extra_asm_modules; do + show_extraasm="$show_extraasm $i" + MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o" +done +fi +AC_SUBST(MPI_EXTRA_ASM_OBJS) +MPI_SFLAGS="$ac_cv_mpi_sflags" +AC_SUBST(MPI_SFLAGS) + +dnl Do we have zlib? Must do it here because Solaris failed +dnl when compiling a conftest (due to the "-lz" from LIBS). +use_local_zlib=yes +if test "$g10_force_zlib" = "yes"; then + : +else + AC_CHECK_HEADERS(zlib.h) + if test "$ac_cv_header_zlib_h" = yes ; then + AC_CHECK_LIB(z,deflateInit2_,use_local_zlib=no,:) + fi +fi + +if test "$use_local_zlib" = yes ; then + AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true) + AC_CONFIG_LINKS(zlib.h:zlib/zlib.h zconf.h:zlib/zconf.h ) + ZLIBS="../zlib/libzlib.a" +else + AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false) + ZLIBS= + LIBS="-lz $LIBS" +fi +AC_SUBST(ZLIBS) + + +# Allow users to append something to the version string without +# flagging it as development version. The user version parts is +# considered everything after a dash. +changequote(,)dnl +tmp_pat='[a-zA-Z]' +changequote([,])dnl +if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then + AC_DEFINE(IS_DEVELOPMENT_VERSION,1, + [Defined if this is not a regular release]) +fi + +AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes) + +GNUPG_CHECK_GNUMAKE + +# add some extra libs here so that previous tests don't fail for +# mysterious reasons - the final link step shoudl bail out. +case "${target}" in + *-*-mingw32*) + LIBS="$LIBS -lwsock32" + ;; + *) + ;; +esac + + +if test "$GCC" = yes; then + if test "$MAINTAINER_MODE" = "yes"; then + CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes" + else + CFLAGS="$CFLAGS -Wall" + fi +fi + +AC_CONFIG_COMMANDS(g10defs.h,[[ +cat >g10defs.tmp <>g10defs.tmp +if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then + echo "g10defs.h is unchanged" + rm -f g10defs.tmp +else + rm -f g10defs.h + mv g10defs.tmp g10defs.h + echo "g10defs.h created" +fi +]],[[ +prefix=$prefix +exec_prefix=$exec_prefix +libdir=$libdir +datadir=$datadir +DATADIRNAME=$DATADIRNAME +]]) + + +AC_CONFIG_FILES([ +Makefile +intl/Makefile +po/Makefile.in +util/Makefile +mpi/Makefile +cipher/Makefile +g10/Makefile +doc/Makefile +tools/Makefile +zlib/Makefile +checks/Makefile +]) +AC_OUTPUT + +# Give some feedback +echo "Configured for: $PRINTABLE_OS_NAME ($target)" +if test -n "$show_dynlink"; then + echo "Dynamically linked modules:$show_dynlink" +fi +if test -n "$show_statlink"; then + echo "Statically linked modules:$show_statlink" +fi +if test -n "$show_extraasm"; then + echo "Extra cpu specific functions:$show_extraasm" +fi + diff --git a/configure.in b/configure.in deleted file mode 100644 index 683f4995c..000000000 --- a/configure.in +++ /dev/null @@ -1,770 +0,0 @@ -dnl Configure script for GnuPG -dnl Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. -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 -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -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 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 -dnl (Process this file with autoconf to produce a configure script.) -AC_REVISION($Revision$)dnl - -dnl Must reset CDPATH so that bash's cd does not print to stdout -CDPATH= - -AC_PREREQ(2.13) -AC_INIT(g10/g10.c) -AC_CONFIG_AUX_DIR(scripts) -AM_CONFIG_HEADER(config.h) -AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE(gnupg,`cat $srcdir/VERSION`) - - -ALL_LINGUAS="da de eo es_ES et fr id it ja nl pl pt_BR pt_PT sv tr" -static_modules="sha1 md5 rmd160" -static_random_module="" - -AC_PROG_AWK - -MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \ - $srcdir/cipher/Makefile.am` - -dnl -dnl Check for random module options -dnl -dnl Fixme: get the list of available modules from MODULES_IN_CIPHER -dnl and check against this list - -AC_MSG_CHECKING([which static random module to use]) -AC_ARG_ENABLE(static-rnd, - [ --enable-static-rnd=[egd|unix|linux|none] ], -[use_static_rnd=$enableval], [use_static_rnd=default] ) - -if test "$use_static_rnd" = no; then - use_static_rnd=default -fi - -case "$use_static_rnd" in - egd | linux | unix | none | default ) - AC_MSG_RESULT($use_static_rnd) - ;; - * ) - AC_MSG_RESULT(invalid argument) - AC_MSG_ERROR(there is no random module rnd$use_static_rnd) - ;; -esac - -AC_ARG_WITH(egd-socket, - [ --with-egd-socket=NAME Use NAME for the EGD socket)], - egd_socket_name="$withval", egd_socket_name="" ) -AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name") - - -dnl -dnl See whether the user wants to disable checking for /dev/random - -AC_MSG_CHECKING([whether use of /dev/random is requested]) -AC_ARG_ENABLE(dev-random, -[ --disable-dev-random disable the use of dev random], - try_dev_random=$enableval, try_dev_random=yes) -AC_MSG_RESULT($try_dev_random) - - -dnl -dnl Check other options -dnl - -AC_MSG_CHECKING([whether use of extensions is requested]) -AC_ARG_ENABLE(dynload, -[ --disable-dynload disable use of extensions], - try_dynload=$enableval, try_dynload=yes) -AC_MSG_RESULT($try_dynload) - -AC_MSG_CHECKING([whether assembler modules are requested]) -AC_ARG_ENABLE(asm, -[ --disable-asm do not use assembler modules], - try_asm_modules=$enableval, try_asm_modules=yes) -AC_MSG_RESULT($try_asm_modules) - -AC_MSG_CHECKING([whether memory guard is requested]) -AC_ARG_ENABLE(m-guard, - [ --enable-m-guard enable memory guard facility], - use_m_guard=$enableval, use_m_guard=no) -AC_MSG_RESULT($use_m_guard) -if test "$use_m_guard" = yes ; then - AC_DEFINE(M_GUARD) -fi - - -AC_MSG_CHECKING([whether included zlib is requested]) -AC_ARG_WITH(included-zlib, - [ --with-included-zlib use the zlib code included here], -[g10_force_zlib=yes], [g10_force_zlib=no] ) -AC_MSG_RESULT($g10_force_zlib) - - -dnl -dnl Check whether we want to use Linux capabilities -dnl -AC_MSG_CHECKING([whether use of capabilities is requested]) -AC_ARG_WITH(capabilities, - [ --with-capabilities use linux capabilities [default=no]], -[use_capabilities="$withval"],[use_capabilities=no]) -AC_MSG_RESULT($use_capabilities) - - - - - -AM_MAINTAINER_MODE - -dnl Checks for programs. - -dnl -dnl Setup some stuff depending on host/target. -dnl -case "${target}" in - *-*-mingw32*) - disallowed_modules="rndunix rndlinux rndegd" - ;; - *) - disallowed_modules="rndw32" - ;; -esac - -AC_ARG_PROGRAM -AC_PROG_MAKE_SET -AM_SANITY_CHECK -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_PROG_CC -AC_PROG_CPP -AC_ISC_POSIX -AC_SYS_LARGEFILE -AC_PROG_INSTALL -AC_PROG_AWK -AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no) -AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes) -GNUPG_CHECK_FAQPROG -GNUPG_CHECK_DOCBOOK_TO_TEXI - -MPI_OPT_FLAGS="" - - -try_gettext=yes -try_gdbm=yes -case "${target}" in - *-*-mingw32*) - # special stuff for Windoze NT - ac_cv_have_dev_random=no - AC_DEFINE(USE_ONLY_8DOT3) - AC_DEFINE(HAVE_DRIVE_LETTERS) - AC_DEFINE(HAVE_DOSISH_SYSTEM) - AC_DEFINE(USE_SIMPLE_GETTEXT) - try_gettext="no" - try_gdbm="no" - ;; - i?86-emx-os2 | i?86-*-os2*emx ) - # OS/2 with the EMX environment - ac_cv_have_dev_random=no - AC_DEFINE(HAVE_DRIVE_LETTERS) - AC_DEFINE(HAVE_DOSISH_SYSTEM) - try_gettext="no" - try_gdbm="no" - ;; - - i?86-*-msdosdjgpp*) - # DOS with the DJGPP environment - ac_cv_have_dev_random=no - AC_DEFINE(HAVE_DRIVE_LETTERS) - AC_DEFINE(HAVE_DOSISH_SYSTEM) - try_gettext="no" - try_gdbm="no" - ;; - - *-*-freebsd*) - # FreeBSD - CPPFLAGS="$CPPFLAGS -I/usr/local/include" - LDFLAGS="$LDFLAGS -L/usr/local/lib" - ;; - - *-*-hpux*) - if test -z "$GCC" ; then - CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE" - fi - ;; - *-dec-osf4*) - if test -z "$GCC" ; then - # Suppress all warnings - # to get rid of the unsigned/signed char mismatch warnings. - CFLAGS="$CFLAGS -w" - fi - ;; - m68k-atari-mint) - ;; - *) - ;; -esac - -AC_SUBST(MPI_OPT_FLAGS) -GNUPG_SYS_SYMBOL_UNDERSCORE -GNUPG_CHECK_PIC -GNUPG_CHECK_EXPORTDYNAMIC -if test "$NO_PIC" = yes; then - try_dynload=no -fi - - -case "${target}" in - *-*-mingw32*) - PRINTABLE_OS_NAME="MingW32" - ;; - i?86-emx-os2 | i?86-*-os2*emx ) - PRINTABLE_OS_NAME="OS/2" - ;; - i?86-*-msdosdjgpp*) - PRINTABLE_OS_NAME="MSDOS/DJGPP" - try_dynload=no - ;; - *-linux*) - PRINTABLE_OS_NAME="GNU/Linux" - ;; -dnl let that after linux to avoid gnu-linux problems - *-gnu*) - PRINTABLE_OS_NAME="GNU/Hurd" - ;; - *) - PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` - ;; -esac -AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME") - -dnl Fixme: Are these the best flags for OpenBSD???? -case "${target}" in - *-openbsd* | *-netbsd*) - NAME_OF_DEV_RANDOM="/dev/srandom" - NAME_OF_DEV_URANDOM="/dev/urandom" - DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x" - ;; - - *-solaris* | *-irix* | *-dec-osf* ) - NAME_OF_DEV_RANDOM="/dev/random" - NAME_OF_DEV_URANDOM="/dev/urandom" - DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" - ;; - - *) - NAME_OF_DEV_RANDOM="/dev/random" - NAME_OF_DEV_URANDOM="/dev/urandom" - # -shared is a gcc-ism. Find pic flags from GNUPG_CHECK_PIC. - if test -n "$GCC" ; then - DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" - else - DYNLINK_MOD_CFLAGS="$CFLAGS_PIC" - fi - ;; -esac -AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM") -AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM") -AC_SUBST(MPI_OPT_FLAGS) - - -dnl Checks for libraries. - -if test "$try_gettext" = yes; then -AM_GNU_GETTEXT -else -USE_NLS=no -USE_INCLUDED_LIBINTL=no -BUILD_INCLUDED_LIBINTL=no -AC_SUBST(USE_NLS) -AC_SUBST(USE_INCLUDED_LIBINTL) -AC_SUBST(BUILD_INCLUDED_LIBINTL) -fi - -dnl -dnl There are lot of misconfigured systems. We include -dnl gdbm support only if the lib and the header is installed. -dnl -if test "$try_gdbm" = yes; then -AC_CHECK_HEADERS(gdbm.h) -if test "$ac_cv_header_gdbm_h" = yes ; then - AC_CHECK_LIB(gdbm,gdbm_firstkey) -fi -fi - -dnl Solaris needs -lsocket and -lnsl. Unisys system includes -dnl gethostbyname in libsocket but needs libnsl for socket. -dnl The test does not workfor all system, so some are hardcoded here. -case "${target}" in - i386-univel-sysv4*) - LIBS="$LIBS -lsocket -lnsl" - ;; - *) - AC_CHECK_LIB(nsl, gethostbyname) - AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1) - if test x$ac_need_libsocket = x1; then - LIBS="$LIBS -lsocket" - fi - if test x$ac_try_nsl = x1; then - AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1) - if test x$ac_need_libnsl = x1 - then - LIBS="$LIBS -lnsl" - fi - fi - ;; -esac - - -if test "$try_dynload" = yes ; then - AC_CHECK_LIB(dl,dlopen) - if test "$ac_cv_lib_dl_dlopen" = "yes"; then - AC_DEFINE(USE_DYNAMIC_LINKING) - AC_DEFINE(HAVE_DL_DLOPEN) - DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" - use_gnupg_extensions=yes - else - AC_CHECK_FUNCS(dlopen) - if test "$ac_cv_func_dlopen" = "yes"; then - AC_DEFINE(USE_DYNAMIC_LINKING) - AC_DEFINE(HAVE_DL_DLOPEN) - DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" - use_gnupg_extensions=yes - else - AC_CHECK_LIB(dld,shl_load) - if test "$ac_cv_lib_dld_shl_load" = "yes"; then - AC_DEFINE(USE_DYNAMIC_LINKING) - AC_DEFINE(HAVE_DL_SHL_LOAD) - DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" - use_gnupg_extensions=yes -dnl ----------------- -dnl DLD is not ready for use. So I better disable this test -dnl -dnl AC_CHECK_LIB(dld,dld_link) -dnl if test "$ac_cv_lib_dld_dld_link" = "yes"; then -dnl AC_DEFINE(USE_DYNAMIC_LINKING) -dnl AC_DEFINE(HAVE_DLD_DLD_LINK) -dnl DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC" -dnl use_gnupg_extensions=yes -dnl --------------- - fi - fi - fi -else - AC_MSG_CHECKING(for dynamic loading) - DYNLINK_LDFLAGS= - DYNLINK_MOD_CFLAGS= - use_gnupg_extensions=no - AC_MSG_RESULT(has been disabled) -fi - -AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes ) -AC_SUBST(DYNLINK_LDFLAGS) -AC_SUBST(DYNLINK_MOD_CFLAGS) - - -dnl Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS(unistd.h langinfo.h termio.h) - - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_C_INLINE -AC_TYPE_SIZE_T -AC_TYPE_SIGNAL -AC_DECL_SYS_SIGLIST - -GNUPG_CHECK_ENDIAN - - -GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF) -GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF) -GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF) -GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF) -GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF) - -AC_CHECK_SIZEOF(unsigned short, 2) -AC_CHECK_SIZEOF(unsigned int, 4) -AC_CHECK_SIZEOF(unsigned long, 4) -AC_CHECK_SIZEOF(unsigned long long, 0) - -if test "$ac_cv_sizeof_unsigned_short" = "0" \ - || test "$ac_cv_sizeof_unsigned_int" = "0" \ - || test "$ac_cv_sizeof_unsigned_long" = "0"; then - AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]); -fi - - - -dnl Checks for library functions. -AC_FUNC_VPRINTF -AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap) -AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit clock_gettime) -AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo) -AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fseeko) - -GNUPG_CHECK_MLOCK -GNUPG_FUNC_MKDIR_TAKES_ONE_ARG - -dnl -dnl Check whether we can use Linux capabilities as requested -dnl -if test "$use_capabilities" = "yes" ; then -use_capabilities=no -AC_CHECK_HEADERS(sys/capability.h) -if test "$ac_cv_header_sys_capability_h" = "yes" ; then - AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1) - if test "$ac_cv_lib_cap_cap_init" = "yes"; then - AC_DEFINE(USE_CAPABILITIES) - LIBS="$LIBS -lcap" - use_capabilities=yes - fi -fi -if test "$use_capabilities" = "no" ; then - AC_MSG_WARN([[ -*** -*** The use of capabilities on this system is not possible. -*** You need a recent Linux kernel and some patches: -*** fcaps-2.2.9-990610.patch (kernel patch for 2.2.9) -*** fcap-module-990613.tar.gz (kernel module) -*** libcap-1.92.tar.gz (user mode library and utilities) -*** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN -*** set (filesystems menu). Be warned: This code is *really* ALPHA. -***]]) -fi -fi - - -GNUPG_CHECK_IPC -if test "$ac_cv_header_sys_shm_h" = "yes"; then - AC_DEFINE(USE_SHM_COPROCESSING) -fi - -dnl -dnl check whether we have a random device -dnl -if test "$try_dev_random" = yes ; then - AC_CACHE_CHECK(for random device, ac_cv_have_dev_random, - [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then - ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi]) - if test "$ac_cv_have_dev_random" = yes; then - AC_DEFINE(HAVE_DEV_RANDOM) - fi -else - AC_MSG_CHECKING(for random device) - ac_cv_have_dev_random=no - AC_MSG_RESULT(has been disabled) -fi - -dnl -dnl and whether this device supports ioctl -dnl (Note, that we should do a real test here) -dnl -if test "$ac_cv_have_dev_random" = yes ; then - AC_CHECK_HEADERS(linux/random.h) - AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl, - [ if test "$ac_cv_header_linux_random_h" = yes ; then - ac_cv_have_dev_random_ioctl=yes; - else - ac_cv_have_dev_random_ioctl=no; - fi - ]) - if test "$ac_cv_have_dev_random_ioctl" = yes; then - AC_DEFINE(HAVE_DEV_RANDOM_IOCTL) - fi -fi - - -dnl -dnl Figure out the default linkage mode for random modules -dnl -print_egd_notice=no -if test "$use_static_rnd" = default; then - if test "$ac_cv_have_dev_random" = yes; then - static_random_module="rndlinux" - else - case "${target}" in - *-*-mingw32*) - static_random_module="rndw32" - AC_DEFINE(USE_STATIC_RNDW32) - ;; - i?86-emx-os2|i?86-*-os2*emx) - static_random_module="rndos2" - ;; - m68k-atari-mint) - static_random_module="rndatari" - ;; - i?86-*-msdosdjgpp*) - : - ;; - *) - static_random_module="rndunix" - print_egd_notice=yes - ;; - esac - fi -else - if test "$use_static_rnd" = none; then - : - else - static_random_module="rnd$use_static_rnd" - if test "$use_static_rnd" = "unix"; then - print_egd_notice=yes - fi - fi -fi - - -if test "$print_egd_notice" = "yes"; then - AC_MSG_WARN([[ -*** -*** The performance of the UNIX random gatherer module is not very good -*** and it does not keep the entropy pool over multiple invocations of -*** GnuPG. The suggested way to overcome this problem is to use the -*** -*** Entropy Gathering Daemon (EGD) -*** -*** which provides a entropy source for the whole system. It is written -*** in Perl and available at the GnuPG FTP servers. For more information -*** consult the GnuPG webpages: -*** -*** http://www.gnupg.org/download.html#egd -*** -*** You may want to run ./configure with --enable-static-rnd=none to be -*** able to load the EGD client code dynamically; this way you can choose -*** between RNDUNIX and RNDEGD without recompilation. -***]]) -fi - -dnl -dnl Parse the modules list and build the list -dnl of static and dymically linked modules -dnl -dnl (We always need a static rmd160) -static_modules="$static_modules rmd160 $static_random_module" -STATIC_CIPHER_NAMES="" -STATIC_CIPHER_OBJS="" -DYNAMIC_CIPHER_MODS="" -GNUPG_MSG_PRINT([dynamically linked cipher modules:]) -for name in $MODULES_IN_CIPHER; do - x="yes" - for i in $disallowed_modules; do - if test "$name" = "$i" ; then x="no" ; fi - done; - if test $x = yes; then - x="no" - for i in $static_modules; do - if test "$name" = "$i" ; then - x="yes" - fi - done; - if test $x = yes; then - STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name" - STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.o" - else - DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name" - GNUPG_MSG_PRINT([$name]) - fi - fi -done -AC_MSG_RESULT() -AC_SUBST(STATIC_CIPHER_OBJS) -AC_SUBST(STATIC_CIPHER_NAMES) -AC_SUBST(DYNAMIC_CIPHER_MODS) - -dnl -dnl And build the constructor file -dnl - -test -d cipher || mkdir cipher -cat <cipher/construct.c -/* automatically generated by configure - do not edit */ - -G10EOF -GNUPG_MSG_PRINT([statically linked cipher modules:]) -for name in $STATIC_CIPHER_NAMES; do - echo "void ${name}_constructor(void);" >>cipher/construct.c - GNUPG_MSG_PRINT([$name]) -done -AC_MSG_RESULT() -cat <>cipher/construct.c - -void -cipher_modules_constructor(void) -{ - static int done = 0; - if( done ) - return; - done = 1; - -G10EOF -for name in $STATIC_CIPHER_NAMES; do - echo " ${name}_constructor();" >>cipher/construct.c -done -echo '}' >>cipher/construct.c - - - - -dnl -dnl Figure how to link the cipher modules -dnl -AC_SUBST(STATIC_CIPHER_OBJS) -AC_SUBST(DYNAMIC_CIPHER_MODS) - - -dnl setup assembler stuff -AC_MSG_CHECKING(for mpi assembler functions) -if test -f $srcdir/mpi/config.links ; then - . $srcdir/mpi/config.links - GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst) - ac_cv_mpi_extra_asm_modules="$mpi_extra_modules" - ac_cv_mpi_sflags="$mpi_sflags" - ac_cv_mpi_config_done="yes" - AC_MSG_RESULT(done) -else - AC_MSG_RESULT(failed) - AC_MSG_ERROR([mpi/config.links missing!]) -fi -MPI_EXTRA_ASM_OBJS="" -if test "$ac_cv_mpi_extra_asm_modules" != ""; then -GNUPG_MSG_PRINT([mpi extra asm functions:]) -for i in $ac_cv_mpi_extra_asm_modules; do - GNUPG_MSG_PRINT([$i]) - MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o" -done -AC_MSG_RESULT() -fi -AC_SUBST(MPI_EXTRA_ASM_OBJS) -MPI_SFLAGS="$ac_cv_mpi_sflags" -AC_SUBST(MPI_SFLAGS) - -dnl Do we have zlib? Must do it here because Solaris failed -dnl when compiling a conftest (due to the "-lz" from LIBS). -use_local_zlib=yes -if test "$g10_force_zlib" = "yes"; then - : -else - AC_CHECK_HEADERS(zlib.h) - if test "$ac_cv_header_zlib_h" = yes ; then - AC_CHECK_LIB(z,deflateInit2_,use_local_zlib=no,:) - fi -fi - -if test "$use_local_zlib" = yes ; then - AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true) - GNUPG_LINK_FILES(zlib/zlib.h, zlib.h ) - GNUPG_LINK_FILES(zlib/zconf.h, zconf.h ) - ZLIBS="../zlib/libzlib.a" -else - AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false) - ZLIBS= - LIBS="-lz $LIBS" -fi -AC_SUBST(ZLIBS) - - -# Allow users to append something to the version string without -# flagging it as development version. The user version parts is -# considered everything after a dash. -changequote(,)dnl -tmp_pat='[a-zA-Z]' -changequote([,])dnl -if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then - AC_DEFINE(IS_DEVELOPMENT_VERSION) -fi - -AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes) - -GNUPG_DO_LINK_FILES - -GNUPG_CHECK_GNUMAKE - -# add some extra libs here so that previous tests don't fail for -# mysterious reasons - the final link step shoudl bail out. -case "${target}" in - *-*-mingw32*) - LIBS="$LIBS -lwsock32" - ;; - *) - ;; -esac - - -if test "$GCC" = yes; then - if test "$MAINTAINER_MODE" = "yes"; then - CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes" - else - CFLAGS="$CFLAGS -Wall" - fi -fi - -AC_OUTPUT_COMMANDS([ -cat >g10defs.tmp <>g10defs.tmp -if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then - echo "g10defs.h is unchanged" - rm -f g10defs.tmp -else - rm -f g10defs.h - mv g10defs.tmp g10defs.h - echo "g10defs.h created" -fi -],[ -prefix=$prefix -exec_prefix=$exec_prefix -libdir=$libdir -datadir=$datadir -DATADIRNAME=$DATADIRNAME -]) - - -AC_OUTPUT([ -Makefile -intl/Makefile -po/Makefile.in -util/Makefile -mpi/Makefile -cipher/Makefile -g10/Makefile -doc/Makefile -tools/Makefile -zlib/Makefile -checks/Makefile -]) - -dnl *-*wedit:notab*-* Please keep this as the last line. -- cgit v1.2.3