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