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