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