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