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