diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 274 |
1 files changed, 49 insertions, 225 deletions
diff --git a/configure.ac b/configure.ac index 0918e2782..546859026 100644 --- a/configure.ac +++ b/configure.ac @@ -29,8 +29,6 @@ AC_INIT(gnupg, 1.1.91, [email protected]) development_version=yes ALL_LINGUAS="cs da de eo el es et fr gl id it ja nl pl pt_BR pt sv tr" -static_modules="sha1 md5 rmd160" -static_random_module="" PACKAGE=$PACKAGE_NAME VERSION=$PACKAGE_VERSION @@ -47,18 +45,10 @@ 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]) -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_MSG_CHECKING([which random module to use]) AC_ARG_ENABLE(static-rnd, [ --enable-static-rnd=[egd|unix|linux|none] ], [use_static_rnd=$enableval], [use_static_rnd=default] ) @@ -68,7 +58,7 @@ if test "$use_static_rnd" = no; then fi case "$use_static_rnd" in - egd | linux | unix | none | default ) + egd | linux | unix | default ) AC_MSG_RESULT($use_static_rnd) ;; * ) @@ -226,21 +216,6 @@ 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" - ;; - *-*-cygwin*) - disallowed_modules="rndunix rndlinux rndegd tiger" - ;; - *) - disallowed_modules="rndw32" - ;; -esac - AC_PROG_MAKE_SET AM_SANITY_CHECK missing_dir=`cd $ac_aux_dir && pwd` @@ -334,11 +309,6 @@ 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 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 @@ -443,8 +413,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME", # -# 1. Set flags to be used for the extension modules -# 2. Set names of random devices +# 1. Set names of random devices # NAME_OF_DEV_RANDOM="/dev/random" NAME_OF_DEV_URANDOM="/dev/urandom" @@ -452,57 +421,6 @@ 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" - ;; - - hpux*) - # if using the vendor (ANSI) compiler, arrange to have `-b' passed - # to the linker. If using gcc, it supports `-shared' to do the same. - if test -n "$GCC" ; then - DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" - else - DYNLINK_MOD_CFLAGS='-Wl,-b' - fi - ;; - - *-irix6.5*) - # Irix 6.5 (and probably a lot earlier, but I only still have - # access to 6.5.x) doesn't require any additional flags, as `-KPIC' - # is the default. Also, `-shared' works with the vendor compiler - DYNLINK_MOD_CFLAGS="-shared" - ;; - - alpha*-dec-osf*) - # osf (i.e. OSF/1, Digital UNIX, or Tru64 UNIX, pick any one...) - # on alpha doesn't require any PIC flags, everything is PIC. - # This may not be the case for osf ports to other machines, so - # hence the more specific match for target. - # - # Also, `-shared' works with the vendor compiler or gcc. - # -expect_unresolved turns off warnings about unresolved symbols. - DYNLINK_MOD_CFLAGS='-shared -Wl,-expect_unresolved,\*' - ;; - - *-solaris*) - # -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="-G $CFLAGS_PIC" - fi - ;; - - *-irix* | *-dec-osf* ) - DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC" - ;; - - *) - # -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", @@ -515,14 +433,14 @@ AC_SUBST(MPI_OPT_FLAGS) dnl Checks for libraries. if test "$try_gettext" = yes; then -AM_GNU_GETTEXT + 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) + 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 @@ -533,49 +451,20 @@ if test "$try_dynload" = yes ; then [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 locale.h) @@ -713,9 +602,9 @@ fi dnl -dnl Figure out the default linkage mode for random modules +dnl Figure out the default random module. dnl -print_egd_notice=no +static_random_module="" if test "$use_static_rnd" = default; then if test "$ac_cv_have_dev_random" = yes; then static_random_module="rndlinux" @@ -723,9 +612,6 @@ if test "$use_static_rnd" = default; then case "${target}" in *-*-mingw32*|*-*-cygwin*) 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" @@ -738,24 +624,19 @@ if test "$use_static_rnd" = default; then ;; *) 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([[ +case "$static_random_module" in + rndlinux) + AC_DEFINE(USE_RNDLINUX,1, + [Defined if the /dev/random based RNG shoudl be used.]) + ;; + rndunix) + AC_DEFINE(USE_RNDUNIX,1, + [Defined if the default Unix RNG should be used.]) + 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 @@ -769,86 +650,36 @@ if test "$print_egd_notice" = "yes"; then *** *** 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. +*** You may want to run ./configure with --enable-static-rnd=egd to use it. ***]]) -fi - -dnl -dnl Parse the modules list and build the list -dnl of static and dynamically 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 <<G10EOF >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 <<G10EOF >>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 - - - + ;; + rndegd) + AC_DEFINE(USE_RNDEGD,1, + [Defined if the EGD based RNG shoudl be used.]) + ;; + rndw32) + AC_DEFINE(USE_RNDW32,1, + [Defined if the Windows specific RNG should be used.]) + ;; + *) + AC_MSG_ERROR(no random module available) + ;; +esac -dnl -dnl Figure how to link the cipher modules -dnl -AC_SUBST(STATIC_CIPHER_OBJS) -AC_SUBST(DYNAMIC_CIPHER_MODS) +# 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 +fi +AC_SUBST(IDEA_O) +AC_MSG_RESULT($tmp) dnl setup assembler stuff @@ -1032,14 +863,7 @@ AC_OUTPUT # Give some feedback echo 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 echo - |