Preapring a release candidate
[libgcrypt.git] / configure.ac
1 # Configure.ac script for Libgcrypt
2 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
3 #               2007, 2008 Free Software Foundation, Inc.
4 #
5 # This file is part of Libgcrypt.
6 #
7 # Libgcrypt is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU Lesser General Public License as
9 # published by the Free Software Foundation; either version 2.1 of
10 # the License, or (at your option) any later version.
11 #
12 # Libgcrypt is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Lesser General Public License for more details.
16 #
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
20 #
21 # (Process this file with autoconf to produce a configure script.)
22 AC_REVISION($Revision$)
23 AC_PREREQ(2.60)
24 min_automake_version="1.10"
25
26
27 # Remember to change the version number immediately *after* a release.
28 # Set my_issvn to "yes" for non-released code.  Remember to run an
29 # "svn up" and "autogen.sh" right before creating a distribution.
30 m4_define([my_version], [1.4.1rc1])
31 m4_define([my_issvn], [no])
32
33 m4_define([svn_revision], m4_esyscmd([echo -n $( (svn info 2>/dev/null \
34             || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
35 AC_INIT([libgcrypt], 
36         [my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])],
37         [bug-libgcrypt@gnupg.org])
38 # LT Version numbers, remember to change them just *before* a release.
39 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
40 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
41 #   (No interfaces changed:                   REVISION++)
42 LIBGCRYPT_LT_CURRENT=15
43 LIBGCRYPT_LT_AGE=4
44 LIBGCRYPT_LT_REVISION=3
45
46
47 # If the API is changed in an incompatible way: increment the next counter.
48 LIBGCRYPT_CONFIG_API_VERSION=1
49
50 NEED_GPG_ERROR_VERSION=1.4
51
52 is_development_version=my_issvn
53 BUILD_REVISION=svn_revision
54 PACKAGE=$PACKAGE_NAME
55 VERSION=$PACKAGE_VERSION
56
57 AC_CONFIG_SRCDIR([src/libgcrypt.vers])
58 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
59 AM_CONFIG_HEADER(config.h)
60 AC_CANONICAL_HOST
61 AM_MAINTAINER_MODE
62
63 AH_TOP([
64 #ifndef _GCRYPT_CONFIG_H_INCLUDED
65 #define _GCRYPT_CONFIG_H_INCLUDED
66 /* need this, because some autoconf tests rely on this (e.g. stpcpy)
67  * and it should be used for new programs  */
68 #define _GNU_SOURCE  1
69 ])
70
71 AH_BOTTOM([
72 #define _GCRYPT_IN_LIBGCRYPT 1
73
74 /* If the configure check for endianness has been disabled, get it from
75    OS macros.  This is intended for making fat binary builds on OS X.  */
76 #ifdef DISABLED_ENDIAN_CHECK
77 # if defined(__BIG_ENDIAN__)
78 #  define WORDS_BIGENDIAN 1
79 # elif defined(__LITTLE_ENDIAN__)
80 #  undef WORDS_BIGENDIAN
81 # else
82 #  error "No endianness found"
83 # endif
84 #endif /*DISABLED_ENDIAN_CHECK*/
85
86 /* We basically use the original Camellia source.  Make sure the symbols 
87    properly prefixed.  */
88 #define CAMELLIA_EXT_SYM_PREFIX _gcry_
89
90
91 #endif /*_GCRYPT_CONFIG_H_INCLUDED*/
92 ])
93
94 AH_VERBATIM([_REENTRANT],
95 [/* To allow the use of Libgcrypt in multithreaded programs we have to use
96     special features from the library. */
97 #ifndef _REENTRANT
98 # define _REENTRANT 1
99 #endif
100 ])
101
102
103 AC_SUBST(LIBGCRYPT_LT_CURRENT)
104 AC_SUBST(LIBGCRYPT_LT_AGE)
105 AC_SUBST(LIBGCRYPT_LT_REVISION)
106 AC_SUBST(PACKAGE)
107 AC_SUBST(VERSION)
108 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
109 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
110
111
112 ######################
113 ##  Basic checks.  ### (we need some results later on (e.g. $GCC)
114 ######################
115
116 AC_PROG_MAKE_SET
117 missing_dir=`cd $ac_aux_dir && pwd`
118 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
119 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
120 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
121 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
122 # AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
123 AC_PROG_CC
124 AC_PROG_CPP
125 AM_PROG_CC_C_O
126 AM_PROG_AS
127 AC_ISC_POSIX
128 AC_PROG_INSTALL
129 AC_PROG_AWK
130
131 AC_LIBTOOL_WIN32_DLL
132 AC_LIBTOOL_RC
133 AM_PROG_LIBTOOL
134
135
136 ##########################
137 ## General definitions. ##
138 ##########################
139
140 # Used by libgcrypt-config
141 LIBGCRYPT_CONFIG_LIBS="-lgcrypt"
142 LIBGCRYPT_CONFIG_CFLAGS=""
143
144 # Definitions for symmetric ciphers.
145 available_ciphers="arcfour blowfish cast5 des aes twofish serpent rfc2268 seed"
146 available_ciphers="$available_ciphers camellia"
147 enabled_ciphers=""
148
149 # Definitions for public-key ciphers.
150 available_pubkey_ciphers="dsa elgamal rsa ecc"
151 enabled_pubkey_ciphers=""
152
153 # Definitions for message digests.
154 available_digests="crc md4 md5 rmd160 sha1 sha256"
155 available_digests_64="sha512 tiger whirlpool"
156 enabled_digests=""
157
158 # Definitions for random modules.
159 available_random_modules="linux egd unix"
160 auto_random_modules="$available_random_modules"
161
162 # Supported thread backends.
163 LIBGCRYPT_THREAD_MODULES=""
164
165 # Other definitions.
166 print_egd_notice=no
167 have_w32_system=no
168
169 # Setup some stuff depending on host.
170 case "${host}" in
171     *-*-mingw32*)
172       available_random_modules="w32"
173       ac_cv_have_dev_random=no
174       have_w32_system=yes
175       AC_DEFINE(USE_ONLY_8DOT3,1,
176                 [set this to limit filenames to the 8.3 format])
177       AC_DEFINE(HAVE_DRIVE_LETTERS,1,
178                 [defined if we must run on a stupid file system])
179       AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
180                 [defined if we run on some of the PCDOS like systems 
181                  (DOS, Windoze. OS/2) with special properties like
182                   no file modes])
183       ;;
184
185     i?86-emx-os2 | i?86-*-os2*emx)
186         # OS/2 with the EMX environment
187         ac_cv_have_dev_random=no
188         AC_DEFINE(HAVE_DRIVE_LETTERS)
189         AC_DEFINE(HAVE_DOSISH_SYSTEM)
190         ;;
191
192     i?86-*-msdosdjgpp*)
193         # DOS with the DJGPP environment
194         ac_cv_have_dev_random=no
195         AC_DEFINE(HAVE_DRIVE_LETTERS)
196         AC_DEFINE(HAVE_DOSISH_SYSTEM)
197         ;;
198
199     *-*-freebsd*)
200        # FreeBSD
201        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
202        LDFLAGS="$LDFLAGS -L/usr/local/lib"
203        ;;
204
205     *-*-hpux*)
206         if test -z "$GCC" ; then
207             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
208         fi
209         ;;
210     *-dec-osf4*)
211         if test -z "$GCC" ; then
212             # Suppress all warnings
213             # to get rid of the unsigned/signed char mismatch warnings.
214             CFLAGS="$CFLAGS -w"
215         fi
216         ;;
217     m68k-atari-mint)
218         ;;
219     *)
220       ;;
221 esac
222
223 if test "$have_w32_system" = yes; then
224    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
225 fi
226 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
227
228
229
230 # A printable OS Name is sometimes useful.
231 case "${host}" in
232     *-*-mingw32*)
233         PRINTABLE_OS_NAME="MingW32"
234         ;;
235
236     i?86-emx-os2 | i?86-*-os2*emx )
237         PRINTABLE_OS_NAME="OS/2"
238         ;;
239
240     i?86-*-msdosdjgpp*)
241         PRINTABLE_OS_NAME="MSDOS/DJGPP"
242         ;;
243
244     *-linux*)
245         PRINTABLE_OS_NAME="GNU/Linux"
246         ;;
247
248     *)
249         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
250         ;;
251 esac
252
253 #
254 # Figure out the name of the random device
255 #
256 case "${host}" in
257     *-openbsd*)
258         NAME_OF_DEV_RANDOM="/dev/srandom"
259         NAME_OF_DEV_URANDOM="/dev/urandom"
260         ;;
261
262     *)
263         NAME_OF_DEV_RANDOM="/dev/random"
264         NAME_OF_DEV_URANDOM="/dev/urandom"
265         ;;
266 esac
267
268
269 AC_ARG_ENABLE(endian-check,
270               AC_HELP_STRING([--disable-endian-check],
271               [disable the endian check and trust the OS provided macros]),
272               endiancheck=$enableval,endiancheck=yes)
273 if test x"$endiancheck" = xyes ; then
274   AC_C_BIGENDIAN
275 else
276   AC_DEFINE(DISABLED_ENDIAN_CHECK,1,[configure did not test for endianess])
277 fi
278
279 AC_CHECK_SIZEOF(unsigned short, 2)
280 AC_CHECK_SIZEOF(unsigned int, 4)
281 AC_CHECK_SIZEOF(unsigned long, 4)
282 AC_CHECK_SIZEOF(unsigned long long, 0)
283
284 AC_TYPE_UINTPTR_T
285
286 if test "$ac_cv_sizeof_unsigned_short" = "0" \
287    || test "$ac_cv_sizeof_unsigned_int" = "0" \
288    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
289     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
290 fi
291
292 # Do we have any 64-bit data types?
293 if test "$ac_cv_sizeof_unsigned_int" != "8" \
294    && test "$ac_cv_sizeof_unsigned_long" != "8" \
295    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
296    && test "$ac_cv_sizeof_uint64_t" != "8"; then
297     AC_MSG_WARN([No 64-bit types.  Disabling TIGER/192, SHA-384, and SHA-512])
298 else
299   available_digests="$available_digests $available_digests_64"
300 fi
301
302 # If not specified otherwise, all available algorithms will be
303 # included.  
304 default_ciphers="$available_ciphers"
305 default_pubkey_ciphers="$available_pubkey_ciphers"
306 default_digests="$available_digests"
307
308 ############################
309 ## Command line switches. ##
310 ############################
311
312 # Implementation of the --enable-ciphers switch.
313 AC_ARG_ENABLE(ciphers,
314               AC_HELP_STRING([--enable-ciphers=ciphers],
315                              [select the symmetric ciphers to include]),
316               [enabled_ciphers=`echo $enableval | tr ',:' '  ' | tr '[A-Z]' '[a-z]'`],
317               [enabled_ciphers=""])
318 if test "x$enabled_ciphers" = "x" \
319    -o "$enabled_ciphers" = "yes"  \
320    -o "$enabled_ciphers" = "no"; then
321    enabled_ciphers=$default_ciphers
322 fi
323 AC_MSG_CHECKING([which symmetric ciphers to include])
324 for cipher in $enabled_ciphers; do
325     LIST_MEMBER($cipher, $available_ciphers)
326     if test "$found" = "0"; then
327        AC_MSG_ERROR([unsupported cipher "$cipher" specified])
328     fi
329 done
330 AC_MSG_RESULT([$enabled_ciphers])
331
332 # Implementation of the --enable-pubkey-ciphers switch.
333 AC_ARG_ENABLE(pubkey-ciphers,
334               AC_HELP_STRING([--enable-pubkey-ciphers=ciphers],
335                              [select the public-key ciphers to include]),
336               [enabled_pubkey_ciphers=`echo $enableval | tr ',:' '  ' | tr '[A-Z]' '[a-z]'`],
337               [enabled_pubkey_ciphers=""])
338 if test "x$enabled_pubkey_ciphers" = "x" \
339    -o "$enabled_pubkey_ciphers" = "yes"  \
340    -o "$enabled_pubkey_ciphers" = "no"; then
341    enabled_pubkey_ciphers=$default_pubkey_ciphers
342 fi
343 AC_MSG_CHECKING([which public-key ciphers to include])
344 for cipher in $enabled_pubkey_ciphers; do
345     LIST_MEMBER($cipher, $available_pubkey_ciphers)
346     if test "$found" = "0"; then
347        AC_MSG_ERROR([unsupported public-key cipher specified])
348     fi
349 done
350 AC_MSG_RESULT([$enabled_pubkey_ciphers])
351
352 # Implementation of the --enable-digests switch.
353 AC_ARG_ENABLE(digests,
354               AC_HELP_STRING([--enable-digests=digests],
355                              [select the message digests to include]),
356               [enabled_digests=`echo $enableval | tr ',:' '  ' | tr '[A-Z]' '[a-z]'`],
357               [enabled_digests=""])
358 if test "x$enabled_digests" = "x" \
359    -o "$enabled_digests" = "yes"  \
360    -o "$enabled_digests" = "no"; then
361    enabled_digests=$default_digests
362 fi
363 AC_MSG_CHECKING([which message digests to include])
364 for digest in $enabled_digests; do
365     LIST_MEMBER($digest, $available_digests)
366     if test "$found" = "0"; then
367        AC_MSG_ERROR([unsupported message digest specified])
368     fi
369 done
370 AC_MSG_RESULT([$enabled_digests])
371
372 # Implementation of the --enable-random switch.
373 AC_ARG_ENABLE(random,
374               AC_HELP_STRING([--enable-random=name],
375                              [select which random number generator to use]),
376               [random=`echo $enableval | tr '[A-Z]' '[a-z]'`],
377               [])
378 if test "x$random" = "x" -o "$random" = "yes" -o "$random" = "no"; then
379     random=default
380 fi
381 AC_MSG_CHECKING([which random module to use])
382 if test "$random" != "default" -a "$random" != "auto"; then
383     LIST_MEMBER($random, $available_random_modules)
384     if test "$found" = "0"; then
385        AC_MSG_ERROR([unsupported random module specified])
386     fi
387 fi
388 AC_MSG_RESULT($random)
389
390 # Implementation of the --disable-dev-random switch.
391 AC_MSG_CHECKING([whether use of /dev/random is requested])
392 AC_ARG_ENABLE(dev-random,
393 [  --disable-dev-random    disable the use of dev random],
394     try_dev_random=$enableval, try_dev_random=yes)
395 AC_MSG_RESULT($try_dev_random)
396
397 # Implementation of the --with-egd-socket switch.
398 AC_ARG_WITH(egd-socket,
399     [  --with-egd-socket=NAME  Use NAME for the EGD socket)],
400             egd_socket_name="$withval", egd_socket_name="" )
401 AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name",
402                    [Define if you don't want the default EGD socket name.
403                     For details see cipher/rndegd.c])
404
405 # Implementation of the --enable-random-daemon
406 AC_MSG_CHECKING([whether the experimental random daemon is requested])
407 AC_ARG_ENABLE([random-daemon],
408               AC_HELP_STRING([--enable-random-daemon],
409                              [Build and support the experimental gcryptrnd]),
410               [use_random_daemon=$enableval],
411               [use_random_daemon=no])
412 AC_MSG_RESULT($use_random_daemon)
413 if test x$use_random_daemon = xyes ; then
414     AC_DEFINE(USE_RANDOM_DAEMON,1,
415               [Define to support the experimental random daemon])
416 fi
417 AM_CONDITIONAL(USE_RANDOM_DAEMON, test x$use_random_daemon = xyes)
418
419
420 # Implementation of --disable-asm.
421 AC_MSG_CHECKING([whether MPI assembler modules are requested])
422 AC_ARG_ENABLE([asm],
423               AC_HELP_STRING([--disable-asm],
424                              [Disable MPI assembler modules]),
425               [try_asm_modules=$enableval],
426               [try_asm_modules=yes])
427 AC_MSG_RESULT($try_asm_modules)
428
429 # Implementation of the --enable-m-guard switch.
430 AC_MSG_CHECKING([whether memory guard is requested])
431 AC_ARG_ENABLE(m-guard,
432               AC_HELP_STRING([--enable-m-guard],
433                              [Enable memory guard facility]),
434               [use_m_guard=$enableval], [use_m_guard=no])
435 AC_MSG_RESULT($use_m_guard)
436 if test "$use_m_guard" = yes ; then
437     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
438 fi
439
440 # Implementation of the --with-capabilities switch.
441 # Check whether we want to use Linux capabilities
442 AC_MSG_CHECKING([whether use of capabilities is requested])
443 AC_ARG_WITH(capabilities,
444             AC_HELP_STRING([--with-capabilities],
445                            [Use linux capabilities [default=no]]),
446             [use_capabilities="$withval"],[use_capabilities=no])
447 AC_MSG_RESULT($use_capabilities)
448
449
450 # Implementation of the --disable-padlock-support switch.
451 AC_MSG_CHECKING([whether padlock support is requested])
452 AC_ARG_ENABLE(padlock-support,
453               AC_HELP_STRING([--disable-padlock-support],
454                  [Disable support for the PadLock Engine of VIA processors]),
455               padlocksupport=$enableval,padlocksupport=yes)
456 AC_MSG_RESULT($padlocksupport)
457 if test x"$padlocksupport" = xyes ; then
458   AC_DEFINE(ENABLE_PADLOCK_SUPPORT, 1,
459             [Enable support for the PadLock engine.])
460 fi
461
462
463
464 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
465                    [A human readable text with the name of the OS])
466
467 # For some systems we know that we have ld_version scripts.  
468 # Use it then as default.
469 have_ld_version_script=no
470 case "${host}" in
471     *-*-linux*)
472         have_ld_version_script=yes
473         ;;
474     *-*-gnu*)
475         have_ld_version_script=yes
476         ;;
477 esac
478 AC_ARG_ENABLE([ld-version-script],
479               AC_HELP_STRING([--enable-ld-version-script],
480                              [enable/disable use of linker version script.
481                               (default is system dependent)]),
482               [have_ld_version_script=$enableval],
483               [ : ] )
484 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
485
486 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
487                    [defined to the name of the strong random device])
488 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
489                    [defined to the name of the weaker random device])
490
491 ###############################
492 #### Checks for libraries. ####
493 ###############################
494
495 #
496 # gpg-error is required.
497 #
498 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION")
499 if test "x$GPG_ERROR_LIBS" = "x"; then
500   AC_MSG_ERROR([libgpg-error is needed.
501                 See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ .])
502 fi
503
504 AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GCRYPT,
505           [The default error source for libgcrypt.])
506
507 #
508 # Check whether the GNU Pth library is available.  We require this 
509 # to build the optional gcryptrnd program.
510 #
511 AC_ARG_WITH(pth-prefix,
512             AC_HELP_STRING([--with-pth-prefix=PFX],
513                            [prefix where GNU Pth is installed (optional)]),
514      pth_config_prefix="$withval", pth_config_prefix="")
515 if test x$pth_config_prefix != x ; then
516    PTH_CONFIG="$pth_config_prefix/bin/pth-config"
517 fi
518 if test "$use_random_daemon" = "yes"; then
519   AC_PATH_PROG(PTH_CONFIG, pth-config, no)
520   if test "$PTH_CONFIG" = "no"; then
521     AC_MSG_WARN([[
522 ***
523 *** To build the Libgcrypt's random number daemon
524 *** we need the support of the GNU Portable Threads Library.
525 *** Download it from ftp://ftp.gnu.org/gnu/pth/
526 *** On a Debian GNU/Linux system you might want to try 
527 ***   apt-get install libpth-dev
528 ***]])
529   else
530     GNUPG_PTH_VERSION_CHECK([1.3.7])
531     if test $have_pth = yes; then      
532        PTH_CFLAGS=`$PTH_CONFIG --cflags`
533        PTH_LIBS=`$PTH_CONFIG --ldflags`
534        PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs --all`"
535        AC_DEFINE(USE_GNU_PTH, 1,
536                 [Defined if the GNU Portable Thread Library should be used])
537        AC_DEFINE(HAVE_PTH, 1,
538                 [Defined if the GNU Pth is available])
539     fi
540   fi
541 fi
542 AC_SUBST(PTH_CFLAGS)
543 AC_SUBST(PTH_LIBS)
544
545
546 # Solaris needs -lsocket and -lnsl. Unisys system includes
547 # gethostbyname in libsocket but needs libnsl for socket.
548 AC_SEARCH_LIBS(setsockopt, [socket], ,
549         [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])])
550 AC_SEARCH_LIBS(setsockopt, [nsl])
551
552 ##################################
553 #### Checks for header files. ####
554 ##################################
555
556 AC_HEADER_STDC
557 AC_CHECK_HEADERS(unistd.h sys/select.h)
558
559 ##########################################
560 #### Checks for typedefs, structures, ####
561 ####  and compiler characteristics.   ####
562 ##########################################
563
564 AC_C_CONST
565 AC_C_INLINE
566 AC_TYPE_SIZE_T
567 AC_TYPE_SIGNAL
568 AC_DECL_SYS_SIGLIST
569
570 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
571 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
572 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
573 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
574 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
575
576 gl_TYPE_SOCKLEN_T
577 case "${host}" in
578   *-*-mingw32*)
579     # socklen_t may or may not be defined depending on what headers
580     # are included.  To be safe we use int as this is the actual type.
581     FALLBACK_SOCKLEN_T="typedef int gcry_socklen_t;"
582     ;;
583   *)
584     if test ".$gl_cv_socklen_t_equiv" = "."; then
585       FALLBACK_SOCKLEN_T="typedef socklen_t gcry_socklen_t;"
586     else
587       FALLBACK_SOCKLEN_T="typedef ${gl_cv_socklen_t_equiv} gcry_socklen_t;"
588     fi
589 esac
590 AC_SUBST(FALLBACK_SOCKLEN_T)
591             
592 #            
593 # Check for ELF visibility support.
594 #
595 AC_CACHE_CHECK(whether the visibility attribute is supported,
596        gcry_cv_visibility_attribute,
597        [gcry_cv_visibility_attribute=no
598         AC_LANG_CONFTEST([AC_LANG_SOURCE(
599           [[int foo __attribute__ ((visibility ("hidden"))) = 1;
600             int bar __attribute__ ((visibility ("protected"))) = 1;
601           ]])])
602         
603         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
604                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
605             if grep '\.hidden.*foo' conftest.s >/dev/null 2>&1 ; then
606                 if grep '\.protected.*bar' conftest.s >/dev/null 2>&1; then
607                     gcry_cv_visibility_attribute=yes
608                 fi
609             fi  
610         fi  
611        ])
612 if test "$gcry_cv_visibility_attribute" = "yes"; then
613     AC_CACHE_CHECK(for broken visibility attribute,
614        gcry_cv_broken_visibility_attribute,
615        [gcry_cv_broken_visibility_attribute=yes
616         AC_LANG_CONFTEST([AC_LANG_SOURCE(
617           [[int foo (int x);
618             int bar (int x) __asm__ ("foo")
619                             __attribute__ ((visibility ("hidden")));
620             int bar (int x) { return x; }
621           ]])])
622                   
623         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
624                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
625            if grep '\.hidden@<:@        _@:>@foo' conftest.s >/dev/null 2>&1;
626             then
627                gcry_cv_broken_visibility_attribute=no
628            fi
629         fi
630        ])
631 fi
632 if test "$gcry_cv_visibility_attribute" = "yes"; then
633     AC_CACHE_CHECK(for broken alias attribute,
634        gcry_cv_broken_alias_attribute,
635        [gcry_cv_broken_alias_attribute=yes
636         AC_LANG_CONFTEST([AC_LANG_SOURCE(
637           [[extern int foo (int x) __asm ("xyzzy");
638             int bar (int x) { return x; }
639             extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
640             extern int dfoo;
641             extern __typeof (dfoo) dfoo __asm ("abccb");
642             int dfoo = 1;
643           ]])])
644
645         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
646                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
647            if grep 'xyzzy' conftest.s >/dev/null 2>&1 && \
648               grep 'abccb' conftest.s >/dev/null 2>&1; then
649               gcry_cv_broken_alias_attribute=no
650            fi
651         fi
652         ])
653 fi
654 if test "$gcry_cv_visibility_attribute" = "yes"; then
655     AC_CACHE_CHECK(if gcc supports -fvisibility=hidden,
656        gcry_cv_gcc_has_f_visibility,
657        [gcry_cv_gcc_has_f_visibility=no
658         _gcc_cflags_save=$CFLAGS
659         CFLAGS="-fvisibility=hidden"
660         AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),
661                           gcry_cv_gcc_has_f_visibility=yes)
662         CFLAGS=$_gcc_cflags_save;
663        ])
664 fi
665 if test "$gcry_cv_visibility_attribute" = "yes" \
666    && test "$gcry_cv_broken_visibility_attribute" != "yes" \
667    && test "$gcry_cv_broken_alias_attribute" != "yes" \
668    && test "$gcry_cv_gcc_has_f_visibility" = "yes"  
669  then
670    AC_DEFINE(GCRY_USE_VISIBILITY, 1,
671                [Define to use the GNU C visibility attribute.])
672    CFLAGS="$CFLAGS -fvisibility=hidden"
673 fi
674
675
676 #######################################
677 #### Checks for library functions. ####
678 #######################################
679
680 AC_FUNC_VPRINTF
681 # We have replacements for these in src/missing-string.c
682 AC_CHECK_FUNCS(stpcpy strcasecmp)
683 # We have replacements for these in src/g10lib.h
684 AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise)
685 # Other checks
686 AC_CHECK_FUNCS(strerror rand mmap getpagesize sysconf waitpid wait4)
687 AC_CHECK_FUNCS(gettimeofday getrusage gethrtime clock_gettime)
688 AC_CHECK_FUNCS(fcntl ftruncate)
689
690 GNUPG_CHECK_MLOCK
691
692 # Check whether we can use Linux capabilities as requested.
693 if test "$use_capabilities" = "yes" ; then
694 use_capabilities=no
695 AC_CHECK_HEADERS(sys/capability.h)
696 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
697   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
698   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
699      AC_DEFINE(USE_CAPABILITIES,1,
700                [define if capabilities should be used])
701      LIBS="$LIBS -lcap"
702      use_capabilities=yes
703   fi
704 fi
705 if test "$use_capabilities" = "no" ; then
706     AC_MSG_WARN([[
707 ***
708 *** The use of capabilities on this system is not possible.
709 *** You need a recent Linux kernel and some patches:
710 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
711 ***   fcap-module-990613.tar.gz     (kernel module)
712 ***   libcap-1.92.tar.gz            (user mode library and utilities)
713 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
714 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
715 ***]])
716 fi
717 fi
718
719 # Check whether a random device is available.
720 if test "$try_dev_random" = yes ; then
721     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
722     [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
723       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
724     if test "$ac_cv_have_dev_random" = yes; then
725         AC_DEFINE(HAVE_DEV_RANDOM,1,
726                  [defined if the system supports a random device] )
727     fi
728 else
729     AC_MSG_CHECKING(for random device)
730     ac_cv_have_dev_random=no
731     AC_MSG_RESULT(has been disabled)
732 fi
733
734 # Figure out the random modules for this configuration.
735 if test "$random" = "default"; then
736
737     # Select default value.
738     if test "$ac_cv_have_dev_random" = yes; then
739         # Try Linuxish random device.
740         random_modules="linux"
741     else
742         case "${host}" in
743         *-*-mingw32*|*-*-cygwin*)
744           # Windows random device.
745           random_modules="w32"
746           ;;
747         *)
748           # Build everything, allow to select at runtime.
749           random_modules="$auto_random_modules"
750           ;;
751         esac    
752     fi
753 else
754     if test "$random" = "auto"; then
755         # Build everything, allow to select at runtime.
756         random_modules="$auto_random_modules"
757     else
758         random_modules="$random"
759     fi
760 fi
761
762
763 #
764 # Setup assembler stuff.
765 #
766 GNUPG_SYS_SYMBOL_UNDERSCORE()
767 AC_ARG_ENABLE(mpi-path,
768               AC_HELP_STRING([--enable-mpi-path=EXTRA_PATH],
769               [prepend EXTRA_PATH to list of CPU specific optimizations]),
770               mpi_extra_path="$enableval",mpi_extra_path="")
771 AC_MSG_CHECKING(for mpi assembler functions)
772 if test -f $srcdir/mpi/config.links ; then
773     . $srcdir/mpi/config.links
774     AC_CONFIG_LINKS("$mpi_ln_list")
775     ac_cv_mpi_sflags="$mpi_sflags"
776     AC_MSG_RESULT(done)
777 else
778     AC_MSG_RESULT(failed)
779     AC_MSG_ERROR([mpi/config.links missing!])
780 fi
781 MPI_SFLAGS="$ac_cv_mpi_sflags"
782 AC_SUBST(MPI_SFLAGS)
783
784 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_ADD1, test "$mpi_mod_asm_mpih_add1" = yes)
785 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_SUB1, test "$mpi_mod_asm_mpih_sub1" = yes)
786 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL1, test "$mpi_mod_asm_mpih_mul1" = yes)
787 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL2, test "$mpi_mod_asm_mpih_mul2" = yes)
788 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL3, test "$mpi_mod_asm_mpih_mul3" = yes)
789 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_LSHIFT, test "$mpi_mod_asm_mpih_lshift" = yes)
790 AM_CONDITIONAL(MPI_MOD_ASM_MPIH_RSHIFT, test "$mpi_mod_asm_mpih_rshift" = yes)
791 AM_CONDITIONAL(MPI_MOD_ASM_UDIV, test "$mpi_mod_asm_udiv" = yes)
792 AM_CONDITIONAL(MPI_MOD_ASM_UDIV_QRNND, test "$mpi_mod_asm_udiv_qrnnd" = yes)
793 AM_CONDITIONAL(MPI_MOD_C_MPIH_ADD1, test "$mpi_mod_c_mpih_add1" = yes)
794 AM_CONDITIONAL(MPI_MOD_C_MPIH_SUB1, test "$mpi_mod_c_mpih_sub1" = yes)
795 AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL1, test "$mpi_mod_c_mpih_mul1" = yes)
796 AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL2, test "$mpi_mod_c_mpih_mul2" = yes)
797 AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL3, test "$mpi_mod_c_mpih_mul3" = yes)
798 AM_CONDITIONAL(MPI_MOD_C_MPIH_LSHIFT, test "$mpi_mod_c_mpih_lshift" = yes)
799 AM_CONDITIONAL(MPI_MOD_C_MPIH_RSHIFT, test "$mpi_mod_c_mpih_rshift" = yes)
800 AM_CONDITIONAL(MPI_MOD_C_UDIV, test "$mpi_mod_c_udiv" = yes)
801 AM_CONDITIONAL(MPI_MOD_C_UDIV_QRNND, test "$mpi_mod_c_udiv_qrnnd" = yes)
802
803 if test "$is_development_version" = "yes"; then
804     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
805               [Defined if this is not a regular release])
806 fi
807
808
809 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
810
811
812 # This is handy for debugging so the compiler doesn't rearrange
813 # things and eliminate variables.
814 AC_ARG_ENABLE(optimization,
815        AC_HELP_STRING([--disable-optimization],
816                       [disable compiler optimization]),
817                       [if test $enableval = no ; then
818                          CFLAGS=`echo $CFLAGS | sed 's/-O[[0-9]]//'`
819                        fi])
820
821 AC_ARG_ENABLE(gcc-warnings,
822               AC_HELP_STRING([--enable-gcc-warnings],
823                              [enable more verbose gcc warnings]),
824               [more_gcc_warnings="$enableval"],
825               [more_gcc_warnings="no"])
826
827 if test "$GCC" = yes; then
828     if test "$USE_MAINTAINER_MODE" = "yes" ||
829        test "$more_gcc_warnings" = "yes"; then
830         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
831         if test "$more_gcc_warnings" = "yes"; then
832             CFLAGS="$CFLAGS -W -Wextra -Wbad-function-cast"
833             CFLAGS="$CFLAGS -Wwrite-strings"
834             CFLAGS="$CFLAGS -Wdeclaration-after-statement"
835             CFLAGS="$CFLAGS -Wno-missing-field-initializers"
836             CFLAGS="$CFLAGS -Wno-sign-compare"
837             # Note: We don't use -Wunreachable-code because this gives
838             # warnings for all asserts and many inline functions like
839             # gpg_error (gcc 4.1.2 20060928).
840         fi
841     else
842         CFLAGS="$CFLAGS -Wall"
843     fi
844
845     AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
846     _gcc_cflags_save=$CFLAGS
847     CFLAGS="-Wpointer-arith"
848     AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),_gcc_wopt=yes,_gcc_wopt=no)
849     AC_MSG_RESULT($_gcc_wopt)
850     CFLAGS=$_gcc_cflags_save;
851     if test x"$_gcc_wopt" = xyes ; then
852        CFLAGS="$CFLAGS -Wpointer-arith"
853     fi
854 fi
855
856 # Check whether as(1) supports a noeexecstack feature.  This test
857 # includes an override option.
858 CL_AS_NOEXECSTACK
859
860
861 AC_SUBST(LIBGCRYPT_CONFIG_API_VERSION)
862 AC_SUBST(LIBGCRYPT_CONFIG_LIBS)
863 AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS)
864 AC_SUBST(LIBGCRYPT_THREAD_MODULES)
865
866 AC_CONFIG_COMMANDS([gcrypt-conf],[[
867 chmod +x src/libgcrypt-config
868 ]],[[
869 prefix=$prefix
870 exec_prefix=$exec_prefix
871 libdir=$libdir
872 datadir=$datadir
873 DATADIRNAME=$DATADIRNAME
874 ]])
875
876 #####################
877 #### Conclusion. ####
878 #####################
879
880 # Define conditional sources and config.h symbols depending on the
881 # selected ciphers, pubkey-ciphers, digests and random modules.
882
883 LIST_MEMBER(arcfour, $enabled_ciphers)
884 if test "$found" = "1"; then 
885    GCRYPT_CIPHERS="$GCRYPT_CIPHERS arcfour.lo"
886    AC_DEFINE(USE_ARCFOUR, 1, [Defined if this module should be included])
887 fi
888
889 LIST_MEMBER(blowfish, $enabled_ciphers)
890 if test "$found" = "1" ; then
891    GCRYPT_CIPHERS="$GCRYPT_CIPHERS blowfish.lo"
892    AC_DEFINE(USE_BLOWFISH, 1, [Defined if this module should be included])
893 fi
894
895 LIST_MEMBER(cast5, $enabled_ciphers)
896 if test "$found" = "1" ; then
897    GCRYPT_CIPHERS="$GCRYPT_CIPHERS cast5.lo"
898    AC_DEFINE(USE_CAST5, 1, [Defined if this module should be included])
899 fi
900
901 LIST_MEMBER(des, $enabled_ciphers)
902 if test "$found" = "1" ; then
903    GCRYPT_CIPHERS="$GCRYPT_CIPHERS des.lo"
904    AC_DEFINE(USE_DES, 1, [Defined if this module should be included])
905 fi
906
907 LIST_MEMBER(aes, $enabled_ciphers)
908 if test "$found" = "1" ; then
909    GCRYPT_CIPHERS="$GCRYPT_CIPHERS rijndael.lo"
910    AC_DEFINE(USE_AES, 1, [Defined if this module should be included])
911 fi
912
913 LIST_MEMBER(twofish, $enabled_ciphers)
914 if test "$found" = "1" ; then
915    GCRYPT_CIPHERS="$GCRYPT_CIPHERS twofish.lo"
916    AC_DEFINE(USE_TWOFISH, 1, [Defined if this module should be included])
917 fi
918
919 LIST_MEMBER(serpent, $enabled_ciphers)
920 if test "$found" = "1" ; then
921    GCRYPT_CIPHERS="$GCRYPT_CIPHERS serpent.lo"
922    AC_DEFINE(USE_SERPENT, 1, [Defined if this module should be included])
923 fi
924
925 LIST_MEMBER(rfc2268, $enabled_ciphers)
926 if test "$found" = "1" ; then
927    GCRYPT_CIPHERS="$GCRYPT_CIPHERS rfc2268.lo"
928    AC_DEFINE(USE_RFC2268, 1, [Defined if this module should be included])
929 fi
930
931 LIST_MEMBER(seed, $enabled_ciphers)
932 if test "$found" = "1" ; then
933    GCRYPT_CIPHERS="$GCRYPT_CIPHERS seed.lo"
934    AC_DEFINE(USE_SEED, 1, [Defined if this module should be included])
935 fi
936
937 LIST_MEMBER(camellia, $enabled_ciphers)
938 if test "$found" = "1" ; then
939    GCRYPT_CIPHERS="$GCRYPT_CIPHERS camellia.lo camellia-glue.lo"
940    AC_DEFINE(USE_CAMELLIA, 1, [Defined if this module should be included])
941 fi
942
943 LIST_MEMBER(dsa, $enabled_pubkey_ciphers)
944 if test "$found" = "1" ; then
945    GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS dsa.lo"
946    AC_DEFINE(USE_DSA, 1, [Defined if this module should be included])
947 fi
948
949 LIST_MEMBER(rsa, $enabled_pubkey_ciphers)
950 if test "$found" = "1" ; then
951    GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS rsa.lo"
952    AC_DEFINE(USE_RSA, 1, [Defined if this module should be included])
953 fi
954
955 LIST_MEMBER(elgamal, $enabled_pubkey_ciphers)
956 if test "$found" = "1" ; then
957    GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS elgamal.lo"
958    AC_DEFINE(USE_ELGAMAL, 1, [Defined if this module should be included])
959 fi
960
961 LIST_MEMBER(ecc, $enabled_pubkey_ciphers)
962 if test "$found" = "1" ; then
963    GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS ecc.lo"
964    AC_DEFINE(USE_ECC, 1, [Defined if this module should be included])
965 fi
966
967 LIST_MEMBER(crc, $enabled_digests)
968 if test "$found" = "1" ; then
969    GCRYPT_DIGESTS="$GCRYPT_DIGESTS crc.lo"
970    AC_DEFINE(USE_CRC, 1, [Defined if this module should be included])
971 fi
972
973 LIST_MEMBER(md4, $enabled_digests)
974 if test "$found" = "1" ; then
975    GCRYPT_DIGESTS="$GCRYPT_DIGESTS md4.lo"
976    AC_DEFINE(USE_MD4, 1, [Defined if this module should be included])
977 fi
978
979 LIST_MEMBER(md5, $enabled_digests)
980 if test "$found" = "1" ; then
981    GCRYPT_DIGESTS="$GCRYPT_DIGESTS md5.lo"
982    AC_DEFINE(USE_MD5, 1, [Defined if this module should be included])
983 fi
984
985 LIST_MEMBER(sha256, $enabled_digests)
986 if test "$found" = "1" ; then
987    GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha256.lo"
988    AC_DEFINE(USE_SHA256, 1, [Defined if this module should be included])
989 fi
990
991 LIST_MEMBER(sha512, $enabled_digests)
992 if test "$found" = "1" ; then
993    GCRYPT_DIGESTS="$GCRYPT_DIGESTS sha512.lo"
994    AC_DEFINE(USE_SHA512, 1, [Defined if this module should be included])
995 fi
996
997 LIST_MEMBER(tiger, $enabled_digests)
998 if test "$found" = "1" ; then
999    GCRYPT_DIGESTS="$GCRYPT_DIGESTS tiger.lo"
1000    AC_DEFINE(USE_TIGER, 1, [Defined if this module should be included])
1001 fi
1002
1003 LIST_MEMBER(whirlpool, $enabled_digests)
1004 if test "$found" = "1" ; then
1005    GCRYPT_DIGESTS="$GCRYPT_DIGESTS whirlpool.lo"
1006    AC_DEFINE(USE_WHIRLPOOL, 1, [Defined if this module should be included])
1007 fi
1008
1009 # rmd160 and sha1 should be included always.
1010 GCRYPT_DIGESTS="$GCRYPT_DIGESTS rmd160.lo sha1.lo"
1011 AC_DEFINE(USE_RMD160, 1, [Defined if this module should be included])
1012 AC_DEFINE(USE_SHA1, 1,   [Defined if this module should be included])
1013
1014 LIST_MEMBER(linux, $random_modules)
1015 if test "$found" = "1" ; then
1016    GCRYPT_RANDOM="$GCRYPT_RANDOM rndlinux.lo"
1017    AC_DEFINE(USE_RNDLINUX, 1, [Defined if the /dev/random RNG should be used.])
1018 fi
1019
1020 LIST_MEMBER(unix, $random_modules)
1021 if test "$found" = "1" ; then
1022    GCRYPT_RANDOM="$GCRYPT_RANDOM rndunix.lo"
1023    AC_DEFINE(USE_RNDUNIX, 1, [Defined if the default Unix RNG should be used.])
1024    print_egd_notice=yes
1025 fi
1026
1027 LIST_MEMBER(egd, $random_modules)
1028 if test "$found" = "1" ; then
1029    GCRYPT_RANDOM="$GCRYPT_RANDOM rndegd.lo"
1030    AC_DEFINE(USE_RNDEGD, 1, [Defined if the EGD based RNG should be used.])
1031 fi
1032
1033 LIST_MEMBER(w32, $random_modules)
1034 if test "$found" = "1" ; then
1035    GCRYPT_RANDOM="$GCRYPT_RANDOM rndw32.lo"
1036    AC_DEFINE(USE_RNDW32, 1, 
1037              [Defined if the Windows specific RNG should be used.])
1038 fi
1039
1040 AC_SUBST([GCRYPT_CIPHERS])
1041 AC_SUBST([GCRYPT_PUBKEY_CIPHERS])
1042 AC_SUBST([GCRYPT_DIGESTS])
1043 AC_SUBST([GCRYPT_RANDOM])
1044
1045 AC_SUBST(LIBGCRYPT_CIPHERS, $enabled_ciphers)
1046 AC_SUBST(LIBGCRYPT_PUBKEY_CIPHERS, $enabled_pubkey_ciphers)
1047 AC_SUBST(LIBGCRYPT_DIGESTS, $enabled_digests)
1048
1049 # For printing the configuration we need a colon separated list of
1050 # algorithm names.
1051 tmp=`echo "$enabled_ciphers" | tr ' ' : `
1052 AC_DEFINE_UNQUOTED(LIBGCRYPT_CIPHERS, "$tmp", 
1053                    [List of available cipher algorithms])
1054 tmp=`echo "$enabled_pubkey_ciphers" | tr ' ' : `
1055 AC_DEFINE_UNQUOTED(LIBGCRYPT_PUBKEY_CIPHERS, "$tmp", 
1056                    [List of available public key cipher algorithms])
1057 tmp=`echo "$enabled_digests" | tr ' ' : `
1058 AC_DEFINE_UNQUOTED(LIBGCRYPT_DIGESTS, "$tmp", 
1059                    [List of available digest algorithms])
1060
1061
1062
1063 # Generate extended version information for W32.
1064 if test "$have_w32_system" = yes; then
1065    BUILD_TIMESTAMP=`date --iso-8601=minutes`
1066    changequote(,)dnl 
1067    BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
1068    changequote([,])dnl
1069    BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_REVISION}"
1070 fi
1071 AC_SUBST(BUILD_REVISION)
1072 AC_SUBST(BUILD_TIMESTAMP)
1073 AC_SUBST(BUILD_FILEVERSION)
1074 AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION", 
1075                    [Subversion revision used to build this package])
1076
1077
1078
1079 # And create the files.
1080 AC_CONFIG_FILES([
1081 Makefile
1082 m4/Makefile
1083 mpi/Makefile
1084 cipher/Makefile
1085 doc/Makefile
1086 src/Makefile
1087 src/gcrypt.h
1088 src/libgcrypt-config
1089 src/versioninfo.rc
1090 tests/Makefile
1091 ])
1092 AC_OUTPUT
1093
1094 # Give some feedback
1095 echo "
1096         Libgcrypt v${VERSION} has been configured as follows:
1097         
1098         Platform:  $PRINTABLE_OS_NAME ($host)
1099 "
1100
1101
1102 if test "$print_egd_notice" = "yes"; then
1103 cat <<G10EOF
1104   
1105    The performance of the Unix random gatherer module (rndunix) is not
1106    very good and it does not keep the entropy pool over multiple
1107    invocations of Libgcrypt base applications.  The suggested way to
1108    overcome this problem is to use the
1109   
1110                  Entropy Gathering Daemon (EGD)
1111   
1112    which provides a entropy source for the whole system.  It is written
1113    in Perl and available at the GnuPG FTP servers.  To enable EGD you
1114    should rerun configure with the option "--enable-static-rnd=egd".
1115    For more information consult the GnuPG webpages:
1116   
1117              http://www.gnupg.org/download.html#egd
1118
1119 G10EOF
1120 fi
1121
1122 if test -n "$gpl"; then
1123   echo "Please note that you are building a version of Libgcrypt with"
1124   echo "  $gpl"
1125   echo "included.  These parts are licensed under the GPL and thus the"
1126   echo "use of this library has to comply with the conditions of the GPL."
1127 fi
1128