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