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