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