See ChangeLog: Fri Dec 31 14:06:56 CET 1999 Werner Koch
[libgcrypt.git] / configure.in
1 dnl
2 dnl Configure template for GNUPG
3 dnl
4 dnl (Process this file with autoconf to produce a configure script.)
5 AC_REVISION($Revision$)dnl
6
7 dnl Must reset CDPATH so that bash's cd does not print to stdout
8 CDPATH=
9
10 AC_PREREQ(2.13)
11 AC_INIT(g10/g10.c)
12 AC_CONFIG_AUX_DIR(scripts)
13 AM_CONFIG_HEADER(config.h)
14
15
16 VERSION=`cat $srcdir/VERSION`
17 PACKAGE=gnupg
18 ALL_LINGUAS="de es_ES fr it pl pt_BR pt_PT ru"
19 static_modules="sha1 md5 rmd160"
20 AC_SUBST(VERSION)
21 AC_SUBST(PACKAGE)
22 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
23 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
24
25 MODULES_IN_CIPHER=`awk '/# MODULES: / { for(i=3;i<=NF;i++) print $i}' \
26                                                 $srcdir/cipher/Makefile.am`
27
28 dnl
29 dnl  Check for random module options
30 dnl
31 dnl  Fixme: get the list of available modules from MODULES_IN_CIPHER
32 dnl         and check against this list
33
34 AC_MSG_CHECKING([which static random module to use])
35 AC_ARG_ENABLE(static-rnd,
36     [  --enable-static-rnd=[egd|unix|linux|none]  ],
37 [use_static_rnd=$enableval], [use_static_rnd=default] )
38
39 if test "$use_static_rnd" = no; then
40     use_static_rnd=default
41 fi
42
43 case "$use_static_rnd" in
44     egd | linux | unix | none | default )
45       AC_MSG_RESULT($use_static_rnd)
46       ;;
47     * )
48       AC_MSG_RESULT(invalid argument)
49       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
50       ;;
51 esac
52
53
54
55 dnl
56 dnl See whether the user wants to disable checking for /dev/random
57
58 AC_MSG_CHECKING([whether use of /dev/random is requested])
59 AC_ARG_ENABLE(dev-random,
60 [  --disable-dev-random    disable the use of dev random],
61     try_dev_random=$enableval, try_dev_random=yes)
62 AC_MSG_RESULT($try_dev_random)
63
64
65 dnl
66 dnl  Check other options
67 dnl
68
69 AC_MSG_CHECKING([whether use of extensions is requested])
70 AC_ARG_ENABLE(dynload,
71 [  --disable-dynload       disable use of extensions],
72     try_dynload=$enableval, try_dynload=yes)
73 AC_MSG_RESULT($try_dynload)
74
75 AC_MSG_CHECKING([whether assembler modules are requested])
76 AC_ARG_ENABLE(asm,
77 [  --disable-asm           do not use assembler modules],
78      try_asm_modules=$enableval, try_asm_modules=yes)
79 AC_MSG_RESULT($try_asm_modules)
80
81 AC_MSG_CHECKING([whether memory debugging is requested])
82 AC_ARG_ENABLE(m-debug,
83 [  --enable-m-debug        enable debugging of memory allocation],
84 use_m_debug=$enableval, use_m_debug=no)
85 AC_MSG_RESULT($use_m_debug)
86 if test "$use_m_debug" = yes; then
87     AC_DEFINE(M_DEBUG)
88     use_m_guard=yes
89 else
90     AC_MSG_CHECKING([whether memory guard is requested])
91     AC_ARG_ENABLE(m-guard,
92     [  --enable-m-guard        enable memory guard facility],
93     use_m_guard=$enableval, use_m_guard=no)
94     AC_MSG_RESULT($use_m_guard)
95 fi
96 if test "$use_m_guard" = yes ; then
97     AC_DEFINE(M_GUARD)
98 fi
99
100
101 AC_MSG_CHECKING([whether included zlib is requested])
102 AC_ARG_WITH(included-zlib,
103     [  --with-included-zlib    use the zlib code included here],
104 [g10_force_zlib=yes], [g10_force_zlib=no] )
105 AC_MSG_RESULT($g10_force_zlib)
106
107 dnl
108 dnl Check wether we want to compile libgcrypt
109 dnl
110 AC_MSG_CHECKING([whether compilation of libgcrypt is requested])
111 AC_ARG_ENABLE(libgcrypt,
112     [  --enable-libgcrypt      compile the libgcrypt [default=yes]],
113 [compile_libgcrypt="$enableval"],[compile_libgcrypt=no])
114 AC_MSG_RESULT($compile_libgcrypt)
115 AM_CONDITIONAL(COMPILE_LIBGCRYPT, test x$compile_libgcrypt = xyes)
116
117
118 dnl
119 dnl Check whether we want to use Linux capabilities
120 dnl
121 AC_MSG_CHECKING([whether use of capabilities is requested])
122 AC_ARG_WITH(capabilities,
123     [  --with-capabilities     use linux capabilities [default=no]],
124 [use_capabilities="$withval"],[use_capabilities=no])
125 AC_MSG_RESULT($use_capabilities)
126
127
128
129
130
131 AM_MAINTAINER_MODE
132
133 dnl Checks for programs.
134
135 AC_CANONICAL_SYSTEM
136 dnl
137 dnl Setup some stuff depending on host/target.
138 dnl
139 case "${target}" in
140     *-*-mingw32)
141         # special stuff for Windoze NT
142         # Do we need to set cross_compiling here or is it sufficient
143         # to rely on AC_PROG_CC which is called later?
144         cross_compiling=yes
145         CC="${target}-gcc"
146         CPP="${target}-gcc -E"
147         RANLIB="${target}-ranlib"
148         ;;
149     *)
150        ;;
151 esac
152
153 AC_ARG_PROGRAM
154 AC_PROG_MAKE_SET
155 AM_SANITY_CHECK
156 missing_dir=`cd $ac_aux_dir && pwd`
157 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
158 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
159 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
160 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
161 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
162 AC_PROG_CC
163 AC_PROG_CPP
164 AC_ISC_POSIX
165 AC_PROG_INSTALL
166 AC_PROG_AWK
167 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
168 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
169
170
171 dnl
172 dnl Build shared libraries only when compilation of libgcrypt
173 dnl has been requested
174 dnl
175 dnl AM_DISABLE_STATIC
176 dnl enable_shared="$compile_libgcrypt"
177 AM_PROG_LIBTOOL
178
179
180 MPI_OPT_FLAGS=""
181 if test "$GCC" = yes; then
182     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
183 fi
184
185
186 try_gettext=yes
187 try_gdbm=yes
188 case "${target}" in
189     *-*-mingw32)
190         # special stuff for Windoze NT
191         ac_cv_have_dev_random=no
192         AC_DEFINE(USE_ONLY_8DOT3)
193         AC_DEFINE(HAVE_DRIVE_LETTERS)
194         AC_DEFINE(HAVE_DOSISH_SYSTEM)
195         AC_DEFINE(USE_SIMPLE_GETTEXT)
196         try_gettext="no"
197         try_gdbm="no"
198         ;;
199     i?86-emx-os2 | i?86-*-os2*emx )
200         # OS/2 with the EMX environment
201         ac_cv_have_dev_random=no
202         AC_DEFINE(HAVE_DRIVE_LETTERS)
203         AC_DEFINE(HAVE_DOSISH_SYSTEM)
204         try_gettext="no"
205         try_gdbm="no"
206         ;;
207
208     i?86-*-msdosdjgpp*)
209         # DOS with the DJGPP 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         try_gdbm="no"
215         ;;
216
217     *-*-hpux*)
218         if test -z "$GCC" ; then
219             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
220         fi
221         ;;
222     *-dec-osf4*)
223         if test -z "$GCC" ; then
224             # Suppress all warnings
225             # to get rid of the unsigned/signed char mismatch warnings.
226             CFLAGS="$CFLAGS -w"
227         fi
228         ;;
229     m68k-atari-mint)
230         ;;
231     *)
232        ;;
233 esac
234
235 AC_SUBST(MPI_OPT_FLAGS)
236 GNUPG_SYS_SYMBOL_UNDERSCORE
237 GNUPG_CHECK_PIC
238 GNUPG_CHECK_RDYNAMIC
239 if test "$NO_PIC" = yes; then
240     try_dynload=no
241 fi
242
243
244 case "${target}" in
245     *-*-mingw32)
246         PRINTABLE_OS_NAME="MingW32"
247         ;;
248     i?86-emx-os2 | i?86-*-os2*emx )
249         PRINTABLE_OS_NAME="OS/2"
250         ;;
251     i?86-*-msdosdjgpp*)
252         PRINTABLE_OS_NAME="MSDOS/DJGPP"
253         try_dynload=no
254         ;;
255     *-linux*)
256         PRINTABLE_OS_NAME="GNU/Linux"
257         ;;
258 dnl let that after linux to avoid gnu-linux problems
259     *-gnu*)
260         PRINTABLE_OS_NAME="GNU/Hurd"
261         ;;
262     *)
263         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
264         ;;
265 esac
266 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")
267
268 dnl  Fixme: Are these the best flags for OpenBSD????
269 dnl (I have removed the -lc from * ...CFLAGS for test purposes.)
270 case "${target}" in
271     *-openbsd*)
272         NAME_OF_DEV_RANDOM="/dev/srandom"
273         NAME_OF_DEV_URANDOM="/dev/urandom"
274         DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
275         ;;
276     *)
277         NAME_OF_DEV_RANDOM="/dev/random"
278         NAME_OF_DEV_URANDOM="/dev/urandom"
279         DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
280         ;;
281 esac
282 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
283 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM")
284 AC_SUBST(MPI_OPT_FLAGS)
285
286
287 dnl Checks for libraries.
288
289 if test "$try_gettext" = yes; then
290 AM_GNU_GETTEXT
291 else
292 USE_NLS=no
293 USE_INCLUDED_LIBINTL=no
294 AC_SUBST(USE_NLS)
295 AC_SUBST(USE_INCLUDED_LIBINTL)
296 fi
297
298 dnl
299 dnl There are lot of misconfigured systems.  We include
300 dnl gdbm support only if the lib and the header is installed.
301 dnl
302 if test "$try_gdbm" = yes; then
303 AC_CHECK_HEADERS(gdbm.h)
304 if test "$ac_cv_header_gdbm_h" = yes ; then
305   AC_CHECK_LIB(gdbm,gdbm_firstkey)
306 fi
307 fi
308
309
310 dnl Solaris needs -lsocket and -lnsl. Unisys system includes
311 dnl gethostbyname in libsocket but needs libnsl for socket.
312 AC_CHECK_LIB(nsl, gethostbyname)
313 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
314 if test x$ac_need_libsocket = x1; then
315     LIBS="$LIBS -lsocket"
316 fi
317 if test x$ac_try_nsl = x1; then
318     AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1)
319     if test x$ac_need_libnsl = x1
320     then
321         LIBS="$LIBS -lnsl"
322     fi
323 fi
324
325
326 if test "$try_dynload" = yes ; then
327   AC_CHECK_LIB(dl,dlopen)
328   if test "$ac_cv_lib_dl_dlopen" = "yes"; then
329     AC_DEFINE(USE_DYNAMIC_LINKING)
330     AC_DEFINE(HAVE_DL_DLOPEN)
331     DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
332     use_gnupg_extensions=yes
333   else
334     AC_CHECK_LIB(c,dlopen)
335     if test "$ac_cv_lib_c_dlopen" = "yes"; then
336       AC_DEFINE(USE_DYNAMIC_LINKING)
337       AC_DEFINE(HAVE_DL_DLOPEN)
338       DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
339       use_gnupg_extensions=yes
340     else
341       AC_CHECK_LIB(dld,shl_load)
342       if test "$ac_cv_lib_dld_shl_load" = "yes"; then
343         AC_DEFINE(USE_DYNAMIC_LINKING)
344         AC_DEFINE(HAVE_DL_SHL_LOAD)
345         DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
346         use_gnupg_extensions=yes
347 dnl -----------------
348 dnl  DLD is not ready for use. So I better disable this test
349 dnl
350 dnl    AC_CHECK_LIB(dld,dld_link)
351 dnl    if test "$ac_cv_lib_dld_dld_link" = "yes"; then
352 dnl      AC_DEFINE(USE_DYNAMIC_LINKING)
353 dnl      AC_DEFINE(HAVE_DLD_DLD_LINK)
354 dnl      DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
355 dnl      use_gnupg_extensions=yes
356 dnl ---------------
357       fi
358     fi
359   fi
360 else
361   AC_MSG_CHECKING(for dynamic loading)
362   DYNLINK_LDFLAGS=
363   DYNLINK_MOD_CFLAGS=
364   use_gnupg_extensions=no
365   AC_MSG_RESULT(has been disabled)
366 fi
367
368 AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes )
369 AC_SUBST(DYNLINK_LDFLAGS)
370 AC_SUBST(DYNLINK_MOD_CFLAGS)
371
372
373 dnl Checks for header files.
374 AC_HEADER_STDC
375 AC_CHECK_HEADERS(unistd.h langinfo.h)
376
377
378 dnl Checks for typedefs, structures, and compiler characteristics.
379 AC_C_CONST
380 AC_C_INLINE
381 AC_TYPE_SIZE_T
382 AC_TYPE_SIGNAL
383 AC_DECL_SYS_SIGLIST
384
385 GNUPG_CHECK_ENDIAN
386
387
388 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
389 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
390 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
391 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
392 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
393
394 AC_CHECK_SIZEOF(unsigned short, 2)
395 AC_CHECK_SIZEOF(unsigned int, 4)
396 AC_CHECK_SIZEOF(unsigned long, 4)
397
398 if test "$ac_cv_sizeof_unsigned_short" = "0" \
399    || test "$ac_cv_sizeof_unsigned_int" = "0" \
400    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
401     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
402 fi
403
404
405
406 dnl Checks for library functions.
407 AC_FUNC_VPRINTF
408 AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap)
409 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
410 AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo)
411
412 GNUPG_CHECK_MLOCK
413 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
414
415 dnl
416 dnl Check whether we can use Linux capabilities as requested
417 dnl
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)
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)
447 fi
448
449 dnl
450 dnl check whether we have a random device
451 dnl
452 if test "$try_dev_random" = yes ; then
453     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
454     [if test -c "$NAME_OF_DEV_RANDOM" && test -c "$NAME_OF_DEV_URANDOM" ; then
455       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
456     if test "$ac_cv_have_dev_random" = yes; then
457         AC_DEFINE(HAVE_DEV_RANDOM)
458     fi
459 else
460     AC_MSG_CHECKING(for random device)
461     ac_cv_have_dev_random=no
462     AC_MSG_RESULT(has been disabled)
463 fi
464
465 dnl
466 dnl and whether this device supports ioctl
467 dnl (Note, that we should do a real test here)
468 dnl
469 if test "$ac_cv_have_dev_random" = yes ; then
470     AC_CHECK_HEADERS(linux/random.h)
471     AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
472       [ if test "$ac_cv_header_linux_random_h" = yes ; then
473           ac_cv_have_dev_random_ioctl=yes;
474         else
475           ac_cv_have_dev_random_ioctl=no;
476         fi
477       ])
478     if test "$ac_cv_have_dev_random_ioctl" = yes; then
479         AC_DEFINE(HAVE_DEV_RANDOM_IOCTL)
480     fi
481 fi
482
483
484 dnl
485 dnl Figure out the default linkage mode for cipher modules
486 dnl
487 dnl (We always need a static rmd160)
488 print_egd_notice=no
489 static_modules="$static_modules rmd160"
490 if test "$use_static_rnd" = default; then
491   if test "$ac_cv_have_dev_random" = yes; then
492       static_modules="$static_modules rndlinux"
493   else
494       case "${target}" in
495           *-*-mingw32)
496               static_modules="$static_modules rndw32"
497               AC_DEFINE(USE_STATIC_RNDW32)
498               ;;
499           i?86-emx-os2|i?86-*-os2*emx)
500               static_modules="$static_modules rndos2"
501               ;;
502           m68k-atari-mint)
503               static_modules="$static_modules rndatari"
504               ;;
505           i?86-*-msdosdjgpp*)
506               static_modules="$static_modules"
507               ;;
508           *)
509               static_modules="$static_modules rndunix"
510               print_egd_notice=yes
511              ;;
512       esac
513   fi
514 else
515   if test "$use_static_rnd" = none; then
516     :
517   else
518     static_modules="$static_modules rnd$use_static_rnd"
519     if test "$use_static_rnd" = "unix"; then
520         print_egd_notice=yes
521     fi
522   fi
523 fi
524
525
526 if test "$print_egd_notice" = "yes"; then
527     AC_MSG_WARN([[
528 ***
529 *** The performance of the UNIX random gatherer module is not very good
530 *** and it does not keep the entropy pool over multiple invocations of
531 *** GnuPG.  The suggested way to overcome this problem is to use the
532 ***
533 ***               Entropy Gathering Daemon (EGD)
534 ***
535 *** which provides a entropy source for the whole system.  It is written
536 *** in Perl and available at the GnuPG FTP servers.  For more information
537 *** consult the GnuPG webpages:
538 ***
539 ***           http://www.gnupg.org/download.html#egd
540 ***
541 *** You may want to run ./configure with --enable-static-rnd=none to be
542 *** able to load the EGD client code dynamically; this way you can choose
543 *** between RNDUNIX and RNDEGD without recompilation.
544 ***]])
545 fi
546
547 dnl
548 dnl Parse the modules list and build the list
549 dnl of static and dymically linked modules
550 dnl
551 STATIC_CIPHER_NAMES=""
552 STATIC_CIPHER_OBJS=""
553 DYNAMIC_CIPHER_MODS=""
554 GNUPG_MSG_PRINT([dynamically linked cipher modules:])
555 for name in $MODULES_IN_CIPHER; do
556     x="no"
557     for i in $static_modules; do
558         if test "$name" = "$i" ; then
559             x="yes"
560         fi
561     done;
562     if test $x = yes; then
563         STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
564         STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
565     else
566         DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name"
567         GNUPG_MSG_PRINT([$name])
568     fi
569 done
570 AC_MSG_RESULT()
571 AC_SUBST(STATIC_CIPHER_OBJS)
572 AC_SUBST(STATIC_CIPHER_NAMES)
573 AC_SUBST(DYNAMIC_CIPHER_MODS)
574
575 dnl
576 dnl And build the constructor file
577 dnl
578
579 test -d cipher || mkdir cipher
580 cat <<G10EOF >cipher/construct.c
581 /* automatically generated by configure - do not edit */
582
583 G10EOF
584 GNUPG_MSG_PRINT([statically linked cipher modules:])
585 for name in $STATIC_CIPHER_NAMES; do
586     echo "void ${name}_constructor(void);" >>cipher/construct.c
587     GNUPG_MSG_PRINT([$name])
588 done
589 AC_MSG_RESULT()
590 cat <<G10EOF >>cipher/construct.c
591
592 void
593 cipher_modules_constructor(void)
594 {
595     static int done = 0;
596     if( done )
597         return;
598     done = 1;
599
600 G10EOF
601 for name in $STATIC_CIPHER_NAMES; do
602     echo "   ${name}_constructor();" >>cipher/construct.c
603 done
604 echo '}' >>cipher/construct.c
605
606
607
608
609 dnl
610 dnl Figure how to link the cipher modules
611 dnl
612 AC_SUBST(STATIC_CIPHER_OBJS)
613 AC_SUBST(DYNAMIC_CIPHER_MODS)
614
615
616 dnl setup assembler stuff
617 AC_MSG_CHECKING(for mpi assembler functions)
618 if test -f $srcdir/mpi/config.links ; then
619     . $srcdir/mpi/config.links
620     GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
621     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
622     ac_cv_mpi_sflags="$mpi_sflags"
623     ac_cv_mpi_config_done="yes"
624     AC_MSG_RESULT(done)
625 else
626     AC_MSG_RESULT(failed)
627     AC_MSG_ERROR([mpi/config.links missing!])
628 fi
629 MPI_EXTRA_ASM_OBJS=""
630 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
631 GNUPG_MSG_PRINT([mpi extra asm functions:])
632 for i in $ac_cv_mpi_extra_asm_modules; do
633     GNUPG_MSG_PRINT([$i])
634     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.lo"
635 done
636 AC_MSG_RESULT()
637 fi
638 AC_SUBST(MPI_EXTRA_ASM_OBJS)
639 MPI_SFLAGS="$ac_cv_mpi_sflags"
640 AC_SUBST(MPI_SFLAGS)
641
642 dnl Do we have zlib? Must do it here because Solaris failed
643 dnl when compiling a conftest (due to the "-lz" from LIBS).
644 use_local_zlib=yes
645 if test "$g10_force_zlib" = "yes"; then
646   :
647 else
648   AC_CHECK_HEADERS(zlib.h)
649   if test "$ac_cv_header_zlib_h" = yes ; then
650       AC_CHECK_LIB(z,deflateInit2_,use_local_zlib=no,:)
651   fi
652 fi
653
654 if test "$use_local_zlib" = yes ; then
655     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
656     GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
657     GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
658     ZLIBS="../zlib/libzlib.a"
659 else
660     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
661     ZLIBS=
662     LIBS="-lz $LIBS"
663 fi
664 AC_SUBST(ZLIBS)
665
666
667 changequote(,)dnl
668 tmp_pat='[a-zA-Z]'
669 changequote([,])dnl
670 if echo "$VERSION" | grep "$tmp_pat" >/dev/null ; then
671     AC_DEFINE(IS_DEVELOPMENT_VERSION)
672 fi
673
674 dnl Temp workaround:
675 GNUPG_LINK_FILES(gcrypt/gcrypt.h, gcrypt.h )
676
677 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
678
679 GNUPG_DO_LINK_FILES
680
681 dnl
682 dnl Make the version number in gcrypt/gcrypt.h the same as the one here.
683 dnl (this is easier than to have a .in file just for one substitution)
684 dnl
685 GNUPG_FIX_HDR_VERSION(gcrypt/gcrypt.h, GCRYPT_VERSION)
686
687
688 AC_OUTPUT_COMMANDS([
689 chmod +x gcrypt/gcrypt-config
690 cat >g10defs.tmp <<G10EOF
691 /* Generated automatically by configure */
692 #ifdef HAVE_DRIVE_LETTERS
693   #define G10_LOCALEDIR "c:/lib/gnupg/locale"
694   #define GNUPG_LIBDIR  "c:/lib/gnupg"
695   #define GNUPG_DATADIR "c:/lib/gnupg"
696 #else
697   #define G10_LOCALEDIR "${prefix}/${DATADIRNAME}/locale"
698   #define GNUPG_LIBDIR  "${libdir}/gnupg"
699   #define GNUPG_DATADIR "${datadir}/gnupg"
700 #endif
701 G10EOF
702 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
703     echo "g10defs.h is unchanged"
704     rm -f g10defs.tmp
705 else
706     rm -f g10defs.h
707     mv g10defs.tmp g10defs.h
708     echo "g10defs.h created"
709 fi
710 ],[
711 prefix=$prefix
712 exec_prefix=$exec_prefix
713 libdir=$libdir
714 datadir=$datadir
715 DATADIRNAME=$DATADIRNAME
716 ])
717
718
719 AC_OUTPUT([
720 Makefile
721 intl/Makefile
722 po/Makefile.in
723 util/Makefile
724 mpi/Makefile
725 cipher/Makefile
726 g10/Makefile
727 doc/Makefile
728 doc/gph/Makefile
729 tools/Makefile
730 zlib/Makefile
731 checks/Makefile
732 gcrypt/Makefile
733 gcrypt/gcrypt-config
734 ])
735
736 dnl *-*wedit:notab*-*  Please keep this as the last line.