* NEWS: Note --enable-key-cache, the OpenBSD/i386 and HPPA fixes, and
[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.5-cvs, 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 email keyserver support is requested])
290     AC_ARG_ENABLE(mailto,
291     [  --disable-mailto        disable email keyserver interface],
292         try_mailto=$enableval, try_mailto=yes)
293     AC_MSG_RESULT($try_mailto)
294     fi
295
296     AC_MSG_CHECKING([whether keyserver exec-path is enabled])
297     AC_ARG_ENABLE(keyserver-path,
298         [  --disable-keyserver-path disable the exec-path option for keyserver helpers],
299         [if test "$enableval" = no ; then
300          AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers])
301         fi],enableval=yes)
302     AC_MSG_RESULT($enableval)
303   fi
304
305 AC_MSG_CHECKING([whether the included zlib is requested])
306 AC_ARG_WITH(included-zlib,
307     [  --with-included-zlib    use the zlib code included here],
308 [g10_force_zlib=yes], [g10_force_zlib=no] )
309 AC_MSG_RESULT($g10_force_zlib)
310
311 dnl
312 dnl Check for the key/uid cache size.  This can't be zero, but can be
313 dnl pretty small on embedded systems.
314 dnl
315 AC_MSG_CHECKING([for the size of the key and uid cache])
316 AC_ARG_ENABLE(key-cache,
317         AC_HELP_STRING([--enable-key-cache=SIZE],[Set key cache to SIZE (default 4096)]),,enableval=4096)
318
319 if test "$enableval" = "no"; then
320    enableval=5
321 elif test "$enableval" = "yes" || test "$enableval" = ""; then
322    enableval=4096
323 fi
324
325 changequote(,)dnl
326 key_cache_size=`echo "$enableval" | sed 's/[A-Za-z]//g'`
327 changequote([,])dnl
328
329 if test "$enableval" != "$key_cache_size" || test "$key_cache_size" -lt 5; then
330    AC_MSG_ERROR([invalid key-cache size])
331 fi
332
333 AC_MSG_RESULT($key_cache_size)
334 AC_DEFINE_UNQUOTED(PK_UID_CACHE_SIZE,$key_cache_size,[Size of the key and UID caches])
335
336 dnl
337 dnl Check whether we want to use Linux capabilities
338 dnl
339 AC_MSG_CHECKING([whether use of capabilities is requested])
340 AC_ARG_WITH(capabilities,
341     [  --with-capabilities     use linux capabilities [default=no]],
342 [use_capabilities="$withval"],[use_capabilities=no])
343 AC_MSG_RESULT($use_capabilities)
344
345
346 AH_BOTTOM([
347 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
348 #define EXEC_TEMPFILE_ONLY
349 #endif
350
351 /* This is the major version number of GnuPG so that
352    source included files can test for this. */
353 #define GNUPG_MAJOR_VERSION 1
354
355 #include "g10defs.h"
356 ])
357
358
359 AM_MAINTAINER_MODE
360
361 dnl Checks for programs.
362
363 AC_PROG_MAKE_SET
364 AM_SANITY_CHECK
365 missing_dir=`cd $ac_aux_dir && pwd`
366 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
367 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
368 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
369 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
370 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
371 AC_PROG_CC
372 AC_PROG_CPP
373 AC_PROG_RANLIB
374 AC_CHECK_TOOL(AR, ar, :)
375 AC_PATH_PROG(PERL,"perl")
376 AC_ISC_POSIX
377 AC_SYS_LARGEFILE
378 AC_PROG_INSTALL
379 AC_PROG_AWK
380 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
381 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
382 GNUPG_CHECK_FAQPROG
383 GNUPG_CHECK_DOCBOOK_TO_TEXI
384
385 MPI_OPT_FLAGS=""
386
387
388 try_gettext=yes
389 have_dosish_system=no
390 need_dlopen=yes
391 case "${target}" in
392     *-*-mingw32*)
393         # special stuff for Windoze NT
394         ac_cv_have_dev_random=no
395         AC_DEFINE(USE_ONLY_8DOT3,1,
396                   [set this to limit filenames to the 8.3 format])
397         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
398                   [defined if we must run on a stupid file system])
399         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
400                   [because the Unix gettext has too much overhead on
401                    MingW32 systems and these systems lack Posix functions,
402                    we use a simplified version of gettext])
403         have_dosish_system=yes
404         need_dlopen=no
405         try_gettext="no"
406         ;;
407     i?86-emx-os2 | i?86-*-os2*emx )
408         # OS/2 with the EMX environment
409         ac_cv_have_dev_random=no
410         AC_DEFINE(HAVE_DRIVE_LETTERS)
411         have_dosish_system=yes
412         try_gettext="no"
413         ;;
414
415     i?86-*-msdosdjgpp*)
416         # DOS with the DJGPP 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     *-*-freebsd*)
424        # FreeBSD
425        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
426        LDFLAGS="$LDFLAGS -L/usr/local/lib"
427        ;;
428
429     *-*-hpux*)
430         if test -z "$GCC" ; then
431             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
432         fi
433         ;;
434     *-dec-osf4*)
435         if test -z "$GCC" ; then
436             # Suppress all warnings
437             # to get rid of the unsigned/signed char mismatch warnings.
438             CFLAGS="$CFLAGS -w"
439         fi
440         ;;
441     *-dec-osf5*)
442         if test -z "$GCC" ; then
443             # Use the newer compiler `-msg_disable ptrmismatch' to
444             # get rid of the unsigned/signed char mismatch warnings.
445             # Using this may hide other pointer mismatch warnings, but
446             # it at least lets other warning classes through
447             CFLAGS="$CFLAGS -msg_disable ptrmismatch"
448         fi
449         ;;
450     m68k-atari-mint)
451         ;;
452     *)
453        ;;
454 esac
455
456 if test "$have_dosish_system" = yes; then
457    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
458              [defined if we run on some of the PCDOS like systems 
459               (DOS, Windoze. OS/2) with special properties like
460               no file modes])
461 fi
462 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
463
464 AC_SUBST(MPI_OPT_FLAGS)
465 GNUPG_SYS_SYMBOL_UNDERSCORE
466
467 dnl This needs to go after AC_PROG_CC so that $EXEEXT is defined
468 if test "$try_hkp" = yes ; then
469   AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
470 fi
471
472 dnl Must check for network library requirements before doing link tests
473 dnl for ldap, for example. If ldap libs are static (or dynamic and without
474 dnl ELF runtime link paths), then link will fail and LDAP support won't
475 dnl be detected.
476
477 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
478         [NETLIBS="-lnsl $NETLIBS"]))
479 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
480         [NETLIBS="-lsocket $NETLIBS"]))
481
482 dnl Now try for the resolver functions so we can use DNS SRV
483
484 AC_ARG_ENABLE(dns-srv,
485    AC_HELP_STRING([--disable-dns-srv],[disable the use of DNS SRV in HKP]),
486    use_dns_srv=$enableval,use_dns_srv=yes)
487
488 if test x"$try_hkp" = xyes && test x"$use_dns_srv" = xyes ; then
489   _srv_save_libs=$LIBS
490   LIBS=""
491   # the double underscore thing is a glibc-ism?
492   AC_SEARCH_LIBS(res_query,resolv bind,,
493                  AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
494   AC_SEARCH_LIBS(dn_expand,resolv bind,,
495                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
496   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
497                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
498
499   if test x"$use_dns_srv" = xyes ; then
500
501     # Make sure that the BIND 4 resolver interface is workable before
502     # enabling SRVs.  At some point I'll rewrite the code to use the
503     # BIND 8 resolver API.
504
505     AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>
506 #include <netinet/in.h>
507 #include <arpa/nameser.h>
508 #include <resolv.h>],
509 [[unsigned char answer[PACKETSZ]; res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);]])],,use_dns_srv=no)
510   fi
511
512   if test x"$use_dns_srv" = xyes ; then
513      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
514      SRVLIBS=$LIBS
515   else
516      AC_MSG_NOTICE([Resolver functions not found or not usable.  Disabling DNS SRV.])
517   fi
518   LIBS=$_srv_save_libs
519 fi
520
521 AC_SUBST(SRVLIBS)
522
523 # Try and link a LDAP test program to weed out unusable LDAP
524 # libraries.  -lldap [-llber [-lresolv]] is for OpenLDAP.  OpenLDAP in
525 # general is terrible with creating weird dependencies.  If all else
526 # fails, the user can play guess-the-dependency by using something
527 # like ./configure LDAPLIBS="-Lfoo -lbar"
528
529 if test "$try_ldap" = yes ; then
530   for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
531     _ldap_save_libs=$LIBS
532     LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
533
534     AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane])
535     AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);],
536                 [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no])
537     AC_MSG_RESULT([$gnupg_cv_func_ldap_init])
538
539     if test $gnupg_cv_func_ldap_init = no; then
540       AC_MSG_CHECKING([whether I can make LDAP be sane with lber.h])
541       AC_TRY_LINK([#include <lber.h>
542 #include <ldap.h>],[ldap_open("foobar",1234);],
543          [gnupg_cv_func_ldaplber_init=yes],[gnupg_cv_func_ldaplber_init=no])
544       AC_MSG_RESULT([$gnupg_cv_func_ldaplber_init])
545     fi
546
547     if test "$gnupg_cv_func_ldaplber_init" = yes ; then
548        AC_DEFINE(NEED_LBER_H,1,[Define if the LDAP library requires including lber.h before ldap.h])
549     fi
550
551     if test "$gnupg_cv_func_ldap_init" = yes || \
552         test "$gnupg_cv_func_ldaplber_init" = yes ; then
553        LDAPLIBS=$MY_LDAPLIBS
554        GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
555
556        AC_MSG_CHECKING([whether LDAP supports ldap_get_option])
557
558        if test "$gnupg_cv_func_ldap_init" = yes ; then
559           AC_TRY_LINK([#include <ldap.h>],
560              [ldap_get_option((void *)0,0,(void *)0);],
561              [gnupg_cv_func_ldap_get_option=yes],
562              [gnupg_cv_func_ldap_get_option=no])
563         else
564           AC_TRY_LINK([#include <lber.h>
565 #include <ldap.h>],[ldap_get_option((void *)0,0,(void *)0);],
566              [gnupg_cv_func_ldap_get_option=yes],
567              [gnupg_cv_func_ldap_get_option=no])
568        fi
569
570        AC_MSG_RESULT([$gnupg_cv_func_ldap_get_option])
571
572        if test "$gnupg_cv_func_ldap_get_option" = yes ; then
573           AC_DEFINE(HAVE_LDAP_GET_OPTION,1,[Define if the LDAP library has ldap_get_option])
574        else
575           AC_MSG_CHECKING([whether LDAP supports ld_errno])
576
577           if test "$gnupg_cv_func_ldap_init" = yes ; then
578             AC_TRY_COMPILE([#include <ldap.h>],
579                [LDAP *ldap; ldap->ld_errno;],
580                [gnupg_cv_func_ldap_ld_errno=yes],
581                [gnupg_cv_func_ldap_ld_errno=no])
582            else
583             AC_TRY_LINK([#include <lber.h>
584 #include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
585                [gnupg_cv_func_ldap_ld_errno=yes],
586                [gnupg_cv_func_ldap_ld_errno=no])
587           fi
588
589           AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno])
590
591           if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then
592              AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno])
593           fi
594        fi
595     fi
596
597     LIBS=$_ldap_save_libs
598
599     if test "$GPGKEYS_LDAP" != "" ; then break; fi
600   done
601 fi
602
603 AC_SUBST(GPGKEYS_LDAP)
604 AC_SUBST(LDAPLIBS)
605
606 dnl This isn't necessarily sendmail itself, but anything that gives a
607 dnl sendmail-ish interface to the outside world.  That includes qmail,
608 dnl postfix, etc.  Basically, anything that can handle "sendmail -t".
609
610 if test "$try_mailto" = yes ; then
611   AC_ARG_WITH(mailprog,[  --with-mailprog=NAME    use "NAME -t" for mail transport],,with_mailprog=yes)
612
613   if test "$with_mailprog" = yes ; then
614     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
615     if test "$ac_cv_path_SENDMAIL" ; then
616       GPGKEYS_MAILTO="gpgkeys_mailto"
617     fi
618   elif test "$with_mailprog" != no ; then
619     AC_MSG_CHECKING([for a mail transport program])
620     AC_SUBST(SENDMAIL,$with_mailprog)
621     AC_MSG_RESULT($with_mailprog)
622     GPGKEYS_MAILTO="gpgkeys_mailto"
623   fi
624 fi
625
626 AC_SUBST(GPGKEYS_MAILTO)
627
628 case "${target}" in
629     *-*-mingw32*)
630         PRINTABLE_OS_NAME="MingW32"
631         ;;
632     *-*-cygwin*)
633         PRINTABLE_OS_NAME="Cygwin"
634         ;;
635     i?86-emx-os2 | i?86-*-os2*emx )
636         PRINTABLE_OS_NAME="OS/2"
637         ;;
638     i?86-*-msdosdjgpp*)
639         PRINTABLE_OS_NAME="MSDOS/DJGPP"
640         try_extensions=no
641         ;;
642     *-linux*)
643         PRINTABLE_OS_NAME="GNU/Linux"
644         ;;
645     *)
646         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
647         ;;
648 esac
649 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
650                    [A human readable text with the name of the OS])
651
652
653 #
654 # 1. Set names of random devices
655 #
656 NAME_OF_DEV_RANDOM="/dev/random"
657 NAME_OF_DEV_URANDOM="/dev/urandom"
658 case "${target}" in
659     *-openbsd*)
660         NAME_OF_DEV_RANDOM="/dev/srandom"
661         NAME_OF_DEV_URANDOM="/dev/urandom"
662         ;;
663 esac
664 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM",
665                    [defined to the name of the strong random device])
666 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM",
667                    [defined to the name of the weaker random device])
668 AC_SUBST(MPI_OPT_FLAGS)
669
670
671 dnl Checks for libraries.
672
673 if test "$try_gettext" = yes; then
674   AM_GNU_GETTEXT(,[need-ngettext])
675
676   # gettext requires some extra checks.  These really should be part of
677   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
678   # function checks to here.
679
680   AC_CHECK_FUNCS(strchr)
681 else
682   USE_NLS=no
683   USE_INCLUDED_LIBINTL=no
684   BUILD_INCLUDED_LIBINTL=no
685   AC_SUBST(USE_NLS)
686   AC_SUBST(USE_INCLUDED_LIBINTL)
687   AC_SUBST(BUILD_INCLUDED_LIBINTL)
688 fi
689
690 if test "$try_extensions" = yes || test x"$card_support" = xyes ; then
691   if test "$need_dlopen" = yes; then
692     _dl_save_libs=$LIBS
693     LIBS=""
694     AC_SEARCH_LIBS(dlopen,dl,found_dlopen=yes)
695     if test x"$found_dlopen" = "xyes" ; then
696       AC_DEFINE(HAVE_DL_DLOPEN,1,
697                 [Defined when the dlopen function family is available])
698       DLLIBS=$LIBS
699     else
700       if test "$try_extensions" = yes ; then
701          AC_MSG_NOTICE([dlopen not found.  Disabling extensions.])
702          try_extensions=no
703       fi
704   
705       if test "$card_support" = yes ; then
706          AC_MSG_WARN([dlopen not found.  Disabling OpenPGP card support.])
707          card_support=no
708       fi
709     fi
710     LIBS=$_dl_save_libs
711   fi
712 fi
713
714 AC_SUBST(DLLIBS)
715
716 if test "$card_support" = yes ; then
717   AC_DEFINE(ENABLE_CARD_SUPPORT,1,[Define to include OpenPGP card support])
718 fi
719
720 if test "$try_extensions" = yes ; then
721   AC_DEFINE(USE_DYNAMIC_LINKING,1,[Define to enable the use of extensions])
722 fi
723
724 AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
725
726 dnl Checks for header files.
727 AC_HEADER_STDC
728 AC_CHECK_HEADERS(unistd.h langinfo.h termio.h locale.h getopt.h)
729
730 dnl Checks for typedefs, structures, and compiler characteristics.
731 AC_C_CONST
732 AC_C_INLINE
733 AC_C_VOLATILE
734 AC_TYPE_SIZE_T
735 AC_TYPE_MODE_T
736 AC_TYPE_SIGNAL
737 AC_DECL_SYS_SIGLIST
738
739 GNUPG_CHECK_ENDIAN
740
741 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
742 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
743 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
744 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
745 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
746
747 AC_CHECK_SIZEOF(unsigned short)
748 AC_CHECK_SIZEOF(unsigned int)
749 AC_CHECK_SIZEOF(unsigned long)
750 AC_CHECK_SIZEOF(unsigned long long)
751
752 # Ensure that we have UINT64_C before we bother to check for uint64_t
753 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
754    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
755 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
756
757 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
758    AC_CHECK_SIZEOF(uint64_t)
759 fi
760
761 if test "$ac_cv_sizeof_unsigned_short" = "0" \
762    || test "$ac_cv_sizeof_unsigned_int" = "0" \
763    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
764     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
765 fi
766
767 dnl Do we have any 64-bit data types?
768 if test "$ac_cv_sizeof_unsigned_int" != "8" \
769    && test "$ac_cv_sizeof_unsigned_long" != "8" \
770    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
771    && test x"$ac_cv_sizeof_uint64_t" != "x8"; then
772     AC_MSG_NOTICE([No 64-bit types.  Disabling SHA-384 and SHA-512.])
773 else
774   if test x"$use_sha512" = xyes ; then
775      AC_SUBST(SHA512_O,sha512.o)
776      AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
777   fi
778 fi
779
780 dnl Checks for library functions.
781 AC_FUNC_FSEEKO
782 AC_FUNC_VPRINTF
783 AC_FUNC_FORK
784 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
785 AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times)
786 AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
787 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
788 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
789 AC_REPLACE_FUNCS(mkdtemp)
790 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
791
792 # See if getopt is in libiberty.  This is of course not optimal since
793 # it might be somewhere other than libiberty, but does cover the
794 # mingw32 case.
795
796 AC_CHECK_FUNC(getopt,,AC_CHECK_LIB(iberty,getopt,AC_SUBST(GETOPT,"-liberty")))
797
798 #
799 # check for gethrtime and run a testprogram to see whether
800 # it is broken.  It has been reported that some Solaris and HP UX systems 
801 # raise an SIGILL
802 #
803 AC_CACHE_CHECK([for gethrtime], 
804                [gnupg_cv_func_gethrtime],
805                [AC_TRY_LINK([#include <sys/times.h>],[
806                    hrtime_t tv;
807                    tv = gethrtime();
808                  ],
809                  [gnupg_cv_func_gethrtime=yes],
810                  [gnupg_cv_func_gethrtime=no])
811                ])
812 if test $gnupg_cv_func_gethrtime = yes; then
813      AC_DEFINE([HAVE_GETHRTIME], 1,
814                [Define if you have the `gethrtime(2)' function.])
815      AC_CACHE_CHECK([whether gethrtime is broken], 
816                [gnupg_cv_func_broken_gethrtime],
817                [AC_TRY_RUN([
818                    #include <sys/times.h>
819                    int main () {
820                    hrtime_t tv;
821                    tv = gethrtime(); 
822                  }
823                  ],
824                  [gnupg_cv_func_broken_gethrtime=no],
825                  [gnupg_cv_func_broken_gethrtime=yes],
826                  [gnupg_cv_func_broken_gethrtime=assume-no])
827                 ])
828     if test $gnupg_cv_func_broken_gethrtime = yes; then
829       AC_DEFINE([HAVE_BROKEN_GETHRTIME], 1,
830       [Define if `gethrtime(2)' does not work correctly i.e. issues a SIGILL.])
831     fi
832 fi
833      
834
835 GNUPG_CHECK_MLOCK
836 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
837
838 dnl
839 dnl Check whether we can use Linux capabilities as requested
840 dnl
841 if test "$use_capabilities" = "yes" ; then
842 use_capabilities=no
843 AC_CHECK_HEADERS(sys/capability.h)
844 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
845   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
846   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
847      AC_DEFINE(USE_CAPABILITIES,1,
848                [define if capabilities should be used])
849      AC_SUBST(CAPLIBS,"-lcap")
850      use_capabilities=yes
851   fi
852 fi
853 if test "$use_capabilities" = "no" ; then
854     AC_MSG_WARN([[
855 ***
856 *** The use of capabilities on this system is not possible.
857 *** You need a recent Linux kernel and some patches:
858 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
859 ***   fcap-module-990613.tar.gz     (kernel module)
860 ***   libcap-1.92.tar.gz            (user mode library and utilities)
861 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
862 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
863 ***]])
864 fi
865 fi
866
867
868 GNUPG_CHECK_IPC
869 if test "$ac_cv_header_sys_shm_h" = "yes"; then
870   AC_DEFINE(USE_SHM_COPROCESSING,1,
871             [define if the shared memory interface should be made available])
872 fi
873
874 dnl
875 dnl check whether we have a random device
876 dnl
877 if test "$try_dev_random" = yes ; then
878     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
879     [if test -r "$NAME_OF_DEV_RANDOM" && test -r "$NAME_OF_DEV_URANDOM" ; then
880       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
881     if test "$ac_cv_have_dev_random" = yes; then
882         AC_DEFINE(HAVE_DEV_RANDOM,1,
883                  [defined if the system supports a random device] )
884     fi
885 else
886     AC_MSG_CHECKING(for random device)
887     ac_cv_have_dev_random=no
888     AC_MSG_RESULT(has been disabled)
889 fi
890
891
892 dnl
893 dnl Figure out the default random module.
894 dnl
895 random_modules=""
896 if test "$use_static_rnd" = default; then
897      if test "$ac_cv_have_dev_random" = yes; then
898         random_modules="rndlinux"
899      else
900          case "${target}" in
901             *-*-mingw32*|*-*-cygwin*)
902                 random_modules="rndw32"
903                 ;;
904             i?86-emx-os2|i?86-*-os2*emx)
905                 random_modules="rndos2"
906                 ;;
907             m68k-atari-mint)
908                 random_modules="rndatari"
909                 ;;
910             i?86-*-msdosdjgpp*)
911                 :
912                 ;;
913             *)
914                 random_modules="rndlinux rndegd rndunix"
915                 AC_DEFINE(USE_ALL_RANDOM_MODULES, 1, 
916                           [Allow to select random modules at runtime.])
917                 ;;
918          esac
919      fi
920 else
921   if test "$use_static_rnd" = auto; then
922      random_modules="rndlinux rndegd rndunix"
923      AC_DEFINE(USE_ALL_RANDOM_MODULES, 1)
924   else
925      random_modules="rnd$use_static_rnd";
926   fi
927 fi
928
929 if test -z "$random_modules"; then
930    AC_MSG_ERROR(no random module available)
931 fi
932 print_egd_warning=no
933 for rndmod in $random_modules "" ; do
934   case "$rndmod" in
935     rndlinux)
936          AC_DEFINE(USE_RNDLINUX,1, 
937                   [Defined if the /dev/random based RNG should be used.])
938          ;;
939     rndunix)
940          AC_DEFINE(USE_RNDUNIX,1, 
941                   [Defined if the default Unix RNG should be used.])
942          print_egd_warning=yes
943           ;;
944     rndegd)
945          AC_DEFINE(USE_RNDEGD,1, 
946                   [Defined if the EGD based RNG should be used.])
947          ;;
948     rndw32)
949          AC_DEFINE(USE_RNDW32,1, 
950                   [Defined if the Windows specific RNG should be used.])
951         ;;
952    esac
953 done
954
955 dnl setup assembler stuff
956 AC_MSG_CHECKING(for mpi assembler functions)
957 if test -f $srcdir/mpi/config.links ; then
958     . $srcdir/mpi/config.links
959     AC_CONFIG_LINKS("$mpi_ln_list")
960     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
961     ac_cv_mpi_sflags="$mpi_sflags"
962     ac_cv_mpi_config_done="yes"
963     AC_MSG_RESULT(done)
964 else
965     AC_MSG_RESULT(failed)
966     AC_MSG_ERROR([mpi/config.links missing!])
967 fi
968 MPI_EXTRA_ASM_OBJS=""
969 show_extraasm=""
970 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
971 for i in $ac_cv_mpi_extra_asm_modules; do
972     show_extraasm="$show_extraasm $i"
973     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
974 done
975 fi
976 AC_SUBST(MPI_EXTRA_ASM_OBJS)
977 MPI_SFLAGS="$ac_cv_mpi_sflags"
978 AC_SUBST(MPI_SFLAGS)
979
980 # Sanity check regex.  Tests adapted from mutt.
981
982 AC_MSG_CHECKING([whether regular expression support is requested])
983 AC_ARG_ENABLE(regex,
984 [  --disable-regex         do not handle regular expressions in trust sigs],
985      use_regex=$enableval, use_regex=yes)
986 AC_MSG_RESULT($use_regex)
987
988 if test "$use_regex" = yes ; then
989   AC_MSG_CHECKING([whether the included regex lib is requested])
990   AC_ARG_WITH(included-regex,
991       [  --with-included-regex   use the included GNU regex library],
992       [gnupg_cv_included_regex=yes],[gnupg_cv_included_regex=no])
993   AC_MSG_RESULT($gnupg_cv_included_regex)
994
995   if test $gnupg_cv_included_regex = no ; then
996      # Does the system have regex functions at all?
997      AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
998                            gnupg_cv_included_regex=yes)
999   fi
1000
1001   if test $gnupg_cv_included_regex = no ; then
1002      AC_CACHE_CHECK([whether your system's regexp library is broken],
1003        [gnupg_cv_regex_broken],
1004        AC_TRY_RUN([
1005 #include <unistd.h>
1006 #include <regex.h>
1007 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); }],
1008        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
1009
1010      if test $gnupg_cv_regex_broken = yes ; then
1011       AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
1012       gnupg_cv_included_regex=yes
1013      fi
1014   fi
1015
1016   if test $gnupg_cv_included_regex = yes; then
1017      AC_DEFINE(USE_GNU_REGEX,1,[ Define if you want to use the included regex lib ])
1018      AC_SUBST(REGEX_O,regex.o)
1019   fi
1020 else
1021
1022   AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
1023 fi
1024
1025 dnl Do we have zlib? Must do it here because Solaris failed
1026 dnl when compiling a conftest (due to the "-lz" from LIBS).
1027 use_local_zlib=yes
1028 if test "$g10_force_zlib" = "yes"; then
1029   :
1030 else
1031   _cppflags="${CPPFLAGS}"
1032   _ldflags="${LDFLAGS}"
1033
1034   AC_ARG_WITH(zlib,
1035   [  --with-zlib=DIR         use libz in DIR],[
1036     if test -d "$withval"; then
1037       CPPFLAGS="${CPPFLAGS} -I$withval/include"
1038       LDFLAGS="${LDFLAGS} -L$withval/lib"
1039     fi
1040   ])
1041
1042   AC_CHECK_HEADER(zlib.h,
1043       AC_CHECK_LIB(z, deflateInit2_,
1044        use_local_zlib=no
1045        ZLIBS="-lz",
1046        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1047        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
1048 fi
1049
1050 if test "$use_local_zlib" = yes ; then
1051     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
1052     AC_CONFIG_LINKS(zlib.h:zlib/zlib.h zconf.h:zlib/zconf.h )
1053     ZLIBS="../zlib/libzlib.a"
1054 else
1055     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
1056 fi
1057
1058 if test "$use_bzip2" = yes ; then
1059   _cppflags="${CPPFLAGS}"
1060   _ldflags="${LDFLAGS}"
1061   AC_ARG_WITH(bzip2,
1062      AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
1063       [
1064       if test -d "$withval" ; then
1065         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1066         LDFLAGS="${LDFLAGS} -L$withval/lib"
1067       fi
1068       ],withval="")
1069
1070 # Checking alongside stdio.h as an early version of bzip2 (1.0)
1071 # required stdio.h to be included before bzlib.h, and Solaris 9 is
1072 # woefully out of date.
1073
1074   if test "$withval" != no ; then
1075      AC_CHECK_HEADER(bzlib.h,
1076         AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
1077           [
1078           have_bz2=yes
1079           ZLIBS="$ZLIBS -lbz2"
1080           AC_DEFINE(HAVE_BZIP2,1,
1081                   [Defined if the bz2 compression library is available])
1082           ],
1083           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1084           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
1085   fi
1086 fi
1087
1088 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
1089 AC_SUBST(ZLIBS)
1090
1091
1092 #
1093 # libusb allows us to use the integrated CCID smartcard reader driver.
1094 #
1095 # Note, that we need the CVS (unstable) version. 
1096 #
1097 LIBUSB_LIBS=""
1098 if test "$card_support" = yes; then
1099     AC_CHECK_LIB(usb, usb_find_device,
1100                  [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
1101                    AC_DEFINE(HAVE_LIBUSB,1,
1102                    [defined if libusb is available])
1103                  ])
1104 fi
1105 AC_SUBST(LIBUSB_LIBS)
1106
1107
1108
1109 # Allow users to append something to the version string without
1110 # flagging it as development version.  The user version parts is
1111 # considered everything after a dash. 
1112 if test "$development_version" != yes; then
1113   changequote(,)dnl
1114   tmp_pat='[a-zA-Z]'
1115   changequote([,])dnl
1116   if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
1117     development_version=yes
1118   fi
1119 fi
1120 if test "$development_version" = yes; then
1121     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
1122             [Defined if this is not a regular release])
1123 fi
1124
1125 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
1126
1127 GNUPG_CHECK_GNUMAKE
1128
1129 # add some extra libs here so that previous tests don't fail for
1130 # mysterious reasons - the final link step should bail out. 
1131 case "${target}" in
1132     *-*-mingw32*)
1133 dnl      NETLIBS="$NETLIBS -lwsock32"
1134         W32LIBS="-lwsock32"
1135         ;;
1136     *)
1137        ;;
1138 esac
1139
1140 AC_SUBST(NETLIBS)
1141 AC_SUBST(W32LIBS)
1142
1143 if test "$GCC" = yes; then
1144     if test "$USE_MAINTAINER_MODE" = "yes"; then
1145         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1146         CFLAGS="$CFLAGS -Wformat-nonliteral"
1147     else
1148         CFLAGS="$CFLAGS -Wall"
1149     fi
1150 fi
1151
1152
1153 if test "$print_egd_warning" = yes; then
1154   AC_MSG_WARN([[
1155 ***
1156 *** The performance of the UNIX random gatherer module is not very good
1157 *** and it does not keep the entropy pool over multiple invocations of
1158 *** GnuPG.  The suggested way to overcome this problem is to use the
1159 ***
1160 ***               Entropy Gathering Daemon (EGD)
1161 ***
1162 *** which provides a entropy source for the whole system.  It is written
1163 *** in Perl and available at the GnuPG FTP servers.  For more information
1164 *** consult the GnuPG webpages:
1165 ***
1166 ***           http://www.gnupg.org/download/#EGD
1167 ***
1168 *** You may want to run ./configure with --enable-static-rnd=egd or
1169 *** --enable-static-rnd=auto to use it.
1170 ***]])
1171 fi
1172
1173 # Note the \\\\ for backslashes.  Autoconf eats one layer, leaving \\
1174
1175 AC_CONFIG_COMMANDS(g10defs.h,[[
1176 cat >g10defs.tmp <<G10EOF
1177 /* Generated automatically by configure */
1178 #ifdef HAVE_DRIVE_LETTERS
1179 #define G10_LOCALEDIR     "c:\\\\lib\\\\gnupg\\\\locale"
1180 #define GNUPG_LIBDIR      "c:\\\\lib\\\\gnupg"
1181 #define GNUPG_LIBEXECDIR  "c:\\\\lib\\\\gnupg"
1182 #define GNUPG_DATADIR     "c:\\\\lib\\\\gnupg"
1183 #define GNUPG_HOMEDIR     "c:\\\\gnupg"
1184 #else
1185 #define G10_LOCALEDIR     "${datadir}/locale"
1186 #define GNUPG_LIBDIR      "${libdir}/gnupg"
1187 #define GNUPG_DATADIR     "${datadir}/gnupg"
1188 #ifdef __VMS
1189 #define GNUPG_HOMEDIR "/SYS\$LOGIN/gnupg" 
1190 #else
1191 #define GNUPG_HOMEDIR "~/.gnupg" 
1192 #endif
1193 #endif
1194 /* those are here to be redefined by handcrafted g10defs.h.
1195    Please note that the string version must not contain more
1196    than one character because the using code assumes strlen()==1 */
1197 #ifdef HAVE_DOSISH_SYSTEM
1198 #define DIRSEP_C '\\\\'
1199 #define EXTSEP_C '.'
1200 #define DIRSEP_S "\\\\"
1201 #define EXTSEP_S "."
1202 #else
1203 #define DIRSEP_C '/'
1204 #define EXTSEP_C '.'
1205 #define DIRSEP_S "/"
1206 #define EXTSEP_S "."
1207 #endif
1208 /* This is the same as VERSION, but should be overridden if the
1209    platform cannot handle things like dots'.' in filenames.  Set
1210    SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
1211    uses for dots and dashes. */
1212 #define SAFE_VERSION      VERSION
1213 #define SAFE_VERSION_DOT  '.'
1214 #define SAFE_VERSION_DASH '-'
1215 G10EOF
1216 cat mpi/mpi-asm-defs.h >>g10defs.tmp 
1217 if cmp -s g10defs.h g10defs.tmp 2>/dev/null; then
1218     echo "g10defs.h is unchanged"
1219     rm -f g10defs.tmp
1220 else
1221     rm -f g10defs.h
1222     mv g10defs.tmp g10defs.h
1223     echo "g10defs.h created"
1224 fi
1225 ]],[[
1226 prefix=$prefix
1227 exec_prefix=$exec_prefix
1228 libdir=$libdir
1229 libexecdir=$libexecdir
1230 datadir=$datadir
1231 DATADIRNAME=$DATADIRNAME
1232 ]])
1233
1234
1235 AC_CONFIG_FILES([
1236 Makefile
1237 m4/Makefile
1238 intl/Makefile
1239 po/Makefile.in
1240 util/Makefile
1241 mpi/Makefile
1242 cipher/Makefile
1243 g10/Makefile
1244 keyserver/Makefile
1245 keyserver/gpgkeys_mailto
1246 keyserver/gpgkeys_test
1247 doc/Makefile
1248 tools/Makefile
1249 zlib/Makefile
1250 checks/Makefile
1251 ])
1252 AC_OUTPUT
1253
1254 # Give some feedback
1255 echo
1256 echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
1257 if test -n "$show_extraasm"; then
1258   echo "  Extra cpu specific functions:$show_extraasm"
1259 fi
1260 echo