agent: Fix length detection of canonical formatted openpgp keys.
[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],
35           m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
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.11
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
498 /* Tell libgcrypt not to use its own libgpg-error implementation. */
499 #define USE_LIBGPG_ERROR 1
500
501 /* We use jnlib, so tell other modules about it.  */
502 #define HAVE_JNLIB_LOGGING 1
503
504 /* Our HTTP code is used in estream mode.  */
505 #define HTTP_USE_ESTREAM 1
506
507 /* Under W32 we do an explicit socket initialization, thus we need to
508    avoid the on-demand initialization which would also install an atexit
509    handler.  */
510 #define HTTP_NO_WSASTARTUP
511
512 /* We always include support for the OpenPGP card.  */
513 #define ENABLE_CARD_SUPPORT 1
514
515 /* We want to use the libgcrypt provided memory allocation for
516    asprintf.  */
517 #define _ESTREAM_PRINTF_REALLOC       gcry_realloc
518 #define _ESTREAM_PRINTF_EXTRA_INCLUDE "../common/util.h"
519
520 /* Under Windows we use the gettext code from libgpg-error.  */
521 #define GPG_ERR_ENABLE_GETTEXT_MACROS
522
523 /* Under WindowsCE we use the strerror replacement from libgpg-error.  */
524 #define GPG_ERR_ENABLE_ERRNO_MACROS
525
526 #endif /*GNUPG_CONFIG_H_INCLUDED*/
527 ])
528
529
530 AM_MAINTAINER_MODE
531
532 # Checks for programs.
533 AC_MSG_NOTICE([checking for programs])
534 AC_PROG_MAKE_SET
535 AM_SANITY_CHECK
536 missing_dir=`cd $ac_aux_dir && pwd`
537 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
538 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
539 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
540 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
541 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
542 AC_PROG_AWK
543 AC_PROG_CC
544 AC_PROG_CPP
545 AM_PROG_CC_C_O
546 if test "x$ac_cv_prog_cc_c89" = "xno" ; then
547   AC_MSG_ERROR([[No C-89 compiler found]])
548 fi
549 AC_PROG_INSTALL
550 AC_PROG_LN_S
551 AC_PROG_RANLIB
552 AC_CHECK_TOOL(AR, ar, :)
553 AC_PATH_PROG(PERL,"perl")
554 AC_CHECK_TOOL(WINDRES, windres, :)
555 AC_ISC_POSIX
556 gl_EARLY
557 AC_SYS_LARGEFILE
558 GNUPG_CHECK_USTAR
559
560 # We need to compile and run a program on the build machine.  A
561 # comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
562 # the AC archive is broken for autoconf 2.57.  Given that there is no
563 # newer version of that macro, we assume that it is also broken for
564 # autoconf 2.61 and thus we use a simple but usually sufficient
565 # approach.
566 AC_MSG_CHECKING(for cc for build)
567 if test "$cross_compiling" = "yes"; then
568   CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
569 else
570   CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
571 fi
572 AC_MSG_RESULT($CC_FOR_BUILD)
573 AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
574
575
576
577 try_gettext=yes
578 have_dosish_system=no
579 have_w32_system=no
580 have_w32ce_system=no
581 have_android_system=no
582 run_tests=yes
583 use_simple_gettext=no
584 use_ldapwrapper=yes
585 mmap_needed=yes
586 case "${host}" in
587     *-mingw32*)
588         # special stuff for Windoze NT
589         ac_cv_have_dev_random=no
590         AC_DEFINE(USE_ONLY_8DOT3,1,
591                   [Set this to limit filenames to the 8.3 format])
592         AC_DEFINE(USE_SIMPLE_GETTEXT,1,
593                   [Because the Unix gettext has too much overhead on
594                    MingW32 systems and these systems lack Posix functions,
595                    we use a simplified version of gettext])
596         disable_keyserver_path=yes
597         have_dosish_system=yes
598         have_w32_system=yes
599         run_tests=no
600         use_ldapwrapper=no  # Fixme: Do this only for CE.
601         case "${host}" in
602           *-mingw32ce*)
603             have_w32ce_system=yes
604             ;;
605           *)
606             AC_DEFINE(HAVE_DRIVE_LETTERS,1,
607                       [Defined if the OS supports drive letters.])
608             ;;
609         esac
610         try_gettext="no"
611         use_simple_gettext=yes
612         mmap_needed=no
613         ;;
614     i?86-emx-os2 | i?86-*-os2*emx )
615         # OS/2 with the EMX environment
616         ac_cv_have_dev_random=no
617         AC_DEFINE(HAVE_DRIVE_LETTERS)
618         have_dosish_system=yes
619         try_gettext="no"
620         ;;
621
622     i?86-*-msdosdjgpp*)
623         # DOS with the DJGPP environment
624         ac_cv_have_dev_random=no
625         AC_DEFINE(HAVE_DRIVE_LETTERS)
626         have_dosish_system=yes
627         try_gettext="no"
628         ;;
629
630     *-*-hpux*)
631         if test -z "$GCC" ; then
632             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
633         fi
634         ;;
635     *-dec-osf4*)
636         if test -z "$GCC" ; then
637             # Suppress all warnings
638             # to get rid of the unsigned/signed char mismatch warnings.
639             CFLAGS="$CFLAGS -w"
640         fi
641         ;;
642     *-dec-osf5*)
643         if test -z "$GCC" ; then
644             # Use the newer compiler `-msg_disable ptrmismatch1' to
645             # get rid of the unsigned/signed char mismatch warnings.
646             # Using this may hide other pointer mismatch warnings, but
647             # it at least lets other warning classes through
648             CFLAGS="$CFLAGS -msg_disable ptrmismatch1"
649         fi
650         ;;
651     m68k-atari-mint)
652         ;;
653     *-linux-androideabi)
654         have_android_system=yes
655         run_tests=no
656         ;;
657     *)
658        ;;
659 esac
660
661 if test "$have_dosish_system" = yes; then
662    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
663              [Defined if we run on some of the PCDOS like systems
664               (DOS, Windoze. OS/2) with special properties like
665               no file modes, case insensitive file names and preferred
666               use of backslashes as directory name separators.])
667 fi
668 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
669
670 AM_CONDITIONAL(USE_SIMPLE_GETTEXT, test x"$use_simple_gettext" = xyes)
671
672 if test "$have_w32_system" = yes; then
673    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
674    if test "$have_w32ce_system" = yes; then
675       AC_DEFINE(HAVE_W32CE_SYSTEM,1,[Defined if we run on WindowsCE])
676    fi
677 fi
678 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
679 AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
680
681 if test "$have_android_system" = yes; then
682    AC_DEFINE(HAVE_ANDROID_SYSTEM,1, [Defined if we build for an Android system])
683 fi
684 AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
685
686 if test "$run_tests" = yes; then
687    AC_DEFINE(RUN_TESTS,1, [Defined if we should run the tests])
688 fi
689 AM_CONDITIONAL(RUN_TESTS, test "$run_tests" = yes)
690
691 if test "$use_ldapwrapper" = yes; then
692    AC_DEFINE(USE_LDAPWRAPPER,1, [Build dirmngr with LDAP wrapper process])
693 fi
694 AM_CONDITIONAL(USE_LDAPWRAPPER, test "$use_ldapwrapper" = yes)
695
696 if test "$disable_keyserver_path" = yes; then
697     AC_DEFINE(DISABLE_KEYSERVER_PATH,1,
698               [Defined to disable exec-path for keyserver helpers])
699 fi
700
701 #
702 # Allows enabling the use of a standard socket by default This is
703 # gpg-agent's option --[no-]use-standard-socket.  For Windows we force
704 # the use of this.
705 #
706 AC_MSG_CHECKING([whether to use a standard socket by default])
707 AC_ARG_ENABLE(standard-socket,
708               AC_HELP_STRING([--disable-standard-socket],
709                              [don't use a standard socket by default]),
710               use_standard_socket=$enableval)
711 tmp=""
712 if test "$use_standard_socket" != yes; then
713   if test "$have_w32_system" = yes; then
714     use_standard_socket=yes
715     tmp=" (forced)"
716   fi
717 fi
718 AC_MSG_RESULT($use_standard_socket$tmp)
719 if test "$use_standard_socket" = yes; then
720   AC_DEFINE(USE_STANDARD_SOCKET,1,
721             [Use the standard socket for the agent by default])
722 fi
723
724
725 # (These need to go after AC_PROG_CC so that $EXEEXT is defined)
726 AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
727
728 if test x"$try_hkp" = xyes ; then
729   AC_SUBST(GPGKEYS_HKP,"gpg2keys_hkp$EXEEXT")
730 fi
731
732 if test x"$try_finger" = xyes ; then
733   AC_SUBST(GPGKEYS_FINGER,"gpg2keys_finger$EXEEXT")
734 fi
735
736
737
738 #
739 # Checks for libraries.
740 #
741 AC_MSG_NOTICE([checking for libraries])
742
743
744 #
745 # libgpg-error is a library with error codes shared between GnuPG
746 # related projects.
747 #
748 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
749                   have_gpg_error=yes,have_gpg_error=no)
750
751
752 #
753 # Libgcrypt is our generic crypto library
754 #
755 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
756         have_libgcrypt=yes,have_libgcrypt=no)
757
758
759 #
760 # libassuan is used for IPC
761 #
762 AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
763                   have_libassuan=yes,have_libassuan=no)
764 if test "$have_libassuan" = "yes"; then
765   AC_DEFINE_UNQUOTED(GNUPG_LIBASSUAN_VERSION, "$libassuan_version",
766                      [version of the libassuan library])
767 fi
768
769
770
771 #
772 # libksba is our X.509 support library
773 #
774 AM_PATH_KSBA("$NEED_KSBA_API:$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
775
776
777 #
778 # libusb allows us to use the integrated CCID smartcard reader driver.
779 #
780 # FiXME: Use GNUPG_CHECK_LIBUSB and modify to use separate AC_SUBSTs.
781 if test "$use_ccid_driver" = yes ; then
782   AC_CHECK_LIB(usb, usb_bulk_write,
783                 [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
784                   AC_DEFINE(HAVE_LIBUSB,1,
785                            [defined if libusb is available])
786                   have_libusb=yes
787                ])
788   AC_CHECK_FUNCS(usb_create_match)
789 fi
790 AC_SUBST(LIBUSB_LIBS)
791
792 #
793 # Check wether it is necessary to link against libdl.
794 #
795 gnupg_dlopen_save_libs="$LIBS"
796 LIBS=""
797 AC_SEARCH_LIBS(dlopen, c dl,,,)
798 DL_LIBS=$LIBS
799 AC_SUBST(DL_LIBS)
800 LIBS="$gnupg_dlopen_save_libs"
801
802 # Checks for g13
803
804 AC_PATH_PROG(ENCFS, encfs, /usr/bin/encfs)
805 AC_DEFINE_UNQUOTED(ENCFS,
806         "${ENCFS}", [defines the filename of the encfs program])
807
808 AC_PATH_PROG(FUSERMOUNT, fusermount, /usr/bin/fusermount)
809 AC_DEFINE_UNQUOTED(FUSERMOUNT,
810         "${FUSERMOUNT}", [defines the filename of the fusermount program])
811
812
813 # Checks for dirmngr
814
815
816 #
817 # Checks for symcryptrun:
818 #
819
820 # libutil has openpty() and login_tty().
821 AC_CHECK_LIB(util, openpty,
822               [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
823                 AC_DEFINE(HAVE_LIBUTIL,1,
824                          [defined if libutil is available])
825              ])
826 AC_SUBST(LIBUTIL_LIBS)
827
828 # shred is used to clean temporary plain text files.
829 AC_PATH_PROG(SHRED, shred, /usr/bin/shred)
830 AC_DEFINE_UNQUOTED(SHRED,
831         "${SHRED}", [defines the filename of the shred program])
832
833
834 #
835 # Check whether the nPth library is available
836 #
837 AM_PATH_NPTH("$NEED_NPTH_API:$NEED_NPTH_VERSION",have_npth=yes,have_npth=no)
838 if test "$have_npth" = "yes"; then
839   # We define this macro because some code parts require it.
840   AC_DEFINE(USE_NPTH, 1,
841               [Defined if the New Portable Thread Library is available])
842 else
843   AC_MSG_WARN([[
844 ***
845 *** To support concurrent access for example in gpg-agent and the SCdaemon
846 *** we need the support of the New Portable Threads Library.
847 ***]])
848 fi
849
850
851 AC_MSG_NOTICE([checking for networking options])
852
853 #
854 # Must check for network library requirements before doing link tests
855 # for ldap, for example. If ldap libs are static (or dynamic and without
856 # ELF runtime link paths), then link will fail and LDAP support won't
857 # be detected.
858 #
859 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
860         [NETLIBS="-lnsl $NETLIBS"]))
861 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
862         [NETLIBS="-lsocket $NETLIBS"]))
863
864
865 #
866 # Check for ADNS.
867 #
868 _cppflags="${CPPFLAGS}"
869 _ldflags="${LDFLAGS}"
870 AC_ARG_WITH(adns,
871             AC_HELP_STRING([--with-adns=DIR],
872                            [look for the adns library in DIR]),
873             [if test -d "$withval"; then
874                CPPFLAGS="${CPPFLAGS} -I$withval/include"
875                LDFLAGS="${LDFLAGS} -L$withval/lib"
876              fi])
877 if test "$with_adns" != "no"; then
878   AC_CHECK_HEADERS(adns.h,
879                 AC_CHECK_LIB(adns, adns_init,
880                              [have_adns=yes],
881                              [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}]),
882                 [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}])
883 fi
884 if test "$have_adns" = "yes"; then
885   ADNSLIBS="-ladns"
886 fi
887 AC_SUBST(ADNSLIBS)
888 # Newer adns versions feature a free function to be used under W32.
889 AC_CHECK_FUNCS(adns_free)
890
891
892
893 #
894 # Now try for the resolver functions so we can use DNS for SRV, PA and CERT.
895 #
896 if test x"$try_hkp" = xyes || test x"$try_http" = xyes ; then
897   AC_ARG_ENABLE(dns-srv,
898      AC_HELP_STRING([--disable-dns-srv],
899                     [disable the use of DNS SRV in HKP and HTTP]),
900                 use_dns_srv=$enableval,use_dns_srv=yes)
901 fi
902
903 AC_ARG_ENABLE(dns-pka,
904    AC_HELP_STRING([--disable-dns-pka],
905         [disable the use of PKA records in DNS]),
906    use_dns_pka=$enableval,use_dns_pka=yes)
907
908 AC_ARG_ENABLE(dns-cert,
909    AC_HELP_STRING([--disable-dns-cert],
910         [disable the use of CERT records in DNS]),
911    use_dns_cert=$enableval,use_dns_cert=yes)
912
913 if test x"$use_dns_pka" = xyes || test x"$use_dns_srv" = xyes \
914    || test x"$use_dns_cert" = xyes; then
915   _dns_save_libs=$LIBS
916   LIBS=""
917   # the double underscore thing is a glibc-ism?
918   AC_SEARCH_LIBS(res_query,resolv bind,,
919                  AC_SEARCH_LIBS(__res_query,resolv bind,,have_resolver=no))
920   AC_SEARCH_LIBS(dn_expand,resolv bind,,
921                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,have_resolver=no))
922   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
923                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,have_resolver=no))
924
925   if test x"$have_resolver" != xno ; then
926
927     # Make sure that the BIND 4 resolver interface is workable before
928     # enabling any code that calls it.  At some point I'll rewrite the
929     # code to use the BIND 8 resolver API.
930     # We might also want to use adns instead.  Problem with ADNS is that
931     # it does not support v6.
932
933     AC_MSG_CHECKING([whether the resolver is usable])
934     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
935 #include <netinet/in.h>
936 #include <arpa/nameser.h>
937 #include <resolv.h>]],
938 [[unsigned char answer[PACKETSZ];
939   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
940   dn_skipname(0,0);
941   dn_expand(0,0,0,0,0);
942 ]])],have_resolver=yes,have_resolver=no)
943     AC_MSG_RESULT($have_resolver)
944
945     # This is Apple-specific and somewhat bizarre as they changed the
946     # define in bind 8 for some reason.
947
948     if test x"$have_resolver" != xyes ; then
949        AC_MSG_CHECKING(
950              [whether I can make the resolver usable with BIND_8_COMPAT])
951        AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define BIND_8_COMPAT
952 #include <sys/types.h>
953 #include <netinet/in.h>
954 #include <arpa/nameser.h>
955 #include <resolv.h>]],
956 [[unsigned char answer[PACKETSZ];
957   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
958   dn_skipname(0,0); dn_expand(0,0,0,0,0);
959 ]])],[have_resolver=yes ; need_compat=yes])
960        AC_MSG_RESULT($have_resolver)
961     fi
962   fi
963
964   if test x"$have_resolver" = xyes ; then
965      DNSLIBS=$LIBS
966
967      if test x"$use_dns_srv" = xyes ; then
968         AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
969      fi
970
971      if test x"$use_dns_pka" = xyes ; then
972         AC_DEFINE(USE_DNS_PKA,1,[define to use our experimental DNS PKA])
973      fi
974
975      if test x"$use_dns_cert" = xyes ; then
976         AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
977      fi
978
979      if test x"$need_compat" = xyes ; then
980         AC_DEFINE(BIND_8_COMPAT,1,[an Apple OSXism])
981      fi
982   else
983      # If we have no resolver library but ADNS (e.g. under W32) enable the
984      # code parts which can be used with ADNS.
985      if test x"$have_adns" = xyes ; then
986         DNSLIBS="$ADNSLIBS"
987         AC_DEFINE(USE_ADNS,1,[Use ADNS as resolver library.])
988
989         if test x"$use_dns_srv" = xyes ; then
990            AC_DEFINE(USE_DNS_SRV,1)
991         fi
992
993         if test x"$use_dns_pka" = xyes ; then
994            AC_DEFINE(USE_DNS_PKA,1)
995         fi
996
997         if test x"$use_dns_cert" = xyes ; then
998            AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
999         fi
1000      else
1001         use_dns_srv=no
1002         use_dns_pka=no
1003         use_dns_cert=no
1004      fi
1005   fi
1006
1007   LIBS=$_dns_save_libs
1008 fi
1009
1010 AC_SUBST(DNSLIBS)
1011
1012 AM_CONDITIONAL(USE_DNS_SRV, test x"$use_dns_srv" = xyes)
1013
1014
1015 #
1016 # Check for LDAP
1017 #
1018 if test "$try_ks_ldap" = yes || test "$build_dirmngr" = "yes" ; then
1019    GNUPG_CHECK_LDAP($NETLIBS)
1020    AC_CHECK_LIB(lber, ber_free,
1021                 [ LBER_LIBS="$LBER_LIBS -llber"
1022                   AC_DEFINE(HAVE_LBER,1,
1023                            [defined if liblber is available])
1024                   have_lber=yes
1025                ])
1026 fi
1027 AC_SUBST(LBER_LIBS)
1028
1029 #
1030 # Check for curl.  We fake the curl API if libcurl isn't installed.
1031 # We require 7.10 or later as we use curl_version_info().
1032 #
1033 LIBCURL_CHECK_CONFIG([yes],[7.10],,[fake_curl=yes])
1034 AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
1035
1036 # Generic, for us, means curl
1037
1038 if test x"$try_generic" = xyes ; then
1039    AC_SUBST(GPGKEYS_CURL,"gpg2keys_curl$EXEEXT")
1040 fi
1041
1042 #
1043 # Check for sendmail
1044 #
1045 # This isn't necessarily sendmail itself, but anything that gives a
1046 # sendmail-ish interface to the outside world.  That includes Exim,
1047 # Postfix, etc.  Basically, anything that can handle "sendmail -t".
1048 if test "$try_mailto" = yes ; then
1049   AC_ARG_WITH(mailprog,
1050       AC_HELP_STRING([--with-mailprog=NAME],
1051                      [use "NAME -t" for mail transport]),
1052              ,with_mailprog=yes)
1053
1054   if test x"$with_mailprog" = xyes ; then
1055     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
1056     if test "$ac_cv_path_SENDMAIL" ; then
1057       GPGKEYS_MAILTO="gpg2keys_mailto"
1058     fi
1059   elif test x"$with_mailprog" != xno ; then
1060     AC_MSG_CHECKING([for a mail transport program])
1061     AC_SUBST(SENDMAIL,$with_mailprog)
1062     AC_MSG_RESULT($with_mailprog)
1063     GPGKEYS_MAILTO="gpg2keys_mailto"
1064   fi
1065 fi
1066
1067 AC_SUBST(GPGKEYS_MAILTO)
1068
1069 #
1070 # Construct a printable name of the OS
1071 #
1072 case "${host}" in
1073     *-mingw32ce*)
1074         PRINTABLE_OS_NAME="W32CE"
1075         ;;
1076     *-mingw32*)
1077         PRINTABLE_OS_NAME="MingW32"
1078         ;;
1079     *-*-cygwin*)
1080         PRINTABLE_OS_NAME="Cygwin"
1081         ;;
1082     i?86-emx-os2 | i?86-*-os2*emx )
1083         PRINTABLE_OS_NAME="OS/2"
1084         ;;
1085     i?86-*-msdosdjgpp*)
1086         PRINTABLE_OS_NAME="MSDOS/DJGPP"
1087         try_dynload=no
1088         ;;
1089     *-linux*)
1090         PRINTABLE_OS_NAME="GNU/Linux"
1091         ;;
1092     *)
1093         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
1094         ;;
1095 esac
1096 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
1097                    [A human readable text with the name of the OS])
1098
1099
1100 #
1101 # Checking for iconv
1102 #
1103 AM_ICONV
1104
1105
1106 #
1107 # Check for gettext
1108 #
1109 # This is "GNU gnupg" - The project-id script from gettext
1110 #                       needs this string
1111 #
1112 AC_MSG_NOTICE([checking for gettext])
1113 AM_PO_SUBDIRS
1114 AM_GNU_GETTEXT_VERSION([0.17])
1115 if test "$try_gettext" = yes; then
1116   AM_GNU_GETTEXT([external],[need-ngettext])
1117
1118   # gettext requires some extra checks.  These really should be part of
1119   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
1120   # function checks to here.
1121
1122   AC_CHECK_FUNCS(strchr)
1123 else
1124   USE_NLS=no
1125   USE_INCLUDED_LIBINTL=no
1126   BUILD_INCLUDED_LIBINTL=no
1127   POSUB=po
1128   AC_SUBST(USE_NLS)
1129   AC_SUBST(USE_INCLUDED_LIBINTL)
1130   AC_SUBST(BUILD_INCLUDED_LIBINTL)
1131   AC_SUBST(POSUB)
1132 fi
1133
1134 # We use HAVE_LANGINFO_CODESET in a couple of places.
1135 AM_LANGINFO_CODESET
1136
1137 # Checks required for our use locales
1138 gt_LC_MESSAGES
1139
1140
1141 #
1142 # SELinux support
1143 #
1144 if test "$selinux_support" = yes ; then
1145   AC_DEFINE(ENABLE_SELINUX_HACKS,1,[Define to enable SELinux support])
1146 fi
1147
1148
1149 #
1150 # Checks for header files.
1151 #
1152 AC_MSG_NOTICE([checking for header files])
1153 AC_HEADER_STDC
1154 AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h \
1155                   pty.h utmp.h pwd.h inttypes.h signal.h])
1156 AC_HEADER_TIME
1157
1158
1159 #
1160 # Checks for typedefs, structures, and compiler characteristics.
1161 #
1162 AC_MSG_NOTICE([checking for system characteristics])
1163 AC_C_CONST
1164 AC_C_INLINE
1165 AC_C_VOLATILE
1166 AC_TYPE_SIZE_T
1167 AC_TYPE_MODE_T
1168 AC_TYPE_SIGNAL
1169 AC_DECL_SYS_SIGLIST
1170
1171 gl_HEADER_SYS_SOCKET
1172 gl_TYPE_SOCKLEN_T
1173
1174 AC_SEARCH_LIBS([inet_addr], [nsl])
1175
1176 AC_ARG_ENABLE(endian-check,
1177               AC_HELP_STRING([--disable-endian-check],
1178               [disable the endian check and trust the OS provided macros]),
1179               endiancheck=$enableval,endiancheck=yes)
1180
1181 if test x"$endiancheck" = xyes ; then
1182   GNUPG_CHECK_ENDIAN
1183 fi
1184
1185 # fixme: we should get rid of the byte type
1186 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
1187 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
1188 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
1189 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
1190 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
1191
1192 AC_CHECK_SIZEOF(unsigned short)
1193 AC_CHECK_SIZEOF(unsigned int)
1194 AC_CHECK_SIZEOF(unsigned long)
1195 AC_CHECK_SIZEOF(unsigned long long)
1196 AC_HEADER_TIME
1197 AC_CHECK_SIZEOF(time_t,,[[
1198 #include <stdio.h>
1199 #if TIME_WITH_SYS_TIME
1200 # include <sys/time.h>
1201 # include <time.h>
1202 #else
1203 # if HAVE_SYS_TIME_H
1204 #  include <sys/time.h>
1205 # else
1206 #  include <time.h>
1207 # endif
1208 #endif
1209 ]])
1210 GNUPG_TIME_T_UNSIGNED
1211
1212
1213 # Ensure that we have UINT64_C before we bother to check for uint64_t
1214 # Fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
1215 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
1216    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <inttypes.h>]],
1217        [[uint64_t foo=UINT64_C(42);]])],
1218      gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
1219 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
1220    AC_CHECK_SIZEOF(uint64_t)
1221 fi
1222
1223 if test "$ac_cv_sizeof_unsigned_short" = "0" \
1224    || test "$ac_cv_sizeof_unsigned_int" = "0" \
1225    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
1226     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
1227 fi
1228
1229
1230 #
1231 # Checks for library functions.
1232 #
1233 AC_MSG_NOTICE([checking for library functions])
1234 AC_CHECK_DECLS(getpagesize)
1235 AC_FUNC_FSEEKO
1236 AC_FUNC_VPRINTF
1237 AC_FUNC_FORK
1238 AC_CHECK_FUNCS([strerror strlwr tcgetattr mmap canonicalize_file_name])
1239 AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times gmtime_r strtoull])
1240 AC_CHECK_FUNCS([unsetenv fcntl ftruncate canonicalize_file_name])
1241 AC_CHECK_FUNCS([gettimeofday getrusage getrlimit setrlimit clock_gettime])
1242 AC_CHECK_FUNCS([atexit raise getpagesize strftime nl_langinfo setlocale])
1243 AC_CHECK_FUNCS([waitpid wait4 sigaction sigprocmask pipe getaddrinfo])
1244 AC_CHECK_FUNCS([ttyname rand ftello fsync stat lstat])
1245
1246 if test "$have_android_system" = yes; then
1247    # On Android ttyname is a stub but prints an error message.
1248    AC_DEFINE(HAVE_BROKEN_TTYNAME,1,
1249              [Defined if ttyname does not work properly])
1250 fi
1251
1252 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
1253
1254 # Dirmngr requires mmap on Unix systems.
1255 if test $ac_cv_func_mmap != yes -a $mmap_needed = yes; then
1256   AC_MSG_ERROR([[Sorry, the current implemenation requires mmap.]])
1257 fi
1258
1259 #
1260 # These are needed by the jnlib parts in common.
1261 # Note:  We already checked pwd.h.
1262 AC_CHECK_HEADERS([signal.h])
1263 AC_CHECK_FUNCS([memicmp stpcpy strsep strlwr strtoul memmove stricmp strtol \
1264                 memrchr isascii timegm getrusage setrlimit stat setlocale   \
1265                 flockfile funlockfile fopencookie funopen getpwnam getpwuid \
1266                 getenv inet_pton])
1267 # end jnlib checks.
1268
1269
1270
1271 #
1272 # gnulib checks
1273 #
1274 gl_SOURCE_BASE([gl])
1275 gl_M4_BASE([gl/m4])
1276 gl_MODULES([setenv mkdtemp xsize strpbrk])
1277 gl_INIT
1278
1279
1280 #
1281 # W32 specific test
1282 #
1283 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
1284
1285 #
1286 # Sanity check regex.  Tests adapted from mutt.
1287 #
1288 AC_MSG_CHECKING([whether regular expression support is requested])
1289 AC_ARG_ENABLE(regex,
1290   AC_HELP_STRING([--disable-regex],
1291     [do not handle regular expressions in trust signatures]),
1292   use_regex=$enableval, use_regex=yes)
1293 AC_MSG_RESULT($use_regex)
1294
1295 if test "$use_regex" = yes ; then
1296   _cppflags="${CPPFLAGS}"
1297   _ldflags="${LDFLAGS}"
1298   AC_ARG_WITH(regex,
1299      AC_HELP_STRING([--with-regex=DIR],[look for regex in DIR]),
1300       [
1301       if test -d "$withval" ; then
1302         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1303         LDFLAGS="${LDFLAGS} -L$withval/lib"
1304       fi
1305       ],withval="")
1306
1307   # Does the system have regex functions at all?
1308   AC_SEARCH_LIBS([regcomp], [regex])
1309   AC_CHECK_FUNC(regcomp, gnupg_cv_have_regex=yes, gnupg_cv_have_regex=no)
1310
1311   if test $gnupg_cv_have_regex = no; then
1312     use_regex=no
1313   else
1314     if test x"$cross_compiling" = xyes; then
1315       AC_MSG_WARN([cross compiling; assuming regexp libray is not broken])
1316     else
1317       AC_CACHE_CHECK([whether your system's regexp library is broken],
1318        [gnupg_cv_regex_broken],
1319        AC_TRY_RUN([
1320 #include <unistd.h>
1321 #include <regex.h>
1322 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); }],
1323        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
1324
1325       if test $gnupg_cv_regex_broken = yes; then
1326         AC_MSG_WARN([your regex is broken - disabling regex use])
1327         use_regex=no
1328       fi
1329     fi
1330   fi
1331   CPPFLAGS="${_cppflags}"
1332   LDFLAGS="${_ldflags}"
1333 fi
1334
1335 if test "$use_regex" != yes ; then
1336   AC_DEFINE(DISABLE_REGEX,1, [Define to disable regular expression support])
1337 fi
1338 AM_CONDITIONAL(DISABLE_REGEX, test x"$use_regex" != xyes)
1339
1340
1341
1342 #
1343 # Do we have zlib? Must do it here because Solaris failed
1344 # when compiling a conftest (due to the "-lz" from LIBS).
1345 # Note that we combine zlib and bzlib2 in ZLIBS.
1346 #
1347 if test "$use_zip" = yes ; then
1348   _cppflags="${CPPFLAGS}"
1349   _ldflags="${LDFLAGS}"
1350   AC_ARG_WITH(zlib,
1351     [  --with-zlib=DIR         use libz in DIR],[
1352       if test -d "$withval"; then
1353         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1354         LDFLAGS="${LDFLAGS} -L$withval/lib"
1355       fi
1356     ])
1357
1358   AC_CHECK_HEADER(zlib.h,
1359         AC_CHECK_LIB(z, deflateInit2_,
1360          ZLIBS="-lz",
1361          CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1362          CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
1363
1364   AC_DEFINE(HAVE_ZIP,1, [Defined if ZIP and ZLIB are supported])
1365 fi
1366
1367
1368 #
1369 # Check whether we can support bzip2
1370 #
1371 if test "$use_bzip2" = yes ; then
1372   _cppflags="${CPPFLAGS}"
1373   _ldflags="${LDFLAGS}"
1374   AC_ARG_WITH(bzip2,
1375      AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
1376       [
1377       if test -d "$withval" ; then
1378         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1379         LDFLAGS="${LDFLAGS} -L$withval/lib"
1380       fi
1381       ],withval="")
1382
1383   # Checking alongside stdio.h as an early version of bzip2 (1.0)
1384   # required stdio.h to be included before bzlib.h, and Solaris 9 is
1385   # woefully out of date.
1386   if test "$withval" != no ; then
1387      AC_CHECK_HEADER(bzlib.h,
1388         AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
1389           [
1390           have_bz2=yes
1391           ZLIBS="$ZLIBS -lbz2"
1392           AC_DEFINE(HAVE_BZIP2,1,
1393                   [Defined if the bz2 compression library is available])
1394           ],
1395           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1396           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
1397   fi
1398 fi
1399 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
1400 AC_SUBST(ZLIBS)
1401
1402
1403 # Check for readline support
1404 GNUPG_CHECK_READLINE
1405
1406
1407 if test "$development_version" = yes; then
1408     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
1409             [Defined if this is not a regular release])
1410 fi
1411
1412 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
1413
1414 GNUPG_CHECK_GNUMAKE
1415
1416 # Add some extra libs here so that previous tests don't fail for
1417 # mysterious reasons - the final link step should bail out.
1418 # W32SOCKLIBS is also defined so that if can be used for tools not
1419 # requiring any network stuff but linking to code in libcommon which
1420 # tracks in winsock stuff (e.g. init_common_subsystems).
1421 if test "$have_w32_system" = yes; then
1422    if test "$have_w32ce_system" = yes; then
1423      W32SOCKLIBS="-lws2"
1424    else
1425      W32SOCKLIBS="-lws2_32"
1426    fi
1427    NETLIBS="${NETLIBS} ${W32SOCKLIBS}"
1428 fi
1429
1430 AC_SUBST(NETLIBS)
1431 AC_SUBST(W32SOCKLIBS)
1432
1433 #
1434 # Setup gcc specific options
1435 #
1436 AC_MSG_NOTICE([checking for cc features])
1437 if test "$GCC" = yes; then
1438     # Note that it is okay to use CFLAGS here because this are just
1439     # warning options and the user should have a chance of overriding
1440     # them.
1441     if test "$USE_MAINTAINER_MODE" = "yes"; then
1442         CFLAGS="$CFLAGS -O3 -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1443         CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
1444         AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
1445         _gcc_cflags_save=$CFLAGS
1446         CFLAGS="-Wno-missing-field-initializers"
1447         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
1448         AC_MSG_RESULT($_gcc_wopt)
1449         CFLAGS=$_gcc_cflags_save;
1450         if test x"$_gcc_wopt" = xyes ; then
1451           CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers"
1452         fi
1453         AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement])
1454         _gcc_cflags_save=$CFLAGS
1455         CFLAGS="-Wdeclaration-after-statement"
1456         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
1457         AC_MSG_RESULT($_gcc_wopt)
1458         CFLAGS=$_gcc_cflags_save;
1459         if test x"$_gcc_wopt" = xyes ; then
1460           CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1461         fi
1462     else
1463         CFLAGS="$CFLAGS -Wall"
1464     fi
1465
1466     AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
1467     _gcc_cflags_save=$CFLAGS
1468     CFLAGS="-Wno-pointer-sign"
1469     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1470     AC_MSG_RESULT($_gcc_psign)
1471     CFLAGS=$_gcc_cflags_save;
1472     if test x"$_gcc_psign" = xyes ; then
1473        CFLAGS="$CFLAGS -Wno-pointer-sign"
1474     fi
1475
1476     AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
1477     _gcc_cflags_save=$CFLAGS
1478     CFLAGS="-Wpointer-arith"
1479     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1480     AC_MSG_RESULT($_gcc_psign)
1481     CFLAGS=$_gcc_cflags_save;
1482     if test x"$_gcc_psign" = xyes ; then
1483        CFLAGS="$CFLAGS -Wpointer-arith"
1484     fi
1485 fi
1486
1487
1488 #
1489 # This is handy for debugging so the compiler doesn't rearrange
1490 # things and eliminate variables.
1491 #
1492 AC_ARG_ENABLE(optimization,
1493    AC_HELP_STRING([--disable-optimization],
1494                   [disable compiler optimization]),
1495                   [if test $enableval = no ; then
1496                       CFLAGS=`echo $CFLAGS | sed s/-O[[1-9]]\ /-O0\ /g`
1497                    fi])
1498
1499 #
1500 # Prepare building of estream
1501 #
1502 estream_INIT
1503
1504
1505 #
1506 # Decide what to build
1507 #
1508 if test "$have_adns" = "yes"; then
1509   AC_SUBST(GPGKEYS_KDNS, "gpg2keys_kdns$EXEEXT")
1510 fi
1511
1512
1513 build_scdaemon_extra=""
1514 if test "$build_scdaemon" = "yes"; then
1515   if test $have_libusb = no; then
1516      build_scdaemon_extra="without internal CCID driver"
1517   fi
1518   if test -n "$build_scdaemon_extra"; then
1519      build_scdaemon_extra="(${build_scdaemon_extra})"
1520   fi
1521 fi
1522
1523
1524 if test "$build_agent_only" = "yes" ; then
1525   build_gpg=no
1526   build_gpgsm=no
1527   build_scdaemon=no
1528   build_tools=no
1529   build_doc=no
1530 fi
1531
1532 #
1533 # Set variables for use by th automake makefile.
1534 #
1535 AM_CONDITIONAL(BUILD_GPG,         test "$build_gpg" = "yes")
1536 AM_CONDITIONAL(BUILD_GPGSM,       test "$build_gpgsm" = "yes")
1537 AM_CONDITIONAL(BUILD_AGENT,       test "$build_agent" = "yes")
1538 AM_CONDITIONAL(BUILD_SCDAEMON,    test "$build_scdaemon" = "yes")
1539 AM_CONDITIONAL(BUILD_G13,         test "$build_g13" = "yes")
1540 AM_CONDITIONAL(BUILD_DIRMNGR,     test "$build_dirmngr" = "yes")
1541 AM_CONDITIONAL(BUILD_TOOLS,       test "$build_tools" = "yes")
1542 AM_CONDITIONAL(BUILD_DOC,         test "$build_doc" = "yes")
1543 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
1544 AM_CONDITIONAL(BUILD_GPGTAR,      test "$build_gpgtar" = "yes")
1545
1546 AM_CONDITIONAL(RUN_GPG_TESTS,
1547                test x$cross_compiling = xno -a "$build_gpg" = yes )
1548
1549 #
1550 # Set some defines for use gpgconf.
1551 #
1552 if test "$build_gpg" = yes ; then
1553     AC_DEFINE(BUILD_WITH_GPG,1,[Defined if GPG is to be build])
1554 fi
1555 if test "$build_gpgsm" = yes ; then
1556     AC_DEFINE(BUILD_WITH_GPGSM,1,[Defined if GPGSM is to be build])
1557 fi
1558 if test "$build_agent" = yes ; then
1559     AC_DEFINE(BUILD_WITH_AGENT,1,[Defined if GPG-AGENT is to be build])
1560 fi
1561 if test "$build_scdaemon" = yes ; then
1562     AC_DEFINE(BUILD_WITH_SCDAEMON,1,[Defined if SCDAEMON is to be build])
1563 fi
1564 if test "$build_dirmngr" = yes ; then
1565     AC_DEFINE(BUILD_WITH_DIRMNGR,1,[Defined if SCDAEMON is to be build])
1566 fi
1567 if test "$build_g13" = yes ; then
1568     AC_DEFINE(BUILD_WITH_G13,1,[Defined if G13 is to be build])
1569 fi
1570
1571
1572
1573 #
1574 # Provide information about the build.
1575 #
1576 BUILD_REVISION="mym4_revision"
1577 AC_SUBST(BUILD_REVISION)
1578 AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
1579                    [GIT commit id revision used to build this package])
1580
1581 changequote(,)dnl
1582 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
1583 changequote([,])dnl
1584 BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
1585 AC_SUBST(BUILD_FILEVERSION)
1586
1587 BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
1588 AC_SUBST(BUILD_TIMESTAMP)
1589 AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
1590                    [The time this package was configured for a build])
1591 BUILD_HOSTNAME="$ac_hostname"
1592 AC_SUBST(BUILD_HOSTNAME)
1593
1594
1595 #
1596 # Print errors here so that they are visible all
1597 # together and the user can acquire them all together.
1598 #
1599 die=no
1600 if test "$have_gpg_error" = "no"; then
1601    die=yes
1602    AC_MSG_NOTICE([[
1603 ***
1604 *** You need libgpg-error to build this program.
1605 **  This library is for example available at
1606 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
1607 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
1608 ***]])
1609 fi
1610 if test "$have_libgcrypt" = "no"; then
1611    die=yes
1612    AC_MSG_NOTICE([[
1613 ***
1614 *** You need libgcrypt to build this program.
1615 **  This library is for example available at
1616 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
1617 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API) is required.)
1618 ***]])
1619 fi
1620 if test "$have_libassuan" = "no"; then
1621    die=yes
1622    AC_MSG_NOTICE([[
1623 ***
1624 *** You need libassuan to build this program.
1625 *** This library is for example available at
1626 ***   ftp://ftp.gnupg.org/gcrypt/libassuan/
1627 *** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
1628 ***]])
1629 fi
1630 if test "$have_ksba" = "no"; then
1631     die=yes
1632     AC_MSG_NOTICE([[
1633 ***
1634 *** You need libksba to build this program.
1635 *** This library is for example available at
1636 ***   ftp://ftp.gnupg.org/gcrypt/libksba/
1637 *** (at least version $NEED_KSBA_VERSION using API $NEED_KSBA_API is required).
1638 ***]])
1639 fi
1640 if test "$gnupg_have_ldap" = "no"; then
1641     die=yes
1642     AC_MSG_NOTICE([[
1643 ***
1644 *** You need a LDAP library to build this program.
1645 *** Check out
1646 ***    http://www.openldap.org
1647 *** for a suitable implementation.
1648 ***]])
1649    if test "$have_w32ce_system" = yes; then
1650     AC_MSG_NOTICE([[
1651 *** Note that CeGCC might be broken, a package fixing this is:
1652 ***    http://files.kolab.org/local/windows-ce/
1653 ***                           source/wldap32_0.1-mingw32ce.orig.tar.gz
1654 ***                           binary/wldap32-ce-arm-dev_0.1-1_all.deb
1655 ***]])
1656    fi
1657 fi
1658 if test "$have_npth" = "no"; then
1659     die=yes
1660     AC_MSG_NOTICE([[
1661 ***
1662 *** It is now required to build with support for the
1663 *** New Portable Threads Library (nPth). Please install this
1664 *** library first.  The library is for example available at
1665 ***   ftp://ftp.gnupg.org/gcrypt/npth/
1666 *** (at least version $NEED_NPTH_VERSION (API $NEED_NPTH_API) is required).
1667 ***]])
1668 fi
1669
1670 if test "$die" = "yes"; then
1671     AC_MSG_ERROR([[
1672 ***
1673 *** Required libraries not found. Please consult the above messages
1674 *** and install them before running configure again.
1675 ***]])
1676 fi
1677
1678
1679
1680 AC_CONFIG_FILES([ m4/Makefile
1681 Makefile
1682 po/Makefile.in
1683 gl/Makefile
1684 include/Makefile
1685 common/Makefile
1686 common/w32info-rc.h
1687 kbx/Makefile
1688 g10/Makefile
1689 sm/Makefile
1690 agent/Makefile
1691 scd/Makefile
1692 g13/Makefile
1693 dirmngr/Makefile
1694 tools/gpg-zip
1695 tools/Makefile
1696 doc/Makefile
1697 tests/Makefile
1698 tests/openpgp/Makefile
1699 tests/pkits/Makefile
1700 ])
1701 #keyserver/Makefile
1702 #keyserver/gpg2keys_mailto
1703 #keyserver/gpg2keys_test
1704
1705
1706 AC_OUTPUT
1707
1708
1709 echo "
1710         GnuPG v${VERSION} has been configured as follows:
1711
1712         Revision:  mym4_revision  (mym4_revision_dec)
1713         Platform:  $PRINTABLE_OS_NAME ($host)
1714
1715         OpenPGP:   $build_gpg
1716         S/MIME:    $build_gpgsm
1717         Agent:     $build_agent
1718         Smartcard: $build_scdaemon $build_scdaemon_extra
1719         G13:       $build_g13
1720         Dirmngr:   $build_dirmngr
1721         Gpgtar:    $build_gpgtar
1722
1723         Protect tool:      $show_gnupg_protect_tool_pgm
1724         LDAP wrapper:      $show_gnupg_dirmngr_ldap_pgm
1725         Default agent:     $show_gnupg_agent_pgm
1726         Default pinentry:  $show_gnupg_pinentry_pgm
1727         Default scdaemon:  $show_gnupg_scdaemon_pgm
1728         Default dirmngr:   $show_gnupg_dirmngr_pgm
1729
1730         Use standard socket: $use_standard_socket
1731         Dirmngr auto start:  $dirmngr_auto_start
1732 "
1733 if test x"$use_regex" != xyes ; then
1734 echo "
1735         Warning: No regular expression support available.
1736                  OpenPGP trust signatures won't work.
1737                  gpg-check-pattern will not be build.
1738 "
1739 fi