821e871c063f8bc2f77cc5231f9b828bb63c5b70
[libgcrypt.git] / configure.ac
1 # Configure.ac script for Libgcrypt
2 # Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
3 #
4 # This file is part of Libgcrypt.
5 #
6 # Libgcrypt is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU Lesser general Public License as
8 # published by the Free Software Foundation; either version 2.1 of
9 # the License, or (at your option) any later version.
10 #
11 # Libgcrypt is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU Lesser General Public License for more details.
15 #
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19 #
20 # (Process this file with autoconf to produce a configure script.)
21 AC_REVISION($Revision$)dnl
22
23 AC_PREREQ(2.52)
24 # Version number: Remember to change it immediately *after* a release but
25 # remove a "-cvs" prefix right *before* a release and append it soon later.
26 AC_INIT(libgcrypt, 1.1.13-cvs, bug-libgcrypt@gnupg.org)
27 # LT Version numbers, remember to change them just *before* a release.
28 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
29 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
30 #   (No interfaces changed:                   REVISION++)
31 LIBGCRYPT_LT_CURRENT=6
32 LIBGCRYPT_LT_AGE=5
33 LIBGCRYPT_LT_REVISION=1
34 #-----------------------
35
36 PACKAGE=$PACKAGE_NAME
37 VERSION=$PACKAGE_VERSION
38
39 AC_CONFIG_SRCDIR([src/gcrypt.h])
40 AC_CONFIG_AUX_DIR(scripts)
41 AC_CANONICAL_TARGET()
42 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
43 AM_CONFIG_HEADER(config.h)
44
45 AH_TOP([
46 /* need this, because some autoconf tests rely on this (e.g. stpcpy)
47  * and it should be used for new programs  */
48 #define _GNU_SOURCE  1
49 ])
50
51
52 AH_BOTTOM([
53 #include "gcrypt-defs.h"
54 #define _GCRYPT_IN_LIBGCRYPT 1
55 ])
56
57 AH_VERBATIM([_REENTRANT],
58 [/* To allow the use of Libgcrypt in multithreaded programs we have to use
59     special features from the library. */
60 #ifndef _REENTRANT
61 # define _REENTRANT 1
62 #endif])
63
64
65
66 AC_SUBST(LIBGCRYPT_LT_CURRENT)
67 AC_SUBST(LIBGCRYPT_LT_AGE)
68 AC_SUBST(LIBGCRYPT_LT_REVISION)
69 AC_SUBST(PACKAGE)
70 AC_SUBST(VERSION)
71 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
72 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
73
74 static_modules="sha1 sha256 md4 md5 rmd160"
75 static_random_module=""
76
77 AC_PROG_AWK
78
79 MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \
80                                               $srcdir/cipher/Makefile.am`
81
82 dnl
83 dnl  Check for random module options
84 dnl
85 dnl  Fixme: get the list of available modules from MODULES_IN_CIPHER
86 dnl         and check against this list
87
88 AC_MSG_CHECKING([which static random module to use])
89 AC_ARG_ENABLE(static-rnd,
90     [  --enable-static-rnd=[egd|unix|linux]  ],
91 [use_static_rnd=$enableval], [use_static_rnd=default] )
92
93 if test "$use_static_rnd" = no; then
94     use_static_rnd=default
95 fi
96
97 case "$use_static_rnd" in
98     egd | linux | unix | default )
99       AC_MSG_RESULT($use_static_rnd)
100       ;;
101     * )
102       AC_MSG_RESULT(invalid argument)
103       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
104       ;;
105 esac
106
107 AC_ARG_WITH(egd-socket,
108     [  --with-egd-socket=NAME  Use NAME for the EGD socket)],
109             egd_socket_name="$withval", egd_socket_name="" )
110 AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name",
111                    [Define if you don't want the default EGD socket name.
112                     For details see cipher/rndegd.c])
113
114
115
116 dnl
117 dnl See whether the user wants to disable checking for /dev/random
118
119 AC_MSG_CHECKING([whether use of /dev/random is requested])
120 AC_ARG_ENABLE(dev-random,
121 [  --disable-dev-random    disable the use of dev random],
122     try_dev_random=$enableval, try_dev_random=yes)
123 AC_MSG_RESULT($try_dev_random)
124
125
126 dnl
127 dnl  Check other options
128 dnl
129
130 AC_MSG_CHECKING([whether assembler modules are requested])
131 AC_ARG_ENABLE(asm,
132 [  --disable-asm           do not use assembler modules],
133      try_asm_modules=$enableval, try_asm_modules=yes)
134 AC_MSG_RESULT($try_asm_modules)
135
136 AC_MSG_CHECKING([whether memory guard is requested])
137 AC_ARG_ENABLE(m-guard,
138     [  --enable-m-guard        enable memory guard facility],
139     use_m_guard=$enableval, use_m_guard=no)
140     AC_MSG_RESULT($use_m_guard)
141 if test "$use_m_guard" = yes ; then
142     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
143 fi
144
145 dnl
146 dnl Check whether we want to use Linux capabilities
147 dnl
148 AC_MSG_CHECKING([whether use of capabilities is requested])
149 AC_ARG_WITH(capabilities,
150     [  --with-capabilities     use linux capabilities [default=no]],
151 [use_capabilities="$withval"],[use_capabilities=no])
152 AC_MSG_RESULT($use_capabilities)
153
154
155 AM_MAINTAINER_MODE
156
157 dnl Checks for programs.
158
159 dnl
160 dnl Setup some stuff depending on host/target.
161 dnl
162 case "${target}" in
163     *-*-mingw32*)
164         # special stuff for Windoze NT
165         disallowed_modules="rndunix rndlinux rndegd"
166         ;;
167     *)
168         disallowed_modules="rndw32"
169        ;;
170 esac
171
172 AC_PROG_MAKE_SET
173 AM_SANITY_CHECK
174 missing_dir=`cd $ac_aux_dir && pwd`
175 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
176 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
177 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
178 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
179 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
180 AC_PROG_CC
181 AC_PROG_CPP
182 AM_PROG_AS
183 AC_ISC_POSIX
184 AC_PROG_INSTALL
185 AC_PROG_AWK
186 GPH_PROG_DB2ANY
187
188 AM_PROG_LIBTOOL
189
190
191 MPI_OPT_FLAGS=""
192
193
194 try_gettext=no
195 case "${target}" in
196     *-*-mingw32*)
197         # special stuff for Windoze NT
198         ac_cv_have_dev_random=no
199         AC_DEFINE(USE_ONLY_8DOT3,1,
200                   [set this to limit filenames to the 8.3 format])
201         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
202                   [defined if we must run on a stupid file system])
203         AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
204                   [defined if we run on some of the PCDOS like systems 
205                    (DOS, Windoze. OS/2) with special properties like
206                     no file modes])
207         try_gettext="no"
208         ;;
209     i?86-emx-os2 | i?86-*-os2*emx )
210         # OS/2 with the EMX environment
211         ac_cv_have_dev_random=no
212         AC_DEFINE(HAVE_DRIVE_LETTERS)
213         AC_DEFINE(HAVE_DOSISH_SYSTEM)
214         try_gettext="no"
215         ;;
216
217     i?86-*-msdosdjgpp*)
218         # DOS with the DJGPP environment
219         ac_cv_have_dev_random=no
220         AC_DEFINE(HAVE_DRIVE_LETTERS)
221         AC_DEFINE(HAVE_DOSISH_SYSTEM)
222         try_gettext="no"
223         ;;
224
225     *-*-freebsd*)
226        # FreeBSD
227        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
228        LDFLAGS="$LDFLAGS -L/usr/local/lib"
229        ;;
230
231     *-*-hpux*)
232         if test -z "$GCC" ; then
233             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
234         fi
235         ;;
236     *-dec-osf4*)
237         if test -z "$GCC" ; then
238             # Suppress all warnings
239             # to get rid of the unsigned/signed char mismatch warnings.
240             CFLAGS="$CFLAGS -w"
241         fi
242         ;;
243     m68k-atari-mint)
244         ;;
245     *)
246        ;;
247 esac
248
249 AC_SUBST(MPI_OPT_FLAGS)
250 GNUPG_SYS_SYMBOL_UNDERSCORE
251 GNUPG_CHECK_PIC
252 #GNUPG_CHECK_EXPORTDYNAMIC
253 #if test "$NO_PIC" = yes; then
254 #    try_dynload=no
255 #fi
256
257 # For now we hardcode the use of version scripts.  It would be better
258 # to write a text for this or even implement this within libtool
259 have_ld_version_script=no
260 case "${target}" in
261     *-*-mingw32*)
262         PRINTABLE_OS_NAME="MingW32"
263         ;;
264     i?86-emx-os2 | i?86-*-os2*emx )
265         PRINTABLE_OS_NAME="OS/2"
266         ;;
267     i?86-*-msdosdjgpp*)
268         PRINTABLE_OS_NAME="MSDOS/DJGPP"
269         try_dynload=no
270         ;;
271     *-linux*)
272         PRINTABLE_OS_NAME="GNU/Linux"
273         have_ld_version_script=yes
274         ;;
275 dnl let that after linux to avoid gnu-linux problems
276     *-gnu*)
277         PRINTABLE_OS_NAME="GNU/Hurd"
278         have_ld_version_script=yes
279         ;;
280     *)
281         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
282         ;;
283 esac
284 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
285                    [A human readable text with the name of the OS])
286 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
287
288
289 dnl  Fixme: Are these the best flags for OpenBSD????
290 case "${target}" in
291     *-openbsd* | *-netbsd*)
292         NAME_OF_DEV_RANDOM="/dev/srandom"
293         NAME_OF_DEV_URANDOM="/dev/urandom"
294 #       DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
295         ;;
296
297     *-solaris* | *-irix* | *-dec-osf* )
298         NAME_OF_DEV_RANDOM="/dev/random"
299         NAME_OF_DEV_URANDOM="/dev/random"
300 #       DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
301         ;;
302
303     *)
304         NAME_OF_DEV_RANDOM="/dev/random"
305         NAME_OF_DEV_URANDOM="/dev/urandom"
306         # -shared is a gcc-ism.  Find pic flags from GNUPG_CHECK_PIC.
307 #        if test -n "$GCC" ; then
308 #           DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"                            
309 #        else
310 #           DYNLINK_MOD_CFLAGS="$CFLAGS_PIC"
311 #        fi
312         ;;
313 esac
314 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
315                    [defined to the name of the strong random device])
316 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
317                    [defined to the name of the weaker random device])
318 AC_SUBST(MPI_OPT_FLAGS)
319
320
321 dnl Checks for libraries.
322
323 USE_NLS=no
324 USE_INCLUDED_LIBINTL=no
325 AC_SUBST(USE_NLS)
326 AC_SUBST(USE_INCLUDED_LIBINTL)
327
328
329 dnl Solaris needs -lsocket and -lnsl. Unisys system includes
330 dnl gethostbyname in libsocket but needs libnsl for socket.
331 AC_CHECK_LIB(nsl, gethostbyname)
332 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
333 if test x$ac_need_libsocket = x1; then
334     LIBS="$LIBS -lsocket"
335 fi
336 if test x$ac_try_nsl = x1; then
337     AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1)
338     if test x$ac_need_libnsl = x1
339     then
340         LIBS="$LIBS -lnsl"
341     fi
342 fi
343
344
345 dnl Checks for header files.
346 AC_HEADER_STDC
347 AC_CHECK_HEADERS(unistd.h langinfo.h termio.h sys/select.h)
348
349
350 dnl Checks for typedefs, structures, and compiler characteristics.
351 AC_C_CONST
352 AC_C_INLINE
353 AC_TYPE_SIZE_T
354 AC_TYPE_SIGNAL
355 AC_DECL_SYS_SIGLIST
356
357 GNUPG_CHECK_ENDIAN
358
359
360 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
361 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
362 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
363 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
364 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
365
366 AC_CHECK_SIZEOF(unsigned short, 2)
367 AC_CHECK_SIZEOF(unsigned int, 4)
368 AC_CHECK_SIZEOF(unsigned long, 4)
369 AC_CHECK_SIZEOF(unsigned long long, 0)
370
371 if test "$ac_cv_sizeof_unsigned_short" = "0" \
372    || test "$ac_cv_sizeof_unsigned_int" = "0" \
373    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
374     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
375 fi
376
377
378 #
379 # Checks for library functions.
380 #
381 AC_FUNC_VPRINTF
382 dnl We have replacements for these in src/missing-string.c
383 AC_CHECK_FUNCS(stpcpy strsep strlwr strcasecmp)
384 dnl We have replacements for these in src/g10lib.h
385 AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise)
386 dnl Other checks
387 AC_CHECK_FUNCS(strerror tcgetattr rand mmap)
388 AC_CHECK_FUNCS(gettimeofday getrusage gethrtime setrlimit clock_gettime)
389 AC_CHECK_FUNCS(getpagesize strftime nl_langinfo)
390 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fopen64 fstat64)
391
392 GNUPG_CHECK_MLOCK
393 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
394
395
396 # The ATH systems needs to know whether pth or pthreads are available.
397
398 have_pth=no
399 have_pthread=no
400 AC_CHECK_LIB(pth,pth_version,have_pth=yes)
401 if test "$have_pth" = yes; then
402   AC_DEFINE(HAVE_PTH, ,[Define if we have Pth.])
403 fi
404 AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes)
405 if test "$have_pthread" != yes; then
406   AC_CHECK_LIB(c,pthread_create,have_pthread=yes)
407 fi
408 if test "$have_pthread" = yes; then
409   AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.])
410 fi
411 AM_CONDITIONAL(HAVE_PTH, test "$have_pth" = "yes")
412 AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
413
414
415 #
416 # Check whether we can use Linux capabilities as requested
417 #
418 if test "$use_capabilities" = "yes" ; then
419 use_capabilities=no
420 AC_CHECK_HEADERS(sys/capability.h)
421 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
422   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
423   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
424      AC_DEFINE(USE_CAPABILITIES,1,
425                [define if capabilities should be used])
426      LIBS="$LIBS -lcap"
427      use_capabilities=yes
428   fi
429 fi
430 if test "$use_capabilities" = "no" ; then
431     AC_MSG_WARN([[
432 ***
433 *** The use of capabilities on this system is not possible.
434 *** You need a recent Linux kernel and some patches:
435 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
436 ***   fcap-module-990613.tar.gz     (kernel module)
437 ***   libcap-1.92.tar.gz            (user mode library and utilities)
438 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
439 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
440 ***]])
441 fi
442 fi
443
444
445 GNUPG_CHECK_IPC
446 if test "$ac_cv_header_sys_shm_h" = "yes"; then
447   AC_DEFINE(USE_SHM_COPROCESSING,1,
448             [define if the shared memory interface should be made available])
449 fi
450
451 dnl
452 dnl check whether we have a random device
453 dnl
454 if test "$try_dev_random" = yes ; then
455     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
456     [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
457       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
458     if test "$ac_cv_have_dev_random" = yes; then
459         AC_DEFINE(HAVE_DEV_RANDOM,1,
460                  [defined if the system supports a random device] )
461     fi
462 else
463     AC_MSG_CHECKING(for random device)
464     ac_cv_have_dev_random=no
465     AC_MSG_RESULT(has been disabled)
466 fi
467
468 #dnl
469 #dnl and whether this device supports ioctl
470 #dnl (Note, that we should do a real test here)
471 #dnl
472 #if test "$ac_cv_have_dev_random" = yes ; then
473 #    AC_CHECK_HEADERS(linux/random.h)
474 #    AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
475 #      [ if test "$ac_cv_header_linux_random_h" = yes ; then
476 #          ac_cv_have_dev_random_ioctl=yes;
477 #        else
478 #          ac_cv_have_dev_random_ioctl=no;
479 #        fi
480 #      ])
481 #    if test "$ac_cv_have_dev_random_ioctl" = yes; then
482 #        AC_DEFINE(HAVE_DEV_RANDOM_IOCTL,1,
483 #                  [defined if the random device supports some IOCTLs])
484 #    fi
485 #fi
486 #
487
488 dnl
489 dnl Figure out the default linkage mode for cipher modules
490 dnl
491 print_egd_notice=no
492 if test "$use_static_rnd" = default; then
493   if test "$ac_cv_have_dev_random" = yes; then
494       static_random_module="rndlinux"
495   else
496       case "${target}" in
497           *-*-mingw32*)
498               static_random_module="rndw32"
499               AC_DEFINE(USE_STATIC_RNDW32,1,
500                        [At a certain point in the code we need to know that
501                         we use the Windows random module.])
502               ;;
503           i?86-emx-os2|i?86-*-os2*emx)
504               static_random_module="rndos2"
505               ;;
506           m68k-atari-mint)
507               static_random_module="rndatari"
508               ;;
509           i?86-*-msdosdjgpp*)
510               :
511               ;;
512           *)
513               static_random_module="rndunix"
514               print_egd_notice=yes
515              ;;
516       esac
517   fi
518 else
519   if test "$use_static_rnd" = none; then
520     :
521   else
522     static_random_module="rnd$use_static_rnd"
523     if test "$use_static_rnd" = "unix"; then
524         print_egd_notice=yes
525     fi
526   fi
527 fi
528
529
530 dnl
531 dnl Parse the modules list and build the list
532 dnl of static and dymically linked modules
533 dnl
534 dnl (We always need a static rmd160)
535 static_modules="$static_modules rmd160 $static_random_module"
536 STATIC_CIPHER_NAMES=""
537 STATIC_CIPHER_OBJS=""
538 for name in $MODULES_IN_CIPHER; do
539     x="yes"
540     for i in $disallowed_modules; do
541         if test "$name" = "$i" ; then x="no" ; fi
542     done;
543     if test $x = yes; then
544         x="no"
545         for i in $static_modules; do
546             if test "$name" = "$i" ; then
547                 x="yes"
548             fi
549         done;
550         if test $x = yes; then
551             STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
552             STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
553         fi
554
555     fi
556 done
557 AC_MSG_RESULT()
558 AC_SUBST(STATIC_CIPHER_OBJS)
559 AC_SUBST(STATIC_CIPHER_NAMES)
560
561
562 dnl
563 dnl And build the constructor file
564 dnl
565
566 test -d cipher || mkdir cipher
567 cat <<G10EOF >cipher/construct.c
568 /* automatically generated by configure - do not edit */
569
570 G10EOF
571 for name in $STATIC_CIPHER_NAMES; do
572     echo "void _gcry_${name}_constructor(void);" >>cipher/construct.c
573 done
574 AC_MSG_RESULT()
575 cat <<G10EOF >>cipher/construct.c
576
577 void
578 _gcry_cipher_modules_constructor(void)
579 {
580     static int done = 0;
581     if( done )
582         return;
583     done = 1;
584
585 G10EOF
586 for name in $STATIC_CIPHER_NAMES; do
587     echo "   _gcry_${name}_constructor();" >>cipher/construct.c
588 done
589 echo '}' >>cipher/construct.c
590
591
592
593
594 dnl
595 dnl Figure how to link the cipher modules
596 dnl
597 AC_SUBST(STATIC_CIPHER_OBJS)
598
599 #
600 # setup assembler stuff
601 #
602 AC_MSG_CHECKING(for mpi assembler functions)
603 if test -f $srcdir/mpi/config.links ; then
604     . $srcdir/mpi/config.links
605     AC_CONFIG_LINKS("$mpi_ln_list")
606     ac_cv_mpi_mod_list="$mpi_mod_list"
607     ac_cv_mpi_sflags="$mpi_sflags"
608     ac_cv_mpi_config_done="yes"
609     AC_MSG_RESULT(done)
610 else
611     AC_MSG_RESULT(failed)
612     AC_MSG_ERROR([mpi/config.links missing!])
613 fi
614 MPI_MOD_LIST_LO=""
615 MPI_MOD_LIST_O=""
616 if test "$ac_cv_mpi_mod_list" != ""; then
617   for i in $ac_cv_mpi_mod_list; do
618       MPI_MOD_LIST_LO="$MPI_MOD_LIST_LO $i.lo"
619       MPI_MOD_LIST_O="$MPI_MOD_LIST_O $i.o"
620   done
621 fi
622 AC_SUBST(MPI_MOD_LIST_LO)
623 AC_SUBST(MPI_MOD_LIST_O)
624 MPI_SFLAGS="$ac_cv_mpi_sflags"
625 AC_SUBST(MPI_SFLAGS)
626
627 # [not used anymore]
628 ## Set the condtionals for the assembler modules
629 ## Fixme: We should put this into acinclude and write a script
630 ##        which can be run to update this list and the mpi/Makefile
631 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_ADD1, test "$mpi_mod_asm_mpih_add1" = yes )
632 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_SUB1, test "$mpi_mod_asm_mpih_sub1" = yes )
633 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL1, test "$mpi_mod_asm_mpih_mul1" = yes )
634 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL2, test "$mpi_mod_asm_mpih_mul2" = yes )
635 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL3, test "$mpi_mod_asm_mpih_mul3" = yes )
636 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_LSHIFT, test "$mpi_mod_asm_mpih_lshift" = yes )
637 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_RSHIFT, test "$mpi_mod_asm_mpih_rshift" = yes )
638 #AM_CONDITIONAL(MPI_MOD_ASM_UDIV, test "$mpi_mod_asm_udiv" = yes )
639 #AM_CONDITIONAL(MPI_MOD_ASM_UDIV_QRNND, test "$mpi_mod_asm_udiv_qrnnd" = yes )
640 ## And the corresponding conditionals for C
641 #AM_CONDITIONAL(MPI_MOD_C_MPIH_ADD1, test "$mpi_mod_c_mpih_add1" = yes )
642 #AM_CONDITIONAL(MPI_MOD_C_MPIH_SUB1, test "$mpi_mod_c_mpih_sub1" = yes )
643 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL1, test "$mpi_mod_c_mpih_mul1" = yes )
644 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL2, test "$mpi_mod_c_mpih_mul2" = yes )
645 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL3, test "$mpi_mod_c_mpih_mul3" = yes )
646 #AM_CONDITIONAL(MPI_MOD_C_MPIH_LSHIFT, test "$mpi_mod_c_mpih_lshift" = yes )
647 #AM_CONDITIONAL(MPI_MOD_C_MPIH_RSHIFT, test "$mpi_mod_c_mpih_rshift" = yes )
648 #AM_CONDITIONAL(MPI_MOD_C_UDIV, test "$mpi_mod_c_udiv" = yes )
649 #AM_CONDITIONAL(MPI_MOD_C_UDIV_QRNND, test "$mpi_mod_c_udiv_qrnnd" = yes )
650 #
651
652
653 # Allow users to append something to the version string without
654 # flagging it as development version.  The user version part is
655 # considered everything after a dash.
656 changequote(,)dnl
657 tmp_pat='[a-zA-Z]'
658 changequote([,])dnl
659 if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
660     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
661               [Defined if this is not a regular release])
662 fi
663
664 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
665
666 GNUPG_CHECK_GNUMAKE
667
668 if test "$GCC" = yes; then
669     if test "$MAINTAINER_MODE" = "yes"; then
670         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
671     else
672         CFLAGS="$CFLAGS -Wall"
673     fi
674 fi
675
676 dnl
677 dnl Make the version number in src/gcrypt.h the same as the one here.
678 dnl (this is easier than to have a *.in file just for one substitution)
679 dnl
680 GNUPG_FIX_HDR_VERSION([src/gcrypt.h], GCRYPT_VERSION)
681
682 LIBGCRYPT_CONFIG_LIBS="-lgcrypt"
683 LIBGCRYPT_CONFIG_CFLAGS=""
684 AC_SUBST(LIBGCRYPT_CONFIG_LIBS)
685 AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS)
686
687 AC_CONFIG_COMMANDS([gcrypt-defs],[[
688 chmod +x src/libgcrypt-config
689 cat >gcrypt-defs.tmp <<G10EOF
690 /* Generated automatically by configure */
691 #ifdef HAVE_DRIVE_LETTERS
692   #define GNUPG_LOCALEDIR "c:/lib/gnupg/locale"
693   #define GNUPG_LIBDIR  "c:/lib/gnupg"
694   #define GNUPG_DATADIR "c:/lib/gnupg"
695   #define GNUPG_HOMEDIR "c:/gnupg-test"
696 #else
697   #define GNUPG_LOCALEDIR "${prefix}/${DATADIRNAME}/locale"
698   #define GNUPG_LIBDIR  "${libdir}/gnupg"
699   #define GNUPG_DATADIR "${datadir}/gnupg"
700   #ifdef __VMS
701     #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
702   #else
703     #define GNUPG_HOMEDIR "~/.gnupg-test" 
704   #endif
705 #endif
706 G10EOF
707 if cmp -s gcrypt-defs.h gcrypt-defs.tmp 2>/dev/null; then
708     echo "gcrypt-defs.h is unchanged"
709     rm -f gcrypt-defs.tmp
710 else
711     rm -f gcrypt-defs.h
712     mv gcrypt-defs.tmp gcrypt-defs.h
713     echo "gcrypt-defs.h created"
714 fi
715 ]],[[
716 prefix=$prefix
717 exec_prefix=$exec_prefix
718 libdir=$libdir
719 datadir=$datadir
720 DATADIRNAME=$DATADIRNAME
721 ]])
722
723
724 AC_CONFIG_FILES([
725 Makefile
726 mpi/Makefile
727 cipher/Makefile
728 doc/Makefile
729 doc/version.sgml
730 src/Makefile
731 src/libgcrypt-config
732 tests/Makefile
733 w32-dll/Makefile
734 ])
735 AC_OUTPUT
736
737 # Give some feedback
738 echo
739
740 if test "$print_egd_notice" = "yes"; then
741 cat <<G10EOF
742   
743    The performance of the Unix random gatherer module (rndunix) is not
744    very good and it does not keep the entropy pool over multiple
745    invocations of GnuPG.  The suggested way to overcome this problem is
746    to use the
747   
748                  Entropy Gathering Daemon (EGD)
749   
750    which provides a entropy source for the whole system.  It is written
751    in Perl and available at the GnuPG FTP servers.  To enable EGD you
752    should rerun configure with the option "--enable-static-rnd=egd".
753    For more information consult the GnuPG webpages:
754   
755              http://www.gnupg.org/download.html#egd
756
757 G10EOF
758 fi
759
760 warn=""
761 for file in "$static_random_module"; do
762   case "$file" in rndunix | rndw32) warn="$warn $file";; esac
763 done
764 if test -n "$warn"; then
765   echo "Please note that you are building a version of Libgcrypt with"
766   echo "  $warn"
767   echo "included.  These parts are licensed under the GPL and thus the"
768   echo "use of this library has to comply with the conditions of the GPL."
769 fi
770