diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2012-05-19 18:01:32 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2012-05-19 18:01:32 +0000 |
commit | b1509f22892dc98057c750e7fae39ded5cea3b09 (patch) | |
tree | 6bdcc9379ae86339a67022b758575729d1304074 /plugins/MirOTR/libgcrypt-1.4.6/configure.ac | |
parent | e7a776a6f5ab323cd9dd824e815846ef268fa7f1 (diff) |
added MirOTR
git-svn-id: http://svn.miranda-ng.org/main/trunk@83 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/MirOTR/libgcrypt-1.4.6/configure.ac')
-rw-r--r-- | plugins/MirOTR/libgcrypt-1.4.6/configure.ac | 1173 |
1 files changed, 1173 insertions, 0 deletions
diff --git a/plugins/MirOTR/libgcrypt-1.4.6/configure.ac b/plugins/MirOTR/libgcrypt-1.4.6/configure.ac new file mode 100644 index 0000000000..a063f37ae2 --- /dev/null +++ b/plugins/MirOTR/libgcrypt-1.4.6/configure.ac @@ -0,0 +1,1173 @@ +# Configure.ac script for Libgcrypt +# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, +# 2007, 2008, 2009 Free Software Foundation, Inc. +# +# This file is part of Libgcrypt. +# +# Libgcrypt is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of +# the License, or (at your option) any later version. +# +# Libgcrypt 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, see <http://www.gnu.org/licenses/>. + +# (Process this file with autoconf to produce a configure script.) +AC_REVISION($Revision: 1438 $) +AC_PREREQ(2.60) +min_automake_version="1.10" + + +# Remember to change the version number immediately *after* a release. +# Set my_issvn to "yes" for non-released code. Remember to run an +# "svn up" and "autogen.sh" right before creating a distribution. +m4_define([my_version], [1.4.6]) +m4_define([my_issvn], [no]) + +m4_define([svn_revision], m4_esyscmd([printf "%d" $(svn info 2>/dev/null \ + | sed -n '/^Revision:/ s/[^0-9]//gp'|head -1)])) +AC_INIT([libgcrypt], + [my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])], + [bug-libgcrypt@gnupg.org]) +# LT Version numbers, remember to change them just *before* a release. +# (Interfaces removed: CURRENT++, AGE=0, REVISION=0) +# (Interfaces added: CURRENT++, AGE++, REVISION=0) +# (No interfaces changed: REVISION++) +LIBGCRYPT_LT_CURRENT=17 +LIBGCRYPT_LT_AGE=6 +LIBGCRYPT_LT_REVISION=0 + + +# If the API is changed in an incompatible way: increment the next counter. +LIBGCRYPT_CONFIG_API_VERSION=1 + +NEED_GPG_ERROR_VERSION=1.4 + +is_development_version=my_issvn +BUILD_REVISION=svn_revision +PACKAGE=$PACKAGE_NAME +VERSION=$PACKAGE_VERSION + +AC_CONFIG_SRCDIR([src/libgcrypt.vers]) +AM_INIT_AUTOMAKE($PACKAGE, $VERSION) +AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST +AM_MAINTAINER_MODE + +AH_TOP([ +#ifndef _GCRYPT_CONFIG_H_INCLUDED +#define _GCRYPT_CONFIG_H_INCLUDED +/* 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([ +#define _GCRYPT_IN_LIBGCRYPT 1 + +/* If the configure check for endianness has been disabled, get it from + OS macros. This is intended for making fat binary builds on OS X. */ +#ifdef DISABLED_ENDIAN_CHECK +# if defined(__BIG_ENDIAN__) +# define WORDS_BIGENDIAN 1 +# elif defined(__LITTLE_ENDIAN__) +# undef WORDS_BIGENDIAN +# else +# error "No endianness found" +# endif +#endif /*DISABLED_ENDIAN_CHECK*/ + +/* We basically use the original Camellia source. Make sure the symbols + properly prefixed. */ +#define CAMELLIA_EXT_SYM_PREFIX _gcry_ + +/* This error code is only available with gpg-error 1.7. Thus + we define it here with the usual gcry prefix. */ +#define GCRY_GPG_ERR_NOT_OPERATIONAL 176 + + +#endif /*_GCRYPT_CONFIG_H_INCLUDED*/ +]) + +AH_VERBATIM([_REENTRANT], +[/* To allow the use of Libgcrypt in multithreaded programs we have to use + special features from the library. */ +#ifndef _REENTRANT +# define _REENTRANT 1 +#endif +]) + + +AC_SUBST(LIBGCRYPT_LT_CURRENT) +AC_SUBST(LIBGCRYPT_LT_AGE) +AC_SUBST(LIBGCRYPT_LT_REVISION) +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package]) + + +###################### +## Basic checks. ### (we need some results later on (e.g. $GCC) +###################### + +AC_PROG_MAKE_SET +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 +AM_PROG_CC_C_O +AM_PROG_AS +AC_ISC_POSIX +AC_PROG_INSTALL +AC_PROG_AWK + +AC_LIBTOOL_WIN32_DLL +AC_LIBTOOL_RC +AM_PROG_LIBTOOL + + +########################## +## General definitions. ## +########################## + +# Used by libgcrypt-config +LIBGCRYPT_CONFIG_LIBS="-lgcrypt" +LIBGCRYPT_CONFIG_CFLAGS="" + +# Definitions for symmetric ciphers. +available_ciphers="arcfour blowfish cast5 des aes twofish serpent rfc2268 seed" +available_ciphers="$available_ciphers camellia" +enabled_ciphers="" + +# Definitions for public-key ciphers. +available_pubkey_ciphers="dsa elgamal rsa ecc" +enabled_pubkey_ciphers="" + +# Definitions for message digests. +available_digests="crc md4 md5 rmd160 sha1 sha256" +available_digests_64="sha512 tiger whirlpool" +enabled_digests="" + +# Definitions for random modules. +available_random_modules="linux egd unix" +auto_random_modules="$available_random_modules" + +# Supported thread backends. +LIBGCRYPT_THREAD_MODULES="" + +# Other definitions. +print_egd_notice=no +have_w32_system=no + +# Setup some stuff depending on host. +case "${host}" in + *-*-mingw32*) + available_random_modules="w32" + ac_cv_have_dev_random=no + have_w32_system=yes + 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]) + ;; + + 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) + ;; + + i?86-*-msdosdjgpp*) + # DOS with the DJGPP environment + ac_cv_have_dev_random=no + AC_DEFINE(HAVE_DRIVE_LETTERS) + AC_DEFINE(HAVE_DOSISH_SYSTEM) + ;; + + *-*-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 + +if test "$have_w32_system" = yes; then + AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system]) +fi +AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes) + + + +# A printable OS Name is sometimes useful. +case "${host}" 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" + ;; + + *-linux*) + PRINTABLE_OS_NAME="GNU/Linux" + ;; + + *) + PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` + ;; +esac + +# +# Figure out the name of the random device +# +case "${host}" in + *-openbsd*) + NAME_OF_DEV_RANDOM="/dev/srandom" + NAME_OF_DEV_URANDOM="/dev/urandom" + ;; + + *) + NAME_OF_DEV_RANDOM="/dev/random" + NAME_OF_DEV_URANDOM="/dev/urandom" + ;; +esac + + +AC_ARG_ENABLE(endian-check, + AC_HELP_STRING([--disable-endian-check], + [disable the endian check and trust the OS provided macros]), + endiancheck=$enableval,endiancheck=yes) +if test x"$endiancheck" = xyes ; then + AC_C_BIGENDIAN +else + AC_DEFINE(DISABLED_ENDIAN_CHECK,1,[configure did not test for endianess]) +fi + +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) + +AC_TYPE_UINTPTR_T + +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 + +# Do we have any 64-bit data types? +if test "$ac_cv_sizeof_unsigned_int" != "8" \ + && test "$ac_cv_sizeof_unsigned_long" != "8" \ + && test "$ac_cv_sizeof_unsigned_long_long" != "8" \ + && test "$ac_cv_sizeof_uint64_t" != "8"; then + AC_MSG_WARN([No 64-bit types. Disabling TIGER/192, SHA-384, and SHA-512]) +else + available_digests="$available_digests $available_digests_64" +fi + +# If not specified otherwise, all available algorithms will be +# included. +default_ciphers="$available_ciphers" +default_pubkey_ciphers="$available_pubkey_ciphers" +default_digests="$available_digests" + +############################ +## Command line switches. ## +############################ + +# Implementation of the --enable-ciphers switch. +AC_ARG_ENABLE(ciphers, + AC_HELP_STRING([--enable-ciphers=ciphers], + [select the symmetric ciphers to include]), + [enabled_ciphers=`echo $enableval | tr ',:' ' ' | tr '[A-Z]' '[a-z]'`], + [enabled_ciphers=""]) +if test "x$enabled_ciphers" = "x" \ + -o "$enabled_ciphers" = "yes" \ + -o "$enabled_ciphers" = "no"; then + enabled_ciphers=$default_ciphers +fi +AC_MSG_CHECKING([which symmetric ciphers to include]) +for cipher in $enabled_ciphers; do + LIST_MEMBER($cipher, $available_ciphers) + if test "$found" = "0"; then + AC_MSG_ERROR([unsupported cipher "$cipher" specified]) + fi +done +AC_MSG_RESULT([$enabled_ciphers]) + +# Implementation of the --enable-pubkey-ciphers switch. +AC_ARG_ENABLE(pubkey-ciphers, + AC_HELP_STRING([--enable-pubkey-ciphers=ciphers], + [select the public-key ciphers to include]), + [enabled_pubkey_ciphers=`echo $enableval | tr ',:' ' ' | tr '[A-Z]' '[a-z]'`], + [enabled_pubkey_ciphers=""]) +if test "x$enabled_pubkey_ciphers" = "x" \ + -o "$enabled_pubkey_ciphers" = "yes" \ + -o "$enabled_pubkey_ciphers" = "no"; then + enabled_pubkey_ciphers=$default_pubkey_ciphers +fi +AC_MSG_CHECKING([which public-key ciphers to include]) +for cipher in $enabled_pubkey_ciphers; do + LIST_MEMBER($cipher, $available_pubkey_ciphers) + if test "$found" = "0"; then + AC_MSG_ERROR([unsupported public-key cipher specified]) + fi +done +AC_MSG_RESULT([$enabled_pubkey_ciphers]) + +# Implementation of the --enable-digests switch. +AC_ARG_ENABLE(digests, + AC_HELP_STRING([--enable-digests=digests], + [select the message digests to include]), + [enabled_digests=`echo $enableval | tr ',:' ' ' | tr '[A-Z]' '[a-z]'`], + [enabled_digests=""]) +if test "x$enabled_digests" = "x" \ + -o "$enabled_digests" = "yes" \ + -o "$enabled_digests" = "no"; then + enabled_digests=$default_digests +fi +AC_MSG_CHECKING([which message digests to include]) +for digest in $enabled_digests; do + LIST_MEMBER($digest, $available_digests) + if test "$found" = "0"; then + AC_MSG_ERROR([unsupported message digest specified]) + fi +done +AC_MSG_RESULT([$enabled_digests]) + +# Implementation of the --enable-random switch. +AC_ARG_ENABLE(random, + AC_HELP_STRING([--enable-random=name], + [select which random number generator to use]), + [random=`echo $enableval | tr '[A-Z]' '[a-z]'`], + []) +if test "x$random" = "x" -o "$random" = "yes" -o "$random" = "no"; then + random=default +fi +AC_MSG_CHECKING([which random module to use]) +if test "$random" != "default" -a "$random" != "auto"; then + LIST_MEMBER($random, $available_random_modules) + if test "$found" = "0"; then + AC_MSG_ERROR([unsupported random module specified]) + fi +fi +AC_MSG_RESULT($random) + +# Implementation of the --disable-dev-random switch. +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) + +# Implementation of the --with-egd-socket switch. +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]) + +# Implementation of the --enable-random-daemon +AC_MSG_CHECKING([whether the experimental random daemon is requested]) +AC_ARG_ENABLE([random-daemon], + AC_HELP_STRING([--enable-random-daemon], + [Build and support the experimental gcryptrnd]), + [use_random_daemon=$enableval], + [use_random_daemon=no]) +AC_MSG_RESULT($use_random_daemon) +if test x$use_random_daemon = xyes ; then + AC_DEFINE(USE_RANDOM_DAEMON,1, + [Define to support the experimental random daemon]) +fi +AM_CONDITIONAL(USE_RANDOM_DAEMON, test x$use_random_daemon = xyes) + + +# Implementation of --disable-asm. +AC_MSG_CHECKING([whether MPI assembler modules are requested]) +AC_ARG_ENABLE([asm], + AC_HELP_STRING([--disable-asm], + [Disable MPI assembler modules]), + [try_asm_modules=$enableval], + [try_asm_modules=yes]) +AC_MSG_RESULT($try_asm_modules) + +# Implementation of the --enable-m-guard switch. +AC_MSG_CHECKING([whether memory guard is requested]) +AC_ARG_ENABLE(m-guard, + AC_HELP_STRING([--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 + +# Implementation of the --with-capabilities switch. +# Check whether we want to use Linux capabilities +AC_MSG_CHECKING([whether use of capabilities is requested]) +AC_ARG_WITH(capabilities, + AC_HELP_STRING([--with-capabilities], + [Use linux capabilities [default=no]]), + [use_capabilities="$withval"],[use_capabilities=no]) +AC_MSG_RESULT($use_capabilities) + +# Implementation of the --enable-hmac-binary-check. +AC_MSG_CHECKING([whether a HMAC binary check is requested]) +AC_ARG_ENABLE(hmac-binary-check, + AC_HELP_STRING([--enable-hmac-binary-check], + [Enable library integrity check]), + [use_hmac_binary_check=$enableval], + [use_hmac_binary_check=no]) +AC_MSG_RESULT($use_hmac_binary_check) +if test "$use_hmac_binary_check" = yes ; then + AC_DEFINE(ENABLE_HMAC_BINARY_CHECK,1, + [Define to support an HMAC based integrity check]) +fi + + +# Implementation of the --disable-padlock-support switch. +AC_MSG_CHECKING([whether padlock support is requested]) +AC_ARG_ENABLE(padlock-support, + AC_HELP_STRING([--disable-padlock-support], + [Disable support for the PadLock Engine of VIA processors]), + padlocksupport=$enableval,padlocksupport=yes) +AC_MSG_RESULT($padlocksupport) +if test x"$padlocksupport" = xyes ; then + AC_DEFINE(ENABLE_PADLOCK_SUPPORT, 1, + [Enable support for the PadLock engine.]) +fi + +# Implementation of the --disable-O-flag-munging switch. +AC_MSG_CHECKING([whether a -O flag munging is requested]) +AC_ARG_ENABLE([O-flag-munging], + AC_HELP_STRING([--disable-O-flag-munging], + [Disable modification of the cc -O flag]), + [enable_o_flag_munging=$enableval], + [enable_o_flag_munging=yes]) +AC_MSG_RESULT($enable_o_flag_munging) +AM_CONDITIONAL(ENABLE_O_FLAG_MUNGING, test "$enable_o_flag_munging" = "yes") + + +AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME", + [A human readable text with the name of the OS]) + +# For some systems we know that we have ld_version scripts. +# Use it then as default. +have_ld_version_script=no +case "${host}" in + *-*-linux*) + have_ld_version_script=yes + ;; + *-*-gnu*) + have_ld_version_script=yes + ;; +esac +AC_ARG_ENABLE([ld-version-script], + AC_HELP_STRING([--enable-ld-version-script], + [enable/disable use of linker version script. + (default is system dependent)]), + [have_ld_version_script=$enableval], + [ : ] ) +AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") + +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]) + +############################### +#### Checks for libraries. #### +############################### + +# +# gpg-error is required. +# +AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION") +if test "x$GPG_ERROR_LIBS" = "x"; then + AC_MSG_ERROR([libgpg-error is needed. + See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ .]) +fi + +AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GCRYPT, + [The default error source for libgcrypt.]) + +# +# Check whether the GNU Pth library is available. We require this +# to build the optional gcryptrnd program. +# +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 +if test "$use_random_daemon" = "yes"; then + AC_PATH_PROG(PTH_CONFIG, pth-config, no) + if test "$PTH_CONFIG" = "no"; then + AC_MSG_WARN([[ +*** +*** To build the Libgcrypt's random number daemon +*** 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 + GNUPG_PTH_VERSION_CHECK([1.3.7]) + if test $have_pth = yes; then + PTH_CFLAGS=`$PTH_CONFIG --cflags` + PTH_LIBS=`$PTH_CONFIG --ldflags` + PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs --all`" + AC_DEFINE(USE_GNU_PTH, 1, + [Defined if the GNU Portable Thread Library should be used]) + AC_DEFINE(HAVE_PTH, 1, + [Defined if the GNU Pth is available]) + fi + fi +fi +AC_SUBST(PTH_CFLAGS) +AC_SUBST(PTH_LIBS) + + +# Solaris needs -lsocket and -lnsl. Unisys system includes +# gethostbyname in libsocket but needs libnsl for socket. +AC_SEARCH_LIBS(setsockopt, [socket], , + [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])]) +AC_SEARCH_LIBS(setsockopt, [nsl]) + +################################## +#### Checks for header files. #### +################################## + +AC_HEADER_STDC +AC_CHECK_HEADERS(unistd.h sys/select.h) + +########################################## +#### 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_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) + +gl_TYPE_SOCKLEN_T +case "${host}" in + *-*-mingw32*) + # socklen_t may or may not be defined depending on what headers + # are included. To be safe we use int as this is the actual type. + FALLBACK_SOCKLEN_T="typedef int gcry_socklen_t;" + ;; + *) + if test ".$gl_cv_socklen_t_equiv" = "."; then + FALLBACK_SOCKLEN_T="typedef socklen_t gcry_socklen_t;" + else + FALLBACK_SOCKLEN_T="typedef ${gl_cv_socklen_t_equiv} gcry_socklen_t;" + fi +esac +AC_SUBST(FALLBACK_SOCKLEN_T) + +# +# Check for ELF visibility support. +# +AC_CACHE_CHECK(whether the visibility attribute is supported, + gcry_cv_visibility_attribute, + [gcry_cv_visibility_attribute=no + AC_LANG_CONFTEST([AC_LANG_SOURCE( + [[int foo __attribute__ ((visibility ("hidden"))) = 1; + int bar __attribute__ ((visibility ("protected"))) = 1; + ]])]) + + if ${CC-cc} -Werror -S conftest.c -o conftest.s \ + 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then + if grep '\.hidden.*foo' conftest.s >/dev/null 2>&1 ; then + if grep '\.protected.*bar' conftest.s >/dev/null 2>&1; then + gcry_cv_visibility_attribute=yes + fi + fi + fi + ]) +if test "$gcry_cv_visibility_attribute" = "yes"; then + AC_CACHE_CHECK(for broken visibility attribute, + gcry_cv_broken_visibility_attribute, + [gcry_cv_broken_visibility_attribute=yes + AC_LANG_CONFTEST([AC_LANG_SOURCE( + [[int foo (int x); + int bar (int x) __asm__ ("foo") + __attribute__ ((visibility ("hidden"))); + int bar (int x) { return x; } + ]])]) + + if ${CC-cc} -Werror -S conftest.c -o conftest.s \ + 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then + if grep '\.hidden@<:@ _@:>@foo' conftest.s >/dev/null 2>&1; + then + gcry_cv_broken_visibility_attribute=no + fi + fi + ]) +fi +if test "$gcry_cv_visibility_attribute" = "yes"; then + AC_CACHE_CHECK(for broken alias attribute, + gcry_cv_broken_alias_attribute, + [gcry_cv_broken_alias_attribute=yes + AC_LANG_CONFTEST([AC_LANG_SOURCE( + [[extern int foo (int x) __asm ("xyzzy"); + int bar (int x) { return x; } + extern __typeof (bar) foo __attribute ((weak, alias ("bar"))); + extern int dfoo; + extern __typeof (dfoo) dfoo __asm ("abccb"); + int dfoo = 1; + ]])]) + + if ${CC-cc} -Werror -S conftest.c -o conftest.s \ + 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then + if grep 'xyzzy' conftest.s >/dev/null 2>&1 && \ + grep 'abccb' conftest.s >/dev/null 2>&1; then + gcry_cv_broken_alias_attribute=no + fi + fi + ]) +fi +if test "$gcry_cv_visibility_attribute" = "yes"; then + AC_CACHE_CHECK(if gcc supports -fvisibility=hidden, + gcry_cv_gcc_has_f_visibility, + [gcry_cv_gcc_has_f_visibility=no + _gcc_cflags_save=$CFLAGS + CFLAGS="-fvisibility=hidden" + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]), + gcry_cv_gcc_has_f_visibility=yes) + CFLAGS=$_gcc_cflags_save; + ]) +fi +if test "$gcry_cv_visibility_attribute" = "yes" \ + && test "$gcry_cv_broken_visibility_attribute" != "yes" \ + && test "$gcry_cv_broken_alias_attribute" != "yes" \ + && test "$gcry_cv_gcc_has_f_visibility" = "yes" + then + AC_DEFINE(GCRY_USE_VISIBILITY, 1, + [Define to use the GNU C visibility attribute.]) + CFLAGS="$CFLAGS -fvisibility=hidden" +fi + + +####################################### +#### Checks for library functions. #### +####################################### + +AC_FUNC_VPRINTF +# We have replacements for these in src/missing-string.c +AC_CHECK_FUNCS(stpcpy strcasecmp) +# We have replacements for these in src/g10lib.h +AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise) +# Other checks +AC_CHECK_FUNCS(strerror rand mmap getpagesize sysconf waitpid wait4) +AC_CHECK_FUNCS(gettimeofday getrusage gethrtime clock_gettime syslog) +AC_CHECK_FUNCS(fcntl ftruncate) + +GNUPG_CHECK_MLOCK + + +# +# Check wether it is necessary to link against libdl. +# +DL_LIBS="" +if test "$use_hmac_binary_check" = yes ; then + _gcry_save_libs="$LIBS" + LIBS="" + AC_SEARCH_LIBS(dlopen, c dl,,,) + DL_LIBS=$LIBS + LIBS="$_gcry_save_libs" + LIBGCRYPT_CONFIG_LIBS="${LIBGCRYPT_CONFIG_LIBS} ${DL_LIBS}" +fi +AC_SUBST(DL_LIBS) + + +# +# Check whether we can use Linux capabilities as requested. +# +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 + +# Check whether a random device is available. +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 + +# Figure out the random modules for this configuration. +if test "$random" = "default"; then + + # Select default value. + if test "$ac_cv_have_dev_random" = yes; then + # Try Linuxish random device. + random_modules="linux" + else + case "${host}" in + *-*-mingw32*|*-*-cygwin*) + # Windows random device. + random_modules="w32" + ;; + *) + # Build everything, allow to select at runtime. + random_modules="$auto_random_modules" + ;; + esac + fi +else + if test "$random" = "auto"; then + # Build everything, allow to select at runtime. + random_modules="$auto_random_modules" + else + random_modules="$random" + fi +fi + + +# +# Setup assembler stuff. +# +GNUPG_SYS_SYMBOL_UNDERSCORE() +AC_ARG_ENABLE(mpi-path, + AC_HELP_STRING([--enable-mpi-path=EXTRA_PATH], + [prepend EXTRA_PATH to list of CPU specific optimizations]), + mpi_extra_path="$enableval",mpi_extra_path="") +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_sflags="$mpi_sflags" + AC_MSG_RESULT(done) +else + AC_MSG_RESULT(failed) + AC_MSG_ERROR([mpi/config.links missing!]) +fi +MPI_SFLAGS="$ac_cv_mpi_sflags" +AC_SUBST(MPI_SFLAGS) + +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_ADD1, test "$mpi_mod_asm_mpih_add1" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_SUB1, test "$mpi_mod_asm_mpih_sub1" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL1, test "$mpi_mod_asm_mpih_mul1" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL2, test "$mpi_mod_asm_mpih_mul2" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL3, test "$mpi_mod_asm_mpih_mul3" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_LSHIFT, test "$mpi_mod_asm_mpih_lshift" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_MPIH_RSHIFT, test "$mpi_mod_asm_mpih_rshift" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_UDIV, test "$mpi_mod_asm_udiv" = yes) +AM_CONDITIONAL(MPI_MOD_ASM_UDIV_QRNND, test "$mpi_mod_asm_udiv_qrnnd" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_ADD1, test "$mpi_mod_c_mpih_add1" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_SUB1, test "$mpi_mod_c_mpih_sub1" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL1, test "$mpi_mod_c_mpih_mul1" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL2, test "$mpi_mod_c_mpih_mul2" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL3, test "$mpi_mod_c_mpih_mul3" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_LSHIFT, test "$mpi_mod_c_mpih_lshift" = yes) +AM_CONDITIONAL(MPI_MOD_C_MPIH_RSHIFT, test "$mpi_mod_c_mpih_rshift" = yes) +AM_CONDITIONAL(MPI_MOD_C_UDIV, test "$mpi_mod_c_udiv" = yes) +AM_CONDITIONAL(MPI_MOD_C_UDIV_QRNND, test "$mpi_mod_c_udiv_qrnnd" = yes) + +if test "$is_development_version" = "yes"; 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) + + +# This is handy for debugging so the compiler doesn't rearrange +# things and eliminate variables. +AC_ARG_ENABLE(optimization, + AC_HELP_STRING([--disable-optimization], + [disable compiler optimization]), + [if test $enableval = no ; then + CFLAGS=`echo $CFLAGS | sed 's/-O[[0-9]]//'` + fi]) + +# CFLAGS mangling when using gcc. +if test "$GCC" = yes; then + CFLAGS="$CFLAGS -Wall" + if test "$USE_MAINTAINER_MODE" = "yes"; then + CFLAGS="$CFLAGS -Wcast-align -Wshadow -Wstrict-prototypes" + CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security" + + # If -Wno-missing-field-initializers is supported we can enable a + # a bunch of really useful warnings. + AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers]) + _gcc_cflags_save=$CFLAGS + CFLAGS="-Wno-missing-field-initializers" + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_wopt=yes,_gcc_wopt=no) + AC_MSG_RESULT($_gcc_wopt) + CFLAGS=$_gcc_cflags_save; + if test x"$_gcc_wopt" = xyes ; then + CFLAGS="$CFLAGS -W -Wextra -Wbad-function-cast" + CFLAGS="$CFLAGS -Wwrite-strings" + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + CFLAGS="$CFLAGS -Wno-missing-field-initializers" + CFLAGS="$CFLAGS -Wno-sign-compare" + fi + + AC_MSG_CHECKING([if gcc supports -Wpointer-arith]) + _gcc_cflags_save=$CFLAGS + CFLAGS="-Wpointer-arith" + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_wopt=yes,_gcc_wopt=no) + AC_MSG_RESULT($_gcc_wopt) + CFLAGS=$_gcc_cflags_save; + if test x"$_gcc_wopt" = xyes ; then + CFLAGS="$CFLAGS -Wpointer-arith" + fi + fi + +fi + +# Check whether as(1) supports a noeexecstack feature. This test +# includes an override option. +CL_AS_NOEXECSTACK + + +AC_SUBST(LIBGCRYPT_CONFIG_API_VERSION) +AC_SUBST(LIBGCRYPT_CONFIG_LIBS) +AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS) +AC_SUBST(LIBGCRYPT_THREAD_MODULES) + +AC_CONFIG_COMMANDS([gcrypt-conf],[[ +chmod +x src/libgcrypt-config +]],[[ +prefix=$prefix +exec_prefix=$exec_prefix +libdir=$libdir +datadir=$datadir +DATADIRNAME=$DATADIRNAME +]]) + +##################### +#### Conclusion. #### +##################### + +# Define conditional sources and config.h symbols depending on the +# selected ciphers, pubkey-ciphers, digests and random modules. + +LIST_MEMBER(arcfour, $enabled_ciphers) +if test "$found" = "1"; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS arcfour.lo" + AC_DEFINE(USE_ARCFOUR, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(blowfish, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS blowfish.lo" + AC_DEFINE(USE_BLOWFISH, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(cast5, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS cast5.lo" + AC_DEFINE(USE_CAST5, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(des, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS des.lo" + AC_DEFINE(USE_DES, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(aes, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS rijndael.lo" + AC_DEFINE(USE_AES, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(twofish, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS twofish.lo" + AC_DEFINE(USE_TWOFISH, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(serpent, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS serpent.lo" + AC_DEFINE(USE_SERPENT, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(rfc2268, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS rfc2268.lo" + AC_DEFINE(USE_RFC2268, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(seed, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS seed.lo" + AC_DEFINE(USE_SEED, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(camellia, $enabled_ciphers) +if test "$found" = "1" ; then + GCRYPT_CIPHERS="$GCRYPT_CIPHERS camellia.lo camellia-glue.lo" + AC_DEFINE(USE_CAMELLIA, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(dsa, $enabled_pubkey_ciphers) +if test "$found" = "1" ; then + GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS dsa.lo" + AC_DEFINE(USE_DSA, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(rsa, $enabled_pubkey_ciphers) +if test "$found" = "1" ; then + GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS rsa.lo" + AC_DEFINE(USE_RSA, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(elgamal, $enabled_pubkey_ciphers) +if test "$found" = "1" ; then + GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS elgamal.lo" + AC_DEFINE(USE_ELGAMAL, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(ecc, $enabled_pubkey_ciphers) +if test "$found" = "1" ; then + GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS ecc.lo" + AC_DEFINE(USE_ECC, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(crc, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS crc.lo" + AC_DEFINE(USE_CRC, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(md4, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS md4.lo" + AC_DEFINE(USE_MD4, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(md5, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS md5.lo" + AC_DEFINE(USE_MD5, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(sha256, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha256.lo" + AC_DEFINE(USE_SHA256, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(sha512, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha512.lo" + AC_DEFINE(USE_SHA512, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(tiger, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS tiger.lo" + AC_DEFINE(USE_TIGER, 1, [Defined if this module should be included]) +fi + +LIST_MEMBER(whirlpool, $enabled_digests) +if test "$found" = "1" ; then + GCRYPT_DIGESTS="$GCRYPT_DIGESTS whirlpool.lo" + AC_DEFINE(USE_WHIRLPOOL, 1, [Defined if this module should be included]) +fi + +# rmd160 and sha1 should be included always. +GCRYPT_DIGESTS="$GCRYPT_DIGESTS rmd160.lo sha1.lo" +AC_DEFINE(USE_RMD160, 1, [Defined if this module should be included]) +AC_DEFINE(USE_SHA1, 1, [Defined if this module should be included]) + +LIST_MEMBER(linux, $random_modules) +if test "$found" = "1" ; then + GCRYPT_RANDOM="$GCRYPT_RANDOM rndlinux.lo" + AC_DEFINE(USE_RNDLINUX, 1, [Defined if the /dev/random RNG should be used.]) +fi + +LIST_MEMBER(unix, $random_modules) +if test "$found" = "1" ; then + GCRYPT_RANDOM="$GCRYPT_RANDOM rndunix.lo" + AC_DEFINE(USE_RNDUNIX, 1, [Defined if the default Unix RNG should be used.]) + print_egd_notice=yes +fi + +LIST_MEMBER(egd, $random_modules) +if test "$found" = "1" ; then + GCRYPT_RANDOM="$GCRYPT_RANDOM rndegd.lo" + AC_DEFINE(USE_RNDEGD, 1, [Defined if the EGD based RNG should be used.]) +fi + +LIST_MEMBER(w32, $random_modules) +if test "$found" = "1" ; then + GCRYPT_RANDOM="$GCRYPT_RANDOM rndw32.lo" + AC_DEFINE(USE_RNDW32, 1, + [Defined if the Windows specific RNG should be used.]) +fi + +AC_SUBST([GCRYPT_CIPHERS]) +AC_SUBST([GCRYPT_PUBKEY_CIPHERS]) +AC_SUBST([GCRYPT_DIGESTS]) +AC_SUBST([GCRYPT_RANDOM]) + +AC_SUBST(LIBGCRYPT_CIPHERS, $enabled_ciphers) +AC_SUBST(LIBGCRYPT_PUBKEY_CIPHERS, $enabled_pubkey_ciphers) +AC_SUBST(LIBGCRYPT_DIGESTS, $enabled_digests) + +# For printing the configuration we need a colon separated list of +# algorithm names. +tmp=`echo "$enabled_ciphers" | tr ' ' : ` +AC_DEFINE_UNQUOTED(LIBGCRYPT_CIPHERS, "$tmp", + [List of available cipher algorithms]) +tmp=`echo "$enabled_pubkey_ciphers" | tr ' ' : ` +AC_DEFINE_UNQUOTED(LIBGCRYPT_PUBKEY_CIPHERS, "$tmp", + [List of available public key cipher algorithms]) +tmp=`echo "$enabled_digests" | tr ' ' : ` +AC_DEFINE_UNQUOTED(LIBGCRYPT_DIGESTS, "$tmp", + [List of available digest algorithms]) + + + +# Generate extended version information for W32. +if test "$have_w32_system" = yes; then + BUILD_TIMESTAMP=`date --iso-8601=minutes` + changequote(,)dnl + BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'` + changequote([,])dnl + BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_REVISION}" +fi +AC_SUBST(BUILD_REVISION) +AC_SUBST(BUILD_TIMESTAMP) +AC_SUBST(BUILD_FILEVERSION) +AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION", + [Subversion revision used to build this package]) + + + +# And create the files. +AC_CONFIG_FILES([ +Makefile +m4/Makefile +mpi/Makefile +cipher/Makefile +random/Makefile +doc/Makefile +src/Makefile +src/gcrypt.h +src/libgcrypt-config +src/versioninfo.rc +tests/Makefile +]) +AC_OUTPUT + +# Give some feedback +echo " + Libgcrypt v${VERSION} has been configured as follows: + + Platform: $PRINTABLE_OS_NAME ($host) +" + + +if test "$print_egd_notice" = "yes"; then +cat <<G10EOF + + The performance of the Unix random gatherer module (rndunix) is not + very good and it does not keep the entropy pool over multiple + invocations of Libgcrypt base applications. 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. To enable EGD you + should rerun configure with the option "--enable-static-rnd=egd". + For more information consult the GnuPG webpages: + + http://www.gnupg.org/download.html#egd + +G10EOF +fi + +if test -n "$gpl"; then + echo "Please note that you are building a version of Libgcrypt with" + echo " $gpl" + echo "included. These parts are licensed under the GPL and thus the" + echo "use of this library has to comply with the conditions of the GPL." +fi + |