Switch to the new automagic beta numbering scheme.
[gnupg.git] / configure.ac
1 # configure.ac - for GnuPG 2.1
2 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 #               2008, 2009, 2010, 2011, 2012 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 3 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, see <http://www.gnu.org/licenses/>.
19
20 # Process this file with autoconf to produce a configure script.
21 AC_PREREQ(2.61)
22 min_automake_version="1.10"
23
24 # To build a release you need to create a tag with the version number
25 # (git tag -s gnupg-2.n.m) and run "./autogen.sh --force".  Please
26 # bump the version number immediately *after* the release and do
27 # another commit and push so that the git magic is able to work.
28 m4_define([mym4_version], [2.1.0])
29
30 # Below is m4 magic to extract and compute the git revision number,
31 # the decimalized short revision number, a beta version string and a
32 # flag indicating a development version (mym4_isgit).  Note that the
33 # m4 processing is done by autoconf and not during the configure run.
34 m4_define([mym4_revision], m4_esyscmd([git branch -v 2>/dev/null \
35           | awk '/^\* / {printf "%s",$3}']))
36 m4_define([mym4_revision_dec],
37           m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
38 m4_define([mym4_betastring],
39           m4_esyscmd_s([git describe --match 'gnupg-2.[0-9].*[0-9]' --long|\
40                         awk -F- '$3!=0{print"-beta"$3}']))
41 m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
42 m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
43
44 AC_INIT([gnupg],[mym4_full_version], [http://bugs.gnupg.org])
45
46 NEED_GPG_ERROR_VERSION=1.10
47
48 NEED_LIBGCRYPT_API=1
49 NEED_LIBGCRYPT_VERSION=1.5.0
50
51 NEED_LIBASSUAN_API=2
52 NEED_LIBASSUAN_VERSION=2.1.0
53
54 NEED_KSBA_API=1
55 NEED_KSBA_VERSION=1.2.0
56
57 NEED_NPTH_API=1
58 NEED_NPTH_VERSION=0.91
59
60
61 development_version=mym4_isgit
62 PACKAGE=$PACKAGE_NAME
63 PACKAGE_GT=${PACKAGE_NAME}2
64 VERSION=$PACKAGE_VERSION
65
66 AC_CONFIG_AUX_DIR(scripts)
67 AC_CONFIG_SRCDIR(sm/gpgsm.c)
68 AM_CONFIG_HEADER(config.h)
69 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
70 AC_CANONICAL_HOST
71 AB_INIT
72
73 AC_GNU_SOURCE
74
75 # Some status variables.
76 have_gpg_error=no
77 have_libgcrypt=no
78 have_libassuan=no
79 have_ksba=no
80 have_npth=no
81 have_libusb=no
82 have_adns=no
83
84 use_zip=yes
85 use_bzip2=yes
86 use_exec=yes
87 disable_keyserver_path=no
88 use_ccid_driver=yes
89 use_standard_socket=yes
90 dirmngr_auto_start=no
91
92 try_ks_ldap=no
93
94 GNUPG_BUILD_PROGRAM(gpg, yes)
95 GNUPG_BUILD_PROGRAM(gpgsm, yes)
96 GNUPG_BUILD_PROGRAM(agent, yes)
97 GNUPG_BUILD_PROGRAM(scdaemon, yes)
98 GNUPG_BUILD_PROGRAM(g13, yes)
99 GNUPG_BUILD_PROGRAM(dirmngr, yes)
100 GNUPG_BUILD_PROGRAM(tools, yes)
101 GNUPG_BUILD_PROGRAM(doc, yes)
102 GNUPG_BUILD_PROGRAM(symcryptrun, no)
103 GNUPG_BUILD_PROGRAM(gpgtar, no)
104
105 AC_SUBST(PACKAGE)
106 AC_SUBST(PACKAGE_GT)
107 AC_SUBST(VERSION)
108 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
109 AC_DEFINE_UNQUOTED(PACKAGE_GT, "$PACKAGE_GT",
110                                 [Name of this package for gettext])
111 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
112 AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$PACKAGE_BUGREPORT",
113                                         [Bug report address])
114 AC_DEFINE_UNQUOTED(NEED_LIBGCRYPT_VERSION, "$NEED_LIBGCRYPT_VERSION",
115                                        [Required version of Libgcrypt])
116 AC_DEFINE_UNQUOTED(NEED_KSBA_VERSION, "$NEED_KSBA_VERSION",
117                                        [Required version of Libksba])
118
119
120
121 # The default is to use the modules from this package and the few
122 # other packages in a standard place; i.e where this package gets
123 # installed.  With these options it is possible to override these
124 # ${prefix} depended values with fixed paths, which can't be replaced
125 # at make time.  See also am/cmacros.am and the defaults in AH_BOTTOM.
126 AC_ARG_WITH(agent-pgm,
127     [  --with-agent-pgm=PATH  Use PATH as the default for the agent)],
128           GNUPG_AGENT_PGM="$withval", GNUPG_AGENT_PGM="" )
129 AC_SUBST(GNUPG_AGENT_PGM)
130 AM_CONDITIONAL(GNUPG_AGENT_PGM, test -n "$GNUPG_AGENT_PGM")
131 show_gnupg_agent_pgm="(default)"
132 test -n "$GNUPG_AGENT_PGM" && show_gnupg_agent_pgm="$GNUPG_AGENT_PGM"
133
134 AC_ARG_WITH(pinentry-pgm,
135     [  --with-pinentry-pgm=PATH  Use PATH as the default for the pinentry)],
136           GNUPG_PINENTRY_PGM="$withval", GNUPG_PINENTRY_PGM="" )
137 AC_SUBST(GNUPG_PINENTRY_PGM)
138 AM_CONDITIONAL(GNUPG_PINENTRY_PGM, test -n "$GNUPG_PINENTRY_PGM")
139 show_gnupg_pinentry_pgm="(default)"
140 test -n "$GNUPG_PINENTRY_PGM" && show_gnupg_pinentry_pgm="$GNUPG_PINENTRY_PGM"
141
142
143 AC_ARG_WITH(scdaemon-pgm,
144     [  --with-scdaemon-pgm=PATH  Use PATH as the default for the scdaemon)],
145           GNUPG_SCDAEMON_PGM="$withval", GNUPG_SCDAEMON_PGM="" )
146 AC_SUBST(GNUPG_SCDAEMON_PGM)
147 AM_CONDITIONAL(GNUPG_SCDAEMON_PGM, test -n "$GNUPG_SCDAEMON_PGM")
148 show_gnupg_scdaemon_pgm="(default)"
149 test -n "$GNUPG_SCDAEMON_PGM" && show_gnupg_scdaemon_pgm="$GNUPG_SCDAEMON_PGM"
150
151
152 AC_ARG_WITH(dirmngr-pgm,
153     [  --with-dirmngr-pgm=PATH  Use PATH as the default for the dirmngr)],
154           GNUPG_DIRMNGR_PGM="$withval", GNUPG_DIRMNGR_PGM="" )
155 AC_SUBST(GNUPG_DIRMNGR_PGM)
156 AM_CONDITIONAL(GNUPG_DIRMNGR_PGM, test -n "$GNUPG_DIRMNGR_PGM")
157 show_gnupg_dirmngr_pgm="(default)"
158 test -n "$GNUPG_DIRMNGR_PGM" && show_gnupg_dirmngr_pgm="$GNUPG_DIRMNGR_PGM"
159
160 AC_ARG_WITH(protect-tool-pgm,
161     [  --with-protect-tool-pgm=PATH  Use PATH as the default for the protect-tool)],
162           GNUPG_PROTECT_TOOL_PGM="$withval", GNUPG_PROTECT_TOOL_PGM="" )
163 AC_SUBST(GNUPG_PROTECT_TOOL_PGM)
164 AM_CONDITIONAL(GNUPG_PROTECT_TOOL_PGM, test -n "$GNUPG_PROTECT_TOOL_PGM")
165 show_gnupg_protect_tool_pgm="(default)"
166 test -n "$GNUPG_PROTECT_TOOL_PGM" \
167       && show_gnupg_protect_tool_pgm="$GNUPG_PROTECT_TOOL_PGM"
168
169 AC_ARG_WITH(dirmngr-ldap-pgm,
170     [  --with-dirmngr-ldap-pgm=PATH  Use PATH as the default for the dirmnge ldap wrapper)],
171           GNUPG_DIRMNGR_LDAP_PGM="$withval", GNUPG_DIRMNGR_LDAP_PGM="" )
172 AC_SUBST(GNUPG_DIRMNGR_LDAP_PGM)
173 AM_CONDITIONAL(GNUPG_DIRMNGR_LDAP_PGM, test -n "$GNUPG_DIRMNGR_LDAP_PGM")
174 show_gnupg_dirmngr_ldap_pgm="(default)"
175 test -n "$GNUPG_DIRMNGR_LDAP_PGM" \
176       && show_gnupg_dirmngr_ldap_pgm="$GNUPG_DIRMNGR_LDAP_PGM"
177
178 #
179 # On some platforms gpg2 is usually installed as gpg without using a
180 # symlink.  For correct operation of gpgconf it needs to know the
181 # installed name of gpg.  This option sets "gpg2"'s installed name to
182 # just "gpg".  Note that it might be required to rename gpg2 to gpg
183 # manually after the build process.
184 #
185 AC_ARG_ENABLE(gpg2-is-gpg,
186     AC_HELP_STRING([--enable-gpg2-is-gpg],[Set installed name of gpg2 to gpg]),
187     gpg2_is_gpg=$enableval)
188 if test "$gpg2_is_gpg" = "yes"; then
189    name_of_installed_gpg=gpg
190 else
191    name_of_installed_gpg=gpg2
192 fi
193 AC_DEFINE_UNQUOTED(NAME_OF_INSTALLED_GPG, "$name_of_installed_gpg",
194                    [The name of the installed GPG tool])
195
196
197 # Some folks want to use only the agent from this packet.  Make it
198 # easier for them by providing the configure option
199 # --enable-only-agent.
200 AC_ARG_ENABLE(agent-only,
201     AC_HELP_STRING([--enable-agent-only],[build only the gpg-agent]),
202     build_agent_only=$enableval)
203
204 # SELinux support includes tracking of sensitive files to avoid
205 # leaking their contents through processing these files by gpg itself
206 AC_MSG_CHECKING([whether SELinux support is requested])
207 AC_ARG_ENABLE(selinux-support,
208               AC_HELP_STRING([--enable-selinux-support],
209                              [enable SELinux support]),
210               selinux_support=$enableval, selinux_support=no)
211 AC_MSG_RESULT($selinux_support)
212
213 # Allow disabling of zip support.
214 # This is in general not a good idea because according to rfc4880 OpenPGP
215 # implementations SHOULD support ZLIB.
216 AC_MSG_CHECKING([whether to enable the ZIP and ZLIB compression algorithm])
217 AC_ARG_ENABLE(zip,
218    AC_HELP_STRING([--disable-zip],
219                   [disable the ZIP and ZLIB compression algorithm]),
220    use_zip=$enableval)
221 AC_MSG_RESULT($use_zip)
222
223 # Allow disabling of bzib2 support.
224 # It is defined only after we confirm the library is available later
225 AC_MSG_CHECKING([whether to enable the BZIP2 compression algorithm])
226 AC_ARG_ENABLE(bzip2,
227    AC_HELP_STRING([--disable-bzip2],[disable the BZIP2 compression algorithm]),
228    use_bzip2=$enableval)
229 AC_MSG_RESULT($use_bzip2)
230
231 # Configure option to allow or disallow execution of external
232 # programs, like a photo viewer.
233 AC_MSG_CHECKING([whether to enable external program execution])
234 AC_ARG_ENABLE(exec,
235     AC_HELP_STRING([--disable-exec],[disable all external program execution]),
236     use_exec=$enableval)
237 AC_MSG_RESULT($use_exec)
238 if test "$use_exec" = no ; then
239     AC_DEFINE(NO_EXEC,1,[Define to disable all external program execution])
240 fi
241
242 if test "$use_exec" = yes ; then
243   AC_MSG_CHECKING([whether to enable photo ID viewing])
244   AC_ARG_ENABLE(photo-viewers,
245       [  --disable-photo-viewers disable photo ID viewers],
246       [if test "$enableval" = no ; then
247          AC_DEFINE(DISABLE_PHOTO_VIEWER,1,[define to disable photo viewing])
248       fi],enableval=yes)
249   gnupg_cv_enable_photo_viewers=$enableval
250   AC_MSG_RESULT($enableval)
251
252   if test "$gnupg_cv_enable_photo_viewers" = yes ; then
253     AC_MSG_CHECKING([whether to use a fixed photo ID viewer])
254     AC_ARG_WITH(photo-viewer,
255         [  --with-photo-viewer=FIXED_VIEWER  set a fixed photo ID viewer],
256         [if test "$withval" = yes ; then
257            withval=no
258         elif test "$withval" != no ; then
259            AC_DEFINE_UNQUOTED(FIXED_PHOTO_VIEWER,"$withval",
260                             [if set, restrict photo-viewer to this])
261         fi],withval=no)
262     AC_MSG_RESULT($withval)
263   fi
264
265   AC_MSG_CHECKING([whether to enable external keyserver helpers])
266   AC_ARG_ENABLE(keyserver-helpers,
267       [  --disable-keyserver-helpers  disable all external keyserver support],
268       [if test "$enableval" = no ; then
269          AC_DEFINE(DISABLE_KEYSERVER_HELPERS,1,
270                   [define to disable keyserver helpers])
271       fi],enableval=yes)
272   gnupg_cv_enable_keyserver_helpers=$enableval
273   AC_MSG_RESULT($enableval)
274
275   if test "$gnupg_cv_enable_keyserver_helpers" = yes ; then
276     # LDAP is defined only after we confirm the library is available later
277     AC_MSG_CHECKING([whether LDAP keyserver support is requested])
278     AC_ARG_ENABLE(ldap,
279       AC_HELP_STRING([--disable-ldap],[disable LDAP keyserver interface only]),
280       try_ks_ldap=$enableval, try_ks_ldap=yes)
281     AC_MSG_RESULT($try_ks_ldap)
282
283     AC_MSG_CHECKING([whether HKP keyserver support is requested])
284     AC_ARG_ENABLE(hkp,
285       AC_HELP_STRING([--disable-hkp],[disable HKP keyserver interface only]),
286       try_hkp=$enableval, try_hkp=yes)
287     AC_MSG_RESULT($try_hkp)
288
289     AC_MSG_CHECKING([whether finger key fetching support is requested])
290     AC_ARG_ENABLE(finger,
291       AC_HELP_STRING([--disable-finger],
292         [disable finger key fetching interface only]),
293       try_finger=$enableval, try_finger=yes)
294     AC_MSG_RESULT($try_finger)
295
296     AC_MSG_CHECKING([whether generic object key fetching support is requested])
297     AC_ARG_ENABLE(generic,
298       AC_HELP_STRING([--disable-generic],
299         [disable generic object key fetching interface only]),
300       try_generic=$enableval, try_generic=yes)
301     AC_MSG_RESULT($try_generic)
302
303     AC_MSG_CHECKING([whether email keyserver support is requested])
304     AC_ARG_ENABLE(mailto,
305       AC_HELP_STRING([--enable-mailto],
306         [enable email keyserver interface only]),
307       try_mailto=$enableval, try_mailto=no)
308     AC_MSG_RESULT($try_mailto)
309   fi
310
311   AC_MSG_CHECKING([whether keyserver exec-path is enabled])
312   AC_ARG_ENABLE(keyserver-path,
313       AC_HELP_STRING([--disable-keyserver-path],
314         [disable the exec-path option for keyserver helpers]),
315       [if test "$enableval" = no ; then
316          disable_keyserver_path=yes
317       fi],enableval=yes)
318   AC_MSG_RESULT($enableval)
319 fi
320
321
322 #
323 # Check for the key/uid cache size.  This can't be zero, but can be
324 # pretty small on embedded systems.  This is used for the gpg part.
325 #
326 AC_MSG_CHECKING([for the size of the key and uid cache])
327 AC_ARG_ENABLE(key-cache,
328         AC_HELP_STRING([--enable-key-cache=SIZE],
329                        [Set key cache to SIZE (default 4096)]),,enableval=4096)
330 if test "$enableval" = "no"; then
331    enableval=5
332 elif test "$enableval" = "yes" || test "$enableval" = ""; then
333    enableval=4096
334 fi
335 changequote(,)dnl
336 key_cache_size=`echo "$enableval" | sed 's/[A-Za-z]//g'`
337 changequote([,])dnl
338 if test "$enableval" != "$key_cache_size" || test "$key_cache_size" -lt 5; then
339    AC_MSG_ERROR([invalid key-cache size])
340 fi
341 AC_MSG_RESULT($key_cache_size)
342 AC_DEFINE_UNQUOTED(PK_UID_CACHE_SIZE,$key_cache_size,
343                   [Size of the key and UID caches])
344
345
346
347 #
348 # Check whether we want to use Linux capabilities
349 #
350 AC_MSG_CHECKING([whether use of capabilities is requested])
351 AC_ARG_WITH(capabilities,
352     [  --with-capabilities     use linux capabilities [default=no]],
353 [use_capabilities="$withval"],[use_capabilities=no])
354 AC_MSG_RESULT($use_capabilities)
355
356
357 #
358 # Allow disabling of internal CCID support.
359 # It is defined only after we confirm the library is available later
360 #
361 AC_MSG_CHECKING([whether to enable the internal CCID driver])
362 AC_ARG_ENABLE(ccid-driver,
363               AC_HELP_STRING([--disable-ccid-driver],
364                              [disable the internal CCID driver]),
365               use_ccid_driver=$enableval)
366 AC_MSG_RESULT($use_ccid_driver)
367
368 #
369 # Dirmngr is nowadays a system service and thus it usually does no
370 # make sense to start it as needed.  However on some systems this is
371 # possible; this option enable the feature.
372 #
373 AC_MSG_CHECKING([whether to auto start dirmngr])
374 AC_ARG_ENABLE(dirmngr-auto-start,
375               AC_HELP_STRING([--enable-dirmngr-auto-start],
376                              [enable auto starting of the dirmngr]),
377               dirmngr_auto_start=$enableval)
378 AC_MSG_RESULT($dirmngr_auto_start)
379 if test "$dirmngr_auto_start" = yes ; then
380     AC_DEFINE(USE_DIRMNGR_AUTO_START,1,
381               [Define to enable auto starting of the dirmngr])
382 fi
383
384
385 #
386 # To avoid double inclusion of config.h which might happen at some
387 # places, we add the usual double inclusion protection at the top of
388 # config.h.
389 #
390 AH_TOP([
391 #ifndef GNUPG_CONFIG_H_INCLUDED
392 #define GNUPG_CONFIG_H_INCLUDED
393 ])
394
395 #
396 # Stuff which goes at the bottom of config.h.
397 #
398 AH_BOTTOM([
399 /* This is the major version number of GnuPG so that
400    source included files can test for this.  Note, that
401    we use 2 here even for GnuPG 1.9.x. */
402 #define GNUPG_MAJOR_VERSION 2
403
404 /* Now to separate file name parts.
405    Please note that the string version must not contain more
406    than one character because the code assumes strlen()==1 */
407 #ifdef HAVE_DOSISH_SYSTEM
408 #define DIRSEP_C '\\'
409 #define DIRSEP_S "\\"
410 #define EXTSEP_C '.'
411 #define EXTSEP_S "."
412 #define PATHSEP_C ';'
413 #define PATHSEP_S ";"
414 #define EXEEXT_S ".exe"
415 #else
416 #define DIRSEP_C '/'
417 #define DIRSEP_S "/"
418 #define EXTSEP_C '.'
419 #define EXTSEP_S "."
420 #define PATHSEP_C ':'
421 #define PATHSEP_S ":"
422 #define EXEEXT_S ""
423 #endif
424
425 /* This is the same as VERSION, but should be overridden if the
426    platform cannot handle things like dots '.' in filenames. Set
427    SAFE_VERSION_DOT and SAFE_VERSION_DASH to whatever SAFE_VERSION
428    uses for dots and dashes. */
429 #define SAFE_VERSION VERSION
430 #define SAFE_VERSION_DOT  '.'
431 #define SAFE_VERSION_DASH '-'
432
433 /* Some global constants. */
434 #ifdef HAVE_DOSISH_SYSTEM
435 # ifdef HAVE_DRIVE_LETTERS
436 #  define GNUPG_DEFAULT_HOMEDIR "c:/gnupg"
437 # else
438 #  define GNUPG_DEFAULT_HOMEDIR "/gnupg"
439 # endif
440 #elif defined(__VMS)
441 #define GNUPG_DEFAULT_HOMEDIR "/SYS$LOGIN/gnupg"
442 #else
443 #define GNUPG_DEFAULT_HOMEDIR "~/.gnupg"
444 #endif
445 #define GNUPG_PRIVATE_KEYS_DIR "private-keys-v1.d"
446
447 /* For some systems (DOS currently), we hardcode the path here.  For
448    POSIX systems the values are constructed by the Makefiles, so that
449    the values may be overridden by the make invocations; this is to
450    comply with the GNU coding standards.  Note that these values are
451    only defaults.  */
452 #ifdef HAVE_DOSISH_SYSTEM
453 # ifdef HAVE_DRIVE_LETTERS
454 #  define GNUPG_BINDIR      "c:\\gnupg"
455 #  define GNUPG_LIBEXECDIR  "c:\\gnupg"
456 #  define GNUPG_LIBDIR      "c:\\gnupg"
457 #  define GNUPG_DATADIR     "c:\\gnupg"
458 #  define GNUPG_SYSCONFDIR  "c:\\gnupg"
459 # else
460 #  define GNUPG_BINDIR      "\\gnupg"
461 #  define GNUPG_LIBEXECDIR  "\\gnupg"
462 #  define GNUPG_LIBDIR      "\\gnupg"
463 #  define GNUPG_DATADIR     "\\gnupg"
464 #  define GNUPG_SYSCONFDIR  "\\gnupg"
465 # endif
466 #endif
467
468 /* Derive some other constants. */
469 #if !(defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID))
470 #define EXEC_TEMPFILE_ONLY
471 #endif
472
473
474 /* We didn't define endianness above, so get it from OS macros.  This
475    is intended for making fat binary builds on OS X. */
476 #if !defined(BIG_ENDIAN_HOST) && !defined(LITTLE_ENDIAN_HOST)
477 #if defined(__BIG_ENDIAN__)
478 #define BIG_ENDIAN_HOST 1
479 #elif defined(__LITTLE_ENDIAN__)
480 #define LITTLE_ENDIAN_HOST 1
481 #else
482 #error "No endianness found"
483 #endif
484 #endif
485
486
487 /* Hack used for W32: ldap.m4 also tests for the ASCII version of
488    ldap_start_tls_s because that is the actual symbol used in the
489    library.  winldap.h redefines it to our commonly used value,
490    thus we define our usual macro here.  */
491 #ifdef HAVE_LDAP_START_TLS_SA
492 # ifndef HAVE_LDAP_START_TLS_S
493 #  define HAVE_LDAP_START_TLS_S 1
494 # endif
495 #endif
496
497 /* Hacks required for Android.  */
498 #ifdef __ANDROID__
499   /* ttyname is a stub in BIONIC, printing a FIXME warning.  */
500 # define ttyname broken_native_ttyname
501 # undef HAVE_TTYNAME
502 #endif /*__ANDROID__*/
503
504
505 /* Tell libgcrypt not to use its own libgpg-error implementation. */
506 #define USE_LIBGPG_ERROR 1
507
508 /* We use jnlib, so tell other modules about it.  */
509 #define HAVE_JNLIB_LOGGING 1
510
511 /* Our HTTP code is used in estream mode.  */
512 #define HTTP_USE_ESTREAM 1
513
514 /* Under W32 we do an explicit socket initialization, thus we need to
515    avoid the on-demand initialization which would also install an atexit
516    handler.  */
517 #define HTTP_NO_WSASTARTUP
518
519 /* We always include support for the OpenPGP card.  */
520 #define ENABLE_CARD_SUPPORT 1
521
522 /* We want to use the libgcrypt provided memory allocation for
523    asprintf.  */
524 #define _ESTREAM_PRINTF_REALLOC       gcry_realloc
525 #define _ESTREAM_PRINTF_EXTRA_INCLUDE "../common/util.h"
526
527 /* Under Windows we use the gettext code from libgpg-error.  */
528 #define GPG_ERR_ENABLE_GETTEXT_MACROS
529
530 /* Under WindowsCE we use the strerror replacement from libgpg-error.  */
531 #define GPG_ERR_ENABLE_ERRNO_MACROS
532
533 #endif /*GNUPG_CONFIG_H_INCLUDED*/
534 ])
535
536
537 AM_MAINTAINER_MODE
538
539 # Checks for programs.
540 AC_MSG_NOTICE([checking for programs])
541 AC_PROG_MAKE_SET
542 AM_SANITY_CHECK
543 missing_dir=`cd $ac_aux_dir && pwd`
544 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
545 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
546 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
547 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
548 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
549 AC_PROG_AWK
550 AC_PROG_CC
551 AC_PROG_CPP
552 AM_PROG_CC_C_O
553 if test "x$ac_cv_prog_cc_c89" = "xno" ; then
554   AC_MSG_ERROR([[No C-89 compiler found]])
555 fi
556 AC_PROG_INSTALL
557 AC_PROG_LN_S
558 AC_PROG_RANLIB
559 AC_CHECK_TOOL(AR, ar, :)
560 AC_PATH_PROG(PERL,"perl")
561 AC_CHECK_TOOL(WINDRES, windres, :)
562 AC_ISC_POSIX
563 gl_EARLY
564 AC_SYS_LARGEFILE
565 GNUPG_CHECK_USTAR
566
567 # We need to compile and run a program on the build machine.  A
568 # comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
569 # the AC archive is broken for autoconf 2.57.  Given that there is no
570 # newer version of that macro, we assume that it is also broken for
571 # autoconf 2.61 and thus we use a simple but usually sufficient
572 # approach.
573 AC_MSG_CHECKING(for cc for build)
574 if test "$cross_compiling" = "yes"; then
575   CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
576 else
577   CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
578 fi
579 AC_MSG_RESULT($CC_FOR_BUILD)
580 AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
581
582
583
584 try_gettext=yes
585 have_dosish_system=no
586 have_w32_system=no
587 have_w32ce_system=no
588 use_simple_gettext=no
589 use_ldapwrapper=yes
590 mmap_needed=yes
591 case "${host}" in
592     *-mingw32*)
593         # special stuff for Windoze NT
594         ac_cv_have_dev_random=no
595         AC_DEFINE(USE_ONLY_8DOT3,1,
596                   [Set this to limit filenames to the 8.3 format])
597         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
598                   [Because the Unix gettext has too much overhead on
599                    MingW32 systems and these systems lack Posix functions,
600                    we use a simplified version of gettext])
601         disable_keyserver_path=yes
602         have_dosish_system=yes
603         have_w32_system=yes
604         use_ldapwrapper=no  # Fixme: Do this only for CE.
605         case "${host}" in
606           *-mingw32ce*)
607             have_w32ce_system=yes
608             ;;
609           *)
610             AC_DEFINE(HAVE_DRIVE_LETTERS,1,
611                       [Defined if the OS supports drive letters.])
612             ;;
613         esac
614         try_gettext="no"
615         use_simple_gettext=yes
616         mmap_needed=no
617         ;;
618     i?86-emx-os2 | i?86-*-os2*emx )
619         # OS/2 with the EMX environment
620         ac_cv_have_dev_random=no
621         AC_DEFINE(HAVE_DRIVE_LETTERS)
622         have_dosish_system=yes
623         try_gettext="no"
624         ;;
625
626     i?86-*-msdosdjgpp*)
627         # DOS with the DJGPP environment
628         ac_cv_have_dev_random=no
629         AC_DEFINE(HAVE_DRIVE_LETTERS)
630         have_dosish_system=yes
631         try_gettext="no"
632         ;;
633
634     *-*-freebsd*)
635        # FreeBSD
636        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
637        LDFLAGS="$LDFLAGS -L/usr/local/lib"
638        ;;
639
640     *-*-hpux*)
641         if test -z "$GCC" ; then
642             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
643         fi
644         ;;
645     *-dec-osf4*)
646         if test -z "$GCC" ; then
647             # Suppress all warnings
648             # to get rid of the unsigned/signed char mismatch warnings.
649             CFLAGS="$CFLAGS -w"
650         fi
651         ;;
652     *-dec-osf5*)
653         if test -z "$GCC" ; then
654             # Use the newer compiler `-msg_disable ptrmismatch1' to
655             # get rid of the unsigned/signed char mismatch warnings.
656             # Using this may hide other pointer mismatch warnings, but
657             # it at least lets other warning classes through
658             CFLAGS="$CFLAGS -msg_disable ptrmismatch1"
659         fi
660         ;;
661     m68k-atari-mint)
662         ;;
663     *)
664        ;;
665 esac
666
667 if test "$have_dosish_system" = yes; then
668    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
669              [Defined if we run on some of the PCDOS like systems
670               (DOS, Windoze. OS/2) with special properties like
671               no file modes, case insensitive file names and preferred
672               use of backslashes as directory name separators.])
673 fi
674 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
675
676 AM_CONDITIONAL(USE_SIMPLE_GETTEXT, test x"$use_simple_gettext" = xyes)
677
678 if test "$have_w32_system" = yes; then
679    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
680    if test "$have_w32ce_system" = yes; then
681       AC_DEFINE(HAVE_W32CE_SYSTEM,1,[Defined if we run on WindowsCE])
682    fi
683 fi
684 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
685 AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
686
687 if test "$use_ldapwrapper" = yes; then
688    AC_DEFINE(USE_LDAPWRAPPER,1, [Build dirmngr with LDAP wrapper process])
689 fi
690 AM_CONDITIONAL(USE_LDAPWRAPPER, test "$use_ldapwrapper" = yes)
691
692 if test "$disable_keyserver_path" = yes; then
693     AC_DEFINE(DISABLE_KEYSERVER_PATH,1,
694               [Defined to disable exec-path for keyserver helpers])
695 fi
696
697 #
698 # Allows enabling the use of a standard socket by default This is
699 # gpg-agent's option --[no-]use-standard-socket.  For Windows we force
700 # the use of this.
701 #
702 AC_MSG_CHECKING([whether to use a standard socket by default])
703 AC_ARG_ENABLE(standard-socket,
704               AC_HELP_STRING([--disable-standard-socket],
705                              [don't use a standard socket by default]),
706               use_standard_socket=$enableval)
707 tmp=""
708 if test "$use_standard_socket" != yes; then
709   if test "$have_w32_system" = yes; then
710     use_standard_socket=yes
711     tmp=" (forced)"
712   fi
713 fi
714 AC_MSG_RESULT($use_standard_socket$tmp)
715 if test "$use_standard_socket" = yes; then
716   AC_DEFINE(USE_STANDARD_SOCKET,1,
717             [Use the standard socket for the agent by default])
718 fi
719
720
721 # (These need to go after AC_PROG_CC so that $EXEEXT is defined)
722 AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
723
724 if test x"$try_hkp" = xyes ; then
725   AC_SUBST(GPGKEYS_HKP,"gpg2keys_hkp$EXEEXT")
726 fi
727
728 if test x"$try_finger" = xyes ; then
729   AC_SUBST(GPGKEYS_FINGER,"gpg2keys_finger$EXEEXT")
730 fi
731
732
733
734 #
735 # Checks for libraries.
736 #
737 AC_MSG_NOTICE([checking for libraries])
738
739
740 #
741 # libgpg-error is a library with error codes shared between GnuPG
742 # related projects.
743 #
744 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
745                   have_gpg_error=yes,have_gpg_error=no)
746
747
748 #
749 # Libgcrypt is our generic crypto library
750 #
751 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
752         have_libgcrypt=yes,have_libgcrypt=no)
753
754
755 #
756 # libassuan is used for IPC
757 #
758 AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
759                   have_libassuan=yes,have_libassuan=no)
760 if test "$have_libassuan" = "yes"; then
761   AC_DEFINE_UNQUOTED(GNUPG_LIBASSUAN_VERSION, "$libassuan_version",
762                      [version of the libassuan library])
763 fi
764
765
766
767 #
768 # libksba is our X.509 support library
769 #
770 AM_PATH_KSBA("$NEED_KSBA_API:$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
771
772
773 #
774 # libusb allows us to use the integrated CCID smartcard reader driver.
775 #
776 # FiXME: Use GNUPG_CHECK_LIBUSB and modify to use separate AC_SUBSTs.
777 if test "$use_ccid_driver" = yes ; then
778   AC_CHECK_LIB(usb, usb_bulk_write,
779                 [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
780                   AC_DEFINE(HAVE_LIBUSB,1,
781                            [defined if libusb is available])
782                   have_libusb=yes
783                ])
784   AC_CHECK_FUNCS(usb_create_match)
785 fi
786 AC_SUBST(LIBUSB_LIBS)
787
788 #
789 # Check wether it is necessary to link against libdl.
790 #
791 gnupg_dlopen_save_libs="$LIBS"
792 LIBS=""
793 AC_SEARCH_LIBS(dlopen, c dl,,,)
794 DL_LIBS=$LIBS
795 AC_SUBST(DL_LIBS)
796 LIBS="$gnupg_dlopen_save_libs"
797
798 # Checks for g13
799
800 AC_PATH_PROG(ENCFS, encfs, /usr/bin/encfs)
801 AC_DEFINE_UNQUOTED(ENCFS,
802         "${ENCFS}", [defines the filename of the encfs program])
803
804 AC_PATH_PROG(FUSERMOUNT, fusermount, /usr/bin/fusermount)
805 AC_DEFINE_UNQUOTED(FUSERMOUNT,
806         "${FUSERMOUNT}", [defines the filename of the fusermount program])
807
808
809 # Checks for dirmngr
810
811
812 #
813 # Checks for symcryptrun:
814 #
815
816 # libutil has openpty() and login_tty().
817 AC_CHECK_LIB(util, openpty,
818               [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
819                 AC_DEFINE(HAVE_LIBUTIL,1,
820                          [defined if libutil is available])
821              ])
822 AC_SUBST(LIBUTIL_LIBS)
823
824 # shred is used to clean temporary plain text files.
825 AC_PATH_PROG(SHRED, shred, /usr/bin/shred)
826 AC_DEFINE_UNQUOTED(SHRED,
827         "${SHRED}", [defines the filename of the shred program])
828
829
830 #
831 # Check whether the nPth library is available
832 #
833 AM_PATH_NPTH("$NEED_NPTH_API:$NEED_NPTH_VERSION",have_npth=yes,have_npth=no)
834 if test "$have_npth" = "yes"; then
835   # We define this macro because some code parts require it.
836   AC_DEFINE(USE_NPTH, 1,
837               [Defined if the New Portable Thread Library is available])
838 else
839   AC_MSG_WARN([[
840 ***
841 *** To support concurrent access for example in gpg-agent and the SCdaemon
842 *** we need the support of the New Portable Threads Library.
843 ***]])
844 fi
845
846
847 AC_MSG_NOTICE([checking for networking options])
848
849 #
850 # Must check for network library requirements before doing link tests
851 # for ldap, for example. If ldap libs are static (or dynamic and without
852 # ELF runtime link paths), then link will fail and LDAP support won't
853 # be detected.
854 #
855 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
856         [NETLIBS="-lnsl $NETLIBS"]))
857 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
858         [NETLIBS="-lsocket $NETLIBS"]))
859
860
861 #
862 # Check for ADNS.
863 #
864 _cppflags="${CPPFLAGS}"
865 _ldflags="${LDFLAGS}"
866 AC_ARG_WITH(adns,
867             AC_HELP_STRING([--with-adns=DIR],
868                            [look for the adns library in DIR]),
869             [if test -d "$withval"; then
870                CPPFLAGS="${CPPFLAGS} -I$withval/include"
871                LDFLAGS="${LDFLAGS} -L$withval/lib"
872              fi])
873 if test "$with_adns" != "no"; then
874   AC_CHECK_HEADERS(adns.h,
875                 AC_CHECK_LIB(adns, adns_init,
876                              [have_adns=yes],
877                              [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}]),
878                 [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}])
879 fi
880 if test "$have_adns" = "yes"; then
881   ADNSLIBS="-ladns"
882 fi
883 AC_SUBST(ADNSLIBS)
884 # Newer adns versions feature a free function to be used under W32.
885 AC_CHECK_FUNCS(adns_free)
886
887
888
889 #
890 # Now try for the resolver functions so we can use DNS for SRV, PA and CERT.
891 #
892 if test x"$try_hkp" = xyes || test x"$try_http" = xyes ; then
893   AC_ARG_ENABLE(dns-srv,
894      AC_HELP_STRING([--disable-dns-srv],
895                     [disable the use of DNS SRV in HKP and HTTP]),
896                 use_dns_srv=$enableval,use_dns_srv=yes)
897 fi
898
899 AC_ARG_ENABLE(dns-pka,
900    AC_HELP_STRING([--disable-dns-pka],
901         [disable the use of PKA records in DNS]),
902    use_dns_pka=$enableval,use_dns_pka=yes)
903
904 AC_ARG_ENABLE(dns-cert,
905    AC_HELP_STRING([--disable-dns-cert],
906         [disable the use of CERT records in DNS]),
907    use_dns_cert=$enableval,use_dns_cert=yes)
908
909 if test x"$use_dns_pka" = xyes || test x"$use_dns_srv" = xyes \
910    || test x"$use_dns_cert" = xyes; then
911   _dns_save_libs=$LIBS
912   LIBS=""
913   # the double underscore thing is a glibc-ism?
914   AC_SEARCH_LIBS(res_query,resolv bind,,
915                  AC_SEARCH_LIBS(__res_query,resolv bind,,have_resolver=no))
916   AC_SEARCH_LIBS(dn_expand,resolv bind,,
917                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,have_resolver=no))
918   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
919                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,have_resolver=no))
920
921   if test x"$have_resolver" != xno ; then
922
923     # Make sure that the BIND 4 resolver interface is workable before
924     # enabling any code that calls it.  At some point I'll rewrite the
925     # code to use the BIND 8 resolver API.
926     # We might also want to use adns instead.  Problem with ADNS is that
927     # it does not support v6.
928
929     AC_MSG_CHECKING([whether the resolver is usable])
930     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
931 #include <netinet/in.h>
932 #include <arpa/nameser.h>
933 #include <resolv.h>]],
934 [[unsigned char answer[PACKETSZ];
935   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
936   dn_skipname(0,0);
937   dn_expand(0,0,0,0,0);
938 ]])],have_resolver=yes,have_resolver=no)
939     AC_MSG_RESULT($have_resolver)
940
941     # This is Apple-specific and somewhat bizarre as they changed the
942     # define in bind 8 for some reason.
943
944     if test x"$have_resolver" != xyes ; then
945        AC_MSG_CHECKING(
946              [whether I can make the resolver usable with BIND_8_COMPAT])
947        AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define BIND_8_COMPAT
948 #include <sys/types.h>
949 #include <netinet/in.h>
950 #include <arpa/nameser.h>
951 #include <resolv.h>]],
952 [[unsigned char answer[PACKETSZ];
953   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
954   dn_skipname(0,0); dn_expand(0,0,0,0,0);
955 ]])],[have_resolver=yes ; need_compat=yes])
956        AC_MSG_RESULT($have_resolver)
957     fi
958   fi
959
960   if test x"$have_resolver" = xyes ; then
961      DNSLIBS=$LIBS
962
963      if test x"$use_dns_srv" = xyes ; then
964         AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
965      fi
966
967      if test x"$use_dns_pka" = xyes ; then
968         AC_DEFINE(USE_DNS_PKA,1,[define to use our experimental DNS PKA])
969      fi
970
971      if test x"$use_dns_cert" = xyes ; then
972         AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
973      fi
974
975      if test x"$need_compat" = xyes ; then
976         AC_DEFINE(BIND_8_COMPAT,1,[an Apple OSXism])
977      fi
978   else
979      # If we have no resolver library but ADNS (e.g. under W32) enable the
980      # code parts which can be used with ADNS.
981      if test x"$have_adns" = xyes ; then
982         DNSLIBS="$ADNSLIBS"
983         AC_DEFINE(USE_ADNS,1,[Use ADNS as resolver library.])
984
985         if test x"$use_dns_srv" = xyes ; then
986            AC_DEFINE(USE_DNS_SRV,1)
987         fi
988
989         if test x"$use_dns_pka" = xyes ; then
990            AC_DEFINE(USE_DNS_PKA,1)
991         fi
992
993         if test x"$use_dns_cert" = xyes ; then
994            AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
995         fi
996      else
997         use_dns_srv=no
998         use_dns_pka=no
999         use_dns_cert=no
1000      fi
1001   fi
1002
1003   LIBS=$_dns_save_libs
1004 fi
1005
1006 AC_SUBST(DNSLIBS)
1007
1008 AM_CONDITIONAL(USE_DNS_SRV, test x"$use_dns_srv" = xyes)
1009
1010
1011 #
1012 # Check for LDAP
1013 #
1014 if test "$try_ks_ldap" = yes || test "$build_dirmngr" = "yes" ; then
1015    GNUPG_CHECK_LDAP($NETLIBS)
1016    AC_CHECK_LIB(lber, ber_free,
1017                 [ LBER_LIBS="$LBER_LIBS -llber"
1018                   AC_DEFINE(HAVE_LBER,1,
1019                            [defined if liblber is available])
1020                   have_lber=yes
1021                ])
1022 fi
1023 AC_SUBST(LBER_LIBS)
1024
1025 #
1026 # Check for curl.  We fake the curl API if libcurl isn't installed.
1027 # We require 7.10 or later as we use curl_version_info().
1028 #
1029 LIBCURL_CHECK_CONFIG([yes],[7.10],,[fake_curl=yes])
1030 AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
1031
1032 # Generic, for us, means curl
1033
1034 if test x"$try_generic" = xyes ; then
1035    AC_SUBST(GPGKEYS_CURL,"gpg2keys_curl$EXEEXT")
1036 fi
1037
1038 #
1039 # Check for sendmail
1040 #
1041 # This isn't necessarily sendmail itself, but anything that gives a
1042 # sendmail-ish interface to the outside world.  That includes Exim,
1043 # Postfix, etc.  Basically, anything that can handle "sendmail -t".
1044 if test "$try_mailto" = yes ; then
1045   AC_ARG_WITH(mailprog,
1046       AC_HELP_STRING([--with-mailprog=NAME],
1047                      [use "NAME -t" for mail transport]),
1048              ,with_mailprog=yes)
1049
1050   if test x"$with_mailprog" = xyes ; then
1051     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
1052     if test "$ac_cv_path_SENDMAIL" ; then
1053       GPGKEYS_MAILTO="gpg2keys_mailto"
1054     fi
1055   elif test x"$with_mailprog" != xno ; then
1056     AC_MSG_CHECKING([for a mail transport program])
1057     AC_SUBST(SENDMAIL,$with_mailprog)
1058     AC_MSG_RESULT($with_mailprog)
1059     GPGKEYS_MAILTO="gpg2keys_mailto"
1060   fi
1061 fi
1062
1063 AC_SUBST(GPGKEYS_MAILTO)
1064
1065 #
1066 # Construct a printable name of the OS
1067 #
1068 case "${host}" in
1069     *-mingw32ce*)
1070         PRINTABLE_OS_NAME="W32CE"
1071         ;;
1072     *-mingw32*)
1073         PRINTABLE_OS_NAME="MingW32"
1074         ;;
1075     *-*-cygwin*)
1076         PRINTABLE_OS_NAME="Cygwin"
1077         ;;
1078     i?86-emx-os2 | i?86-*-os2*emx )
1079         PRINTABLE_OS_NAME="OS/2"
1080         ;;
1081     i?86-*-msdosdjgpp*)
1082         PRINTABLE_OS_NAME="MSDOS/DJGPP"
1083         try_dynload=no
1084         ;;
1085     *-linux*)
1086         PRINTABLE_OS_NAME="GNU/Linux"
1087         ;;
1088     *)
1089         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
1090         ;;
1091 esac
1092 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
1093                    [A human readable text with the name of the OS])
1094
1095
1096 #
1097 # Checking for iconv
1098 #
1099 AM_ICONV
1100
1101
1102 #
1103 # Check for gettext
1104 #
1105 # This is "GNU gnupg" - The project-id script from gettext
1106 #                       needs this string
1107 #
1108 AC_MSG_NOTICE([checking for gettext])
1109 AM_PO_SUBDIRS
1110 AM_GNU_GETTEXT_VERSION([0.17])
1111 if test "$try_gettext" = yes; then
1112   AM_GNU_GETTEXT([external],[need-ngettext])
1113
1114   # gettext requires some extra checks.  These really should be part of
1115   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
1116   # function checks to here.
1117
1118   AC_CHECK_FUNCS(strchr)
1119 else
1120   USE_NLS=no
1121   USE_INCLUDED_LIBINTL=no
1122   BUILD_INCLUDED_LIBINTL=no
1123   POSUB=po
1124   AC_SUBST(USE_NLS)
1125   AC_SUBST(USE_INCLUDED_LIBINTL)
1126   AC_SUBST(BUILD_INCLUDED_LIBINTL)
1127   AC_SUBST(POSUB)
1128 fi
1129
1130 # We use HAVE_LANGINFO_CODESET in a couple of places.
1131 AM_LANGINFO_CODESET
1132
1133 # Checks required for our use locales
1134 gt_LC_MESSAGES
1135
1136
1137 #
1138 # SELinux support
1139 #
1140 if test "$selinux_support" = yes ; then
1141   AC_DEFINE(ENABLE_SELINUX_HACKS,1,[Define to enable SELinux support])
1142 fi
1143
1144
1145 #
1146 # Checks for header files.
1147 #
1148 AC_MSG_NOTICE([checking for header files])
1149 AC_HEADER_STDC
1150 AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h \
1151                   pty.h utmp.h pwd.h inttypes.h signal.h])
1152 AC_HEADER_TIME
1153
1154
1155 #
1156 # Checks for typedefs, structures, and compiler characteristics.
1157 #
1158 AC_MSG_NOTICE([checking for system characteristics])
1159 AC_C_CONST
1160 AC_C_INLINE
1161 AC_C_VOLATILE
1162 AC_TYPE_SIZE_T
1163 AC_TYPE_MODE_T
1164 AC_TYPE_SIGNAL
1165 AC_DECL_SYS_SIGLIST
1166
1167 gl_HEADER_SYS_SOCKET
1168 gl_TYPE_SOCKLEN_T
1169
1170 AC_ARG_ENABLE(endian-check,
1171               AC_HELP_STRING([--disable-endian-check],
1172               [disable the endian check and trust the OS provided macros]),
1173               endiancheck=$enableval,endiancheck=yes)
1174
1175 if test x"$endiancheck" = xyes ; then
1176   GNUPG_CHECK_ENDIAN
1177 fi
1178
1179 # fixme: we should get rid of the byte type
1180 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
1181 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
1182 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
1183 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
1184 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
1185
1186 AC_CHECK_SIZEOF(unsigned short)
1187 AC_CHECK_SIZEOF(unsigned int)
1188 AC_CHECK_SIZEOF(unsigned long)
1189 AC_CHECK_SIZEOF(unsigned long long)
1190 AC_HEADER_TIME
1191 AC_CHECK_SIZEOF(time_t,,[[
1192 #include <stdio.h>
1193 #if TIME_WITH_SYS_TIME
1194 # include <sys/time.h>
1195 # include <time.h>
1196 #else
1197 # if HAVE_SYS_TIME_H
1198 #  include <sys/time.h>
1199 # else
1200 #  include <time.h>
1201 # endif
1202 #endif
1203 ]])
1204 GNUPG_TIME_T_UNSIGNED
1205
1206
1207 # Ensure that we have UINT64_C before we bother to check for uint64_t
1208 # Fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
1209 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
1210    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <inttypes.h>]],
1211        [[uint64_t foo=UINT64_C(42);]])],
1212      gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
1213 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
1214    AC_CHECK_SIZEOF(uint64_t)
1215 fi
1216
1217 if test "$ac_cv_sizeof_unsigned_short" = "0" \
1218    || test "$ac_cv_sizeof_unsigned_int" = "0" \
1219    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
1220     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
1221 fi
1222
1223
1224 #
1225 # Checks for library functions.
1226 #
1227 AC_MSG_NOTICE([checking for library functions])
1228 AC_CHECK_DECLS(getpagesize)
1229 AC_FUNC_FSEEKO
1230 AC_FUNC_VPRINTF
1231 AC_FUNC_FORK
1232 AC_CHECK_FUNCS([strerror strlwr tcgetattr mmap canonicalize_file_name])
1233 AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times gmtime_r strtoull])
1234 AC_CHECK_FUNCS([unsetenv fcntl ftruncate canonicalize_file_name])
1235 AC_CHECK_FUNCS([gettimeofday getrusage getrlimit setrlimit clock_gettime])
1236 AC_CHECK_FUNCS([atexit raise getpagesize strftime nl_langinfo setlocale])
1237 AC_CHECK_FUNCS([waitpid wait4 sigaction sigprocmask pipe getaddrinfo])
1238 AC_CHECK_FUNCS([ttyname rand ftello fsync stat lstat])
1239
1240 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
1241
1242 # Dirmngr requires mmap on Unix systems.
1243 if test $ac_cv_func_mmap != yes -a $mmap_needed = yes; then
1244   AC_MSG_ERROR([[Sorry, the current implemenation requires mmap.]])
1245 fi
1246
1247 #
1248 # These are needed by the jnlib parts in common.
1249 # Note:  We already checked pwd.h.
1250 AC_CHECK_HEADERS([signal.h])
1251 AC_CHECK_FUNCS([memicmp stpcpy strsep strlwr strtoul memmove stricmp strtol \
1252                 memrchr isascii timegm getrusage setrlimit stat setlocale   \
1253                 flockfile funlockfile fopencookie funopen getpwnam getpwuid \
1254                 getenv inet_pton])
1255 # end jnlib checks.
1256
1257
1258
1259 #
1260 # gnulib checks
1261 #
1262 gl_SOURCE_BASE([gl])
1263 gl_M4_BASE([gl/m4])
1264 gl_MODULES([setenv mkdtemp xsize strpbrk])
1265 gl_INIT
1266
1267
1268 #
1269 # W32 specific test
1270 #
1271 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
1272
1273 #
1274 # Sanity check regex.  Tests adapted from mutt.
1275 #
1276 AC_MSG_CHECKING([whether regular expression support is requested])
1277 AC_ARG_ENABLE(regex,
1278   AC_HELP_STRING([--disable-regex],
1279     [do not handle regular expressions in trust signatures]),
1280   use_regex=$enableval, use_regex=yes)
1281 AC_MSG_RESULT($use_regex)
1282
1283 if test "$use_regex" = yes ; then
1284   _cppflags="${CPPFLAGS}"
1285   _ldflags="${LDFLAGS}"
1286   AC_ARG_WITH(regex,
1287      AC_HELP_STRING([--with-regex=DIR],[look for regex in DIR]),
1288       [
1289       if test -d "$withval" ; then
1290         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1291         LDFLAGS="${LDFLAGS} -L$withval/lib"
1292       fi
1293       ],withval="")
1294
1295   # Does the system have regex functions at all?
1296   AC_SEARCH_LIBS([regcomp], [regex])
1297   AC_CHECK_FUNC(regcomp, gnupg_cv_have_regex=yes, gnupg_cv_have_regex=no)
1298
1299   if test $gnupg_cv_have_regex = no; then
1300     use_regex=no
1301   else
1302     if test x"$cross_compiling" = xyes; then
1303       AC_MSG_WARN([cross compiling; assuming regexp libray is not broken])
1304     else
1305       AC_CACHE_CHECK([whether your system's regexp library is broken],
1306        [gnupg_cv_regex_broken],
1307        AC_TRY_RUN([
1308 #include <unistd.h>
1309 #include <regex.h>
1310 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); }],
1311        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
1312
1313       if test $gnupg_cv_regex_broken = yes; then
1314         AC_MSG_WARN([your regex is broken - disabling regex use])
1315         use_regex=no
1316       fi
1317     fi
1318   fi
1319   CPPFLAGS="${_cppflags}"
1320   LDFLAGS="${_ldflags}"
1321 fi
1322
1323 if test "$use_regex" != yes ; then
1324   AC_DEFINE(DISABLE_REGEX,1, [Define to disable regular expression support])
1325 fi
1326 AM_CONDITIONAL(DISABLE_REGEX, test x"$use_regex" != xyes)
1327
1328
1329
1330 #
1331 # Do we have zlib? Must do it here because Solaris failed
1332 # when compiling a conftest (due to the "-lz" from LIBS).
1333 # Note that we combine zlib and bzlib2 in ZLIBS.
1334 #
1335 if test "$use_zip" = yes ; then
1336   _cppflags="${CPPFLAGS}"
1337   _ldflags="${LDFLAGS}"
1338   AC_ARG_WITH(zlib,
1339     [  --with-zlib=DIR         use libz in DIR],[
1340       if test -d "$withval"; then
1341         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1342         LDFLAGS="${LDFLAGS} -L$withval/lib"
1343       fi
1344     ])
1345
1346   AC_CHECK_HEADER(zlib.h,
1347         AC_CHECK_LIB(z, deflateInit2_,
1348          ZLIBS="-lz",
1349          CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1350          CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
1351
1352   AC_DEFINE(HAVE_ZIP,1, [Defined if ZIP and ZLIB are supported])
1353 fi
1354
1355
1356 #
1357 # Check whether we can support bzip2
1358 #
1359 if test "$use_bzip2" = yes ; then
1360   _cppflags="${CPPFLAGS}"
1361   _ldflags="${LDFLAGS}"
1362   AC_ARG_WITH(bzip2,
1363      AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
1364       [
1365       if test -d "$withval" ; then
1366         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1367         LDFLAGS="${LDFLAGS} -L$withval/lib"
1368       fi
1369       ],withval="")
1370
1371   # Checking alongside stdio.h as an early version of bzip2 (1.0)
1372   # required stdio.h to be included before bzlib.h, and Solaris 9 is
1373   # woefully out of date.
1374   if test "$withval" != no ; then
1375      AC_CHECK_HEADER(bzlib.h,
1376         AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
1377           [
1378           have_bz2=yes
1379           ZLIBS="$ZLIBS -lbz2"
1380           AC_DEFINE(HAVE_BZIP2,1,
1381                   [Defined if the bz2 compression library is available])
1382           ],
1383           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1384           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
1385   fi
1386 fi
1387 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
1388 AC_SUBST(ZLIBS)
1389
1390
1391 # Check for readline support
1392 GNUPG_CHECK_READLINE
1393
1394
1395 if test "$development_version" = yes; then
1396     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
1397             [Defined if this is not a regular release])
1398 fi
1399
1400 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
1401
1402 GNUPG_CHECK_GNUMAKE
1403
1404 # Add some extra libs here so that previous tests don't fail for
1405 # mysterious reasons - the final link step should bail out.
1406 # W32SOCKLIBS is also defined so that if can be used for tools not
1407 # requiring any network stuff but linking to code in libcommon which
1408 # tracks in winsock stuff (e.g. init_common_subsystems).
1409 if test "$have_w32_system" = yes; then
1410    if test "$have_w32ce_system" = yes; then
1411      W32SOCKLIBS="-lws2"
1412    else
1413      W32SOCKLIBS="-lws2_32"
1414    fi
1415    NETLIBS="${NETLIBS} ${W32SOCKLIBS}"
1416 fi
1417
1418 AC_SUBST(NETLIBS)
1419 AC_SUBST(W32SOCKLIBS)
1420
1421 #
1422 # Setup gcc specific options
1423 #
1424 AC_MSG_NOTICE([checking for cc features])
1425 if test "$GCC" = yes; then
1426     # Note that it is okay to use CFLAGS here because this are just
1427     # warning options and the user should have a chance of overriding
1428     # them.
1429     if test "$USE_MAINTAINER_MODE" = "yes"; then
1430         CFLAGS="$CFLAGS -O3 -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1431         CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
1432         AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
1433         _gcc_cflags_save=$CFLAGS
1434         CFLAGS="-Wno-missing-field-initializers"
1435         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
1436         AC_MSG_RESULT($_gcc_wopt)
1437         CFLAGS=$_gcc_cflags_save;
1438         if test x"$_gcc_wopt" = xyes ; then
1439           CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers"
1440         fi
1441         AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement])
1442         _gcc_cflags_save=$CFLAGS
1443         CFLAGS="-Wdeclaration-after-statement"
1444         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
1445         AC_MSG_RESULT($_gcc_wopt)
1446         CFLAGS=$_gcc_cflags_save;
1447         if test x"$_gcc_wopt" = xyes ; then
1448           CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1449         fi
1450     else
1451         CFLAGS="$CFLAGS -Wall"
1452     fi
1453
1454     AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
1455     _gcc_cflags_save=$CFLAGS
1456     CFLAGS="-Wno-pointer-sign"
1457     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1458     AC_MSG_RESULT($_gcc_psign)
1459     CFLAGS=$_gcc_cflags_save;
1460     if test x"$_gcc_psign" = xyes ; then
1461        CFLAGS="$CFLAGS -Wno-pointer-sign"
1462     fi
1463
1464     AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
1465     _gcc_cflags_save=$CFLAGS
1466     CFLAGS="-Wpointer-arith"
1467     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1468     AC_MSG_RESULT($_gcc_psign)
1469     CFLAGS=$_gcc_cflags_save;
1470     if test x"$_gcc_psign" = xyes ; then
1471        CFLAGS="$CFLAGS -Wpointer-arith"
1472     fi
1473 fi
1474
1475
1476 #
1477 # This is handy for debugging so the compiler doesn't rearrange
1478 # things and eliminate variables.
1479 #
1480 AC_ARG_ENABLE(optimization,
1481    AC_HELP_STRING([--disable-optimization],
1482                   [disable compiler optimization]),
1483                   [if test $enableval = no ; then
1484                       CFLAGS=`echo $CFLAGS | sed s/-O[[1-9]]\ /-O0\ /g`
1485                    fi])
1486
1487 #
1488 # Prepare building of estream
1489 #
1490 estream_INIT
1491
1492
1493 #
1494 # Decide what to build
1495 #
1496 if test "$have_adns" = "yes"; then
1497   AC_SUBST(GPGKEYS_KDNS, "gpg2keys_kdns$EXEEXT")
1498 fi
1499
1500
1501 build_scdaemon_extra=""
1502 if test "$build_scdaemon" = "yes"; then
1503   if test $have_libusb = no; then
1504      build_scdaemon_extra="${tmp}without internal CCID driver"
1505   fi
1506   if test -n "$build_scdaemon_extra"; then
1507      build_scdaemon_extra="(${build_scdaemon_extra})"
1508   fi
1509 fi
1510
1511
1512 if test "$build_agent_only" = "yes" ; then
1513   build_gpg=no
1514   build_gpgsm=no
1515   build_scdaemon=no
1516   build_tools=no
1517   build_doc=no
1518 fi
1519
1520 #
1521 # Set variables for use by th automake makefile.
1522 #
1523 AM_CONDITIONAL(BUILD_GPG,         test "$build_gpg" = "yes")
1524 AM_CONDITIONAL(BUILD_GPGSM,       test "$build_gpgsm" = "yes")
1525 AM_CONDITIONAL(BUILD_AGENT,       test "$build_agent" = "yes")
1526 AM_CONDITIONAL(BUILD_SCDAEMON,    test "$build_scdaemon" = "yes")
1527 AM_CONDITIONAL(BUILD_G13,         test "$build_g13" = "yes")
1528 AM_CONDITIONAL(BUILD_DIRMNGR,     test "$build_dirmngr" = "yes")
1529 AM_CONDITIONAL(BUILD_TOOLS,       test "$build_tools" = "yes")
1530 AM_CONDITIONAL(BUILD_DOC,         test "$build_doc" = "yes")
1531 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
1532 AM_CONDITIONAL(BUILD_GPGTAR,      test "$build_gpgtar" = "yes")
1533
1534 AM_CONDITIONAL(RUN_GPG_TESTS,
1535                test x$cross_compiling = xno -a "$build_gpg" = yes )
1536
1537 #
1538 # Set some defines for use gpgconf.
1539 #
1540 if test "$build_gpg" = yes ; then
1541     AC_DEFINE(BUILD_WITH_GPG,1,[Defined if GPG is to be build])
1542 fi
1543 if test "$build_gpgsm" = yes ; then
1544     AC_DEFINE(BUILD_WITH_GPGSM,1,[Defined if GPGSM is to be build])
1545 fi
1546 if test "$build_agent" = yes ; then
1547     AC_DEFINE(BUILD_WITH_AGENT,1,[Defined if GPG-AGENT is to be build])
1548 fi
1549 if test "$build_scdaemon" = yes ; then
1550     AC_DEFINE(BUILD_WITH_SCDAEMON,1,[Defined if SCDAEMON is to be build])
1551 fi
1552 if test "$build_dirmngr" = yes ; then
1553     AC_DEFINE(BUILD_WITH_DIRMNGR,1,[Defined if SCDAEMON is to be build])
1554 fi
1555 if test "$build_g13" = yes ; then
1556     AC_DEFINE(BUILD_WITH_G13,1,[Defined if G13 is to be build])
1557 fi
1558
1559
1560
1561 #
1562 # Print errors here so that they are visible all
1563 # together and the user can acquire them all together.
1564 #
1565 die=no
1566 if test "$have_gpg_error" = "no"; then
1567    die=yes
1568    AC_MSG_NOTICE([[
1569 ***
1570 *** You need libgpg-error to build this program.
1571 **  This library is for example available at
1572 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
1573 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
1574 ***]])
1575 fi
1576 if test "$have_libgcrypt" = "no"; then
1577    die=yes
1578    AC_MSG_NOTICE([[
1579 ***
1580 *** You need libgcrypt to build this program.
1581 **  This library is for example available at
1582 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
1583 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API) is required.)
1584 ***]])
1585 fi
1586 if test "$have_libassuan" = "no"; then
1587    die=yes
1588    AC_MSG_NOTICE([[
1589 ***
1590 *** You need libassuan to build this program.
1591 *** This library is for example available at
1592 ***   ftp://ftp.gnupg.org/gcrypt/libassuan/
1593 *** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
1594 ***]])
1595 fi
1596 if test "$have_ksba" = "no"; then
1597     die=yes
1598     AC_MSG_NOTICE([[
1599 ***
1600 *** You need libksba to build this program.
1601 *** This library is for example available at
1602 ***   ftp://ftp.gnupg.org/gcrypt/libksba/
1603 *** (at least version $NEED_KSBA_VERSION using API $NEED_KSBA_API is required).
1604 ***]])
1605 fi
1606 if test "$gnupg_have_ldap" = "no"; then
1607     die=yes
1608     AC_MSG_NOTICE([[
1609 ***
1610 *** You need a LDAP library to build this program.
1611 *** Check out
1612 ***    http://www.openldap.org
1613 *** for a suitable implementation.
1614 ***]])
1615    if test "$have_w32ce_system" = yes; then
1616     AC_MSG_NOTICE([[
1617 *** Note that CeGCC might be broken, a package fixing this is:
1618 ***    http://files.kolab.org/local/windows-ce/
1619 ***                           source/wldap32_0.1-mingw32ce.orig.tar.gz
1620 ***                           binary/wldap32-ce-arm-dev_0.1-1_all.deb
1621 ***]])
1622    fi
1623 fi
1624 if test "$have_npth" = "no"; then
1625     die=yes
1626     AC_MSG_NOTICE([[
1627 ***
1628 *** It is now required to build with support for the
1629 *** New Portable Threads Library (nPth). Please install this
1630 *** library first.  The library is for example available at
1631 ***   ftp://ftp.gnupg.org/gcrypt/npth/
1632 *** (at least version $NEED_NPTH_VERSION (API $NEED_NPTH_API) is required).
1633 ***]])
1634 fi
1635
1636 if test "$die" = "yes"; then
1637     AC_MSG_ERROR([[
1638 ***
1639 *** Required libraries not found. Please consult the above messages
1640 *** and install them before running configure again.
1641 ***]])
1642 fi
1643
1644
1645
1646 AC_CONFIG_FILES([ m4/Makefile
1647 Makefile
1648 po/Makefile.in
1649 gl/Makefile
1650 include/Makefile
1651 common/Makefile
1652 kbx/Makefile
1653 g10/Makefile
1654 sm/Makefile
1655 agent/Makefile
1656 scd/Makefile
1657 g13/Makefile
1658 dirmngr/Makefile
1659 tools/gpg-zip
1660 tools/Makefile
1661 doc/Makefile
1662 tests/Makefile
1663 tests/openpgp/Makefile
1664 tests/pkits/Makefile
1665 ])
1666 #keyserver/Makefile
1667 #keyserver/gpg2keys_mailto
1668 #keyserver/gpg2keys_test
1669
1670
1671 AC_OUTPUT
1672
1673
1674 echo "
1675         GnuPG v${VERSION} has been configured as follows:
1676
1677         Revision:  mym4_revision  (mym4_revision_dec)
1678         Platform:  $PRINTABLE_OS_NAME ($host)
1679
1680         OpenPGP:   $build_gpg
1681         S/MIME:    $build_gpgsm
1682         Agent:     $build_agent
1683         Smartcard: $build_scdaemon $build_scdaemon_extra
1684         G13:       $build_g13
1685         Dirmngr:   $build_dirmngr
1686         Gpgtar:    $build_gpgtar
1687
1688         Protect tool:      $show_gnupg_protect_tool_pgm
1689         LDAP wrapper:      $show_gnupg_dirmngr_ldap_pgm
1690         Default agent:     $show_gnupg_agent_pgm
1691         Default pinentry:  $show_gnupg_pinentry_pgm
1692         Default scdaemon:  $show_gnupg_scdaemon_pgm
1693         Default dirmngr:   $show_gnupg_dirmngr_pgm
1694
1695         Use standard socket: $use_standard_socket
1696         Dirmngr auto start:  $dirmngr_auto_start
1697 "
1698 if test x"$use_regex" != xyes ; then
1699 echo "
1700         Warning: No regular expression support available.
1701                  OpenPGP trust signatures won't work.
1702                  gpg-check-pattern will not be build.
1703 "
1704 fi