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