2005-04-20 Moritz Schulte <moritz@g10code.com>
[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.11
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 # Check wether it is necessary to link against libdl.
474 #
475 LIBS=""
476 AC_SEARCH_LIBS(dlopen, c dl,,,)
477 DL_LIBS=$LIBS
478 AC_SUBST(DL_LIBS)
479
480 #
481 # Checks for symcryptrun:
482 #
483
484 # libutil has openpty() and login_tty().
485 AC_CHECK_LIB(util, openpty,
486               [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
487                 AC_DEFINE(HAVE_LIBUTIL,1,
488                          [defined if libutil is available])
489              ])
490 AC_SUBST(LIBUTIL_LIBS)
491
492 # shred is used to clean temporary plain text files.
493 AC_PATH_PROG(SHRED, shred, /usr/bin/shred)
494 AC_DEFINE_UNQUOTED(SHRED,
495         "${SHRED}", [defines the filename of the shred program])
496
497 #
498 # OpenSC is needed by the SCdaemon - if it is not availbale we can only
499 # build a limited SCdaemon
500 #
501 AM_PATH_OPENSC("$NEED_OPENSC_VERSION",have_opensc=yes,have_opensc=no)
502 if test $have_opensc = yes; then
503   AC_DEFINE(HAVE_OPENSC,1,
504             [defined if the OpenSC library is available])
505 fi
506 AM_CONDITIONAL(HAVE_OPENSC, test "$have_opensc" = "yes")
507
508 #
509 # Check whether the (highly desirable) GNU Pth library is available
510 # Note, that we include a Pth emulation for W32.
511 #
512 AC_ARG_WITH(pth-prefix,
513             AC_HELP_STRING([--with-pth-prefix=PFX],
514                            [prefix where GNU Pth is installed (optional)]),
515      pth_config_prefix="$withval", pth_config_prefix="")
516 if test x$pth_config_prefix != x ; then
517    PTH_CONFIG="$pth_config_prefix/bin/pth-config"
518 fi
519 AC_PATH_PROG(PTH_CONFIG, pth-config, no)
520 if test "$have_w32_system" = no; then
521  if test "$PTH_CONFIG" = "no"; then
522     AC_MSG_WARN([[
523 ***
524 *** To support concurrent access to the gpg-agent and the SCdaemon
525 *** we need the support of the GNU Portable Threads Library.
526 *** Download it from ftp://ftp.gnu.org/gnu/pth/
527 *** On a Debian GNU/Linux system you might want to try 
528 ***   apt-get install libpth-dev
529 ***]])
530  else
531   GNUPG_PTH_VERSION_CHECK(1.3.7)
532   if test $have_pth = yes; then      
533      PTH_CFLAGS=`$PTH_CONFIG --cflags`
534      PTH_LIBS=`$PTH_CONFIG --ldflags`
535      PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs`"
536      AC_DEFINE(USE_GNU_PTH, 1,
537               [Defined if the GNU Portable Thread Library should be used])
538   fi
539  fi
540 else 
541  have_pth=yes
542  PTH_CFLAGS=""
543  PTH_LIBS=""
544  AC_DEFINE(USE_GNU_PTH, 1)
545 fi
546 AC_SUBST(PTH_CFLAGS)
547 AC_SUBST(PTH_LIBS)
548
549 AC_ARG_ENABLE(threads,
550     AC_HELP_STRING([--disable-threads],[allow building without Pth support])
551              )
552
553
554 dnl Must check for network library requirements before doing link tests
555 dnl for ldap, for example. If ldap libs are static (or dynamic and without
556 dnl ELF runtime link paths), then link will fail and LDAP support won't
557 dnl be detected.
558
559 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
560         [NETLIBS="-lnsl $NETLIBS"]))
561 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
562         [NETLIBS="-lsocket $NETLIBS"]))
563
564 dnl Now try for the resolver functions so we can use DNS SRV
565
566 AC_ARG_ENABLE(dns-srv,
567    AC_HELP_STRING([--disable-dns-srv],[disable the use of DNS SRV in HKP]),
568    use_dns_srv=$enableval,use_dns_srv=yes)
569
570 if test x"$try_hkp" = xyes && test x"$use_dns_srv" = xyes ; then
571   _srv_save_libs=$LIBS
572   LIBS=""
573   # the double underscore thing is a glibc-ism?
574   AC_SEARCH_LIBS(res_query,resolv bind,,
575                  AC_SEARCH_LIBS(__res_query,resolv bind,,use_dns_srv=no))
576   AC_SEARCH_LIBS(dn_expand,resolv bind,,
577                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,use_dns_srv=no))
578   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
579                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,use_dns_srv=no))
580
581   if test x"$use_dns_srv" = xyes ; then
582      AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
583      SRVLIBS=$LIBS
584   else
585      AC_MSG_WARN([Resolver functions not found.  Disabling DNS SRV.])
586   fi
587   LIBS=$_srv_save_libs
588 fi
589
590 AC_SUBST(SRVLIBS)
591
592 # Try and link a LDAP test program to weed out unusable LDAP
593 # libraries.  -lldap [-llber [-lresolv]] is for OpenLDAP.  OpenLDAP in
594 # general is terrible with creating weird dependencies.  If all else
595 # fails, the user can play guess-the-dependency by using something
596 # like ./configure LDAPLIBS="-Lfoo -lbar"
597
598 if test "$try_ldap" = yes ; then
599   for MY_LDAPLIBS in ${LDAPLIBS+"$LDAPLIBS"} "-lldap" "-lldap -llber" "-lldap -llber -lresolv"; do
600     _ldap_save_libs=$LIBS
601     LIBS="$MY_LDAPLIBS $NETLIBS $LIBS"
602
603     AC_MSG_CHECKING([whether LDAP via \"$MY_LDAPLIBS\" is present and sane])
604     AC_TRY_LINK([#include <ldap.h>],[ldap_open("foobar",1234);],
605                 [gnupg_cv_func_ldap_init=yes],[gnupg_cv_func_ldap_init=no])
606     AC_MSG_RESULT([$gnupg_cv_func_ldap_init])
607
608     if test $gnupg_cv_func_ldap_init = no; then
609       AC_MSG_CHECKING([whether I can make LDAP be sane with lber.h])
610       AC_TRY_LINK([#include <lber.h>
611 #include <ldap.h>],[ldap_open("foobar",1234);],
612          [gnupg_cv_func_ldaplber_init=yes],[gnupg_cv_func_ldaplber_init=no])
613       AC_MSG_RESULT([$gnupg_cv_func_ldaplber_init])
614     fi
615
616     if test "$gnupg_cv_func_ldaplber_init" = yes ; then
617        AC_DEFINE(NEED_LBER_H,1,[Define if the LDAP library requires including lber.h before ldap.h])
618     fi
619
620     if test "$gnupg_cv_func_ldap_init" = yes || \
621         test "$gnupg_cv_func_ldaplber_init" = yes ; then
622        LDAPLIBS=$MY_LDAPLIBS
623        GPGKEYS_LDAP="gpgkeys_ldap$EXEEXT"
624
625        AC_MSG_CHECKING([whether LDAP supports ldap_get_option])
626
627        if test "$gnupg_cv_func_ldap_init" = yes ; then
628           AC_TRY_LINK([#include <ldap.h>],
629              [ldap_get_option((void *)0,0,(void *)0);],
630              [gnupg_cv_func_ldap_get_option=yes],
631              [gnupg_cv_func_ldap_get_option=no])
632         else
633           AC_TRY_LINK([#include <lber.h>
634 #include <ldap.h>],[ldap_get_option((void *)0,0,(void *)0);],
635              [gnupg_cv_func_ldap_get_option=yes],
636              [gnupg_cv_func_ldap_get_option=no])
637        fi
638
639        AC_MSG_RESULT([$gnupg_cv_func_ldap_get_option])
640
641        if test "$gnupg_cv_func_ldap_get_option" = yes ; then
642           AC_DEFINE(HAVE_LDAP_GET_OPTION,1,[Define if the LDAP library has ldap_get_option])
643        else
644           AC_MSG_CHECKING([whether LDAP supports ld_errno])
645
646           if test "$gnupg_cv_func_ldap_init" = yes ; then
647             AC_TRY_COMPILE([#include <ldap.h>],
648                [LDAP *ldap; ldap->ld_errno;],
649                [gnupg_cv_func_ldap_ld_errno=yes],
650                [gnupg_cv_func_ldap_ld_errno=no])
651            else
652             AC_TRY_LINK([#include <lber.h>
653 #include <ldap.h>],[LDAP *ldap; ldap->ld_errno;],
654                [gnupg_cv_func_ldap_ld_errno=yes],
655                [gnupg_cv_func_ldap_ld_errno=no])
656           fi
657
658           AC_MSG_RESULT([$gnupg_cv_func_ldap_ld_errno])
659
660           if test "$gnupg_cv_func_ldap_ld_errno" = yes ; then
661              AC_DEFINE(HAVE_LDAP_LD_ERRNO,1,[Define if the LDAP library supports ld_errno])
662           fi
663        fi
664     fi
665
666     LIBS=$_ldap_save_libs
667
668     if test "$GPGKEYS_LDAP" != "" ; then break; fi
669   done
670 fi
671
672 AC_SUBST(GPGKEYS_LDAP)
673 AC_SUBST(LDAPLIBS)
674
675 dnl This isn't necessarily sendmail itself, but anything that gives a
676 dnl sendmail-ish interface to the outside world.  That includes qmail,
677 dnl postfix, etc.  Basically, anything that can handle "sendmail -t".
678
679 if test "$try_mailto" = yes ; then
680   AC_ARG_WITH(mailprog,[  --with-mailprog=NAME    use "NAME -t" for mail transport],,with_mailprog=yes)
681
682   if test "$with_mailprog" = yes ; then
683     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
684     if test "$ac_cv_path_SENDMAIL" ; then
685       GPGKEYS_MAILTO="gpgkeys_mailto"
686     fi
687   elif test "$with_mailprog" != no ; then
688     AC_MSG_CHECKING([for a mail transport program])
689     AC_SUBST(SENDMAIL,$with_mailprog)
690     AC_MSG_RESULT($with_mailprog)
691     GPGKEYS_MAILTO="gpgkeys_mailto"
692   fi
693 fi
694
695 AC_SUBST(GPGKEYS_MAILTO)
696
697 case "${host}" in
698     *-mingw32*)
699         PRINTABLE_OS_NAME="MingW32"
700         ;;
701     *-*-cygwin*)
702         PRINTABLE_OS_NAME="Cygwin"
703         ;;
704     i?86-emx-os2 | i?86-*-os2*emx )
705         PRINTABLE_OS_NAME="OS/2"
706         ;;
707     i?86-*-msdosdjgpp*)
708         PRINTABLE_OS_NAME="MSDOS/DJGPP"
709         try_dynload=no
710         ;;
711     *-linux*)
712         PRINTABLE_OS_NAME="GNU/Linux"
713         ;;
714     *)
715         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
716         ;;
717 esac
718 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
719                    [A human readable text with the name of the OS])
720
721
722 AM_GNU_GETTEXT_VERSION(0.14.1)
723 if test "$try_gettext" = yes; then
724   AM_GNU_GETTEXT(,[need-ngettext])
725
726   # gettext requires some extra checks.  These really should be part of
727   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
728   # function checks to here.
729
730   AC_CHECK_FUNCS(strchr)
731 else
732   USE_NLS=no
733   USE_INCLUDED_LIBINTL=no
734   BUILD_INCLUDED_LIBINTL=no
735   AC_SUBST(USE_NLS)
736   AC_SUBST(USE_INCLUDED_LIBINTL)
737   AC_SUBST(BUILD_INCLUDED_LIBINTL)
738 fi
739
740 # Checks for header files.
741 AC_HEADER_STDC
742 AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
743
744 # Checks for typedefs, structures, and compiler characteristics.
745 AC_C_CONST
746 AC_C_INLINE
747 AC_TYPE_SIZE_T
748 AC_TYPE_SIGNAL
749 AC_DECL_SYS_SIGLIST
750
751 GNUPG_CHECK_ENDIAN
752
753 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
754 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
755 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
756 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
757 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
758
759 AC_CHECK_SIZEOF(unsigned short)
760 AC_CHECK_SIZEOF(unsigned int)
761 AC_CHECK_SIZEOF(unsigned long)
762 AC_CHECK_SIZEOF(unsigned long long)
763 # Ensure that we have UINT64_C before we bother to check for uint64_t
764 # fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
765 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
766    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <inttypes.h>
767 uint64_t foo=UINT64_C(42);]),gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
768 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
769    AC_CHECK_SIZEOF(uint64_t)
770 fi
771  
772
773
774
775 if test "$ac_cv_sizeof_unsigned_short" = "0" \
776    || test "$ac_cv_sizeof_unsigned_int" = "0" \
777    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
778     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
779 fi
780
781 dnl Do we have any 64-bit data types?
782 if test "$ac_cv_sizeof_unsigned_int" != "8" \
783    && test "$ac_cv_sizeof_unsigned_long" != "8" \
784    && test "$ac_cv_sizeof_unsigned_long_long" != "8" \
785    && test "$ac_cv_sizeof_uint64_t" != "8"; then
786     AC_MSG_WARN([No 64-bit types.  Disabling SHA-384, and SHA-512])
787 else
788   if test x"$use_sha512" = xyes ; then
789      AC_SUBST(SHA512_O,sha512.o)
790      AC_DEFINE(USE_SHA512,1,[Define to include the SHA-384 and SHA-512 digests])
791   fi
792 fi
793
794 # fixme: do we really need this - it should be encapsulated in libassuan
795 GNUPG_SYS_SO_PEERCRED
796
797 # Checks for library functions.
798 AC_FUNC_FSEEKO
799 AC_FUNC_VPRINTF
800 AC_FUNC_FORK
801 AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
802 AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times gmtime_r)
803 AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
804 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
805 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
806
807 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
808
809 # These are needed by libjnlib - fixme: we should have macros for them
810 AC_CHECK_FUNCS(memicmp stpcpy strlwr strtoul memmove stricmp strtol)
811 AC_CHECK_FUNCS(getrusage setrlimit stat setlocale)
812 AC_CHECK_FUNCS(flockfile funlockfile fopencookie funopen)
813
814 AC_REPLACE_FUNCS(vasprintf)
815 AC_REPLACE_FUNCS(mkdtemp)
816 AC_REPLACE_FUNCS(fseeko ftello)
817 AC_REPLACE_FUNCS(isascii)
818 AC_REPLACE_FUNCS(putc_unlocked)
819 AC_REPLACE_FUNCS(strsep)
820 AC_REPLACE_FUNCS(ttyname)
821
822
823
824 #
825 # check for gethrtime and run a testprogram to see whether
826 # it is broken.  It has been reported that some Solaris and HP UX systems 
827 # raise an SIGILL
828 #
829 #  fixme: Do we need this - iirc, this is only used by libgcrypt.
830 #
831 AC_CACHE_CHECK([for gethrtime], 
832                [gnupg_cv_func_gethrtime],
833                [AC_TRY_LINK([#include <sys/times.h>],[
834                    hrtime_t tv;
835                    tv = gethrtime();
836                  ],
837                  [gnupg_cv_func_gethrtime=yes],
838                  [gnupg_cv_func_gethrtime=no])
839                ])
840 if test $gnupg_cv_func_gethrtime = yes; then
841      AC_DEFINE([HAVE_GETHRTIME], 1,
842                [Define if you have the `gethrtime(2)' function.])
843      AC_CACHE_CHECK([whether gethrtime is broken], 
844                [gnupg_cv_func_broken_gethrtime],
845                [AC_TRY_RUN([
846                    #include <sys/times.h>
847                    int main () {
848                    hrtime_t tv;
849                    tv = gethrtime(); 
850                  }
851                  ],
852                  [gnupg_cv_func_broken_gethrtime=no],
853                  [gnupg_cv_func_broken_gethrtime=yes],
854                  [gnupg_cv_func_broken_gethrtime=assume-no])
855                 ])
856     if test $gnupg_cv_func_broken_gethrtime = yes; then
857       AC_DEFINE([HAVE_BROKEN_GETHRTIME], 1,
858       [Define if `gethrtime(2)' does not work correctly i.e. issues a SIGILL.])
859     fi
860 fi
861      
862
863 GNUPG_CHECK_MLOCK
864 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
865
866 dnl
867 dnl Check whether we can use Linux capabilities as requested
868 dnl
869 #  fixme: Still required?
870 #
871 if test "$use_capabilities" = "yes" ; then
872 use_capabilities=no
873 AC_CHECK_HEADERS(sys/capability.h)
874 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
875   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
876   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
877      AC_DEFINE(USE_CAPABILITIES,1,
878                [define if capabilities should be used])
879      AC_SUBST(CAPLIBS,"-lcap")
880      use_capabilities=yes
881   fi
882 fi
883 if test "$use_capabilities" = "no" ; then
884     AC_MSG_WARN([[
885 ***
886 *** The use of capabilities on this system is not possible.
887 *** You need a recent Linux kernel and some patches:
888 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
889 ***   fcap-module-990613.tar.gz     (kernel module)
890 ***   libcap-1.92.tar.gz            (user mode library and utilities)
891 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
892 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
893 ***]])
894 fi
895 fi
896
897
898 # Sanity check regex.  Tests adapted from mutt.
899
900 AC_MSG_CHECKING([whether regular expression support is requested])
901 AC_ARG_ENABLE(regex,
902 [  --disable-regex         do not handle regular expressions in trust sigs],
903      use_regex=$enableval, use_regex=yes)
904 AC_MSG_RESULT($use_regex)
905
906 if test "$use_regex" = yes ; then
907   AC_MSG_CHECKING([whether the included regex lib is requested])
908   AC_ARG_WITH(included-regex,
909       [  --with-included-regex   use the included GNU regex library],
910       [gnupg_cv_included_regex="$withval"],[gnupg_cv_included_regex=no])
911   AC_MSG_RESULT($gnupg_cv_included_regex)
912
913   if test $gnupg_cv_included_regex = no ; then
914      # Does the system have regex functions at all?
915      AC_CHECK_FUNC(regcomp,gnupg_cv_included_regex=no,
916                            gnupg_cv_included_regex=yes)
917   fi
918
919   if test $gnupg_cv_included_regex = no ; then
920      AC_CACHE_CHECK([whether your system's regexp library is broken],
921        [gnupg_cv_regex_broken],
922        AC_TRY_RUN([
923 #include <unistd.h>
924 #include <regex.h>
925 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); }],
926        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
927
928      if test $gnupg_cv_regex_broken = yes ; then
929       AC_MSG_WARN(your regex is broken - using the included GNU regex instead.)
930       gnupg_cv_included_regex=yes
931      fi
932   fi
933
934   if test $gnupg_cv_included_regex = yes; then
935      AC_DEFINE(USE_GNU_REGEX,1,[ Define if you want to use the included regex lib ])
936      AC_SUBST(REGEX_O,regex.o)
937   fi
938 else
939
940   AC_DEFINE(DISABLE_REGEX,1,[ Define to disable regular expression support ])
941 fi
942
943 dnl Do we have zlib? Must do it here because Solaris failed
944 dnl when compiling a conftest (due to the "-lz" from LIBS).
945 _cppflags="${CPPFLAGS}"
946 _ldflags="${LDFLAGS}"
947
948 AC_ARG_WITH(zlib,
949   [  --with-zlib=DIR         use libz in DIR],[
950     if test -d "$withval"; then
951       CPPFLAGS="${CPPFLAGS} -I$withval/include"
952       LDFLAGS="${LDFLAGS} -L$withval/lib"
953     fi
954   ])
955
956 AC_CHECK_HEADER(zlib.h,
957       AC_CHECK_LIB(z, deflateInit2_,
958        LIBS="$LIBS -lz",
959        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
960        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
961  
962
963
964 # See wether we want to run the long test suite.
965 AC_ARG_WITH(pkits-tests,
966     AC_HELP_STRING([--with-pkits-tests],[run the PKITS based tests]),
967     [run_pkits_tests=$withval], [run_pkits_tests=no])
968 AM_CONDITIONAL(RUN_PKITS_TESTS, test "$run_pkits_tests" = "yes")
969
970
971 # Allow users to append something to the version string without
972 # flagging it as development version.  The user version parts is
973 # considered everything after a dash. 
974 if test "$development_version" != yes; then
975   changequote(,)dnl
976   tmp_pat='[a-zA-Z]'
977   changequote([,])dnl
978   if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
979     development_version=yes
980   fi
981 fi
982 if test "$development_version" = yes; then
983     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
984             [Defined if this is not a regular release])
985 fi
986
987 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
988
989 GNUPG_CHECK_GNUMAKE
990
991 # Add some extra libs here so that previous tests don't fail for
992 # mysterious reasons - the final link step should bail out. 
993 if test "$have_w32_system" = yes; then
994    W32LIBS="-lwsock32"
995 fi
996
997
998 if test "$GCC" = yes; then
999     if test "$USE_MAINTAINER_MODE" = "yes"; then
1000         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1001         CFLAGS="$CFLAGS -Wformat-nonliteral"
1002     else
1003         CFLAGS="$CFLAGS -Wall"
1004     fi
1005 fi
1006
1007 AC_SUBST(NETLIBS)
1008 AC_SUBST(W32LIBS)
1009
1010
1011 # We use jnlib, so tell other modules about it
1012 AC_DEFINE(HAVE_JNLIB_LOGGING, 1,
1013           [Defined if jnlib style logging functions are available])
1014
1015 # For W32 we need to use our Pth emulation code
1016 if test "$have_w32_system" = yes; then
1017   AC_CONFIG_LINKS(pth.h:jnlib/w32-pth.h)
1018 fi
1019
1020
1021 #
1022 # Decide what to build
1023 #
1024 missing_pth=no
1025 if test $have_ksba = no; then
1026   build_gpgsm=no
1027   build_scdaemon=no
1028 fi
1029
1030 build_agent_threaded=""
1031 if test "$build_agent" = "yes"; then
1032   if test $have_pth = no; then
1033      build_agent_threaded="(not multi-threaded)"
1034      missing_pth=yes
1035   fi
1036 fi
1037
1038 build_scdaemon_extra=""
1039 if test "$build_scdaemon" = "yes"; then
1040   tmp=""
1041   if test $have_pth = no; then
1042      build_scdaemon_extra="not multi-threaded"
1043      tmp=", "
1044      missing_pth=yes
1045   fi
1046   if test $have_opensc = no; then
1047      build_scdaemon_extra="${build_scdaemon_extra}${tmp}no pkcs#15"
1048      tmp=", "
1049   fi      
1050   if test -n "$build_scdaemon_extra"; then
1051      build_scdaemon_extra="(${build_scdaemon_extra})"
1052   fi
1053 fi
1054
1055
1056 if test "$build_agent_only" = "yes" ; then
1057   build_gpg=no
1058   build_gpgsm=no
1059   build_scdaemon=no
1060 fi
1061
1062
1063 AM_CONDITIONAL(BUILD_GPG,   test "$build_gpg" = "yes")
1064 AM_CONDITIONAL(BUILD_GPGSM, test "$build_gpgsm" = "yes")
1065 AM_CONDITIONAL(BUILD_AGENT, test "$build_agent" = "yes")
1066 AM_CONDITIONAL(BUILD_SCDAEMON, test "$build_scdaemon" = "yes")
1067 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
1068
1069
1070
1071 #
1072 # Print errors here so that they are visible all
1073 # together and the user can acquire them all together.
1074 #
1075 die=no
1076 if test "$have_gpg_error" = "no"; then
1077    die=yes
1078    AC_MSG_NOTICE([[
1079 ***  
1080 *** You need libgpg-error to build this program.
1081 **  This library is for example available at
1082 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
1083 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
1084 ***]])
1085 fi
1086 if test "$have_libgcrypt" = "no"; then
1087    die=yes
1088    AC_MSG_NOTICE([[
1089 ***  
1090 *** You need libgcrypt to build this program.
1091 **  This library is for example available at
1092 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
1093 *** (at least version $NEED_LIBGCRYPT_VERSION using API $NEED_LIBGCRYPT_API) is required.)
1094 ***]])
1095 fi
1096 if test "$have_libassuan" = "no"; then
1097    die=yes
1098    AC_MSG_NOTICE([[
1099 ***
1100 *** You need libassuan to build this program.
1101 *** This library is for example available at
1102 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/
1103 *** (at least version $NEED_LIBASSUAN_VERSION is required).
1104 ***]])
1105 fi
1106 if test "$have_ksba" = "no"; then
1107     AC_MSG_NOTICE([[
1108 ***
1109 *** You need libksba to build this program.
1110 *** This library is for example available at
1111 ***   ftp://ftp.gnupg.org/gcrypt/alpha/libksba/
1112 *** (at least version $NEED_KSBA_VERSION is required).
1113 ***]])
1114 fi
1115 if test "$missing_pth" = "yes"; then
1116     AC_MSG_NOTICE([[
1117 ***
1118 *** It is strongly suggested to build with support for the
1119 *** GNU Portable Threads Library (Pth). Please install this
1120 *** library first or use --disable-threads to allow building
1121 *** anyway.  The library is for example available at
1122 ***   ftp://ftp.gnu.org/gnu/pth/
1123 *** On a Debian GNU/Linux system you can install it using 
1124 ***   apt-get install libpth-dev
1125 ***]])
1126   if test "$enable_threads" != "no"; then
1127      die=yes
1128   fi
1129 fi
1130
1131 if test "$die" = "yes"; then
1132     AC_MSG_ERROR([[
1133 ***
1134 *** Required libraries not found. Please consult the above messages
1135 *** and install them before running configure again.
1136 ***]])
1137 fi
1138
1139
1140
1141 AC_CONFIG_FILES([ m4/Makefile 
1142 Makefile
1143 po/Makefile.in
1144 intl/Makefile
1145 jnlib/Makefile
1146 common/Makefile
1147 kbx/Makefile
1148 g10/Makefile
1149 sm/Makefile
1150 agent/Makefile
1151 scd/Makefile
1152 tools/Makefile
1153 doc/Makefile
1154 tests/Makefile
1155 ])
1156 AC_OUTPUT
1157
1158 #tests/pkits/Makefile
1159
1160
1161
1162
1163 echo "
1164         GnuPG v${VERSION} has been configured as follows:
1165         
1166         Platform:  $PRINTABLE_OS_NAME ($host)
1167
1168         OpenPGP:   $build_gpg
1169         S/MIME:    $build_gpgsm
1170         Agent:     $build_agent $build_agent_threaded
1171         Smartcard: $build_scdaemon $build_scdaemon_extra
1172
1173         Protect tool:      $show_gnupg_protect_tool_pgm
1174         Default agent:     $show_gnupg_agent_pgm
1175         Default pinentry:  $show_gnupg_pinentry_pgm
1176         Default scdaemon:  $show_gnupg_scdaemon_pgm
1177         Default dirmngr:   $show_gnupg_dirmngr_pgm
1178
1179         PKITS based tests: $run_pkits_tests
1180 "
1181