2005-04-15 Marcus Brinkmann <marcus@g10code.de>
[gnupg.git] / configure.ac
1 # configure.ac - for GnuPG 1.9
2 # Copyright (C) 1998, 1999, 2000, 2001, 2002,
3 #               2003, 2004 Free Software Foundation, Inc.
4
5 # This file is part of GnuPG.
6
7 # GnuPG is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11
12 # GnuPG is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
20
21 # Process this file with autoconf to produce a configure script.
22 AC_PREREQ(2.52)
23 min_automake_version="1.9.3"
24
25 # Version number: Remember to change it immediately *after* a release.
26 #                 Add a "-cvs" prefix for non-released code.
27 AC_INIT(gnupg, 1.9.16-cvs, gnupg-devel@gnupg.org)
28 # Set development_version to yes if the minor number is odd or you
29 # feel that the default check for a development version is not
30 # sufficient.
31 development_version=yes
32 NEED_GPG_ERROR_VERSION=1.0
33
34 NEED_LIBGCRYPT_API=1
35 NEED_LIBGCRYPT_VERSION=1.1.94
36
37 NEED_LIBASSUAN_VERSION=0.6.9
38
39 NEED_KSBA_VERSION=0.9.7
40
41 NEED_OPENSC_VERSION=0.8.0
42
43
44
45 PACKAGE=$PACKAGE_NAME
46 PACKAGE_GT=${PACKAGE_NAME}2
47 VERSION=$PACKAGE_VERSION
48
49 AC_CONFIG_AUX_DIR(scripts)
50 AC_CONFIG_SRCDIR(sm/gpgsm.c)
51 AM_CONFIG_HEADER(config.h)
52 AC_CANONICAL_TARGET()
53 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
54
55 AC_GNU_SOURCE
56
57 # Some status variables to give feedback at the end of a configure run
58 have_gpg_error=no
59 have_libgcrypt=no 
60 have_libassuan=no
61 have_ksba=no
62 have_opensc=no
63 have_pth=no
64
65 GNUPG_BUILD_PROGRAM(gpg, yes)
66 GNUPG_BUILD_PROGRAM(gpgsm, yes)
67 GNUPG_BUILD_PROGRAM(agent, yes)
68 GNUPG_BUILD_PROGRAM(scdaemon, yes)
69 GNUPG_BUILD_PROGRAM(symcryptrun, no)
70
71
72 AC_SUBST(PACKAGE)
73 AC_SUBST(PACKAGE_GT)
74 AC_SUBST(VERSION)
75 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
76 AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT",
77                                 [Name of this package for gettext])
78 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
79 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
80                                         [Bug report address])
81 AC_DEFINE_UNQUOTED(NEED_LIBGCRYPT_VERSION, "$NEED_LIBGCRYPT_VERSION",
82                                        [Required version of Libgcrypt])
83 AC_DEFINE_UNQUOTED(NEED_KSBA_VERSION, "$NEED_KSBA_VERSION",
84                                        [Required version of Libksba])
85
86
87
88 # The default is to use the modules from this package and the few
89 # other packages in a standard place; i.e where this package gets
90 # installed.  With these options it is possible to override these
91 # ${prefix} depended values with fixed paths, which can't be replaced
92 # at make time.  See also am/cmacros.am and the defaults in AH_BOTTOM.
93 AC_ARG_WITH(agent-pgm,
94     [  --with-agent-pgm=PATH  Use PATH as the default for the agent)],
95           GNUPG_AGENT_PGM="$withval", GNUPG_AGENT_PGM="" )
96 AC_SUBST(GNUPG_AGENT_PGM)
97 AM_CONDITIONAL(GNUPG_AGENT_PGM, test -n "$GNUPG_AGENT_PGM")
98 show_gnupg_agent_pgm="(default)"
99 test -n "$GNUPG_AGENT_PGM" && show_gnupg_agent_pgm="$GNUPG_AGENT_PGM"
100
101 AC_ARG_WITH(pinentry-pgm,
102     [  --with-pinentry-pgm=PATH  Use PATH as the default for the pinentry)],
103           GNUPG_PINENTRY_PGM="$withval", GNUPG_PINENTRY_PGM="" )
104 AC_SUBST(GNUPG_PINENTRY_PGM)
105 AM_CONDITIONAL(GNUPG_PINENTRY_PGM, test -n "$GNUPG_PINENTRY_PGM")
106 show_gnupg_pinentry_pgm="(default)"
107 test -n "$GNUPG_PINENTRY_PGM" && show_gnupg_pinentry_pgm="$GNUPG_PINENTRY_PGM"
108
109
110 AC_ARG_WITH(scdaemon-pgm,
111     [  --with-scdaemon-pgm=PATH  Use PATH as the default for the scdaemon)],
112           GNUPG_SCDAEMON_PGM="$withval", GNUPG_SCDAEMON_PGM="" )
113 AC_SUBST(GNUPG_SCDAEMON_PGM)
114 AM_CONDITIONAL(GNUPG_SCDAEMON_PGM, test -n "$GNUPG_SCDAEMON_PGM")
115 show_gnupg_scdaemon_pgm="(default)"
116 test -n "$GNUPG_SCDAEMON_PGM" && show_gnupg_scdaemon_pgm="$GNUPG_SCDAEMON_PGM"
117
118
119 AC_ARG_WITH(dirmngr-pgm,
120     [  --with-dirmngr-pgm=PATH  Use PATH as the default for the dirmngr)],
121           GNUPG_DIRMNGR_PGM="$withval", GNUPG_DIRMNGR_PGM="" )
122 AC_SUBST(GNUPG_DIRMNGR_PGM)
123 AM_CONDITIONAL(GNUPG_DIRMNGR_PGM, test -n "$GNUPG_DIRMNGR_PGM")
124 show_gnupg_dirmngr_pgm="(default)"
125 test -n "$GNUPG_DIRMNGR_PGM" && show_gnupg_dirmngr_pgm="$GNUPG_DIRMNGR_PGM"
126
127 AC_ARG_WITH(protect-tool-pgm,
128     [  --with-protect-tool-pgm=PATH  Use PATH as the default for the protect-tool)],
129           GNUPG_PROTECT_TOOL_PGM="$withval", GNUPG_PROTECT_TOOL_PGM="" )
130 AC_SUBST(GNUPG_PROTECT_TOOL_PGM)
131 AM_CONDITIONAL(GNUPG_PROTECT_TOOL_PGM, test -n "$GNUPG_PROTECT_TOOL_PGM")
132 show_gnupg_protect_tool_pgm="(default)"
133 test -n "$GNUPG_PROTECT_TOOL_PGM" \
134       && show_gnupg_protect_tool_pgm="$GNUPG_PROTECT_TOOL_PGM"
135
136
137
138 # Some folks want to use only the agent form this packet.  Make it
139 # easier for them by providing the configure option
140 # --enable-only-agent.
141 AC_ARG_ENABLE(agent-only,
142     AC_HELP_STRING([--enable-agent-only],[build only the gpg-agent]),
143     build_agent_only=$enableval)
144
145
146 # Configure option to allow or disallow execution of external
147 # programs, like a photo viewer.
148 AC_MSG_CHECKING([whether to enable external program execution])
149 AC_ARG_ENABLE(exec,
150     AC_HELP_STRING([--disable-exec],[disable all external program execution]),
151     use_exec=$enableval)
152 AC_MSG_RESULT($use_exec)
153 if test "$use_exec" = no ; then
154     AC_DEFINE(NO_EXEC,1,[Define to disable all external program execution])
155 fi
156
157 if test "$use_exec" = yes ; then
158   AC_MSG_CHECKING([whether to enable photo ID viewing])
159   AC_ARG_ENABLE(photo-viewers,
160       [  --disable-photo-viewers disable photo ID viewers],
161       [if test "$enableval" = no ; then
162          AC_DEFINE(DISABLE_PHOTO_VIEWER,1,[define to disable photo viewing])
163       fi],enableval=yes)
164   gnupg_cv_enable_photo_viewers=$enableval
165   AC_MSG_RESULT($enableval)
166
167   if test "$gnupg_cv_enable_photo_viewers" = yes ; then
168     AC_MSG_CHECKING([whether to use a fixed photo ID viewer])
169     AC_ARG_WITH(photo-viewer,
170         [  --with-photo-viewer=FIXED_VIEWER  set a fixed photo ID viewer],
171         [if test "$withval" = yes ; then
172            withval=no
173         elif test "$withval" != no ; then
174            AC_DEFINE_UNQUOTED(FIXED_PHOTO_VIEWER,"$withval",
175                             [if set, restrict photo-viewer to this])
176         fi],withval=no)
177     AC_MSG_RESULT($withval)
178   fi
179
180   AC_MSG_CHECKING([whether to enable external keyserver helpers])
181   AC_ARG_ENABLE(keyserver-helpers,
182       [  --disable-keyserver-helpers  disable all external keyserver support],
183       [if test "$enableval" = no ; then
184          AC_DEFINE(DISABLE_KEYSERVER_HELPERS,1,
185                   [define to disable keyserver helpers])
186       fi],enableval=yes)
187   gnupg_cv_enable_keyserver_helpers=$enableval
188   AC_MSG_RESULT($enableval)
189
190   if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
191     AC_MSG_CHECKING([whether LDAP keyserver support is requested])
192     AC_ARG_ENABLE(ldap,
193     [  --disable-ldap          disable LDAP keyserver interface],
194         try_ldap=$enableval, try_ldap=yes)
195     AC_MSG_RESULT($try_ldap)
196
197     AC_MSG_CHECKING([whether HKP keyserver support is requested])
198     AC_ARG_ENABLE(hkp,
199     [  --disable-hkp           disable HKP keyserver interface],
200         try_hkp=$enableval, try_hkp=yes)
201     AC_MSG_RESULT($try_hkp)
202
203     if test "$try_hkp" = yes ; then
204       AC_SUBST(GPGKEYS_HKP,"gpgkeys_hkp$EXEEXT")
205     fi
206
207     AC_MSG_CHECKING([whether email keyserver support is requested])
208     AC_ARG_ENABLE(mailto,
209     [  --disable-mailto        disable email keyserver interface],
210         try_mailto=$enableval, try_mailto=yes)
211     AC_MSG_RESULT($try_mailto)
212     fi
213
214     AC_MSG_CHECKING([whether keyserver exec-path is enabled])
215     AC_ARG_ENABLE(keyserver-path,
216         [  --disable-keyserver-path disable the exec-path option for keyserver helpers],
217         [if test "$enableval" = no ; then
218          AC_DEFINE(DISABLE_KEYSERVER_PATH,1,[define to disable exec-path for keyserver helpers])
219         fi],enableval=yes)
220     AC_MSG_RESULT($enableval)
221   fi
222
223 dnl
224 dnl Check whether we want to use Linux capabilities
225 dnl
226 AC_MSG_CHECKING([whether use of capabilities is requested])
227 AC_ARG_WITH(capabilities,
228     [  --with-capabilities     use linux capabilities [default=no]],
229 [use_capabilities="$withval"],[use_capabilities=no])
230 AC_MSG_RESULT($use_capabilities)
231
232
233 AH_BOTTOM([
234 /* Some global constants. */
235 #ifdef HAVE_DRIVE_LETTERS
236 #define GNUPG_DEFAULT_HOMEDIR "c:/gnupg"
237 #elif defined(__VMS)
238 #define GNUPG_DEFAULT_HOMEDIR "/SYS\$LOGIN/gnupg" 
239 #else
240 #define GNUPG_DEFAULT_HOMEDIR "~/.gnupg"
241 #endif 
242 #define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d"
243
244 /* Tell libgcrypt not to use its own libgpg-error implementation. */
245 #define USE_LIBGPG_ERROR 1
246
247 /* This is the major version number of GnuPG so that
248    source included files can test for this.  Note, that\
249    we use 2 here even for GnuPG 1.9.x. */
250 #define GNUPG_MAJOR_VERSION 2
251
252 /* Now to separate file name parts.
253    Please note that the string version must not contain more
254    than one character because the code assumes strlen()==1 */
255 #ifdef HAVE_DOSISH_SYSTEM
256 #define DIRSEP_C '\\'
257 #define DIRSEP_S "\\"
258 #define EXTSEP_C '.'
259 #define EXTSEP_S "."
260 #define PATHSEP_C ';'
261 #define PATHSEP_S ";"
262 #define EXEEXT_S ".exe"
263 #else
264 #define DIRSEP_C '/'
265 #define DIRSEP_S "/"
266 #define EXTSEP_C '.'
267 #define EXTSEP_S "."
268 #define PATHSEP_C ':'
269 #define PATHSEP_S ":"
270 #define EXEEXT_S ""
271 #endif
272
273 /* This is the same as VERSION, but should be overridden if the
274    platform cannot handle things like dots '.' in filenames. Set
275    SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
276    uses for dots and dashes. */
277 #define SAFE_VERSION VERSION
278 #define SAFE_VERSION_DOT  '.'
279 #define SAFE_VERSION_DASH '-'
280
281 /* For some systems (DOS currently), we hardcode the path here.  For
282    POSIX systems the values are constructed by the Makefiles, so that
283    the values may be overridden by the make invocations; this is to
284    comply with the GNU coding standards. */
285 #ifdef HAVE_DRIVE_LETTERS
286 #define GNUPG_BINDIR      "c:\\gnupg"
287 #define GNUPG_LIBEXECDIR  "c:\\gnupg"
288 #define GNUPG_LIBDIR      "c:\\gnupg"
289 #define GNUPG_DATADIR     "c:\\gnupg"
290 #endif
291
292 /* Setup the hardwired names of modules. */
293 #ifndef GNUPG_DEFAULT_AGENT
294 #define GNUPG_DEFAULT_AGENT    ( GNUPG_BINDIR DIRSEP_S "gpg-agent" EXEEXT_S )
295 #endif
296 #ifndef GNUPG_DEFAULT_PINENTRY
297 #define GNUPG_DEFAULT_PINENTRY ( GNUPG_BINDIR DIRSEP_S "pinentry" EXEEXT_S )
298 #endif
299 #ifndef GNUPG_DEFAULT_SCDAEMON
300 #define GNUPG_DEFAULT_SCDAEMON ( GNUPG_BINDIR DIRSEP_S "scdaemon" EXEEXT_S )
301 #endif
302 #ifndef GNUPG_DEFAULT_DIRMNGR
303 #define GNUPG_DEFAULT_DIRMNGR  ( GNUPG_BINDIR DIRSEP_S "dirmngr" EXEEXT_S )
304 #endif
305 #ifndef GNUPG_DEFAULT_PROTECT_TOOL
306 #define GNUPG_DEFAULT_PROTECT_TOOL \
307                     ( GNUPG_LIBEXECDIR DIRSEP_S "gpg-protect-tool" EXEEXT_S )
308 #endif
309
310
311 /* Derive some other constants. */
312 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
313 #define EXEC_TEMPFILE_ONLY
314 #endif
315
316 ])
317
318 AM_MAINTAINER_MODE
319
320 # Checks for programs.
321 AC_PROG_MAKE_SET
322 AM_SANITY_CHECK
323 missing_dir=`cd $ac_aux_dir && pwd`
324 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
325 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
326 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
327 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
328 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
329 AC_PROG_AWK
330 AC_PROG_CC
331 AC_PROG_CPP
332 AC_PROG_INSTALL
333 AC_PROG_LN_S
334 AC_PROG_MAKE_SET
335 AC_PROG_RANLIB
336 AC_CHECK_TOOL(AR, ar, :)
337 AC_PATH_PROG(PERL,"perl")
338 AC_ISC_POSIX
339 AC_SYS_LARGEFILE
340 AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
341 AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
342 GNUPG_CHECK_FAQPROG
343 GNUPG_CHECK_DOCBOOK_TO_TEXI
344
345
346 try_gettext=yes
347 have_dosish_system=no
348 have_w32_system=no
349 case "${host}" in
350     *-mingw32*)
351         # special stuff for Windoze NT
352         ac_cv_have_dev_random=no
353         AC_DEFINE(USE_ONLY_8DOT3,1,
354                   [set this to limit filenames to the 8.3 format])
355         AC_DEFINE(HAVE_DRIVE_LETTERS,1,
356                   [defined if we must run on a stupid file system])
357         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
358                   [because the Unix gettext has too much overhead on
359                    MingW32 systems and these systems lack Posix functions,
360                    we use a simplified version of gettext])
361         have_dosish_system=yes
362         have_w32_system=yes
363         try_gettext="no"
364         ;;
365     i?86-emx-os2 | i?86-*-os2*emx )
366         # OS/2 with the EMX environment
367         ac_cv_have_dev_random=no
368         AC_DEFINE(HAVE_DRIVE_LETTERS)
369         have_dosish_system=yes
370         try_gettext="no"
371         ;;
372
373     i?86-*-msdosdjgpp*)
374         # DOS with the DJGPP environment
375         ac_cv_have_dev_random=no
376         AC_DEFINE(HAVE_DRIVE_LETTERS)
377         have_dosish_system=yes
378         try_gettext="no"
379         ;;
380
381     *-*-freebsd*)
382        # FreeBSD
383        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
384        LDFLAGS="$LDFLAGS -L/usr/local/lib"
385        ;;
386
387     *-*-hpux*)
388         if test -z "$GCC" ; then
389             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
390         fi
391         ;;
392     *-dec-osf4*)
393         if test -z "$GCC" ; then
394             # Suppress all warnings
395             # to get rid of the unsigned/signed char mismatch warnings.
396             CFLAGS="$CFLAGS -w"
397         fi
398         ;;
399     *-dec-osf5*)
400         if test -z "$GCC" ; then
401             # Use the newer compiler `-msg_disable ptrmismatch' to
402             # get rid of the unsigned/signed char mismatch warnings.
403             # Using this may hide other pointer mismatch warnings, but
404             # it at least lets other warning classes through
405             CFLAGS="$CFLAGS -msg_disable ptrmismatch"
406         fi
407         ;;
408     m68k-atari-mint)
409         ;;
410     *)
411        ;;
412 esac
413
414 if test "$have_dosish_system" = yes; then
415    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
416              [Defined if we run on some of the PCDOS like systems 
417               (DOS, Windoze. OS/2) with special properties like
418               no file modes])
419 fi
420 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
421
422 if test "$have_w32_system" = yes; then
423    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
424 fi
425 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
426
427
428
429 #
430 # Checks for libraries.
431 #
432
433
434 #
435 # libgpg-error is a library with error codes shared between GnuPG
436 # related projects.
437 #
438 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
439                   have_gpg_error=yes,have_gpg_error=no)
440
441
442 #
443 # Libgcrypt is our generic crypto library
444 #
445 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
446         have_libgcrypt=yes,have_libgcrypt=no)
447
448
449 #
450 # libassuan is used for IPC
451 #
452 AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_VERSION",
453                   have_libassuan=yes,have_libassuan=no)
454
455
456 #
457 # libksba is our X.509 support library
458 #
459 AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
460
461 #
462 # libusb allows us to use the integrated CCID smartcard reader driver.
463 #
464 AC_CHECK_LIB(usb, usb_bulk_write,
465               [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
466                 AC_DEFINE(HAVE_LIBUSB,1,
467                          [defined if libusb is available])
468              ])
469 AC_SUBST(LIBUSB_LIBS)
470 AC_CHECK_FUNCS(usb_create_match)
471
472 #
473 # libutil has openpty() and login_tty().
474 #
475 AC_CHECK_LIB(util, openpty,
476               [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
477                 AC_DEFINE(HAVE_LIBUTIL,1,
478                          [defined if libutil is available])
479              ])
480 AC_SUBST(LIBUTIL_LIBS)
481
482 #
483 # Check wether it is necessary to link against libdl.
484 #
485 LIBS=""
486 AC_SEARCH_LIBS(dlopen, c dl,,,)
487 DL_LIBS=$LIBS
488 AC_SUBST(DL_LIBS)
489
490 #
491 # OpenSC is needed by the SCdaemon - if it is not availbale we can only
492 # build a limited SCdaemon
493 #
494 AM_PATH_OPENSC("$NEED_OPENSC_VERSION",have_opensc=yes,have_opensc=no)
495 if test $have_opensc = yes; then
496   AC_DEFINE(HAVE_OPENSC,1,
497             [defined if the OpenSC library is available])
498 fi
499 AM_CONDITIONAL(HAVE_OPENSC, test "$have_opensc" = "yes")
500
501 #
502 # Check whether the (highly desirable) GNU Pth library is available
503 # Note, that we include a Pth emulation for W32.
504 #
505 AC_ARG_WITH(pth-prefix,
506             AC_HELP_STRING([--with-pth-prefix=PFX],
507                            [prefix where GNU Pth is installed (optional)]),
508      pth_config_prefix="$withval", pth_config_prefix="")
509 if test x$pth_config_prefix != x ; then
510    PTH_CONFIG="$pth_config_prefix/bin/pth-config"
511 fi
512 AC_PATH_PROG(PTH_CONFIG, pth-config, no)
513 if test "$have_w32_system" = no; then
514  if test "$PTH_CONFIG" = "no"; then
515     AC_MSG_WARN([[
516 ***
517 *** To support concurrent access to the gpg-agent and the SCdaemon
518 *** we need the support of the GNU Portable Threads Library.
519 *** Download it from ftp://ftp.gnu.org/gnu/pth/
520 *** On a Debian GNU/Linux system you might want to try 
521 ***   apt-get install libpth-dev
522 ***]])
523  else
524   GNUPG_PTH_VERSION_CHECK(1.3.7)
525   if test $have_pth = yes; then      
526      PTH_CFLAGS=`$PTH_CONFIG --cflags`
527      PTH_LIBS=`$PTH_CONFIG --ldflags`
528      PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs`"
529      AC_DEFINE(USE_GNU_PTH, 1,
530               [Defined if the GNU Portable Thread Library should be used])
531   fi
532  fi
533 else 
534  have_pth=yes
535  PTH_CFLAGS=""
536  PTH_LIBS=""
537  AC_DEFINE(USE_GNU_PTH, 1)
538 fi
539 AC_SUBST(PTH_CFLAGS)
540 AC_SUBST(PTH_LIBS)
541
542 AC_ARG_ENABLE(threads,
543     AC_HELP_STRING([--disable-threads],[allow building without Pth support])
544              )
545
546
547 dnl Must check for network library requirements before doing link tests
548 dnl for ldap, for example. If ldap libs are static (or dynamic and without
549 dnl ELF runtime link paths), then link will fail and LDAP support won't
550 dnl be detected.
551
552 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
553         [NETLIBS="-lnsl $NETLIBS"]))
554 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
555         [NETLIBS="-lsocket $NETLIBS"]))
556
557 dnl Now try for the resolver functions so we can use DNS SRV
558
559 AC_ARG_ENABLE(dns-srv,
560    AC_HELP_STRING([--disable-dns-srv],[disable the use of DNS SRV in HKP]),
561    use_dns_srv=$enableval,use_dns_srv=yes)
562
563 if test x"$try_hkp" = xyes && test x"$use_dns_srv" = xyes ; then
564   _srv_save_libs=$LIBS
565   LIBS=""
566   # the double underscore thing is a glibc-ism?
567   AC_SEARCH_LIBS(res_query,resolv bind,,
568                  AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
569   AC_SEARCH_LIBS(dn_expand,resolv bind,,
570                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
571   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
572                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
573
574   if test x"$use_dns_srv" = xyes ; then
575      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
576      SRVLIBS=$LIBS
577   else
578      AC_MSG_WARN([Resolver functions not found.  Disabling DNS SRV.])
579   fi
580   LIBS=$_srv_save_libs
581 fi
582
583 AC_SUBST(SRVLIBS)
584
585 # Try and link a LDAP test program to weed out unusable LDAP
586 # libraries.  -lldap [-llber [-lresolv]] is for OpenLDAP.  OpenLDAP in
587 # general is terrible with creating weird dependencies.  If all else
588 # fails, the user can play guess-the-dependency by using something
589 # like ./configure LDAPLIBS="-Lfoo -lbar"
590
591 if test "$try_ldap" = yes ; then
592   for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
593     _ldap_save_libs=$LIBS
594     LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
595
596     AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane])
597     AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);],
598                 [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no])
599     AC_MSG_RESULT([$gnupg_cv_func_ldap_init])
600
601     if test $gnupg_cv_func_ldap_init = no; then
602       AC_MSG_CHECKING([whether I can make LDAP be sane with lber.h])
603       AC_TRY_LINK([#include <lber.h>
604 #include <ldap.h>],[ldap_open("foobar",1234);],
605          [gnupg_cv_func_ldaplber_init=yes],[gnupg_cv_func_ldaplber_init=no])
606       AC_MSG_RESULT([$gnupg_cv_func_ldaplber_init])
607     fi
608
609     if test "$gnupg_cv_func_ldaplber_init" = yes ; then
610        AC_DEFINE(NEED_LBER_H,1,[Define if the LDAP library requires including lber.h before ldap.h])
611     fi
612
613     if test "$gnupg_cv_func_ldap_init" = yes || \
614         test "$gnupg_cv_func_ldaplber_init" = yes ; then
615        LDAPLIBS=$MY_LDAPLIBS
616        GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
617
618        AC_MSG_CHECKING([whether LDAP supports ldap_get_option])
619
620        if test "$gnupg_cv_func_ldap_init" = yes ; then
621           AC_TRY_LINK([#include <ldap.h>],
622              [ldap_get_option((void *)0,0,(void *)0);],
623              [gnupg_cv_func_ldap_get_option=yes],
624              [gnupg_cv_func_ldap_get_option=no])
625         else
626           AC_TRY_LINK([#include <lber.h>
627 #include <ldap.h>],[ldap_get_option((void *)0,0,(void *)0);],
628              [gnupg_cv_func_ldap_get_option=yes],
629              [gnupg_cv_func_ldap_get_option=no])
630        fi
631
632        AC_MSG_RESULT([$gnupg_cv_func_ldap_get_option])
633
634        if test "$gnupg_cv_func_ldap_get_option" = yes ; then
635           AC_DEFINE(HAVE_LDAP_GET_OPTION,1,[Define if the LDAP library has ldap_get_option])
636        else
637           AC_MSG_CHECKING([whether LDAP supports ld_errno])
638
639           if test "$gnupg_cv_func_ldap_init" = yes ; then
640             AC_TRY_COMPILE([#include <ldap.h>],
641                [LDAP *ldap; ldap->ld_errno;],
642                [gnupg_cv_func_ldap_ld_errno=yes],
643                [gnupg_cv_func_ldap_ld_errno=no])
644            else
645             AC_TRY_LINK([#include <lber.h>
646 #include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
647                [gnupg_cv_func_ldap_ld_errno=yes],
648                [gnupg_cv_func_ldap_ld_errno=no])
649           fi
650
651           AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno])
652
653           if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then
654              AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno])
655           fi
656        fi
657     fi
658
659     LIBS=$_ldap_save_libs
660
661     if test "$GPGKEYS_LDAP" != "" ; then break; fi
662   done
663 fi
664
665 AC_SUBST(GPGKEYS_LDAP)
666 AC_SUBST(LDAPLIBS)
667
668 dnl This isn't necessarily sendmail itself, but anything that gives a
669 dnl sendmail-ish interface to the outside world.  That includes qmail,
670 dnl postfix, etc.  Basically, anything that can handle "sendmail -t".
671
672 if test "$try_mailto" = yes ; then
673   AC_ARG_WITH(mailprog,[  --with-mailprog=NAME    use "NAME -t" for mail transport],,with_mailprog=yes)
674
675   if test "$with_mailprog" = yes ; then
676     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
677     if test "$ac_cv_path_SENDMAIL" ; then
678       GPGKEYS_MAILTO="gpgkeys_mailto"
679     fi
680   elif test "$with_mailprog" != no ; then
681     AC_MSG_CHECKING([for a mail transport program])
682     AC_SUBST(SENDMAIL,$with_mailprog)
683     AC_MSG_RESULT($with_mailprog)
684     GPGKEYS_MAILTO="gpgkeys_mailto"
685   fi
686 fi
687
688 AC_SUBST(GPGKEYS_MAILTO)
689
690 case "${host}" in
691     *-mingw32*)
692         PRINTABLE_OS_NAME="MingW32"
693         ;;
694     *-*-cygwin*)
695         PRINTABLE_OS_NAME="Cygwin"
696         ;;
697     i?86-emx-os2 | i?86-*-os2*emx )
698         PRINTABLE_OS_NAME="OS/2"
699         ;;
700     i?86-*-msdosdjgpp*)
701         PRINTABLE_OS_NAME="MSDOS/DJGPP"
702         try_dynload=no
703         ;;
704     *-linux*)
705         PRINTABLE_OS_NAME="GNU/Linux"
706         ;;
707     *)
708         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
709         ;;
710 esac
711 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
712                    [A human readable text with the name of the OS])
713
714
715 AM_GNU_GETTEXT_VERSION(0.14.1)
716 if test "$try_gettext" = yes; then
717   AM_GNU_GETTEXT(,[need-ngettext])
718
719   # gettext requires some extra checks.  These really should be part of
720   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
721   # function checks to here.
722
723   AC_CHECK_FUNCS(strchr)
724 else
725   USE_NLS=no
726   USE_INCLUDED_LIBINTL=no
727   BUILD_INCLUDED_LIBINTL=no
728   AC_SUBST(USE_NLS)
729   AC_SUBST(USE_INCLUDED_LIBINTL)
730   AC_SUBST(BUILD_INCLUDED_LIBINTL)
731 fi
732
733 # Checks for header files.
734 AC_HEADER_STDC
735 AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
736
737 # Checks for typedefs, structures, and compiler characteristics.
738 AC_C_CONST
739 AC_C_INLINE
740 AC_TYPE_SIZE_T
741 AC_TYPE_SIGNAL
742 AC_DECL_SYS_SIGLIST
743
744 GNUPG_CHECK_ENDIAN
745
746 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
747 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
748 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
749 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
750 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
751
752 AC_CHECK_SIZEOF(unsigned short)
753 AC_CHECK_SIZEOF(unsigned int)
754 AC_CHECK_SIZEOF(unsigned long)
755 AC_CHECK_SIZEOF(unsigned long long)
756 # Ensure that we have UINT64_C before we bother to check for uint64_t
757 # fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
758 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
759    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
760 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
761 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
762    AC_CHECK_SIZEOF(uint64_t)
763 fi
764  
765
766
767
768 if test "$ac_cv_sizeof_unsigned_short" = "0" \
769    || test "$ac_cv_sizeof_unsigned_int" = "0" \
770    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
771     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
772 fi
773
774 dnl Do we have any 64-bit data types?
775 if test "$ac_cv_sizeof_unsigned_int" != "8" \
776    && test "$ac_cv_sizeof_unsigned_long" != "8" \
777    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
778    && test "$ac_cv_sizeof_uint64_t" != "8"; then
779     AC_MSG_WARN([No 64-bit types.  Disabling SHA-384, and SHA-512])
780 else
781   if test x"$use_sha512" = xyes ; then
782      AC_SUBST(SHA512_O,sha512.o)
783      AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
784   fi
785 fi
786
787 # fixme: do we really need this - it should be encapsulated in libassuan
788 GNUPG_SYS_SO_PEERCRED
789
790 # Checks for library functions.
791 AC_FUNC_FSEEKO
792 AC_FUNC_VPRINTF
793 AC_FUNC_FORK
794 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
795 AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times gmtime_r)
796 AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
797 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
798 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
799
800 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
801
802 # These are needed by libjnlib - fixme: we should have macros for them
803 AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp strtol)
804 AC_CHECK_FUNCS(getrusage setrlimit stat setlocale)
805 AC_CHECK_FUNCS(flockfile funlockfile fopencookie funopen)
806
807 AC_REPLACE_FUNCS(vasprintf)
808 AC_REPLACE_FUNCS(mkdtemp)
809 AC_REPLACE_FUNCS(fseeko ftello)
810 AC_REPLACE_FUNCS(isascii)
811 AC_REPLACE_FUNCS(putc_unlocked)
812 AC_REPLACE_FUNCS(strsep)
813 AC_REPLACE_FUNCS(ttyname)
814
815
816
817 #
818 # check for gethrtime and run a testprogram to see whether
819 # it is broken.  It has been reported that some Solaris and HP UX systems 
820 # raise an SIGILL
821 #
822 #  fixme: Do we need this - iirc, this is only used by libgcrypt.
823 #
824 AC_CACHE_CHECK([for gethrtime], 
825                [gnupg_cv_func_gethrtime],
826                [AC_TRY_LINK([#include <sys/times.h>],[
827                    hrtime_t tv;
828                    tv = gethrtime();
829                  ],
830                  [gnupg_cv_func_gethrtime=yes],
831                  [gnupg_cv_func_gethrtime=no])
832                ])
833 if test $gnupg_cv_func_gethrtime = yes; then
834      AC_DEFINE([HAVE_GETHRTIME], 1,
835                [Define if you have the `gethrtime(2)' function.])
836      AC_CACHE_CHECK([whether gethrtime is broken], 
837                [gnupg_cv_func_broken_gethrtime],
838                [AC_TRY_RUN([
839                    #include <sys/times.h>
840                    int main () {
841                    hrtime_t tv;
842                    tv = gethrtime(); 
843                  }
844                  ],
845                  [gnupg_cv_func_broken_gethrtime=no],
846                  [gnupg_cv_func_broken_gethrtime=yes],
847                  [gnupg_cv_func_broken_gethrtime=assume-no])
848                 ])
849     if test $gnupg_cv_func_broken_gethrtime = yes; then
850       AC_DEFINE([HAVE_BROKEN_GETHRTIME], 1,
851       [Define if `gethrtime(2)' does not work correctly i.e. issues a SIGILL.])
852     fi
853 fi
854      
855
856 GNUPG_CHECK_MLOCK
857 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
858
859 dnl
860 dnl Check whether we can use Linux capabilities as requested
861 dnl
862 #  fixme: Still required?
863 #
864 if test "$use_capabilities" = "yes" ; then
865 use_capabilities=no
866 AC_CHECK_HEADERS(sys/capability.h)
867 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
868   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
869   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
870      AC_DEFINE(USE_CAPABILITIES,1,
871                [define if capabilities should be used])
872      AC_SUBST(CAPLIBS,"-lcap")
873      use_capabilities=yes
874   fi
875 fi
876 if test "$use_capabilities" = "no" ; then
877     AC_MSG_WARN([[
878 ***
879 *** The use of capabilities on this system is not possible.
880 *** You need a recent Linux kernel and some patches:
881 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
882 ***   fcap-module-990613.tar.gz     (kernel module)
883 ***   libcap-1.92.tar.gz            (user mode library and utilities)
884 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
885 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
886 ***]])
887 fi
888 fi
889
890
891 # Sanity check regex.  Tests adapted from mutt.
892
893 AC_MSG_CHECKING([whether regular expression support is requested])
894 AC_ARG_ENABLE(regex,
895 [  --disable-regex         do not handle regular expressions in trust sigs],
896      use_regex=$enableval, use_regex=yes)
897 AC_MSG_RESULT($use_regex)
898
899 if test "$use_regex" = yes ; then
900   AC_MSG_CHECKING([whether the included regex lib is requested])
901   AC_ARG_WITH(included-regex,
902       [  --with-included-regex   use the included GNU regex library],
903       [gnupg_cv_included_regex="$withval"],[gnupg_cv_included_regex=no])
904   AC_MSG_RESULT($gnupg_cv_included_regex)
905
906   if test $gnupg_cv_included_regex = no ; then
907      # Does the system have regex functions at all?
908      AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
909                            gnupg_cv_included_regex=yes)
910   fi
911
912   if test $gnupg_cv_included_regex = no ; then
913      AC_CACHE_CHECK([whether your system's regexp library is broken],
914        [gnupg_cv_regex_broken],
915        AC_TRY_RUN([
916 #include <unistd.h>
917 #include <regex.h>
918 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); }],
919        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
920
921      if test $gnupg_cv_regex_broken = yes ; then
922       AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
923       gnupg_cv_included_regex=yes
924      fi
925   fi
926
927   if test $gnupg_cv_included_regex = yes; then
928      AC_DEFINE(USE_GNU_REGEX,1,[ Define if you want to use the included regex lib ])
929      AC_SUBST(REGEX_O,regex.o)
930   fi
931 else
932
933   AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
934 fi
935
936 dnl Do we have zlib? Must do it here because Solaris failed
937 dnl when compiling a conftest (due to the "-lz" from LIBS).
938 _cppflags="${CPPFLAGS}"
939 _ldflags="${LDFLAGS}"
940
941 AC_ARG_WITH(zlib,
942   [  --with-zlib=DIR         use libz in DIR],[
943     if test -d "$withval"; then
944       CPPFLAGS="${CPPFLAGS} -I$withval/include"
945       LDFLAGS="${LDFLAGS} -L$withval/lib"
946     fi
947   ])
948
949 AC_CHECK_HEADER(zlib.h,
950       AC_CHECK_LIB(z, deflateInit2_,
951        LIBS="$LIBS -lz",
952        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
953        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
954  
955
956
957 # See wether we want to run the long test suite.
958 AC_ARG_WITH(pkits-tests,
959     AC_HELP_STRING([--with-pkits-tests],[run the PKITS based tests]),
960     [run_pkits_tests=$withval], [run_pkits_tests=no])
961 AM_CONDITIONAL(RUN_PKITS_TESTS, test "$run_pkits_tests" = "yes")
962
963
964 # Allow users to append something to the version string without
965 # flagging it as development version.  The user version parts is
966 # considered everything after a dash. 
967 if test "$development_version" != yes; then
968   changequote(,)dnl
969   tmp_pat='[a-zA-Z]'
970   changequote([,])dnl
971   if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
972     development_version=yes
973   fi
974 fi
975 if test "$development_version" = yes; then
976     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
977             [Defined if this is not a regular release])
978 fi
979
980 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
981
982 GNUPG_CHECK_GNUMAKE
983
984 # Add some extra libs here so that previous tests don't fail for
985 # mysterious reasons - the final link step should bail out. 
986 if test "$have_w32_system" = yes; then
987    W32LIBS="-lwsock32"
988 fi
989
990
991 if test "$GCC" = yes; then
992     if test "$USE_MAINTAINER_MODE" = "yes"; then
993         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
994         CFLAGS="$CFLAGS -Wformat-nonliteral"
995     else
996         CFLAGS="$CFLAGS -Wall"
997     fi
998 fi
999
1000 AC_SUBST(NETLIBS)
1001 AC_SUBST(W32LIBS)
1002
1003
1004 # We use jnlib, so tell other modules about it
1005 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
1006           [Defined if jnlib style logging functions are available])
1007
1008 # For W32 we need to use our Pth emulation code
1009 if test "$have_w32_system" = yes; then
1010   AC_CONFIG_LINKS(pth.h:jnlib/w32-pth.h)
1011 fi
1012
1013
1014 #
1015 # Decide what to build
1016 #
1017 missing_pth=no
1018 if test $have_ksba = no; then
1019   build_gpgsm=no
1020   build_scdaemon=no
1021 fi
1022
1023 build_agent_threaded=""
1024 if test "$build_agent" = "yes"; then
1025   if test $have_pth = no; then
1026      build_agent_threaded="(not multi-threaded)"
1027      missing_pth=yes
1028   fi
1029 fi
1030
1031 build_scdaemon_extra=""
1032 if test "$build_scdaemon" = "yes"; then
1033   tmp=""
1034   if test $have_pth = no; then
1035      build_scdaemon_extra="not multi-threaded"
1036      tmp=", "
1037      missing_pth=yes
1038   fi
1039   if test $have_opensc = no; then
1040      build_scdaemon_extra="${build_scdaemon_extra}${tmp}no pkcs#15"
1041      tmp=", "
1042   fi      
1043   if test -n "$build_scdaemon_extra"; then
1044      build_scdaemon_extra="(${build_scdaemon_extra})"
1045   fi
1046 fi
1047
1048
1049 if test "$build_agent_only" = "yes" ; then
1050   build_gpg=no
1051   build_gpgsm=no
1052   build_scdaemon=no
1053 fi
1054
1055
1056 AM_CONDITIONAL(BUILD_GPG,   test "$build_gpg" = "yes")
1057 AM_CONDITIONAL(BUILD_GPGSM, test "$build_gpgsm" = "yes")
1058 AM_CONDITIONAL(BUILD_AGENT, test "$build_agent" = "yes")
1059 AM_CONDITIONAL(BUILD_SCDAEMON, test "$build_scdaemon" = "yes")
1060 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
1061
1062
1063
1064 #
1065 # Print errors here so that they are visible all
1066 # together and the user can acquire them all together.
1067 #
1068 die=no
1069 if test "$have_gpg_error" = "no"; then
1070    die=yes
1071    AC_MSG_NOTICE([[
1072 ***  
1073 *** You need libgpg-error to build this program.
1074 **  This library is for example available at
1075 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
1076 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
1077 ***]])
1078 fi
1079 if test "$have_libgcrypt" = "no"; then
1080    die=yes
1081    AC_MSG_NOTICE([[
1082 ***  
1083 *** You need libgcrypt to build this program.
1084 **  This library is for example available at
1085 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
1086 *** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API) is required.)
1087 ***]])
1088 fi
1089 if test "$have_libassuan" = "no"; then
1090    die=yes
1091    AC_MSG_NOTICE([[
1092 ***
1093 *** You need libassuan to build this program.
1094 *** This library is for example available at
1095 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/
1096 *** (at least version $NEED_LIBASSUAN_VERSION is required).
1097 ***]])
1098 fi
1099 if test "$have_ksba" = "no"; then
1100     AC_MSG_NOTICE([[
1101 ***
1102 *** You need libksba to build this program.
1103 *** This library is for example available at
1104 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libksba/
1105 *** (at least version $NEED_KSBA_VERSION is required).
1106 ***]])
1107 fi
1108 if test "$missing_pth" = "yes"; then
1109     AC_MSG_NOTICE([[
1110 ***
1111 *** It is strongly suggested to build with support for the
1112 *** GNU Portable Threads Library (Pth). Please install this
1113 *** library first or use --disable-threads to allow building
1114 *** anyway.  The library is for example available at
1115 ***   ftp://ftp.gnu.org/gnu/pth/
1116 *** On a Debian GNU/Linux system you can install it using 
1117 ***   apt-get install libpth-dev
1118 ***]])
1119   if test "$enable_threads" != "no"; then
1120      die=yes
1121   fi
1122 fi
1123
1124 if test "$die" = "yes"; then
1125     AC_MSG_ERROR([[
1126 ***
1127 *** Required libraries not found. Please consult the above messages
1128 *** and install them before running configure again.
1129 ***]])
1130 fi
1131
1132
1133
1134 AC_CONFIG_FILES([ m4/Makefile 
1135 Makefile
1136 po/Makefile.in
1137 intl/Makefile
1138 jnlib/Makefile
1139 common/Makefile
1140 kbx/Makefile
1141 g10/Makefile
1142 sm/Makefile
1143 agent/Makefile
1144 scd/Makefile
1145 tools/Makefile
1146 doc/Makefile
1147 tests/Makefile
1148 ])
1149 AC_OUTPUT
1150
1151 #tests/pkits/Makefile
1152
1153
1154
1155
1156 echo "
1157         GnuPG v${VERSION} has been configured as follows:
1158         
1159         Platform:  $PRINTABLE_OS_NAME ($host)
1160
1161         OpenPGP:   $build_gpg
1162         S/MIME:    $build_gpgsm
1163         Agent:     $build_agent $build_agent_threaded
1164         Smartcard: $build_scdaemon $build_scdaemon_extra
1165
1166         Protect tool:      $show_gnupg_protect_tool_pgm
1167         Default agent:     $show_gnupg_agent_pgm
1168         Default pinentry:  $show_gnupg_pinentry_pgm
1169         Default scdaemon:  $show_gnupg_scdaemon_pgm
1170         Default dirmngr:   $show_gnupg_dirmngr_pgm
1171
1172         PKITS based tests: $run_pkits_tests
1173 "
1174