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