diff options
author | Werner Koch <[email protected]> | 2002-10-19 07:55:27 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-10-19 07:55:27 +0000 |
commit | 9214e1b282100980789bd6eb9c9940ed02689c2d (patch) | |
tree | 2814d42a467e22852c0bdb1ded99c76ffab3810a /configure.ac | |
parent | This commit was manufactured by cvs2svn to create branch (diff) | |
download | gnupg-9214e1b282100980789bd6eb9c9940ed02689c2d.tar.gz gnupg-9214e1b282100980789bd6eb9c9940ed02689c2d.zip |
Merged Top directory of NewPG with GnuPG.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 1096 |
1 files changed, 250 insertions, 846 deletions
diff --git a/configure.ac b/configure.ac index 18ea461b6..8294fb3c4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,470 +1,110 @@ -dnl Configure.ac script for GnuPG -dnl Copyright (C) 1998, 1999, 2000, 2001, 2002 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.) -dnlAC_REVISION($Revision$)dnl - +# configure.ac - for NewPG +# Copyright (C) 2001, 2002 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 + +# Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) - -# Remember to change the version number immediately *after* a release -# and remove the "-cvs" or "rc" suffix immediately *before* a release. -AC_INIT(gnupg, 1.3.1-cvs, [email protected]) -# Set development_version to yes if the minor number is odd or you -# feel that the default check for a development version is not -# sufficient. -development_version=yes - +# Version number: Remember to change it immediately *after* a release. +# Add a "-cvs" prefix for non-released code. +AC_INIT(newpg, 0.9.3-cvs, [email protected]) +NEED_LIBGCRYPT_VERSION=1.1.8 +NEED_KSBA_VERSION=0.4.4 +NEED_OPENSC_VERSION=0.7.0 ALL_LINGUAS="de" PACKAGE=$PACKAGE_NAME VERSION=$PACKAGE_VERSION -AC_CONFIG_AUX_DIR(scripts) -AC_CONFIG_SRCDIR(g10/g10.c) -AC_CANONICAL_TARGET() -AM_INIT_AUTOMAKE($PACKAGE, $VERSION) +AC_CONFIG_SRCDIR(sm/gpgsm.c) AM_CONFIG_HEADER(config.h) +AM_INIT_AUTOMAKE($PACKAGE, $VERSION) +AM_MAINTAINER_MODE -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_DEFINE(_GNU_SOURCE,1,[Some tests rely on this (stpcpy) and it should be used for new programs anyway]) - -dnl -dnl Check for random module options -dnl -AC_MSG_CHECKING([which random module to use]) -AC_ARG_ENABLE(static-rnd, - [ --enable-static-rnd=[egd|unix|linux|auto] ], -[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 | default ) - AC_MSG_RESULT($use_static_rnd) - ;; - auto ) - AC_MSG_RESULT(automagically selected at runtime) - ;; - * ) - 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 - -# We don't need idea but some people claim that they need it for -# research etc., so we allow to place an idea source code into the -# cipher directory and statically link it if available, otherwise we -# link to a stub. We don't use AC_CHECK_FILE to avoid caching. -AC_MSG_CHECKING(for extra cipher modules) -tmp="" -if test -f $srcdir/cipher/idea.c; then - IDEA_O=idea.o - tmp=idea -else - IDEA_O=idea-stub.o - tmp=no -fi -AC_SUBST(IDEA_O) -AC_MSG_RESULT($tmp) - -# if the static idea is present, disable dynload. -if test "$IDEA_O" = idea-stub.o ; then - 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) -else - try_dynload=no -fi - -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 to enable old-style TIGER digest support]) -AC_ARG_ENABLE(old-tiger, - [ --enable-old-tiger enable old-style TIGER digest support], - old_tiger=$enableval, old_tiger=no) -AC_MSG_RESULT($old_tiger) -if test "$old_tiger" = yes ; then - AC_DEFINE(USE_OLD_TIGER,1,[Define to use the old fake OID for TIGER digest support]) -fi - -AC_MSG_CHECKING([whether to enable external program execution]) -AC_ARG_ENABLE(exec, - [ --disable-exec disable all external program execution], - use_exec=$enableval, use_exec=yes) -AC_MSG_RESULT($use_exec) -if test "$use_exec" = no ; then - AC_DEFINE(NO_EXEC,1,[Define to disable all external program execution]) -fi - -if test "$use_exec" = yes ; then - AC_MSG_CHECKING([whether to enable photo ID viewing]) - AC_ARG_ENABLE(photo-viewers, - [ --disable-photo-viewers disable photo ID viewers], - [if test "$enableval" = no ; then - AC_DEFINE(DISABLE_PHOTO_VIEWER,1,[define to disable photo viewing]) - fi],enableval=yes) - gnupg_cv_enable_photo_viewers=$enableval - AC_MSG_RESULT($enableval) - - if test "$gnupg_cv_enable_photo_viewers" = yes ; then - AC_MSG_CHECKING([whether to use a fixed photo ID viewer]) - AC_ARG_WITH(photo-viewer, - [ --with-photo-viewer=FIXED_VIEWER set a fixed photo ID viewer], - [if test "$withval" = yes ; then - withval=no - elif test "$withval" != no ; then - AC_DEFINE_UNQUOTED(FIXED_PHOTO_VIEWER,"$withval", - [if set, restrict photo-viewer to this]) - fi],withval=no) - AC_MSG_RESULT($withval) - fi +# Some status variables to give feedback at the end of a configure run +have_ksba=no +have_opensc=no +have_pth=no - AC_MSG_CHECKING([whether to enable external keyserver helpers]) - AC_ARG_ENABLE(keyserver-helpers, - [ --disable-keyserver-helpers disable all external keyserver support], - [if test "$enableval" = no ; then - AC_DEFINE(DISABLE_KEYSERVER_HELPERS,1, - [define to disable keyserver helpers]) - fi],enableval=yes) - gnupg_cv_enable_keyserver_helpers=$enableval - AC_MSG_RESULT($enableval) - - if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then - AC_MSG_CHECKING([whether LDAP keyserver support is requested]) - AC_ARG_ENABLE(ldap, - [ --disable-ldap disable LDAP keyserver interface], - try_ldap=$enableval, try_ldap=yes) - AC_MSG_RESULT($try_ldap) - - AC_MSG_CHECKING([whether HKP keyserver support is requested]) - AC_ARG_ENABLE(hkp, - [ --disable-hkp disable HKP keyserver interface], - try_hkp=$enableval, try_hkp=yes) - AC_MSG_RESULT($try_hkp) - - if test "$try_hkp" = yes ; then - AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp") - fi - - AC_MSG_CHECKING([whether email keyserver support is requested]) - AC_ARG_ENABLE(mailto, - [ --disable-mailto disable email keyserver interface], - try_mailto=$enableval, try_mailto=yes) - AC_MSG_RESULT($try_mailto) - fi - - AC_MSG_CHECKING([whether keyserver exec-path is enabled]) - AC_ARG_ENABLE(keyserver-path, - [ --disable-keyserver-path disable the exec-path option for keyserver helpers], - [if test "$enableval" = no ; then - AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers]) - fi],enableval=yes) - AC_MSG_RESULT($enableval) - fi +GNUPG_BUILD_PROGRAM(gpg, no) +GNUPG_BUILD_PROGRAM(gpgsm, yes) +GNUPG_BUILD_PROGRAM(agent, yes) +GNUPG_BUILD_PROGRAM(scdaemon, yes) -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) +AH_TOP([ +/* We need this, because some autoconf tests rely on this (e.g. stpcpy) + and it should be used for new programs anyway. */ +#define _GNU_SOURCE 1 +]) -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_BOTTOM([ +/* Some global constants. */ +#ifdef HAVE_DRIVE_LETTERS +#define GNUPG_DEFAULT_HOMEDIR "c:/gnupg" +#else +#define GNUPG_DEFAULT_HOMEDIR "~/.gnupg" +#endif +#define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d" +]) -AH_BOTTOM([ -#if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID)) -#define EXEC_TEMPFILE_ONLY -#endif -#include "g10defs.h" -]) +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_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT", + [Bug report address]) +AC_DEFINE_UNQUOTED(NEED_LIBGCRYPT_VERSION, "$NEED_LIBGCRYPT_VERSION", + [Required version of Libgcrypt]) +AC_DEFINE_UNQUOTED(NEED_KSBA_VERSION, "$NEED_KSBA_VERSION", + [Required version of Libksba]) -AM_MAINTAINER_MODE -dnl Checks for programs. -AC_PROG_MAKE_SET -AM_SANITY_CHECK +# Checks for programs. 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_AWK AC_PROG_CC AC_PROG_CPP -AC_PATH_PROG(PERL,"perl") -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="" +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_RANLIB +#AC_ARG_PROGRAM +if test "$GCC" = yes; then + CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes" +fi -try_gettext=yes case "${target}" in - *-*-mingw32*|*-*-cygwin*) - # 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]) + *-*-mingw32*) + PRINTABLE_OS_NAME="MingW32" 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" - ;; - 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" - ;; - - 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" - ;; - - *-*-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 - ;; - *-dec-osf5*) - if test -z "$GCC" ; then - # Use the newer compiler `-msg_disable ptrmismatch' to - # get rid of the unsigned/signed char mismatch warnings. - # Using this may hide other pointer mismatch warnings, but - # it at least lets other warning classes through - CFLAGS="$CFLAGS -msg_disable ptrmismatch" - fi - ;; - m68k-atari-mint) - ;; - *) - ;; -esac - -AC_SUBST(MPI_OPT_FLAGS) -GNUPG_SYS_SYMBOL_UNDERSCORE - -dnl Must check for network library requirements before doing link tests -dnl for ldap, for example. If ldap libs are static (or dynamic and without -dnl ELF runtime link paths), then link will fail and LDAP support won't -dnl be detected. - -AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname, - [NETLIBS="-lnsl $NETLIBS"])) -AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt, - [NETLIBS="-lsocket $NETLIBS"])) - -# Try and link a LDAP test program to weed out unusable LDAP -# libraries. -lldap [-llber [-lresolv]] is for OpenLDAP. OpenLDAP in -# general is terrible with creating weird dependencies. If all else -# fails, the user can play guess-the-dependency by using something -# like LDAPLIBS="-lfoo" ./configure - -if test "$try_ldap" = yes ; then - for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do - _ldap_save_libs=$LIBS - LIBS="$MY_LDAPLIBS $NETLIBS $LIBS" - - AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane]) - AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);], - [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no]) - AC_MSG_RESULT([$gnupg_cv_func_ldap_init]) - - if test $gnupg_cv_func_ldap_init = no; then - AC_MSG_CHECKING([whether I can make LDAP be sane with lber.h]) - AC_TRY_LINK([#include <lber.h> -#include <ldap.h>],[ldap_open("foobar",1234);], - [gnupg_cv_func_ldaplber_init=yes],[gnupg_cv_func_ldaplber_init=no]) - AC_MSG_RESULT([$gnupg_cv_func_ldaplber_init]) - fi - - if test "$gnupg_cv_func_ldaplber_init" = yes ; then - AC_DEFINE(NEED_LBER_H,1,[Define if the LDAP library requires including lber.h before ldap.h]) - fi - - if test "$gnupg_cv_func_ldap_init" = yes || \ - test "$gnupg_cv_func_ldaplber_init" = yes ; then - LDAPLIBS=$MY_LDAPLIBS - GPGKEYS_LDAP="gpgkeys_ldap" - - AC_MSG_CHECKING([whether LDAP supports ldap_get_option]) - - if test "$gnupg_cv_func_ldap_init" = yes ; then - AC_TRY_LINK([#include <ldap.h>], - [ldap_get_option((void *)0,0,(void *)0);], - [gnupg_cv_func_ldap_get_option=yes], - [gnupg_cv_func_ldap_get_option=no]) - else - AC_TRY_LINK([#include <lber.h> -#include <ldap.h>],[ldap_get_option((void *)0,0,(void *)0);], - [gnupg_cv_func_ldap_get_option=yes], - [gnupg_cv_func_ldap_get_option=no]) - fi - - AC_MSG_RESULT([$gnupg_cv_func_ldap_get_option]) - - if test "$gnupg_cv_func_ldap_get_option" = yes ; then - AC_DEFINE(HAVE_LDAP_GET_OPTION,1,[Define if the LDAP library has ldap_get_option]) - else - AC_MSG_CHECKING([whether LDAP supports ld_errno]) - - if test "$gnupg_cv_func_ldap_init" = yes ; then - AC_TRY_COMPILE([#include <ldap.h>], - [LDAP *ldap; ldap->ld_errno;], - [gnupg_cv_func_ldap_ld_errno=yes], - [gnupg_cv_func_ldap_ld_errno=no]) - else - AC_TRY_LINK([#include <lber.h> -#include <ldap.h>],[LDAP *ldap; ldap->ld_errno;], - [gnupg_cv_func_ldap_ld_errno=yes], - [gnupg_cv_func_ldap_ld_errno=no]) - fi - - AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno]) - - if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then - AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno]) - fi - fi - fi - - LIBS=$_ldap_save_libs - - if test "$GPGKEYS_LDAP" != "" ; then break; fi - done -fi - -AC_SUBST(GPGKEYS_LDAP) -AC_SUBST(LDAPLIBS) - -dnl This isn't necessarily sendmail itself, but anything that gives a -dnl sendmail-ish interface to the outside world. That includes qmail, -dnl postfix, etc. Basically, anything that can handle "sendmail -t". - -if test "$try_mailto" = yes ; then - AC_ARG_WITH(mailprog,[ --with-mailprog=NAME use "NAME -t" for mail transport],,with_mailprog=yes) - - if test "$with_mailprog" = yes ; then - AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib) - if test "$ac_cv_path_SENDMAIL" ; then - GPGKEYS_MAILTO="gpgkeys_mailto" - fi - elif test "$with_mailprog" != no ; then - AC_MSG_CHECKING([for a mail transport program]) - AC_SUBST(SENDMAIL,$with_mailprog) - AC_MSG_RESULT($with_mailprog) - GPGKEYS_MAILTO="gpgkeys_mailto" - fi -fi - -AC_SUBST(GPGKEYS_MAILTO) - -case "${target}" in - *-*-mingw32*) - PRINTABLE_OS_NAME="MingW32" - ;; - *-*-cygwin*) - PRINTABLE_OS_NAME="Cygwin32" ;; i?86-emx-os2 | i?86-*-os2*emx ) PRINTABLE_OS_NAME="OS/2" @@ -488,465 +128,229 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME", [A human readable text with the name of the OS]) +# I know that it is in general not a good idea to evaluate bindir in +# the configuration but we want to hard code the defaults into some of +# the programs and doing this during a make install is not a good +# idea. We also have the problem that 2 of the programs are included +# in the package but the others are distributed in other packages. +eval my_default_bindir=${exec_prefix} +test "x${my_default_bindir}" = xNONE && my_default_bindir=${ac_default_prefix} +my_default_bindir=${my_default_bindir}/bin + +AC_ARG_WITH(agent-pgm, + [ --with-agent-pgm=PATH Use PATH as the default for the gpg-agent)], + gnupg_agent_pgm="$withval", + gnupg_agent_pgm="${my_default_bindir}/gpg-agent" ) +AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_AGENT, "$gnupg_agent_pgm", + [Default location of the gpg-agent program]) +AC_ARG_WITH(pinentry-pgm, + [ --with-pinentry-pgm=PATH Use PATH as the default for the pinentry)], + gnupg_pinentry_pgm="$withval", gnupg_pinentry_pgm="" ) +if test -z "$gnupg_pinentry_pgm"; then + gnupg_pinentry_pgm=${my_default_bindir}/pinentry +fi +AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_PINENTRY, "$gnupg_pinentry_pgm", + [Default location of the pinentry program]) +AC_ARG_WITH(scdaemon-pgm, + [ --with-scdaemon-pgm=PATH Use PATH as the default for the scdaemon)], + gnupg_scdaemon_pgm="$withval", gnupg_scdaemon_pgm="" ) +if test -z "$gnupg_scdaemon_pgm"; then + gnupg_scdaemon_pgm=${my_default_bindir}/scdaemon +fi +AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_SCDAEMON, "$gnupg_scdaemon_pgm", + [Default location of the scdaemon program]) +AC_ARG_WITH(dirmngr-pgm, + [ --with-dirmngr-pgm=PATH Use PATH as the default for the dirmngr)], + gnupg_dirmngr_pgm="$withval", gnupg_dirmngr_pgm="" ) +if test -z "$gnupg_dirmngr_pgm"; then + gnupg_dirmngr_pgm=${my_default_bindir}/dirmngr +fi +AC_DEFINE_UNQUOTED(GNUPG_DEFAULT_DIRMNGR, "$gnupg_dirmngr_pgm", + [Default location of the dirmngr program]) + + # -# 1. Set names of random devices +# Checks for libraries. # -NAME_OF_DEV_RANDOM="/dev/random" -NAME_OF_DEV_URANDOM="/dev/urandom" -case "${target}" in - *-openbsd*) - NAME_OF_DEV_RANDOM="/dev/srandom" - NAME_OF_DEV_URANDOM="/dev/urandom" - ;; -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) +# +# Libgcrypt is our generic crypto library +# +#AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config) +#if test -n "$LIBGCRYPT_CONFIG"; then +# LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` +# LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` +#else +# AC_MSG_ERROR([[ +#*** +#*** You need libgcrypt to build this program. +#*** It should be available at the same place you +#*** got this software. +#***]]) +#fi +#AC_SUBST(LIBGCRYPT_CFLAGS) +#AC_SUBST(LIBGCRYPT_LIBS) +AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_VERSION",, + AC_MSG_ERROR([[ +*** +*** libgcrypt was not found. You may want to get it from +*** ftp://ftp.gnupg.org/pub/gcrypt/alpha/libgcrypt/ +*** +]])) -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) +# +# libksba is our X.509 support library +# +AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no) +if test "$have_ksba" = "no"; then + AC_MSG_ERROR([[ +*** +*** You need libksba to build this program.. +*** It should be available at the same place you +*** got this software. +***]]) fi -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]) - else - AC_CHECK_FUNCS(dlopen) - if test "$ac_cv_func_dlopen" = "yes"; then - AC_DEFINE(USE_DYNAMIC_LINKING) - AC_DEFINE(HAVE_DL_DLOPEN) - fi - fi +# +# OpenSC is needed by the SCdaemon - if it is not availbale we won't +# build the SCdaemon +# +AM_PATH_OPENSC("$NEED_OPENSC_VERSION",have_opensc=yes,have_opensc=no) + + +# +# Check whether the (highly desirable) GNU Pth library is available +# +AC_ARG_WITH(pth-prefix, + AC_HELP_STRING([--with-pth-prefix=PFX], + [prefix where GNU Pth is installed (optional)]), + pth_config_prefix="$withval", pth_config_prefix="") +if test x$pth_config_prefix != x ; then + PTH_CONFIG="$pth_config_prefix/bin/pth-config" +fi +AC_PATH_PROG(PTH_CONFIG, pth-config, no) +if test "$PTH_CONFIG" = "no"; then + AC_MSG_WARN([[ +*** +*** To support concurrent access to the gpg-agent and the SCdaemon +*** we need the support of the GNU Portable Threads Library. +*** Download it from ftp://ftp.gnu.org/gnu/pth/ +*** On a Debian GNU/Linux system you might want to try +*** apt-get install libpth-dev +***]]) else - AC_MSG_CHECKING(for dynamic loading) - DYNLINK_LDFLAGS= - DYNLINK_MOD_CFLAGS= - AC_MSG_RESULT(has been disabled) + GNUPG_PTH_VERSION_CHECK(1.3.7) + if test $have_pth = yes; then + PTH_CFLAGS=`$PTH_CONFIG --cflags` + PTH_LIBS=`$PTH_CONFIG --libs` + AC_DEFINE(USE_GNU_PTH, 1, + [Defined if the GNU Portable Thread Library should be used]) + fi fi +AC_SUBST(PTH_CFLAGS) +AC_SUBST(PTH_LIBS) -dnl Checks for header files. + +AM_GNU_GETTEXT + + +# Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h) +AC_CHECK_HEADERS([string.h locale.h]) -dnl Checks for typedefs, structures, and compiler characteristics. +# Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T -AC_TYPE_MODE_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_FSEEKO -AC_FUNC_VPRINTF -AC_FUNC_FORK -AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap) -AC_CHECK_FUNCS(strcasecmp strncasecmp) -AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime) -AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale) -AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat) -AC_REPLACE_FUNCS(mkdtemp) +GNUPG_SYS_SO_PEERCRED -# -# check for gethrtime and run a testprogram to see whether -# it is broken. It has been reported that some Solaris and HP UX systems -# raise an SIGILL -# -AC_CACHE_CHECK([for gethrtime], - [gnupg_cv_func_gethrtime], - [AC_TRY_LINK([#include <sys/times.h>],[ - hrtime_t tv; - tv = gethrtime(); - ], - [gnupg_cv_func_gethrtime=yes], - [gnupg_cv_func_gethrtime=no]) - ]) -if test $gnupg_cv_func_gethrtime = yes; then - AC_DEFINE([HAVE_GETHRTIME], 1, - [Define if you have the `gethrtime(2)' function.]) - AC_CACHE_CHECK([whether gethrtime is broken], - [gnupg_cv_func_broken_gethrtime], - [AC_TRY_RUN([ - #include <sys/times.h> - int main () { - hrtime_t tv; - tv = gethrtime(); - } - ], - [gnupg_cv_func_broken_gethrtime=no], - [gnupg_cv_func_broken_gethrtime=yes], - [gnupg_cv_func_broken_gethrtime=assume-no]) - ]) - if test $gnupg_cv_func_broken_gethrtime = yes; then - AC_DEFINE([HAVE_BROKEN_GETHRTIME], 1, - [Define if `gethrtime(2)' does not work correctly i.e. issues a SIGILL.]) - fi -fi - - -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 +# Checks for library functions. +# These are needed by libjnlib - fixme: we should have a macros for them +AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp strtol) +AC_CHECK_FUNCS(getrusage setrlimit stat setlocale) -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 +AC_CHECK_FUNCS(sigaction sigprocmask) -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 +AC_REPLACE_FUNCS(vasprintf) +AC_REPLACE_FUNCS(fopencookie) +# FIXME: Print a warning when that fopencookie is not available. +AC_REPLACE_FUNCS(mkdtemp) +AC_REPLACE_FUNCS(fseeko ftello) +# We use jnlib, so tell other modules about it +AC_DEFINE(HAVE_JNLIB_LOGGING, 1, + [Defined if jnlib style logging fucntions are available]) -dnl -dnl Figure out the default random module. -dnl -random_modules="" -if test "$use_static_rnd" = default; then - if test "$ac_cv_have_dev_random" = yes; then - random_modules="rndlinux" - else - case "${target}" in - *-*-mingw32*|*-*-cygwin*) - random_modules="rndw32" - ;; - i?86-emx-os2|i?86-*-os2*emx) - random_modules="rndos2" - ;; - m68k-atari-mint) - random_modules="rndatari" - ;; - i?86-*-msdosdjgpp*) - : - ;; - *) - random_modules="rndlinux rndegd rndunix" - AC_DEFINE(USE_ALL_RANDOM_MODULES, 1, - [Allow to select random modules at runtime.]) - ;; - esac - fi -else - if test "$use_static_rnd" = auto; then - random_modules="rndlinux rndegd rndunix" - AC_DEFINE(USE_ALL_RANDOM_MODULES, 1) - else - random_modules="rnd$use_static_rnd"; - fi -fi -if test -z "$random_modules"; then - AC_MSG_ERROR(no random module available) -fi -print_egd_warning=no -for rndmod in $random_modules "" ; do - case "$rndmod" in - rndlinux) - AC_DEFINE(USE_RNDLINUX,1, - [Defined if the /dev/random based RNG should be used.]) - ;; - rndunix) - AC_DEFINE(USE_RNDUNIX,1, - [Defined if the default Unix RNG should be used.]) - print_egd_warning=yes - ;; - rndegd) - AC_DEFINE(USE_RNDEGD,1, - [Defined if the EGD based RNG should be used.]) - EGDLIBS=$NETLIBS - AC_SUBST(EGDLIBS) - ;; - rndw32) - AC_DEFINE(USE_RNDW32,1, - [Defined if the Windows specific RNG should be used.]) - ;; - esac -done - -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 - _cppflags="${CPPFLAGS}" - _ldflags="${LDFLAGS}" - - AC_ARG_WITH(zlib, - [ --with-zlib=DIR use libz in DIR],[ - if test -d "$withval"; then - CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" - fi - ]) - - AC_CHECK_HEADER(zlib.h, - AC_CHECK_LIB(z, deflateInit2_, - use_local_zlib=no - LIBS="$LIBS -lz", - CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}), - CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}) -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= -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. -if test "$development_version" != yes; then - changequote(,)dnl - tmp_pat='[a-zA-Z]' - changequote([,])dnl - if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then - development_version=yes - fi -fi -if test "$development_version" = yes; then - AC_DEFINE(IS_DEVELOPMENT_VERSION,1, - [Defined if this is not a regular release]) +# +# Decide what to build +# +if test $have_opensc = no; then + build_scdaemon=no 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 should bail out. -case "${target}" in - *-*-mingw32*) - LIBS="$LIBS -lwsock32" - ;; - *) - ;; -esac - - -if test "$GCC" = yes; then - if test "$USE_MAINTAINER_MODE" = "yes"; then - CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes" - else - CFLAGS="$CFLAGS -Wall" - fi +if test $have_ksba = no; then + build_gpgsm=no + build_scdaemon=no fi -AC_SUBST(NETLIBS) - - -if test "$print_egd_warning" = 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=egd to use it. -***]]) +build_agent_threaded="" +if test "$build_agent" = "yes"; then + if test $have_pth = no; then + build_agent_threaded="(not multi-threaded)" + fi fi +build_scdaemon_threaded="" +if test "$build_scdaemon" = "yes"; then + if test $have_pth = no; then + build_scdaemon_threaded="(not multi-threaded)" + fi +fi -# Note the \\\\ for backslashes. Autoconf eats one layer, leaving \\ - -AC_SUBST(GNUPG_LIBEXECDIR,"${libexecdir}/gnupg") - -AC_CONFIG_COMMANDS(g10defs.h,[[ -cat >g10defs.tmp <<G10EOF -/* Generated automatically by configure */ -#ifdef HAVE_DRIVE_LETTERS - #define G10_LOCALEDIR "c:\\\\lib\\\\gnupg\\\\locale" - #define GNUPG_LIBDIR "c:\\\\lib\\\\gnupg" - #define GNUPG_LIBEXECDIR "c:\\\\lib\\\\gnupg" - #define GNUPG_DATADIR "c:\\\\lib\\\\gnupg" - #define GNUPG_HOMEDIR "c:\\\\gnupg" -#else - #define G10_LOCALEDIR "${datadir}/locale" - #define GNUPG_LIBDIR "${libdir}/gnupg" - #define GNUPG_LIBEXECDIR "${libexecdir}/gnupg" - #define GNUPG_DATADIR "${datadir}/gnupg" - #ifdef __VMS - #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" - #else - #define GNUPG_HOMEDIR "~/.gnupg" - #endif -#endif -/* those are here to be redefined by handcrafted g10defs.h. - Please note that the string version must not contain more - than one character because the using code assumes strlen()==1 */ -#ifdef HAVE_DOSISH_SYSTEM -#define DIRSEP_C '\\\\' -#define EXTSEP_C '.' -#define DIRSEP_S "\\\\" -#define EXTSEP_S "." -#else -#define DIRSEP_C '/' -#define EXTSEP_C '.' -#define DIRSEP_S "/" -#define EXTSEP_S "." -#endif -G10EOF -cat mpi/mpi-asm-defs.h >>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 -libexecdir=$libexecdir -datadir=$datadir -DATADIRNAME=$DATADIRNAME -]]) +AM_CONDITIONAL(BUILD_GPGSM, test "$build_gpgsm" = "yes") +AM_CONDITIONAL(BUILD_AGENT, test "$build_agent" = "yes") +AM_CONDITIONAL(BUILD_SCDAEMON, test "$build_scdaemon" = "yes") AC_CONFIG_FILES([ Makefile intl/Makefile po/Makefile.in -util/Makefile -mpi/Makefile -cipher/Makefile -g10/Makefile -keyserver/Makefile -keyserver/gpgkeys_mailto -keyserver/gpgkeys_test +jnlib/Makefile +assuan/Makefile +common/Makefile +kbx/Makefile +sm/Makefile +agent/Makefile +scd/Makefile doc/Makefile -tools/Makefile -zlib/Makefile -checks/Makefile +tests/Makefile ]) AC_OUTPUT -# Give some feedback -echo -echo " Configured for: $PRINTABLE_OS_NAME ($target)" -if test -n "$show_extraasm"; then - echo " Extra cpu specific functions:$show_extraasm" -fi -echo + +echo " + NewPG v${VERSION} has been configured as follows: + + OpenPGP: $build_gpg + S/MIME: $build_gpgsm + Agent: $build_agent $build_agent_threaded + Smartcard: $build_scdaemon $build_scdaemon_threaded + + Default agent: $gnupg_agent_pgm + Default pinentry: $gnupg_pinentry_pgm + Default scdaemon: $gnupg_scdaemon_pgm + Default dirmngr: $gnupg_dirmngr_pgm +" |