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