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