* keylist.c (list_keyblock_print): Always use the new listing format where
[gnupg.git] / configure.ac
1 dnl Configure.ac script for GnuPG
2 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
3 dnl               2004 Free Software Foundation, Inc.
4 dnl
5 dnl This file is part of GnuPG.
6 dnl
7 dnl GnuPG is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl 
12 dnl GnuPG is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16 dnl 
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
20 dnl
21 dnl (Process this file with autoconf to produce a configure script.)
22 dnlAC_REVISION($Revision$)dnl
23
24 AC_PREREQ(2.57)
25
26 # Remember to change the version number immediately *after* a release
27 # and remove the "-cvs" or "rc" suffix immediately *before* a release.
28 AC_INIT(gnupg, 1.3.6, bug-gnupg@gnu.org)
29 # Set development_version to yes if the minor number is odd or you
30 # feel that the default check for a development version is not
31 # sufficient.
32 development_version=yes
33
34 AC_CONFIG_AUX_DIR(scripts)
35 AC_CONFIG_SRCDIR(g10/g10.c)
36 AC_CANONICAL_TARGET
37 AM_INIT_AUTOMAKE
38 AM_CONFIG_HEADER(config.h)
39
40 AC_GNU_SOURCE
41
42 dnl
43 dnl  Check for random module options
44 dnl
45 AC_MSG_CHECKING([which random module to use])
46 AC_ARG_ENABLE(static-rnd,
47     [  --enable-static-rnd=[egd|unix|linux|auto]  ],
48 [use_static_rnd=$enableval], [use_static_rnd=default] )
49
50 if test "$use_static_rnd" = no; then
51     use_static_rnd=default
52 fi
53
54 case "$use_static_rnd" in
55     egd | linux | unix | default )
56       AC_MSG_RESULT($use_static_rnd)
57       ;;
58     auto )
59       AC_MSG_RESULT(automagically selected at runtime)
60       ;;
61     * )
62       AC_MSG_RESULT(invalid argument)
63       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
64       ;;
65 esac
66
67 AC_ARG_WITH(egd-socket,
68     [  --with-egd-socket=NAME  use NAME for the EGD socket],
69             egd_socket_name="$withval", egd_socket_name="" )
70 AC_DEFINE_UNQUOTED(EGD_SOCKET_NAME, "$egd_socket_name",
71                    [Define if you don't want the default EGD socket name.
72                     For details see cipher/rndegd.c])
73
74
75 dnl
76 dnl See whether the user wants to disable checking for /dev/random
77
78 AC_MSG_CHECKING([whether use of /dev/random is requested])
79 AC_ARG_ENABLE(dev-random,
80 [  --disable-dev-random    disable the use of dev random],
81     try_dev_random=$enableval, try_dev_random=yes)
82 AC_MSG_RESULT($try_dev_random)
83
84
85 dnl
86 dnl  Check other options
87 dnl
88
89 AC_MSG_CHECKING([whether assembler modules are requested])
90 AC_ARG_ENABLE(asm,
91 [  --disable-asm           do not use assembler modules],
92      try_asm_modules=$enableval, try_asm_modules=yes)
93 AC_MSG_RESULT($try_asm_modules)
94
95 AC_MSG_CHECKING([whether memory guard is requested])
96 AC_ARG_ENABLE(m-guard,
97     [  --enable-m-guard        enable memory guard facility],
98     use_m_guard=$enableval, use_m_guard=no)
99 AC_MSG_RESULT($use_m_guard)
100 if test "$use_m_guard" = yes ; then
101     AC_DEFINE(M_GUARD,1,[Define to use the (obsolete) malloc guarding feature])
102 fi
103
104 AC_MSG_CHECKING([whether OpenPGP card support is requested])
105 AC_ARG_ENABLE(card-support,
106     [  --enable-card-support   enable OpenPGP card support],
107     card_support=$enableval, card_support=no)
108 AC_MSG_RESULT($card_support)
109
110 dnl See if we are disabling any algorithms or features for a smaller
111 dnl binary
112
113 try_extensions=no
114
115 use_rsa=yes
116 use_idea=yes
117 use_cast5=yes
118 use_blowfish=yes
119 use_aes=yes
120 use_twofish=yes
121 use_sha256=yes
122 use_sha512=yes
123 use_bzip2=yes
124 use_exec=yes
125
126 AC_ARG_ENABLE(minimal,
127    AC_HELP_STRING([--enable-minimal],[build the smallest gpg binary possible]),
128    use_rsa=no
129    use_idea=no
130    use_cast5=no
131    use_blowfish=no
132    use_aes=no
133    use_twofish=no
134    use_sha256=no
135    use_sha512=no
136    use_bzip2=no
137    use_exec=no)
138
139 AC_MSG_CHECKING([whether to enable the RSA public key algorithm])
140 AC_ARG_ENABLE(rsa,
141    AC_HELP_STRING([--disable-rsa],[disable the RSA public key algorithm]),
142    use_rsa=$enableval)
143 AC_MSG_RESULT($use_rsa)
144 if test x"$use_rsa" = xyes ; then
145    AC_DEFINE(USE_RSA,1,[Define to include the RSA public key algorithm])
146 fi
147
148 AC_MSG_CHECKING([whether to enable the IDEA cipher])
149 AC_ARG_ENABLE(idea,
150    AC_HELP_STRING([--disable-idea],[disable the IDEA cipher]),
151    use_idea=$enableval)
152 AC_MSG_RESULT($use_idea)
153 if test x"$use_idea" = xyes ; then
154    AC_DEFINE(USE_IDEA,1,[Define to include the IDEA cipher])
155
156 # We don't need idea but some people claim that they need it for
157 # research etc., so we allow to place an idea source code into the
158 # cipher directory and statically link it if available, otherwise we
159 # link to a stub.  We don't use AC_CHECK_FILE to avoid caching.
160
161    AC_MSG_CHECKING([for idea cipher module])
162    tmp=""
163    if test -f $srcdir/cipher/idea.c; then 
164       IDEA_O=idea.o
165       tmp=idea
166    else
167       IDEA_O=idea-stub.o
168       tmp=no
169       try_extensions=yes
170    fi
171    AC_SUBST(IDEA_O)
172    AC_MSG_RESULT($tmp)
173 fi
174
175 AC_MSG_CHECKING([whether to enable the CAST5 cipher])
176 AC_ARG_ENABLE(cast5,
177    AC_HELP_STRING([--disable-cast5],[disable the CAST5 cipher]),
178    use_cast5=$enableval)
179 AC_MSG_RESULT($use_cast5)
180 if test x"$use_cast5" = xyes ; then
181    AC_DEFINE(USE_CAST5,1,[Define to include the CAST5 cipher])
182 fi
183
184 AC_MSG_CHECKING([whether to enable the BLOWFISH cipher])
185 AC_ARG_ENABLE(blowfish,
186    AC_HELP_STRING([--disable-blowfish],[disable the BLOWFISH cipher]),
187    use_blowfish=$enableval)
188 AC_MSG_RESULT($use_blowfish)
189 if test x"$use_blowfish" = xyes ; then
190    AC_DEFINE(USE_BLOWFISH,1,[Define to include the BLOWFISH cipher])
191 fi
192
193 AC_MSG_CHECKING([whether to enable the AES ciphers])
194 AC_ARG_ENABLE(aes,
195    AC_HELP_STRING([--disable-aes],[disable the AES, AES192, and AES256 ciphers]),
196    use_aes=$enableval)
197 AC_MSG_RESULT($use_aes)
198 if test x"$use_aes" = xyes ; then
199    AC_DEFINE(USE_AES,1,[Define to include the AES, AES192, and AES256 ciphers])
200 fi
201
202 AC_MSG_CHECKING([whether to enable the TWOFISH cipher])
203 AC_ARG_ENABLE(twofish,
204    AC_HELP_STRING([--disable-twofish],[disable the TWOFISH cipher]),
205    use_twofish=$enableval)
206 AC_MSG_RESULT($use_twofish)
207 if test x"$use_twofish" = xyes ; then
208    AC_DEFINE(USE_TWOFISH,1,[Define to include the TWOFISH cipher])
209 fi
210
211 AC_MSG_CHECKING([whether to enable the SHA-256 digest])
212 AC_ARG_ENABLE(sha256,
213    AC_HELP_STRING([--disable-sha256],[disable the SHA-256 digest]),
214    use_sha256=$enableval)
215 AC_MSG_RESULT($use_sha256)
216 if test x"$use_sha256" = xyes ; then
217    AC_DEFINE(USE_SHA256,1,[Define to include the SHA-256 digest])
218 fi
219
220 dnl SHA512 is defined only after we confirm 64-bit support later
221 AC_MSG_CHECKING([whether to enable the SHA-384 and SHA-512 digests])
222 AC_ARG_ENABLE(sha512,
223    AC_HELP_STRING([--disable-sha512],[disable the SHA-384 and SHA-512 digests]),
224    use_sha512=$enableval)
225 AC_MSG_RESULT($use_sha512)
226
227 dnl BZLIB is defined only after we confirm the library is available later
228 AC_MSG_CHECKING([whether to enable the BZIP2 compression algorithm])
229 AC_ARG_ENABLE(bzip2,
230    AC_HELP_STRING([--disable-bzip2],[disable the BZIP2 compression algorithm]),
231    use_bzip2=$enableval)
232 AC_MSG_RESULT($use_bzip2)
233
234 AC_MSG_CHECKING([whether to enable external program execution])
235 AC_ARG_ENABLE(exec,
236     AC_HELP_STRING([--disable-exec],[disable all external program execution]),
237     use_exec=$enableval)
238 AC_MSG_RESULT($use_exec)
239 if test "$use_exec" = no ; then
240     AC_DEFINE(NO_EXEC,1,[Define to disable all external program execution])
241 fi
242
243 if test "$use_exec" = yes ; then
244   AC_MSG_CHECKING([whether to enable photo ID viewing])
245   AC_ARG_ENABLE(photo-viewers,
246       [  --disable-photo-viewers disable photo ID viewers],
247       [if test "$enableval" = no ; then
248          AC_DEFINE(DISABLE_PHOTO_VIEWER,1,[define to disable photo viewing])
249       fi],enableval=yes)
250   gnupg_cv_enable_photo_viewers=$enableval
251   AC_MSG_RESULT($enableval)
252
253   if test "$gnupg_cv_enable_photo_viewers" = yes ; then
254     AC_MSG_CHECKING([whether to use a fixed photo ID viewer])
255     AC_ARG_WITH(photo-viewer,
256         [  --with-photo-viewer=FIXED_VIEWER  set a fixed photo ID viewer],
257         [if test "$withval" = yes ; then
258            withval=no
259         elif test "$withval" != no ; then
260            AC_DEFINE_UNQUOTED(FIXED_PHOTO_VIEWER,"$withval",
261                             [if set, restrict photo-viewer to this])
262         fi],withval=no)
263     AC_MSG_RESULT($withval)
264   fi
265
266   AC_MSG_CHECKING([whether to enable external keyserver helpers])
267   AC_ARG_ENABLE(keyserver-helpers,
268       [  --disable-keyserver-helpers  disable all external keyserver support],
269       [if test "$enableval" = no ; then
270          AC_DEFINE(DISABLE_KEYSERVER_HELPERS,1,
271                   [define to disable keyserver helpers])
272       fi],enableval=yes)
273   gnupg_cv_enable_keyserver_helpers=$enableval
274   AC_MSG_RESULT($enableval)
275
276   if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
277     AC_MSG_CHECKING([whether LDAP keyserver support is requested])
278     AC_ARG_ENABLE(ldap,
279     [  --disable-ldap          disable LDAP keyserver interface],
280         try_ldap=$enableval, try_ldap=yes)
281     AC_MSG_RESULT($try_ldap)
282
283     AC_MSG_CHECKING([whether HKP keyserver support is requested])
284     AC_ARG_ENABLE(hkp,
285     [  --disable-hkp           disable HKP keyserver interface],
286         try_hkp=$enableval, try_hkp=yes)
287     AC_MSG_RESULT($try_hkp)
288
289     AC_MSG_CHECKING([whether HTTP key fetching support is requested])
290     AC_ARG_ENABLE(http,
291       AC_HELP_STRING([--disable-http],[disable HTTP key fetching interface]),
292         try_http=$enableval, try_http=yes)
293     AC_MSG_RESULT($try_http)
294
295     AC_MSG_CHECKING([whether email keyserver support is requested])
296     AC_ARG_ENABLE(mailto,
297     [  --disable-mailto        disable email keyserver interface],
298         try_mailto=$enableval, try_mailto=yes)
299     AC_MSG_RESULT($try_mailto)
300     fi
301
302     AC_MSG_CHECKING([whether keyserver exec-path is enabled])
303     AC_ARG_ENABLE(keyserver-path,
304         [  --disable-keyserver-path disable the exec-path option for keyserver helpers],
305         [if test "$enableval" = no ; then
306          AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers])
307         fi],enableval=yes)
308     AC_MSG_RESULT($enableval)
309   fi
310
311 AC_MSG_CHECKING([whether the included zlib is requested])
312 AC_ARG_WITH(included-zlib,
313     [  --with-included-zlib    use the zlib code included here],
314 [g10_force_zlib=yes], [g10_force_zlib=no] )
315 AC_MSG_RESULT($g10_force_zlib)
316
317 dnl
318 dnl Check for the key/uid cache size.  This can't be zero, but can be
319 dnl pretty small on embedded systems.
320 dnl
321 AC_MSG_CHECKING([for the size of the key and uid cache])
322 AC_ARG_ENABLE(key-cache,
323         AC_HELP_STRING([--enable-key-cache=SIZE],[Set key cache to SIZE (default 4096)]),,enableval=4096)
324
325 if test "$enableval" = "no"; then
326    enableval=5
327 elif test "$enableval" = "yes" || test "$enableval" = ""; then
328    enableval=4096
329 fi
330
331 changequote(,)dnl
332 key_cache_size=`echo "$enableval" | sed 's/[A-Za-z]//g'`
333 changequote([,])dnl
334
335 if test "$enableval" != "$key_cache_size" || test "$key_cache_size" -lt 5; then
336    AC_MSG_ERROR([invalid key-cache size])
337 fi
338
339 AC_MSG_RESULT($key_cache_size)
340 AC_DEFINE_UNQUOTED(PK_UID_CACHE_SIZE,$key_cache_size,[Size of the key and UID caches])
341
342 dnl
343 dnl Check whether we want to use Linux capabilities
344 dnl
345 AC_MSG_CHECKING([whether use of capabilities is requested])
346 AC_ARG_WITH(capabilities,
347     [  --with-capabilities     use linux capabilities [default=no]],
348 [use_capabilities="$withval"],[use_capabilities=no])
349 AC_MSG_RESULT($use_capabilities)
350
351
352 AH_BOTTOM([
353 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
354 #define EXEC_TEMPFILE_ONLY
355 #endif
356
357 /* This is the major version number of GnuPG so that
358    source included files can test for this. */
359 #define GNUPG_MAJOR_VERSION 1
360
361 #include "g10defs.h"
362 ])
363
364
365 AM_MAINTAINER_MODE
366
367 dnl Checks for programs.
368
369 AC_PROG_MAKE_SET
370 AM_SANITY_CHECK
371 missing_dir=`cd $ac_aux_dir && pwd`
372 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
373 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
374 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
375 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
376 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
377 AC_PROG_CC
378 AC_PROG_CPP
379 AC_PROG_RANLIB
380 AC_CHECK_TOOL(AR, ar, :)
381 AC_PATH_PROG(PERL,"perl")
382 AC_ISC_POSIX
383 AC_SYS_LARGEFILE
384 AC_PROG_INSTALL
385 AC_PROG_LN_S
386 AC_PROG_AWK
387 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
388 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
389 GNUPG_CHECK_FAQPROG
390 GNUPG_CHECK_DOCBOOK_TO_TEXI
391
392 MPI_OPT_FLAGS=""
393
394
395 try_gettext=yes
396 have_dosish_system=no
397 need_dlopen=yes
398 case "${target}" in
399     *-*-mingw32*)
400         # special stuff for Windoze NT
401         ac_cv_have_dev_random=no
402         AC_DEFINE(USE_ONLY_8DOT3,1,
403                   [set this to limit filenames to the 8.3 format])
404         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
405                   [defined if we must run on a stupid file system])
406         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
407                   [because the Unix gettext has too much overhead on
408                    MingW32 systems and these systems lack Posix functions,
409                    we use a simplified version of gettext])
410         have_dosish_system=yes
411         need_dlopen=no
412         try_gettext="no"
413         LDAPLIBS="-lwldap32"
414         ;;
415     i?86-emx-os2 | i?86-*-os2*emx )
416         # OS/2 with the EMX environment
417         ac_cv_have_dev_random=no
418         AC_DEFINE(HAVE_DRIVE_LETTERS)
419         have_dosish_system=yes
420         try_gettext="no"
421         ;;
422
423     i?86-*-msdosdjgpp*)
424         # DOS with the DJGPP environment
425         ac_cv_have_dev_random=no
426         AC_DEFINE(HAVE_DRIVE_LETTERS)
427         have_dosish_system=yes
428         try_gettext="no"
429         ;;
430
431     *-*-freebsd*)
432        # FreeBSD
433        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
434        LDFLAGS="$LDFLAGS -L/usr/local/lib"
435        ;;
436
437     *-*-hpux*)
438         if test -z "$GCC" ; then
439             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
440         fi
441         ;;
442     *-dec-osf4*)
443         if test -z "$GCC" ; then
444             # Suppress all warnings
445             # to get rid of the unsigned/signed char mismatch warnings.
446             CFLAGS="$CFLAGS -w"
447         fi
448         ;;
449     *-dec-osf5*)
450         if test -z "$GCC" ; then
451             # Use the newer compiler `-msg_disable ptrmismatch' to
452             # get rid of the unsigned/signed char mismatch warnings.
453             # Using this may hide other pointer mismatch warnings, but
454             # it at least lets other warning classes through
455             CFLAGS="$CFLAGS -msg_disable ptrmismatch"
456         fi
457         ;;
458     m68k-atari-mint)
459         ;;
460     *)
461        ;;
462 esac
463
464 if test "$have_dosish_system" = yes; then
465    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
466              [defined if we run on some of the PCDOS like systems 
467               (DOS, Windoze. OS/2) with special properties like
468               no file modes])
469 fi
470 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
471
472 AC_SUBST(MPI_OPT_FLAGS)
473 GNUPG_SYS_SYMBOL_UNDERSCORE
474
475 dnl These need to go after AC_PROG_CC so that $EXEEXT is defined
476 if test x"$try_hkp" = xyes ; then
477   AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
478 fi
479
480 if test x"$try_http" = xyes ; then
481   AC_SUBST(GPGKEYS_HTTP,"gpgkeys_http$EXEEXT")
482 fi
483
484 dnl Must check for network library requirements before doing link tests
485 dnl for ldap, for example. If ldap libs are static (or dynamic and without
486 dnl ELF runtime link paths), then link will fail and LDAP support won't
487 dnl be detected.
488
489 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
490         [NETLIBS="-lnsl $NETLIBS"]))
491 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
492         [NETLIBS="-lsocket $NETLIBS"]))
493
494 dnl Now try for the resolver functions so we can use DNS SRV
495
496 AC_ARG_ENABLE(dns-srv,
497    AC_HELP_STRING([--disable-dns-srv],
498         [disable the use of DNS SRV in HKP and HTTP]),
499    use_dns_srv=$enableval,use_dns_srv=yes)
500
501 if (test x"$try_hkp" = xyes || test x"$try_http" = xyes) && test x"$use_dns_srv" = xyes ; then
502   _srv_save_libs=$LIBS
503   LIBS=""
504   # the double underscore thing is a glibc-ism?
505   AC_SEARCH_LIBS(res_query,resolv bind,,
506                  AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
507   AC_SEARCH_LIBS(dn_expand,resolv bind,,
508                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
509   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
510                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
511
512   if test x"$use_dns_srv" = xyes ; then
513
514     # Make sure that the BIND 4 resolver interface is workable before
515     # enabling SRVs.  At some point I'll rewrite the code to use the
516     # BIND 8 resolver API.
517
518     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>
519 #include <netinet/in.h>
520 #include <arpa/nameser.h>
521 #include <resolv.h>],
522 [[unsigned char answer[PACKETSZ]; res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);]])],,use_dns_srv=no)
523   fi
524
525   if test x"$use_dns_srv" = xyes ; then
526      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
527      SRVLIBS=$LIBS
528   else
529      AC_MSG_NOTICE([Resolver functions not found or not usable.  Disabling DNS SRV.])
530   fi
531   LIBS=$_srv_save_libs
532 fi
533
534 AC_SUBST(SRVLIBS)
535
536 # Try and link a LDAP test program to weed out unusable LDAP
537 # libraries.  -lldap [-llber [-lresolv]] is for older OpenLDAPs.
538 # OpenLDAP, circa 1999, was terrible with creating weird dependencies.
539 # This seems to have all been resolved, so I'm simplifying this code
540 # significantly.  If all else fails, the user can play
541 # guess-the-dependency by using something like ./configure
542 # LDAPLIBS="-Lfoo -lbar"
543
544 if test "$try_ldap" = yes ; then
545   for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
546     _ldap_save_libs=$LIBS
547     LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
548
549     AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane])
550     AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);],
551                 [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no])
552     AC_MSG_RESULT([$gnupg_cv_func_ldap_init])
553
554     if test "$gnupg_cv_func_ldap_init" = yes ; then
555        LDAPLIBS=$MY_LDAPLIBS
556        GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
557
558        AC_CHECK_FUNCS(ldap_get_option ldap_set_option ldap_start_tls_s)
559
560        if test "$ac_cv_func_ldap_get_option" != yes ; then
561           AC_MSG_CHECKING([whether LDAP supports ld_errno])
562           AC_TRY_LINK([#include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
563              [gnupg_cv_func_ldap_ld_errno=yes],
564              [gnupg_cv_func_ldap_ld_errno=no])
565           AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno])
566
567           if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then
568              AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno])
569           fi
570        fi
571     fi
572
573     LIBS=$_ldap_save_libs
574
575     if test "$GPGKEYS_LDAP" != "" ; then break; fi
576   done
577 fi
578
579 AC_SUBST(GPGKEYS_LDAP)
580 AC_SUBST(LDAPLIBS)
581 AM_CONDITIONAL(GPGKEYS_LDAP, test "$GPGKEYS_LDAP" != "")
582
583 dnl This isn't necessarily sendmail itself, but anything that gives a
584 dnl sendmail-ish interface to the outside world.  That includes qmail,
585 dnl postfix, etc.  Basically, anything that can handle "sendmail -t".
586
587 if test "$try_mailto" = yes ; then
588   AC_ARG_WITH(mailprog,[  --with-mailprog=NAME    use "NAME -t" for mail transport],,with_mailprog=yes)
589
590   if test "$with_mailprog" = yes ; then
591     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
592     if test "$ac_cv_path_SENDMAIL" ; then
593       GPGKEYS_MAILTO="gpgkeys_mailto"
594     fi
595   elif test "$with_mailprog" != no ; then
596     AC_MSG_CHECKING([for a mail transport program])
597     AC_SUBST(SENDMAIL,$with_mailprog)
598     AC_MSG_RESULT($with_mailprog)
599     GPGKEYS_MAILTO="gpgkeys_mailto"
600   fi
601 fi
602
603 AC_SUBST(GPGKEYS_MAILTO)
604
605 case "${target}" in
606     *-*-mingw32*)
607         PRINTABLE_OS_NAME="MingW32"
608         ;;
609     *-*-cygwin*)
610         PRINTABLE_OS_NAME="Cygwin"
611         ;;
612     i?86-emx-os2 | i?86-*-os2*emx )
613         PRINTABLE_OS_NAME="OS/2"
614         ;;
615     i?86-*-msdosdjgpp*)
616         PRINTABLE_OS_NAME="MSDOS/DJGPP"
617         try_extensions=no
618         ;;
619     *-linux*)
620         PRINTABLE_OS_NAME="GNU/Linux"
621         ;;
622     *)
623         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
624         ;;
625 esac
626 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
627                    [A human readable text with the name of the OS])
628
629
630 #
631 # 1. Set names of random devices
632 #
633 NAME_OF_DEV_RANDOM="/dev/random"
634 NAME_OF_DEV_URANDOM="/dev/urandom"
635 case "${target}" in
636     *-openbsd*)
637         NAME_OF_DEV_RANDOM="/dev/srandom"
638         NAME_OF_DEV_URANDOM="/dev/urandom"
639         ;;
640 esac
641 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
642                    [defined to the name of the strong random device])
643 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
644                    [defined to the name of the weaker random device])
645 AC_SUBST(MPI_OPT_FLAGS)
646
647
648 dnl Checks for libraries.
649
650 if test "$try_gettext" = yes; then
651   AM_GNU_GETTEXT(,[need-ngettext])
652
653   # gettext requires some extra checks.  These really should be part of
654   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
655   # function checks to here.
656
657   AC_CHECK_FUNCS(strchr)
658 else
659   USE_NLS=no
660   USE_INCLUDED_LIBINTL=no
661   BUILD_INCLUDED_LIBINTL=no
662   AC_SUBST(USE_NLS)
663   AC_SUBST(USE_INCLUDED_LIBINTL)
664   AC_SUBST(BUILD_INCLUDED_LIBINTL)
665 fi
666
667 if test "$try_extensions" = yes || test x"$card_support" = xyes ; then
668   if test "$need_dlopen" = yes; then
669     _dl_save_libs=$LIBS
670     LIBS=""
671     AC_SEARCH_LIBS(dlopen,dl,found_dlopen=yes)
672     if test x"$found_dlopen" = "xyes" ; then
673       AC_DEFINE(HAVE_DL_DLOPEN,1,
674                 [Defined when the dlopen function family is available])
675       DLLIBS=$LIBS
676     else
677       if test "$try_extensions" = yes ; then
678          AC_MSG_NOTICE([dlopen not found.  Disabling extensions.])
679          try_extensions=no
680       fi
681   
682       if test "$card_support" = yes ; then
683          AC_MSG_WARN([dlopen not found.  Disabling OpenPGP card support.])
684          card_support=no
685       fi
686     fi
687     LIBS=$_dl_save_libs
688   fi
689 fi
690
691 AC_SUBST(DLLIBS)
692
693 if test "$card_support" = yes ; then
694   AC_DEFINE(ENABLE_CARD_SUPPORT,1,[Define to include OpenPGP card support])
695 fi
696
697 if test "$try_extensions" = yes ; then
698   AC_DEFINE(USE_DYNAMIC_LINKING,1,[Define to enable the use of extensions])
699 fi
700
701 AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
702
703 dnl Checks for header files.
704 AC_HEADER_STDC
705 AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h getopt.h)
706
707 dnl Checks for typedefs, structures, and compiler characteristics.
708 AC_C_CONST
709 AC_C_INLINE
710 AC_C_VOLATILE
711 AC_TYPE_SIZE_T
712 AC_TYPE_MODE_T
713 AC_TYPE_SIGNAL
714 AC_DECL_SYS_SIGLIST
715
716 GNUPG_CHECK_ENDIAN
717
718 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
719 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
720 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
721 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
722 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
723
724 AC_CHECK_SIZEOF(unsigned short)
725 AC_CHECK_SIZEOF(unsigned int)
726 AC_CHECK_SIZEOF(unsigned long)
727 AC_CHECK_SIZEOF(unsigned long long)
728
729 # Ensure that we have UINT64_C before we bother to check for uint64_t
730 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
731    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
732 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
733
734 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
735    AC_CHECK_SIZEOF(uint64_t)
736 fi
737
738 if test "$ac_cv_sizeof_unsigned_short" = "0" \
739    || test "$ac_cv_sizeof_unsigned_int" = "0" \
740    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
741     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
742 fi
743
744 dnl Do we have any 64-bit data types?
745 if test "$ac_cv_sizeof_unsigned_int" != "8" \
746    && test "$ac_cv_sizeof_unsigned_long" != "8" \
747    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
748    && test x"$ac_cv_sizeof_uint64_t" != "x8"; then
749     AC_MSG_NOTICE([No 64-bit types.  Disabling SHA-384 and SHA-512.])
750 else
751   if test x"$use_sha512" = xyes ; then
752      AC_SUBST(SHA512_O,sha512.o)
753      AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
754   fi
755 fi
756
757 dnl Checks for library functions.
758 AC_FUNC_FSEEKO
759 AC_FUNC_VPRINTF
760 AC_FUNC_FORK
761 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
762 AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times unsetenv)
763 AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
764 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
765 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
766 AC_REPLACE_FUNCS(mkdtemp timegm)
767 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
768
769 # See if getopt is in libiberty.  This is of course not optimal since
770 # it might be somewhere other than libiberty, but does cover the
771 # mingw32 case.
772
773 AC_CHECK_FUNC(getopt,,AC_CHECK_LIB(iberty,getopt,AC_SUBST(GETOPT,"-liberty")))
774
775 #
776 # check for gethrtime and run a testprogram to see whether
777 # it is broken.  It has been reported that some Solaris and HP UX systems 
778 # raise an SIGILL
779 #
780 AC_CACHE_CHECK([for gethrtime], 
781                [gnupg_cv_func_gethrtime],
782                [AC_TRY_LINK([#include <sys/times.h>],[
783                    hrtime_t tv;
784                    tv = gethrtime();
785                  ],
786                  [gnupg_cv_func_gethrtime=yes],
787                  [gnupg_cv_func_gethrtime=no])
788                ])
789 if test $gnupg_cv_func_gethrtime = yes; then
790      AC_DEFINE([HAVE_GETHRTIME], 1,
791                [Define if you have the `gethrtime(2)' function.])
792      AC_CACHE_CHECK([whether gethrtime is broken], 
793                [gnupg_cv_func_broken_gethrtime],
794                [AC_TRY_RUN([
795                    #include <sys/times.h>
796                    int main () {
797                    hrtime_t tv;
798                    tv = gethrtime(); 
799                  }
800                  ],
801                  [gnupg_cv_func_broken_gethrtime=no],
802                  [gnupg_cv_func_broken_gethrtime=yes],
803                  [gnupg_cv_func_broken_gethrtime=assume-no])
804                 ])
805     if test $gnupg_cv_func_broken_gethrtime = yes; then
806       AC_DEFINE([HAVE_BROKEN_GETHRTIME], 1,
807       [Define if `gethrtime(2)' does not work correctly i.e. issues a SIGILL.])
808     fi
809 fi
810      
811
812 GNUPG_CHECK_MLOCK
813 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
814
815 dnl
816 dnl Check whether we can use Linux capabilities as requested
817 dnl
818 if test "$use_capabilities" = "yes" ; then
819 use_capabilities=no
820 AC_CHECK_HEADERS(sys/capability.h)
821 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
822   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
823   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
824      AC_DEFINE(USE_CAPABILITIES,1,
825                [define if capabilities should be used])
826      AC_SUBST(CAPLIBS,"-lcap")
827      use_capabilities=yes
828   fi
829 fi
830 if test "$use_capabilities" = "no" ; then
831     AC_MSG_WARN([[
832 ***
833 *** The use of capabilities on this system is not possible.
834 *** You need a recent Linux kernel and some patches:
835 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
836 ***   fcap-module-990613.tar.gz     (kernel module)
837 ***   libcap-1.92.tar.gz            (user mode library and utilities)
838 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
839 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
840 ***]])
841 fi
842 fi
843
844
845 GNUPG_CHECK_IPC
846 if test "$ac_cv_header_sys_shm_h" = "yes"; then
847   AC_DEFINE(USE_SHM_COPROCESSING,1,
848             [define if the shared memory interface should be made available])
849 fi
850
851 dnl
852 dnl check whether we have a random device
853 dnl
854 if test "$try_dev_random" = yes ; then
855     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
856     [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
857       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
858     if test "$ac_cv_have_dev_random" = yes; then
859         AC_DEFINE(HAVE_DEV_RANDOM,1,
860                  [defined if the system supports a random device] )
861     fi
862 else
863     AC_MSG_CHECKING(for random device)
864     ac_cv_have_dev_random=no
865     AC_MSG_RESULT(has been disabled)
866 fi
867
868
869 dnl
870 dnl Figure out the default random module.
871 dnl
872 random_modules=""
873 if test "$use_static_rnd" = default; then
874      if test "$ac_cv_have_dev_random" = yes; then
875         random_modules="rndlinux"
876      else
877          case "${target}" in
878             *-*-mingw32*|*-*-cygwin*)
879                 random_modules="rndw32"
880                 ;;
881             i?86-emx-os2|i?86-*-os2*emx)
882                 random_modules="rndos2"
883                 ;;
884             m68k-atari-mint)
885                 random_modules="rndatari"
886                 ;;
887             i?86-*-msdosdjgpp*)
888                 :
889                 ;;
890             *)
891                 random_modules="rndlinux rndegd rndunix"
892                 AC_DEFINE(USE_ALL_RANDOM_MODULES, 1, 
893                           [Allow to select random modules at runtime.])
894                 ;;
895          esac
896      fi
897 else
898   if test "$use_static_rnd" = auto; then
899      random_modules="rndlinux rndegd rndunix"
900      AC_DEFINE(USE_ALL_RANDOM_MODULES, 1)
901   else
902      random_modules="rnd$use_static_rnd";
903   fi
904 fi
905
906 if test -z "$random_modules"; then
907    AC_MSG_ERROR(no random module available)
908 fi
909 print_egd_warning=no
910 for rndmod in $random_modules "" ; do
911   case "$rndmod" in
912     rndlinux)
913          AC_DEFINE(USE_RNDLINUX,1, 
914                   [Defined if the /dev/random based RNG should be used.])
915          ;;
916     rndunix)
917          AC_DEFINE(USE_RNDUNIX,1, 
918                   [Defined if the default Unix RNG should be used.])
919          print_egd_warning=yes
920           ;;
921     rndegd)
922          AC_DEFINE(USE_RNDEGD,1, 
923                   [Defined if the EGD based RNG should be used.])
924          ;;
925     rndw32)
926          AC_DEFINE(USE_RNDW32,1, 
927                   [Defined if the Windows specific RNG should be used.])
928         ;;
929    esac
930 done
931
932 dnl setup assembler stuff
933 AC_MSG_CHECKING(for mpi assembler functions)
934 if test -f $srcdir/mpi/config.links ; then
935     . $srcdir/mpi/config.links
936     AC_CONFIG_LINKS("$mpi_ln_list")
937     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
938     ac_cv_mpi_sflags="$mpi_sflags"
939     ac_cv_mpi_config_done="yes"
940     AC_MSG_RESULT(done)
941 else
942     AC_MSG_RESULT(failed)
943     AC_MSG_ERROR([mpi/config.links missing!])
944 fi
945 MPI_EXTRA_ASM_OBJS=""
946 show_extraasm=""
947 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
948 for i in $ac_cv_mpi_extra_asm_modules; do
949     show_extraasm="$show_extraasm $i"
950     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
951 done
952 fi
953 AC_SUBST(MPI_EXTRA_ASM_OBJS)
954 MPI_SFLAGS="$ac_cv_mpi_sflags"
955 AC_SUBST(MPI_SFLAGS)
956
957 # Sanity check regex.  Tests adapted from mutt.
958
959 AC_MSG_CHECKING([whether regular expression support is requested])
960 AC_ARG_ENABLE(regex,
961 [  --disable-regex         do not handle regular expressions in trust sigs],
962      use_regex=$enableval, use_regex=yes)
963 AC_MSG_RESULT($use_regex)
964
965 if test "$use_regex" = yes ; then
966   AC_MSG_CHECKING([whether the included regex lib is requested])
967   AC_ARG_WITH(included-regex,
968       [  --with-included-regex   use the included GNU regex library],
969       [gnupg_cv_included_regex=yes],[gnupg_cv_included_regex=no])
970   AC_MSG_RESULT($gnupg_cv_included_regex)
971
972   if test $gnupg_cv_included_regex = no ; then
973      # Does the system have regex functions at all?
974      AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
975                            gnupg_cv_included_regex=yes)
976   fi
977
978   if test $gnupg_cv_included_regex = no ; then
979      AC_CACHE_CHECK([whether your system's regexp library is broken],
980        [gnupg_cv_regex_broken],
981        AC_TRY_RUN([
982 #include <unistd.h>
983 #include <regex.h>
984 main() { regex_t blah ; regmatch_t p; p.rm_eo = p.rm_eo; return regcomp(&blah, "foo.*bar", REG_NOSUB) || regexec (&blah, "foobar", 0, NULL, 0); }],
985        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
986
987      if test $gnupg_cv_regex_broken = yes ; then
988       AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
989       gnupg_cv_included_regex=yes
990      fi
991   fi
992
993   if test $gnupg_cv_included_regex = yes; then
994      AC_DEFINE(USE_GNU_REGEX,1,[ Define if you want to use the included regex lib ])
995      AC_SUBST(REGEX_O,regex.o)
996   fi
997 else
998
999   AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
1000 fi
1001
1002 dnl Do we have zlib? Must do it here because Solaris failed
1003 dnl when compiling a conftest (due to the "-lz" from LIBS).
1004 use_local_zlib=yes
1005 if test "$g10_force_zlib" = "yes"; then
1006   :
1007 else
1008   _cppflags="${CPPFLAGS}"
1009   _ldflags="${LDFLAGS}"
1010
1011   AC_ARG_WITH(zlib,
1012   [  --with-zlib=DIR         use libz in DIR],[
1013     if test -d "$withval"; then
1014       CPPFLAGS="${CPPFLAGS} -I$withval/include"
1015       LDFLAGS="${LDFLAGS} -L$withval/lib"
1016     fi
1017   ])
1018
1019   AC_CHECK_HEADER(zlib.h,
1020       AC_CHECK_LIB(z, deflateInit2_,
1021        use_local_zlib=no
1022        ZLIBS="-lz",
1023        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1024        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
1025 fi
1026
1027 if test "$use_local_zlib" = yes ; then
1028     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
1029     AC_CONFIG_LINKS(zlib.h:zlib/zlib.h zconf.h:zlib/zconf.h )
1030     ZLIBS="../zlib/libzlib.a"
1031 else
1032     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
1033 fi
1034
1035 if test "$use_bzip2" = yes ; then
1036   _cppflags="${CPPFLAGS}"
1037   _ldflags="${LDFLAGS}"
1038   AC_ARG_WITH(bzip2,
1039      AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
1040       [
1041       if test -d "$withval" ; then
1042         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1043         LDFLAGS="${LDFLAGS} -L$withval/lib"
1044       fi
1045       ],withval="")
1046
1047 # Checking alongside stdio.h as an early version of bzip2 (1.0)
1048 # required stdio.h to be included before bzlib.h, and Solaris 9 is
1049 # woefully out of date.
1050
1051   if test "$withval" != no ; then
1052      AC_CHECK_HEADER(bzlib.h,
1053         AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
1054           [
1055           have_bz2=yes
1056           ZLIBS="$ZLIBS -lbz2"
1057           AC_DEFINE(HAVE_BZIP2,1,
1058                   [Defined if the bz2 compression library is available])
1059           ],
1060           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1061           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
1062   fi
1063 fi
1064
1065 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
1066 AC_SUBST(ZLIBS)
1067
1068
1069 #
1070 # libusb allows us to use the integrated CCID smartcard reader driver.
1071 #
1072 # Note, that we need the CVS (unstable) version. 
1073 #
1074 LIBUSB_LIBS=""
1075 if test "$card_support" = yes; then
1076     AC_CHECK_LIB(usb, usb_find_device,
1077                  [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
1078                    AC_DEFINE(HAVE_LIBUSB,1,
1079                    [defined if libusb is available])
1080                  ])
1081 fi
1082 AC_SUBST(LIBUSB_LIBS)
1083
1084
1085
1086 # Allow users to append something to the version string without
1087 # flagging it as development version.  The user version parts is
1088 # considered everything after a dash. 
1089 if test "$development_version" != yes; then
1090   changequote(,)dnl
1091   tmp_pat='[a-zA-Z]'
1092   changequote([,])dnl
1093   if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
1094     development_version=yes
1095   fi
1096 fi
1097 if test "$development_version" = yes; then
1098     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
1099             [Defined if this is not a regular release])
1100 fi
1101
1102 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
1103
1104 GNUPG_CHECK_GNUMAKE
1105
1106 # add some extra libs here so that previous tests don't fail for
1107 # mysterious reasons - the final link step should bail out. 
1108 case "${target}" in
1109     *-*-mingw32*)
1110 dnl      NETLIBS="$NETLIBS -lwsock32"
1111         W32LIBS="-lwsock32"
1112         ;;
1113     *)
1114        ;;
1115 esac
1116
1117 AC_SUBST(NETLIBS)
1118 AC_SUBST(W32LIBS)
1119
1120 if test "$GCC" = yes; then
1121     if test "$USE_MAINTAINER_MODE" = "yes"; then
1122         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1123         CFLAGS="$CFLAGS -Wformat-nonliteral"
1124     else
1125         CFLAGS="$CFLAGS -Wall"
1126     fi
1127 fi
1128
1129
1130 if test "$print_egd_warning" = yes; then
1131   AC_MSG_WARN([[
1132 ***
1133 *** The performance of the UNIX random gatherer module is not very good
1134 *** and it does not keep the entropy pool over multiple invocations of
1135 *** GnuPG.  The suggested way to overcome this problem is to use the
1136 ***
1137 ***               Entropy Gathering Daemon (EGD)
1138 ***
1139 *** which provides a entropy source for the whole system.  It is written
1140 *** in Perl and available at the GnuPG FTP servers.  For more information
1141 *** consult the GnuPG webpages:
1142 ***
1143 ***           http://www.gnupg.org/download/#EGD
1144 ***
1145 *** You may want to run ./configure with --enable-static-rnd=egd or
1146 *** --enable-static-rnd=auto to use it.
1147 ***]])
1148 fi
1149
1150 # Note the \\\\ for backslashes.  Autoconf eats one layer, leaving \\
1151
1152 AC_CONFIG_COMMANDS(g10defs.h,[[
1153 cat >g10defs.tmp <<G10EOF
1154 /* Generated automatically by configure */
1155 #ifdef HAVE_DRIVE_LETTERS
1156 #define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"
1157 #define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
1158 #define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
1159 #define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
1160 #define GNUPG_HOMEDIR     "c:\\\\gnupg"
1161 #else
1162 #define G10_LOCALEDIR     "${datadir}/locale"
1163 #define GNUPG_LIBDIR      "${libdir}/gnupg"
1164 #define GNUPG_DATADIR     "${datadir}/gnupg"
1165 #ifdef __VMS
1166 #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
1167 #else
1168 #define GNUPG_HOMEDIR "~/.gnupg" 
1169 #endif
1170 #endif
1171 /* those are here to be redefined by handcrafted g10defs.h.
1172    Please note that the string version must not contain more
1173    than one character because the using code assumes strlen()==1 */
1174 #ifdef HAVE_DOSISH_SYSTEM
1175 #define DIRSEP_C '\\\\'
1176 #define EXTSEP_C '.'
1177 #define DIRSEP_S "\\\\"
1178 #define EXTSEP_S "."
1179 #else
1180 #define DIRSEP_C '/'
1181 #define EXTSEP_C '.'
1182 #define DIRSEP_S "/"
1183 #define EXTSEP_S "."
1184 #endif
1185 /* This is the same as VERSION, but should be overridden if the
1186    platform cannot handle things like dots'.' in filenames.  Set
1187    SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
1188    uses for dots and dashes. */
1189 #define SAFE_VERSION      VERSION
1190 #define SAFE_VERSION_DOT  '.'
1191 #define SAFE_VERSION_DASH '-'
1192 G10EOF
1193 cat mpi/mpi-asm-defs.h >>g10defs.tmp 
1194 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
1195     echo "g10defs.h is unchanged"
1196     rm -f g10defs.tmp
1197 else
1198     rm -f g10defs.h
1199     mv g10defs.tmp g10defs.h
1200     echo "g10defs.h created"
1201 fi
1202 ]],[[
1203 prefix=$prefix
1204 exec_prefix=$exec_prefix
1205 libdir=$libdir
1206 libexecdir=$libexecdir
1207 datadir=$datadir
1208 DATADIRNAME=$DATADIRNAME
1209 ]])
1210
1211
1212 AC_CONFIG_FILES([
1213 Makefile
1214 m4/Makefile
1215 intl/Makefile
1216 po/Makefile.in
1217 util/Makefile
1218 mpi/Makefile
1219 cipher/Makefile
1220 g10/Makefile
1221 keyserver/Makefile
1222 keyserver/gpgkeys_mailto
1223 keyserver/gpgkeys_test
1224 doc/Makefile
1225 tools/Makefile
1226 zlib/Makefile
1227 checks/Makefile
1228 ])
1229 AC_OUTPUT
1230
1231 # Give some feedback
1232 echo
1233 echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
1234 if test -n "$show_extraasm"; then
1235   echo "  Extra cpu specific functions:$show_extraasm"
1236 fi
1237 echo