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