* configure.ac (MODULES_IN_CIPHER): Add md4.c. By Simon Josefsson.
[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)
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=5
31 LIBGCRYPT_LT_AGE=4
32 LIBGCRYPT_LT_REVISION=2
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
257 case "${target}" in
258     *-*-mingw32*)
259         PRINTABLE_OS_NAME="MingW32"
260         ;;
261     i?86-emx-os2 | i?86-*-os2*emx )
262         PRINTABLE_OS_NAME="OS/2"
263         ;;
264     i?86-*-msdosdjgpp*)
265         PRINTABLE_OS_NAME="MSDOS/DJGPP"
266         try_dynload=no
267         ;;
268     *-linux*)
269         PRINTABLE_OS_NAME="GNU/Linux"
270         ;;
271 dnl let that after linux to avoid gnu-linux problems
272     *-gnu*)
273         PRINTABLE_OS_NAME="GNU/Hurd"
274         ;;
275     *)
276         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
277         ;;
278 esac
279 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
280                    [A human readable text with the name of the OS])
281
282 dnl  Fixme: Are these the best flags for OpenBSD????
283 case "${target}" in
284     *-openbsd* | *-netbsd*)
285         NAME_OF_DEV_RANDOM="/dev/srandom"
286         NAME_OF_DEV_URANDOM="/dev/urandom"
287 #       DYNLINK_MOD_CFLAGS="-shared -rdynamic $CFLAGS_PIC -Wl,-Bshareable -Wl,-x"
288         ;;
289
290     *-solaris* | *-irix* | *-dec-osf* )
291         NAME_OF_DEV_RANDOM="/dev/random"
292         NAME_OF_DEV_URANDOM="/dev/random"
293 #       DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
294         ;;
295
296     *)
297         NAME_OF_DEV_RANDOM="/dev/random"
298         NAME_OF_DEV_URANDOM="/dev/urandom"
299         # -shared is a gcc-ism.  Find pic flags from GNUPG_CHECK_PIC.
300 #        if test -n "$GCC" ; then
301 #           DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"                            
302 #        else
303 #           DYNLINK_MOD_CFLAGS="$CFLAGS_PIC"
304 #        fi
305         ;;
306 esac
307 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
308                    [defined to the name of the strong random device])
309 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
310                    [defined to the name of the weaker random device])
311 AC_SUBST(MPI_OPT_FLAGS)
312
313
314 dnl Checks for libraries.
315
316 USE_NLS=no
317 USE_INCLUDED_LIBINTL=no
318 AC_SUBST(USE_NLS)
319 AC_SUBST(USE_INCLUDED_LIBINTL)
320
321
322 dnl Solaris needs -lsocket and -lnsl. Unisys system includes
323 dnl gethostbyname in libsocket but needs libnsl for socket.
324 AC_CHECK_LIB(nsl, gethostbyname)
325 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
326 if test x$ac_need_libsocket = x1; then
327     LIBS="$LIBS -lsocket"
328 fi
329 if test x$ac_try_nsl = x1; then
330     AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1)
331     if test x$ac_need_libnsl = x1
332     then
333         LIBS="$LIBS -lnsl"
334     fi
335 fi
336
337
338 dnl Checks for header files.
339 AC_HEADER_STDC
340 AC_CHECK_HEADERS(unistd.h langinfo.h termio.h sys/select.h)
341
342
343 dnl Checks for typedefs, structures, and compiler characteristics.
344 AC_C_CONST
345 AC_C_INLINE
346 AC_TYPE_SIZE_T
347 AC_TYPE_SIGNAL
348 AC_DECL_SYS_SIGLIST
349
350 GNUPG_CHECK_ENDIAN
351
352
353 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
354 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
355 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
356 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
357 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
358
359 AC_CHECK_SIZEOF(unsigned short, 2)
360 AC_CHECK_SIZEOF(unsigned int, 4)
361 AC_CHECK_SIZEOF(unsigned long, 4)
362 AC_CHECK_SIZEOF(unsigned long long, 0)
363
364 if test "$ac_cv_sizeof_unsigned_short" = "0" \
365    || test "$ac_cv_sizeof_unsigned_int" = "0" \
366    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
367     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
368 fi
369
370
371 #
372 # Checks for library functions.
373 #
374 AC_FUNC_VPRINTF
375 dnl We have replacements for these in src/missing-string.c
376 AC_CHECK_FUNCS(stpcpy strsep strlwr strcasecmp)
377 dnl We have replacements for these in src/g10lib.h
378 AC_CHECK_FUNCS(strtoul memmove stricmp atexit raise)
379 dnl Other checks
380 AC_CHECK_FUNCS(strerror tcgetattr rand mmap)
381 AC_CHECK_FUNCS(gettimeofday getrusage gethrtime setrlimit clock_gettime)
382 AC_CHECK_FUNCS(getpagesize strftime nl_langinfo)
383 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask fopen64 fstat64)
384
385 GNUPG_CHECK_MLOCK
386 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
387
388
389 # The ATH systems needs to know whether pth or pthreads are available.
390
391 have_pth=no
392 have_pthread=no
393 AC_CHECK_LIB(pth,pth_version,have_pth=yes)
394 if test "$have_pth" = yes; then
395   AC_DEFINE(HAVE_PTH, ,[Define if we have Pth.])
396 fi
397 AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes)
398 if test "$have_pthread" = yes; then
399   AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.])
400 fi
401 AM_CONDITIONAL(HAVE_PTH, test "$have_pth" = "yes")
402 AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
403
404
405 #
406 # Check whether we can use Linux capabilities as requested
407 #
408 if test "$use_capabilities" = "yes" ; then
409 use_capabilities=no
410 AC_CHECK_HEADERS(sys/capability.h)
411 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
412   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
413   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
414      AC_DEFINE(USE_CAPABILITIES,1,
415                [define if capabilities should be used])
416      LIBS="$LIBS -lcap"
417      use_capabilities=yes
418   fi
419 fi
420 if test "$use_capabilities" = "no" ; then
421     AC_MSG_WARN([[
422 ***
423 *** The use of capabilities on this system is not possible.
424 *** You need a recent Linux kernel and some patches:
425 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
426 ***   fcap-module-990613.tar.gz     (kernel module)
427 ***   libcap-1.92.tar.gz            (user mode library and utilities)
428 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
429 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
430 ***]])
431 fi
432 fi
433
434
435 GNUPG_CHECK_IPC
436 if test "$ac_cv_header_sys_shm_h" = "yes"; then
437   AC_DEFINE(USE_SHM_COPROCESSING,1,
438             [define if the shared memory interface should be made available])
439 fi
440
441 dnl
442 dnl check whether we have a random device
443 dnl
444 if test "$try_dev_random" = yes ; then
445     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
446     [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
447       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
448     if test "$ac_cv_have_dev_random" = yes; then
449         AC_DEFINE(HAVE_DEV_RANDOM,1,
450                  [defined if the system supports a random device] )
451     fi
452 else
453     AC_MSG_CHECKING(for random device)
454     ac_cv_have_dev_random=no
455     AC_MSG_RESULT(has been disabled)
456 fi
457
458 #dnl
459 #dnl and whether this device supports ioctl
460 #dnl (Note, that we should do a real test here)
461 #dnl
462 #if test "$ac_cv_have_dev_random" = yes ; then
463 #    AC_CHECK_HEADERS(linux/random.h)
464 #    AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
465 #      [ if test "$ac_cv_header_linux_random_h" = yes ; then
466 #          ac_cv_have_dev_random_ioctl=yes;
467 #        else
468 #          ac_cv_have_dev_random_ioctl=no;
469 #        fi
470 #      ])
471 #    if test "$ac_cv_have_dev_random_ioctl" = yes; then
472 #        AC_DEFINE(HAVE_DEV_RANDOM_IOCTL,1,
473 #                  [defined if the random device supports some IOCTLs])
474 #    fi
475 #fi
476 #
477
478 dnl
479 dnl Figure out the default linkage mode for cipher modules
480 dnl
481 print_egd_notice=no
482 if test "$use_static_rnd" = default; then
483   if test "$ac_cv_have_dev_random" = yes; then
484       static_random_module="rndlinux"
485   else
486       case "${target}" in
487           *-*-mingw32*)
488               static_random_module="rndw32"
489               AC_DEFINE(USE_STATIC_RNDW32,1,
490                        [At a certain point in the code we need to know that
491                         we use the Windows random module.])
492               ;;
493           i?86-emx-os2|i?86-*-os2*emx)
494               static_random_module="rndos2"
495               ;;
496           m68k-atari-mint)
497               static_random_module="rndatari"
498               ;;
499           i?86-*-msdosdjgpp*)
500               :
501               ;;
502           *)
503               static_random_module="rndunix"
504               print_egd_notice=yes
505              ;;
506       esac
507   fi
508 else
509   if test "$use_static_rnd" = none; then
510     :
511   else
512     static_random_module="rnd$use_static_rnd"
513     if test "$use_static_rnd" = "unix"; then
514         print_egd_notice=yes
515     fi
516   fi
517 fi
518
519
520 dnl
521 dnl Parse the modules list and build the list
522 dnl of static and dymically linked modules
523 dnl
524 dnl (We always need a static rmd160)
525 static_modules="$static_modules rmd160 $static_random_module"
526 STATIC_CIPHER_NAMES=""
527 STATIC_CIPHER_OBJS=""
528 for name in $MODULES_IN_CIPHER; do
529     x="yes"
530     for i in $disallowed_modules; do
531         if test "$name" = "$i" ; then x="no" ; fi
532     done;
533     if test $x = yes; then
534         x="no"
535         for i in $static_modules; do
536             if test "$name" = "$i" ; then
537                 x="yes"
538             fi
539         done;
540         if test $x = yes; then
541             STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
542             STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
543         fi
544
545     fi
546 done
547 AC_MSG_RESULT()
548 AC_SUBST(STATIC_CIPHER_OBJS)
549 AC_SUBST(STATIC_CIPHER_NAMES)
550
551
552 dnl
553 dnl And build the constructor file
554 dnl
555
556 test -d cipher || mkdir cipher
557 cat <<G10EOF >cipher/construct.c
558 /* automatically generated by configure - do not edit */
559
560 G10EOF
561 for name in $STATIC_CIPHER_NAMES; do
562     echo "void _gcry_${name}_constructor(void);" >>cipher/construct.c
563 done
564 AC_MSG_RESULT()
565 cat <<G10EOF >>cipher/construct.c
566
567 void
568 _gcry_cipher_modules_constructor(void)
569 {
570     static int done = 0;
571     if( done )
572         return;
573     done = 1;
574
575 G10EOF
576 for name in $STATIC_CIPHER_NAMES; do
577     echo "   _gcry_${name}_constructor();" >>cipher/construct.c
578 done
579 echo '}' >>cipher/construct.c
580
581
582
583
584 dnl
585 dnl Figure how to link the cipher modules
586 dnl
587 AC_SUBST(STATIC_CIPHER_OBJS)
588
589 #
590 # setup assembler stuff
591 #
592 AC_MSG_CHECKING(for mpi assembler functions)
593 if test -f $srcdir/mpi/config.links ; then
594     . $srcdir/mpi/config.links
595     AC_CONFIG_LINKS("$mpi_ln_list")
596     ac_cv_mpi_mod_list="$mpi_mod_list"
597     ac_cv_mpi_sflags="$mpi_sflags"
598     ac_cv_mpi_config_done="yes"
599     AC_MSG_RESULT(done)
600 else
601     AC_MSG_RESULT(failed)
602     AC_MSG_ERROR([mpi/config.links missing!])
603 fi
604 MPI_MOD_LIST_LO=""
605 MPI_MOD_LIST_O=""
606 if test "$ac_cv_mpi_mod_list" != ""; then
607   for i in $ac_cv_mpi_mod_list; do
608       MPI_MOD_LIST_LO="$MPI_MOD_LIST_LO $i.lo"
609       MPI_MOD_LIST_O="$MPI_MOD_LIST_O $i.o"
610   done
611 fi
612 AC_SUBST(MPI_MOD_LIST_LO)
613 AC_SUBST(MPI_MOD_LIST_O)
614 MPI_SFLAGS="$ac_cv_mpi_sflags"
615 AC_SUBST(MPI_SFLAGS)
616
617 # [not used anymore]
618 ## Set the condtionals for the assembler modules
619 ## Fixme: We should put this into acinclude and write a script
620 ##        which can be run to update this list and the mpi/Makefile
621 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_ADD1, test "$mpi_mod_asm_mpih_add1" = yes )
622 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_SUB1, test "$mpi_mod_asm_mpih_sub1" = yes )
623 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL1, test "$mpi_mod_asm_mpih_mul1" = yes )
624 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL2, test "$mpi_mod_asm_mpih_mul2" = yes )
625 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_MUL3, test "$mpi_mod_asm_mpih_mul3" = yes )
626 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_LSHIFT, test "$mpi_mod_asm_mpih_lshift" = yes )
627 #AM_CONDITIONAL(MPI_MOD_ASM_MPIH_RSHIFT, test "$mpi_mod_asm_mpih_rshift" = yes )
628 #AM_CONDITIONAL(MPI_MOD_ASM_UDIV, test "$mpi_mod_asm_udiv" = yes )
629 #AM_CONDITIONAL(MPI_MOD_ASM_UDIV_QRNND, test "$mpi_mod_asm_udiv_qrnnd" = yes )
630 ## And the corresponding conditionals for C
631 #AM_CONDITIONAL(MPI_MOD_C_MPIH_ADD1, test "$mpi_mod_c_mpih_add1" = yes )
632 #AM_CONDITIONAL(MPI_MOD_C_MPIH_SUB1, test "$mpi_mod_c_mpih_sub1" = yes )
633 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL1, test "$mpi_mod_c_mpih_mul1" = yes )
634 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL2, test "$mpi_mod_c_mpih_mul2" = yes )
635 #AM_CONDITIONAL(MPI_MOD_C_MPIH_MUL3, test "$mpi_mod_c_mpih_mul3" = yes )
636 #AM_CONDITIONAL(MPI_MOD_C_MPIH_LSHIFT, test "$mpi_mod_c_mpih_lshift" = yes )
637 #AM_CONDITIONAL(MPI_MOD_C_MPIH_RSHIFT, test "$mpi_mod_c_mpih_rshift" = yes )
638 #AM_CONDITIONAL(MPI_MOD_C_UDIV, test "$mpi_mod_c_udiv" = yes )
639 #AM_CONDITIONAL(MPI_MOD_C_UDIV_QRNND, test "$mpi_mod_c_udiv_qrnnd" = yes )
640 #
641
642
643 # Allow users to append something to the version string without
644 # flagging it as development version.  The user version part is
645 # considered everything after a dash.
646 changequote(,)dnl
647 tmp_pat='[a-zA-Z]'
648 changequote([,])dnl
649 if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
650     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
651               [Defined if this is not a regular release])
652 fi
653
654 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
655
656 GNUPG_CHECK_GNUMAKE
657
658 if test "$GCC" = yes; then
659     if test "$MAINTAINER_MODE" = "yes"; then
660         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
661     else
662         CFLAGS="$CFLAGS -Wall"
663     fi
664 fi
665
666 dnl
667 dnl Make the version number in src/gcrypt.h the same as the one here.
668 dnl (this is easier than to have a *.in file just for one substitution)
669 dnl
670 GNUPG_FIX_HDR_VERSION([src/gcrypt.h], GCRYPT_VERSION)
671
672 LIBGCRYPT_CONFIG_LIBS="-lgcrypt"
673 LIBGCRYPT_CONFIG_CFLAGS=""
674 AC_SUBST(LIBGCRYPT_CONFIG_LIBS)
675 AC_SUBST(LIBGCRYPT_CONFIG_CFLAGS)
676
677 AC_CONFIG_COMMANDS([gcrypt-defs],[[
678 chmod +x src/libgcrypt-config
679 cat >gcrypt-defs.tmp <<G10EOF
680 /* Generated automatically by configure */
681 #ifdef HAVE_DRIVE_LETTERS
682   #define GNUPG_LOCALEDIR "c:/lib/gnupg/locale"
683   #define GNUPG_LIBDIR  "c:/lib/gnupg"
684   #define GNUPG_DATADIR "c:/lib/gnupg"
685   #define GNUPG_HOMEDIR "c:/gnupg-test"
686 #else
687   #define GNUPG_LOCALEDIR "${prefix}/${DATADIRNAME}/locale"
688   #define GNUPG_LIBDIR  "${libdir}/gnupg"
689   #define GNUPG_DATADIR "${datadir}/gnupg"
690   #ifdef __VMS
691     #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
692   #else
693     #define GNUPG_HOMEDIR "~/.gnupg-test" 
694   #endif
695 #endif
696 G10EOF
697 if cmp -s gcrypt-defs.h gcrypt-defs.tmp 2>/dev/null; then
698     echo "gcrypt-defs.h is unchanged"
699     rm -f gcrypt-defs.tmp
700 else
701     rm -f gcrypt-defs.h
702     mv gcrypt-defs.tmp gcrypt-defs.h
703     echo "gcrypt-defs.h created"
704 fi
705 ]],[[
706 prefix=$prefix
707 exec_prefix=$exec_prefix
708 libdir=$libdir
709 datadir=$datadir
710 DATADIRNAME=$DATADIRNAME
711 ]])
712
713
714 AC_CONFIG_FILES([
715 Makefile
716 mpi/Makefile
717 cipher/Makefile
718 doc/Makefile
719 doc/version.sgml
720 src/Makefile
721 src/libgcrypt-config
722 tests/Makefile
723 w32-dll/Makefile
724 ])
725 AC_OUTPUT
726
727 # Give some feedback
728 echo
729
730 if test "$print_egd_notice" = "yes"; then
731 cat <<G10EOF
732   
733    The performance of the Unix random gatherer module (rndunix) is not
734    very good and it does not keep the entropy pool over multiple
735    invocations of GnuPG.  The suggested way to overcome this problem is
736    to use the
737   
738                  Entropy Gathering Daemon (EGD)
739   
740    which provides a entropy source for the whole system.  It is written
741    in Perl and available at the GnuPG FTP servers.  To enable EGD you
742    should rerun configure with the option "--enable-static-rnd=egd".
743    For more information consult the GnuPG webpages:
744   
745              http://www.gnupg.org/download.html#egd
746
747 G10EOF
748 fi
749
750 warn=""
751 for file in "$static_random_module"; do
752   case "$file" in rndunix | rndw32) warn="$warn $file";; esac
753 done
754 if test -n "$warn"; then
755   echo "Please note that you are building a version of Libgcrypt with"
756   echo "  $warn"
757   echo "included.  These parts are licensed under the GPL and thus the"
758   echo "use of this library has to comply with the conditions of the GPL."
759 fi
760