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