8bca72820dc3256f9c0f905533e3c5d05fa3f950
[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([scripts])
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 #
801 gnupg_dlopen_save_libs="$LIBS"
802 LIBS=""
803 AC_SEARCH_LIBS(dlopen, c dl,,,)
804 DL_LIBS=$LIBS
805 AC_SUBST(DL_LIBS)
806 LIBS="$gnupg_dlopen_save_libs"
807
808 # Checks for g13
809
810 AC_PATH_PROG(ENCFS, encfs, /usr/bin/encfs)
811 AC_DEFINE_UNQUOTED(ENCFS,
812         "${ENCFS}", [defines the filename of the encfs program])
813
814 AC_PATH_PROG(FUSERMOUNT, fusermount, /usr/bin/fusermount)
815 AC_DEFINE_UNQUOTED(FUSERMOUNT,
816         "${FUSERMOUNT}", [defines the filename of the fusermount program])
817
818
819 # Checks for dirmngr
820
821
822 #
823 # Checks for symcryptrun:
824 #
825
826 # libutil has openpty() and login_tty().
827 AC_CHECK_LIB(util, openpty,
828               [ LIBUTIL_LIBS="$LIBUTIL_LIBS -lutil"
829                 AC_DEFINE(HAVE_LIBUTIL,1,
830                          [defined if libutil is available])
831              ])
832 AC_SUBST(LIBUTIL_LIBS)
833
834 # shred is used to clean temporary plain text files.
835 AC_PATH_PROG(SHRED, shred, /usr/bin/shred)
836 AC_DEFINE_UNQUOTED(SHRED,
837         "${SHRED}", [defines the filename of the shred program])
838
839
840 #
841 # Check whether the nPth library is available
842 #
843 AM_PATH_NPTH("$NEED_NPTH_API:$NEED_NPTH_VERSION",have_npth=yes,have_npth=no)
844 if test "$have_npth" = "yes"; then
845   # We define this macro because some code parts require it.
846   AC_DEFINE(USE_NPTH, 1,
847               [Defined if the New Portable Thread Library is available])
848 else
849   AC_MSG_WARN([[
850 ***
851 *** To support concurrent access for example in gpg-agent and the SCdaemon
852 *** we need the support of the New Portable Threads Library.
853 ***]])
854 fi
855
856
857 AC_MSG_NOTICE([checking for networking options])
858
859 #
860 # Must check for network library requirements before doing link tests
861 # for ldap, for example. If ldap libs are static (or dynamic and without
862 # ELF runtime link paths), then link will fail and LDAP support won't
863 # be detected.
864 #
865 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
866         [NETLIBS="-lnsl $NETLIBS"]))
867 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
868         [NETLIBS="-lsocket $NETLIBS"]))
869
870
871 #
872 # Check for ADNS.
873 #
874 _cppflags="${CPPFLAGS}"
875 _ldflags="${LDFLAGS}"
876 AC_ARG_WITH(adns,
877             AC_HELP_STRING([--with-adns=DIR],
878                            [look for the adns library in DIR]),
879             [if test -d "$withval"; then
880                CPPFLAGS="${CPPFLAGS} -I$withval/include"
881                LDFLAGS="${LDFLAGS} -L$withval/lib"
882              fi])
883 if test "$with_adns" != "no"; then
884   AC_CHECK_HEADERS(adns.h,
885                 AC_CHECK_LIB(adns, adns_init,
886                              [have_adns=yes],
887                              [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}]),
888                 [CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}])
889 fi
890 if test "$have_adns" = "yes"; then
891   ADNSLIBS="-ladns"
892 fi
893 AC_SUBST(ADNSLIBS)
894 # Newer adns versions feature a free function to be used under W32.
895 AC_CHECK_FUNCS(adns_free)
896
897
898
899 #
900 # Now try for the resolver functions so we can use DNS for SRV, PA and CERT.
901 #
902 if test x"$try_hkp" = xyes || test x"$try_http" = xyes ; then
903   AC_ARG_ENABLE(dns-srv,
904      AC_HELP_STRING([--disable-dns-srv],
905                     [disable the use of DNS SRV in HKP and HTTP]),
906                 use_dns_srv=$enableval,use_dns_srv=yes)
907 fi
908
909 AC_ARG_ENABLE(dns-pka,
910    AC_HELP_STRING([--disable-dns-pka],
911         [disable the use of PKA records in DNS]),
912    use_dns_pka=$enableval,use_dns_pka=yes)
913
914 AC_ARG_ENABLE(dns-cert,
915    AC_HELP_STRING([--disable-dns-cert],
916         [disable the use of CERT records in DNS]),
917    use_dns_cert=$enableval,use_dns_cert=yes)
918
919 if test x"$use_dns_pka" = xyes || test x"$use_dns_srv" = xyes \
920    || test x"$use_dns_cert" = xyes; then
921   _dns_save_libs=$LIBS
922   LIBS=""
923   # the double underscore thing is a glibc-ism?
924   AC_SEARCH_LIBS(res_query,resolv bind,,
925                  AC_SEARCH_LIBS(__res_query,resolv bind,,have_resolver=no))
926   AC_SEARCH_LIBS(dn_expand,resolv bind,,
927                  AC_SEARCH_LIBS(__dn_expand,resolv bind,,have_resolver=no))
928   AC_SEARCH_LIBS(dn_skipname,resolv bind,,
929                  AC_SEARCH_LIBS(__dn_skipname,resolv bind,,have_resolver=no))
930
931   if test x"$have_resolver" != xno ; then
932
933     # Make sure that the BIND 4 resolver interface is workable before
934     # enabling any code that calls it.  At some point I'll rewrite the
935     # code to use the BIND 8 resolver API.
936     # We might also want to use adns instead.  Problem with ADNS is that
937     # it does not support v6.
938
939     AC_MSG_CHECKING([whether the resolver is usable])
940     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
941 #include <netinet/in.h>
942 #include <arpa/nameser.h>
943 #include <resolv.h>]],
944 [[unsigned char answer[PACKETSZ];
945   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
946   dn_skipname(0,0);
947   dn_expand(0,0,0,0,0);
948 ]])],have_resolver=yes,have_resolver=no)
949     AC_MSG_RESULT($have_resolver)
950
951     # This is Apple-specific and somewhat bizarre as they changed the
952     # define in bind 8 for some reason.
953
954     if test x"$have_resolver" != xyes ; then
955        AC_MSG_CHECKING(
956              [whether I can make the resolver usable with BIND_8_COMPAT])
957        AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define BIND_8_COMPAT
958 #include <sys/types.h>
959 #include <netinet/in.h>
960 #include <arpa/nameser.h>
961 #include <resolv.h>]],
962 [[unsigned char answer[PACKETSZ];
963   res_query("foo.bar",C_IN,T_A,answer,PACKETSZ);
964   dn_skipname(0,0); dn_expand(0,0,0,0,0);
965 ]])],[have_resolver=yes ; need_compat=yes])
966        AC_MSG_RESULT($have_resolver)
967     fi
968   fi
969
970   if test x"$have_resolver" = xyes ; then
971      DNSLIBS=$LIBS
972
973      if test x"$use_dns_srv" = xyes ; then
974         AC_DEFINE(USE_DNS_SRV,1,[define to use DNS SRV])
975      fi
976
977      if test x"$use_dns_pka" = xyes ; then
978         AC_DEFINE(USE_DNS_PKA,1,[define to use our experimental DNS PKA])
979      fi
980
981      if test x"$use_dns_cert" = xyes ; then
982         AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
983      fi
984
985      if test x"$need_compat" = xyes ; then
986         AC_DEFINE(BIND_8_COMPAT,1,[an Apple OSXism])
987      fi
988   else
989      # If we have no resolver library but ADNS (e.g. under W32) enable the
990      # code parts which can be used with ADNS.
991      if test x"$have_adns" = xyes ; then
992         DNSLIBS="$ADNSLIBS"
993         AC_DEFINE(USE_ADNS,1,[Use ADNS as resolver library.])
994
995         if test x"$use_dns_srv" = xyes ; then
996            AC_DEFINE(USE_DNS_SRV,1)
997         fi
998
999         if test x"$use_dns_pka" = xyes ; then
1000            AC_DEFINE(USE_DNS_PKA,1)
1001         fi
1002
1003         if test x"$use_dns_cert" = xyes ; then
1004            AC_DEFINE(USE_DNS_CERT,1,[define to use DNS CERT])
1005         fi
1006      else
1007         use_dns_srv=no
1008         use_dns_pka=no
1009         use_dns_cert=no
1010      fi
1011   fi
1012
1013   LIBS=$_dns_save_libs
1014 fi
1015
1016 AC_SUBST(DNSLIBS)
1017
1018 AM_CONDITIONAL(USE_DNS_SRV, test x"$use_dns_srv" = xyes)
1019
1020
1021 #
1022 # Check for LDAP
1023 #
1024 if test "$try_ks_ldap" = yes || test "$build_dirmngr" = "yes" ; then
1025    GNUPG_CHECK_LDAP($NETLIBS)
1026    AC_CHECK_LIB(lber, ber_free,
1027                 [ LBER_LIBS="$LBER_LIBS -llber"
1028                   AC_DEFINE(HAVE_LBER,1,
1029                            [defined if liblber is available])
1030                   have_lber=yes
1031                ])
1032 fi
1033 AC_SUBST(LBER_LIBS)
1034
1035 #
1036 # Check for curl.  We fake the curl API if libcurl isn't installed.
1037 # We require 7.10 or later as we use curl_version_info().
1038 #
1039 LIBCURL_CHECK_CONFIG([yes],[7.10],,[fake_curl=yes])
1040 AM_CONDITIONAL(FAKE_CURL,test x"$fake_curl" = xyes)
1041
1042 # Generic, for us, means curl
1043
1044 if test x"$try_generic" = xyes ; then
1045    AC_SUBST(GPGKEYS_CURL,"gpg2keys_curl$EXEEXT")
1046 fi
1047
1048 #
1049 # Check for sendmail
1050 #
1051 # This isn't necessarily sendmail itself, but anything that gives a
1052 # sendmail-ish interface to the outside world.  That includes Exim,
1053 # Postfix, etc.  Basically, anything that can handle "sendmail -t".
1054 if test "$try_mailto" = yes ; then
1055   AC_ARG_WITH(mailprog,
1056       AC_HELP_STRING([--with-mailprog=NAME],
1057                      [use "NAME -t" for mail transport]),
1058              ,with_mailprog=yes)
1059
1060   if test x"$with_mailprog" = xyes ; then
1061     AC_PATH_PROG(SENDMAIL,sendmail,,$PATH:/usr/sbin:/usr/libexec:/usr/lib)
1062     if test "$ac_cv_path_SENDMAIL" ; then
1063       GPGKEYS_MAILTO="gpg2keys_mailto"
1064     fi
1065   elif test x"$with_mailprog" != xno ; then
1066     AC_MSG_CHECKING([for a mail transport program])
1067     AC_SUBST(SENDMAIL,$with_mailprog)
1068     AC_MSG_RESULT($with_mailprog)
1069     GPGKEYS_MAILTO="gpg2keys_mailto"
1070   fi
1071 fi
1072
1073 AC_SUBST(GPGKEYS_MAILTO)
1074
1075 #
1076 # Construct a printable name of the OS
1077 #
1078 case "${host}" in
1079     *-mingw32ce*)
1080         PRINTABLE_OS_NAME="W32CE"
1081         ;;
1082     *-mingw32*)
1083         PRINTABLE_OS_NAME="MingW32"
1084         ;;
1085     *-*-cygwin*)
1086         PRINTABLE_OS_NAME="Cygwin"
1087         ;;
1088     i?86-emx-os2 | i?86-*-os2*emx )
1089         PRINTABLE_OS_NAME="OS/2"
1090         ;;
1091     i?86-*-msdosdjgpp*)
1092         PRINTABLE_OS_NAME="MSDOS/DJGPP"
1093         try_dynload=no
1094         ;;
1095     *-linux*)
1096         PRINTABLE_OS_NAME="GNU/Linux"
1097         ;;
1098     *)
1099         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
1100         ;;
1101 esac
1102 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
1103                    [A human readable text with the name of the OS])
1104
1105
1106 #
1107 # Checking for iconv
1108 #
1109 AM_ICONV
1110
1111
1112 #
1113 # Check for gettext
1114 #
1115 # This is "GNU gnupg" - The project-id script from gettext
1116 #                       needs this string
1117 #
1118 AC_MSG_NOTICE([checking for gettext])
1119 AM_PO_SUBDIRS
1120 AM_GNU_GETTEXT_VERSION([0.17])
1121 if test "$try_gettext" = yes; then
1122   AM_GNU_GETTEXT([external],[need-ngettext])
1123
1124   # gettext requires some extra checks.  These really should be part of
1125   # the basic AM_GNU_GETTEXT macro.  TODO: move other gettext-specific
1126   # function checks to here.
1127
1128   AC_CHECK_FUNCS(strchr)
1129 else
1130   USE_NLS=no
1131   USE_INCLUDED_LIBINTL=no
1132   BUILD_INCLUDED_LIBINTL=no
1133   POSUB=po
1134   AC_SUBST(USE_NLS)
1135   AC_SUBST(USE_INCLUDED_LIBINTL)
1136   AC_SUBST(BUILD_INCLUDED_LIBINTL)
1137   AC_SUBST(POSUB)
1138 fi
1139
1140 # We use HAVE_LANGINFO_CODESET in a couple of places.
1141 AM_LANGINFO_CODESET
1142
1143 # Checks required for our use locales
1144 gt_LC_MESSAGES
1145
1146
1147 #
1148 # SELinux support
1149 #
1150 if test "$selinux_support" = yes ; then
1151   AC_DEFINE(ENABLE_SELINUX_HACKS,1,[Define to enable SELinux support])
1152 fi
1153
1154
1155 #
1156 # Checks for header files.
1157 #
1158 AC_MSG_NOTICE([checking for header files])
1159 AC_HEADER_STDC
1160 AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h \
1161                   pty.h utmp.h pwd.h inttypes.h signal.h])
1162 AC_HEADER_TIME
1163
1164
1165 #
1166 # Checks for typedefs, structures, and compiler characteristics.
1167 #
1168 AC_MSG_NOTICE([checking for system characteristics])
1169 AC_C_CONST
1170 AC_C_INLINE
1171 AC_C_VOLATILE
1172 AC_TYPE_SIZE_T
1173 AC_TYPE_MODE_T
1174 AC_TYPE_SIGNAL
1175 AC_DECL_SYS_SIGLIST
1176
1177 gl_HEADER_SYS_SOCKET
1178 gl_TYPE_SOCKLEN_T
1179
1180 AC_SEARCH_LIBS([inet_addr], [nsl])
1181
1182 AC_ARG_ENABLE(endian-check,
1183               AC_HELP_STRING([--disable-endian-check],
1184               [disable the endian check and trust the OS provided macros]),
1185               endiancheck=$enableval,endiancheck=yes)
1186
1187 if test x"$endiancheck" = xyes ; then
1188   GNUPG_CHECK_ENDIAN
1189 fi
1190
1191 # fixme: we should get rid of the byte type
1192 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
1193 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
1194 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
1195 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
1196 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
1197
1198 AC_CHECK_SIZEOF(unsigned short)
1199 AC_CHECK_SIZEOF(unsigned int)
1200 AC_CHECK_SIZEOF(unsigned long)
1201 AC_CHECK_SIZEOF(unsigned long long)
1202 AC_HEADER_TIME
1203 AC_CHECK_SIZEOF(time_t,,[[
1204 #include <stdio.h>
1205 #if TIME_WITH_SYS_TIME
1206 # include <sys/time.h>
1207 # include <time.h>
1208 #else
1209 # if HAVE_SYS_TIME_H
1210 #  include <sys/time.h>
1211 # else
1212 #  include <time.h>
1213 # endif
1214 #endif
1215 ]])
1216 GNUPG_TIME_T_UNSIGNED
1217
1218
1219 # Ensure that we have UINT64_C before we bother to check for uint64_t
1220 # Fixme: really needed in gnupg?  I think it is only useful in libcgrypt.
1221 AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],
1222    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <inttypes.h>]],
1223        [[uint64_t foo=UINT64_C(42);]])],
1224      gnupg_cv_uint64_c_works=yes,gnupg_cv_uint64_c_works=no))
1225 if test "$gnupg_cv_uint64_c_works" = "yes" ; then
1226    AC_CHECK_SIZEOF(uint64_t)
1227 fi
1228
1229 if test "$ac_cv_sizeof_unsigned_short" = "0" \
1230    || test "$ac_cv_sizeof_unsigned_int" = "0" \
1231    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
1232     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
1233 fi
1234
1235
1236 #
1237 # Checks for library functions.
1238 #
1239 AC_MSG_NOTICE([checking for library functions])
1240 AC_CHECK_DECLS(getpagesize)
1241 AC_FUNC_FSEEKO
1242 AC_FUNC_VPRINTF
1243 AC_FUNC_FORK
1244 AC_CHECK_FUNCS([strerror strlwr tcgetattr mmap canonicalize_file_name])
1245 AC_CHECK_FUNCS([strcasecmp strncasecmp ctermid times gmtime_r strtoull])
1246 AC_CHECK_FUNCS([unsetenv fcntl ftruncate canonicalize_file_name])
1247 AC_CHECK_FUNCS([gettimeofday getrusage getrlimit setrlimit clock_gettime])
1248 AC_CHECK_FUNCS([atexit raise getpagesize strftime nl_langinfo setlocale])
1249 AC_CHECK_FUNCS([waitpid wait4 sigaction sigprocmask pipe getaddrinfo])
1250 AC_CHECK_FUNCS([ttyname rand ftello fsync stat lstat])
1251
1252 if test "$have_android_system" = yes; then
1253    # On Android ttyname is a stub but prints an error message.
1254    AC_DEFINE(HAVE_BROKEN_TTYNAME,1,
1255              [Defined if ttyname does not work properly])
1256 fi
1257
1258 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
1259
1260 # Dirmngr requires mmap on Unix systems.
1261 if test $ac_cv_func_mmap != yes -a $mmap_needed = yes; then
1262   AC_MSG_ERROR([[Sorry, the current implemenation requires mmap.]])
1263 fi
1264
1265 #
1266 # These are needed by the jnlib parts in common.
1267 # Note:  We already checked pwd.h.
1268 AC_CHECK_HEADERS([signal.h])
1269 AC_CHECK_FUNCS([memicmp stpcpy strsep strlwr strtoul memmove stricmp strtol \
1270                 memrchr isascii timegm getrusage setrlimit stat setlocale   \
1271                 flockfile funlockfile fopencookie funopen getpwnam getpwuid \
1272                 getenv inet_pton])
1273 # end jnlib checks.
1274
1275
1276
1277 #
1278 # gnulib checks
1279 #
1280 gl_SOURCE_BASE([gl])
1281 gl_M4_BASE([gl/m4])
1282 gl_MODULES([setenv mkdtemp xsize strpbrk])
1283 gl_INIT
1284
1285
1286 #
1287 # W32 specific test
1288 #
1289 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
1290
1291 #
1292 # Sanity check regex.  Tests adapted from mutt.
1293 #
1294 AC_MSG_CHECKING([whether regular expression support is requested])
1295 AC_ARG_ENABLE(regex,
1296   AC_HELP_STRING([--disable-regex],
1297     [do not handle regular expressions in trust signatures]),
1298   use_regex=$enableval, use_regex=yes)
1299 AC_MSG_RESULT($use_regex)
1300
1301 if test "$use_regex" = yes ; then
1302   _cppflags="${CPPFLAGS}"
1303   _ldflags="${LDFLAGS}"
1304   AC_ARG_WITH(regex,
1305      AC_HELP_STRING([--with-regex=DIR],[look for regex in DIR]),
1306       [
1307       if test -d "$withval" ; then
1308         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1309         LDFLAGS="${LDFLAGS} -L$withval/lib"
1310       fi
1311       ],withval="")
1312
1313   # Does the system have regex functions at all?
1314   AC_SEARCH_LIBS([regcomp], [regex])
1315   AC_CHECK_FUNC(regcomp, gnupg_cv_have_regex=yes, gnupg_cv_have_regex=no)
1316
1317   if test $gnupg_cv_have_regex = no; then
1318     use_regex=no
1319   else
1320     if test x"$cross_compiling" = xyes; then
1321       AC_MSG_WARN([cross compiling; assuming regexp libray is not broken])
1322     else
1323       AC_CACHE_CHECK([whether your system's regexp library is broken],
1324        [gnupg_cv_regex_broken],
1325        AC_TRY_RUN([
1326 #include <unistd.h>
1327 #include <regex.h>
1328 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); }],
1329        gnupg_cv_regex_broken=no, gnupg_cv_regex_broken=yes, gnupg_cv_regex_broken=yes))
1330
1331       if test $gnupg_cv_regex_broken = yes; then
1332         AC_MSG_WARN([your regex is broken - disabling regex use])
1333         use_regex=no
1334       fi
1335     fi
1336   fi
1337   CPPFLAGS="${_cppflags}"
1338   LDFLAGS="${_ldflags}"
1339 fi
1340
1341 if test "$use_regex" != yes ; then
1342   AC_DEFINE(DISABLE_REGEX,1, [Define to disable regular expression support])
1343 fi
1344 AM_CONDITIONAL(DISABLE_REGEX, test x"$use_regex" != xyes)
1345
1346
1347
1348 #
1349 # Do we have zlib? Must do it here because Solaris failed
1350 # when compiling a conftest (due to the "-lz" from LIBS).
1351 # Note that we combine zlib and bzlib2 in ZLIBS.
1352 #
1353 if test "$use_zip" = yes ; then
1354   _cppflags="${CPPFLAGS}"
1355   _ldflags="${LDFLAGS}"
1356   AC_ARG_WITH(zlib,
1357     [  --with-zlib=DIR         use libz in DIR],[
1358       if test -d "$withval"; then
1359         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1360         LDFLAGS="${LDFLAGS} -L$withval/lib"
1361       fi
1362     ])
1363
1364   AC_CHECK_HEADER(zlib.h,
1365      AC_CHECK_LIB(z, deflateInit2_,
1366        [
1367        ZLIBS="-lz"
1368        AC_DEFINE(HAVE_ZIP,1, [Defined if ZIP and ZLIB are supported])
1369        ],
1370        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1371        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
1372 fi
1373
1374
1375 #
1376 # Check whether we can support bzip2
1377 #
1378 if test "$use_bzip2" = yes ; then
1379   _cppflags="${CPPFLAGS}"
1380   _ldflags="${LDFLAGS}"
1381   AC_ARG_WITH(bzip2,
1382      AC_HELP_STRING([--with-bzip2=DIR],[look for bzip2 in DIR]),
1383       [
1384       if test -d "$withval" ; then
1385         CPPFLAGS="${CPPFLAGS} -I$withval/include"
1386         LDFLAGS="${LDFLAGS} -L$withval/lib"
1387       fi
1388       ],withval="")
1389
1390   # Checking alongside stdio.h as an early version of bzip2 (1.0)
1391   # required stdio.h to be included before bzlib.h, and Solaris 9 is
1392   # woefully out of date.
1393   if test "$withval" != no ; then
1394      AC_CHECK_HEADER(bzlib.h,
1395         AC_CHECK_LIB(bz2,BZ2_bzCompressInit,
1396           [
1397           have_bz2=yes
1398           ZLIBS="$ZLIBS -lbz2"
1399           AC_DEFINE(HAVE_BZIP2,1,
1400                   [Defined if the bz2 compression library is available])
1401           ],
1402           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
1403           CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags},[#include <stdio.h>])
1404   fi
1405 fi
1406 AM_CONDITIONAL(ENABLE_BZIP2_SUPPORT,test x"$have_bz2" = "xyes")
1407 AC_SUBST(ZLIBS)
1408
1409
1410 # Check for readline support
1411 GNUPG_CHECK_READLINE
1412
1413
1414 if test "$development_version" = yes; then
1415     AC_DEFINE(IS_DEVELOPMENT_VERSION,1,
1416             [Defined if this is not a regular release])
1417 fi
1418
1419 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
1420
1421 GNUPG_CHECK_GNUMAKE
1422
1423 # Add some extra libs here so that previous tests don't fail for
1424 # mysterious reasons - the final link step should bail out.
1425 # W32SOCKLIBS is also defined so that if can be used for tools not
1426 # requiring any network stuff but linking to code in libcommon which
1427 # tracks in winsock stuff (e.g. init_common_subsystems).
1428 if test "$have_w32_system" = yes; then
1429    if test "$have_w32ce_system" = yes; then
1430      W32SOCKLIBS="-lws2"
1431    else
1432      W32SOCKLIBS="-lws2_32"
1433    fi
1434    NETLIBS="${NETLIBS} ${W32SOCKLIBS}"
1435 fi
1436
1437 AC_SUBST(NETLIBS)
1438 AC_SUBST(W32SOCKLIBS)
1439
1440 #
1441 # Setup gcc specific options
1442 #
1443 AC_MSG_NOTICE([checking for cc features])
1444 if test "$GCC" = yes; then
1445     # Note that it is okay to use CFLAGS here because this are just
1446     # warning options and the user should have a chance of overriding
1447     # them.
1448     if test "$USE_MAINTAINER_MODE" = "yes"; then
1449         CFLAGS="$CFLAGS -O3 -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
1450         CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
1451         AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
1452         _gcc_cflags_save=$CFLAGS
1453         CFLAGS="-Wno-missing-field-initializers"
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 -W -Wno-sign-compare -Wno-missing-field-initializers"
1459         fi
1460         AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement])
1461         _gcc_cflags_save=$CFLAGS
1462         CFLAGS="-Wdeclaration-after-statement"
1463         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
1464         AC_MSG_RESULT($_gcc_wopt)
1465         CFLAGS=$_gcc_cflags_save;
1466         if test x"$_gcc_wopt" = xyes ; then
1467           CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1468         fi
1469     else
1470         CFLAGS="$CFLAGS -Wall"
1471     fi
1472
1473     AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
1474     _gcc_cflags_save=$CFLAGS
1475     CFLAGS="-Wno-pointer-sign"
1476     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1477     AC_MSG_RESULT($_gcc_psign)
1478     CFLAGS=$_gcc_cflags_save;
1479     if test x"$_gcc_psign" = xyes ; then
1480        CFLAGS="$CFLAGS -Wno-pointer-sign"
1481     fi
1482
1483     AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
1484     _gcc_cflags_save=$CFLAGS
1485     CFLAGS="-Wpointer-arith"
1486     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
1487     AC_MSG_RESULT($_gcc_psign)
1488     CFLAGS=$_gcc_cflags_save;
1489     if test x"$_gcc_psign" = xyes ; then
1490        CFLAGS="$CFLAGS -Wpointer-arith"
1491     fi
1492 fi
1493
1494
1495 #
1496 # This is handy for debugging so the compiler doesn't rearrange
1497 # things and eliminate variables.
1498 #
1499 AC_ARG_ENABLE(optimization,
1500    AC_HELP_STRING([--disable-optimization],
1501                   [disable compiler optimization]),
1502                   [if test $enableval = no ; then
1503                       CFLAGS=`echo $CFLAGS | sed s/-O[[1-9]]\ /-O0\ /g`
1504                    fi])
1505
1506 #
1507 # Prepare building of estream
1508 #
1509 estream_INIT
1510
1511
1512 #
1513 # Decide what to build
1514 #
1515 if test "$have_adns" = "yes"; then
1516   AC_SUBST(GPGKEYS_KDNS, "gpg2keys_kdns$EXEEXT")
1517 fi
1518
1519
1520 build_scdaemon_extra=""
1521 if test "$build_scdaemon" = "yes"; then
1522   if test $have_libusb = no; then
1523      build_scdaemon_extra="without internal CCID driver"
1524   fi
1525   if test -n "$build_scdaemon_extra"; then
1526      build_scdaemon_extra="(${build_scdaemon_extra})"
1527   fi
1528 fi
1529
1530
1531 if test "$build_agent_only" = "yes" ; then
1532   build_gpg=no
1533   build_gpgsm=no
1534   build_scdaemon=no
1535   build_tools=no
1536   build_doc=no
1537 fi
1538
1539 #
1540 # Set variables for use by th automake makefile.
1541 #
1542 AM_CONDITIONAL(BUILD_GPG,         test "$build_gpg" = "yes")
1543 AM_CONDITIONAL(BUILD_GPGSM,       test "$build_gpgsm" = "yes")
1544 AM_CONDITIONAL(BUILD_AGENT,       test "$build_agent" = "yes")
1545 AM_CONDITIONAL(BUILD_SCDAEMON,    test "$build_scdaemon" = "yes")
1546 AM_CONDITIONAL(BUILD_G13,         test "$build_g13" = "yes")
1547 AM_CONDITIONAL(BUILD_DIRMNGR,     test "$build_dirmngr" = "yes")
1548 AM_CONDITIONAL(BUILD_TOOLS,       test "$build_tools" = "yes")
1549 AM_CONDITIONAL(BUILD_DOC,         test "$build_doc" = "yes")
1550 AM_CONDITIONAL(BUILD_SYMCRYPTRUN, test "$build_symcryptrun" = "yes")
1551 AM_CONDITIONAL(BUILD_GPGTAR,      test "$build_gpgtar" = "yes")
1552
1553 AM_CONDITIONAL(RUN_GPG_TESTS,
1554                test x$cross_compiling = xno -a "$build_gpg" = yes )
1555
1556 #
1557 # Set some defines for use gpgconf.
1558 #
1559 if test "$build_gpg" = yes ; then
1560     AC_DEFINE(BUILD_WITH_GPG,1,[Defined if GPG is to be build])
1561 fi
1562 if test "$build_gpgsm" = yes ; then
1563     AC_DEFINE(BUILD_WITH_GPGSM,1,[Defined if GPGSM is to be build])
1564 fi
1565 if test "$build_agent" = yes ; then
1566     AC_DEFINE(BUILD_WITH_AGENT,1,[Defined if GPG-AGENT is to be build])
1567 fi
1568 if test "$build_scdaemon" = yes ; then
1569     AC_DEFINE(BUILD_WITH_SCDAEMON,1,[Defined if SCDAEMON is to be build])
1570 fi
1571 if test "$build_dirmngr" = yes ; then
1572     AC_DEFINE(BUILD_WITH_DIRMNGR,1,[Defined if SCDAEMON is to be build])
1573 fi
1574 if test "$build_g13" = yes ; then
1575     AC_DEFINE(BUILD_WITH_G13,1,[Defined if G13 is to be build])
1576 fi
1577
1578
1579 #
1580 # Define Name strings
1581 #
1582 AC_DEFINE_UNQUOTED(GNUPG_NAME, "GnuPG", [The name of the project])
1583 AC_DEFINE_UNQUOTED(GPG_NAME, "gpg", [The name of the OpenPGP tool])
1584 AC_DEFINE_UNQUOTED(GPGSM_NAME, "gpgsm", [The name of the S/MIME tool])
1585 AC_DEFINE_UNQUOTED(GPG_AGENT_NAME, "gpg-agent", [The name of the agent])
1586 AC_DEFINE_UNQUOTED(SCDAEMON_NAME, "scdaemon", [The name of the scdaemon])
1587 AC_DEFINE_UNQUOTED(DIRMNGR_NAME, "dirmngr", [The name of the dirmngr])
1588 AC_DEFINE_UNQUOTED(G13_NAME, "g13", [The name of the g13 tool])
1589 AC_DEFINE_UNQUOTED(GPGCONF_NAME, "gpgconf", [The name of the gpgconf tool])
1590 AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
1591
1592 AC_DEFINE_UNQUOTED(GPG_AGENT_INFO_NAME, "GPG_AGENT_INFO",
1593                    [The name of the agent info envvar])
1594 AC_DEFINE_UNQUOTED(GPG_AGENT_SOCK_NAME, "S.gpg-agent",
1595                    [The name of the agent socket])
1596 AC_DEFINE_UNQUOTED(GPG_AGENT_SSH_SOCK_NAME, "S.gpg-agent.ssh",
1597                    [The name of the agent socket for ssh])
1598 AC_DEFINE_UNQUOTED(DIRMNGR_INFO_NAME, "DIRMNGR_INFO",
1599                    [The name of the dirmngr info envvar])
1600 AC_DEFINE_UNQUOTED(DIRMNGR_SOCK_NAME, "S.dirmngr",
1601                    [The name of the dirmngr socket])
1602
1603 AC_DEFINE_UNQUOTED(GPGEXT_GPG, "gpg", [The standard binary file suffix])
1604
1605 if test "$have_w32_system" = yes; then
1606   AC_DEFINE_UNQUOTED(GNUPG_REGISTRY_DIR, "\\\\Software\\\\GNU\\\\GnuPG",
1607                      [The directory part of the W32 registry keys])
1608 fi
1609
1610
1611 #
1612 # Provide information about the build.
1613 #
1614 BUILD_REVISION="mym4_revision"
1615 AC_SUBST(BUILD_REVISION)
1616 AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
1617                    [GIT commit id revision used to build this package])
1618
1619 changequote(,)dnl
1620 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
1621 changequote([,])dnl
1622 BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
1623 AC_SUBST(BUILD_FILEVERSION)
1624
1625 BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
1626 AC_SUBST(BUILD_TIMESTAMP)
1627 AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
1628                    [The time this package was configured for a build])
1629 BUILD_HOSTNAME="$ac_hostname"
1630 AC_SUBST(BUILD_HOSTNAME)
1631
1632
1633 #
1634 # Print errors here so that they are visible all
1635 # together and the user can acquire them all together.
1636 #
1637 die=no
1638 if test "$have_gpg_error" = "no"; then
1639    die=yes
1640    AC_MSG_NOTICE([[
1641 ***
1642 *** You need libgpg-error to build this program.
1643 **  This library is for example available at
1644 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
1645 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
1646 ***]])
1647 fi
1648 if test "$have_libgcrypt" = "no"; then
1649    die=yes
1650    AC_MSG_NOTICE([[
1651 ***
1652 *** You need libgcrypt to build this program.
1653 **  This library is for example available at
1654 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
1655 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API) is required.)
1656 ***]])
1657 fi
1658 if test "$have_libassuan" = "no"; then
1659    die=yes
1660    AC_MSG_NOTICE([[
1661 ***
1662 *** You need libassuan to build this program.
1663 *** This library is for example available at
1664 ***   ftp://ftp.gnupg.org/gcrypt/libassuan/
1665 *** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
1666 ***]])
1667 fi
1668 if test "$have_ksba" = "no"; then
1669     die=yes
1670     AC_MSG_NOTICE([[
1671 ***
1672 *** You need libksba to build this program.
1673 *** This library is for example available at
1674 ***   ftp://ftp.gnupg.org/gcrypt/libksba/
1675 *** (at least version $NEED_KSBA_VERSION using API $NEED_KSBA_API is required).
1676 ***]])
1677 fi
1678 if test "$gnupg_have_ldap" = "no"; then
1679     die=yes
1680     AC_MSG_NOTICE([[
1681 ***
1682 *** You need a LDAP library to build this program.
1683 *** Check out
1684 ***    http://www.openldap.org
1685 *** for a suitable implementation.
1686 ***]])
1687    if test "$have_w32ce_system" = yes; then
1688     AC_MSG_NOTICE([[
1689 *** Note that CeGCC might be broken, a package fixing this is:
1690 ***    http://files.kolab.org/local/windows-ce/
1691 ***                           source/wldap32_0.1-mingw32ce.orig.tar.gz
1692 ***                           binary/wldap32-ce-arm-dev_0.1-1_all.deb
1693 ***]])
1694    fi
1695 fi
1696 if test "$have_npth" = "no"; then
1697     die=yes
1698     AC_MSG_NOTICE([[
1699 ***
1700 *** It is now required to build with support for the
1701 *** New Portable Threads Library (nPth). Please install this
1702 *** library first.  The library is for example available at
1703 ***   ftp://ftp.gnupg.org/gcrypt/npth/
1704 *** (at least version $NEED_NPTH_VERSION (API $NEED_NPTH_API) is required).
1705 ***]])
1706 fi
1707
1708 if test "$die" = "yes"; then
1709     AC_MSG_ERROR([[
1710 ***
1711 *** Required libraries not found. Please consult the above messages
1712 *** and install them before running configure again.
1713 ***]])
1714 fi
1715
1716
1717
1718 AC_CONFIG_FILES([ m4/Makefile
1719 Makefile
1720 po/Makefile.in
1721 gl/Makefile
1722 include/Makefile
1723 common/Makefile
1724 common/w32info-rc.h
1725 kbx/Makefile
1726 g10/Makefile
1727 sm/Makefile
1728 agent/Makefile
1729 scd/Makefile
1730 g13/Makefile
1731 dirmngr/Makefile
1732 tools/gpg-zip
1733 tools/Makefile
1734 doc/Makefile
1735 tests/Makefile
1736 tests/openpgp/Makefile
1737 tests/pkits/Makefile
1738 ])
1739 #keyserver/Makefile
1740 #keyserver/gpg2keys_mailto
1741 #keyserver/gpg2keys_test
1742
1743
1744 AC_OUTPUT
1745
1746
1747 echo "
1748         GnuPG v${VERSION} has been configured as follows:
1749
1750         Revision:  mym4_revision  (mym4_revision_dec)
1751         Platform:  $PRINTABLE_OS_NAME ($host)
1752
1753         OpenPGP:   $build_gpg
1754         S/MIME:    $build_gpgsm
1755         Agent:     $build_agent
1756         Smartcard: $build_scdaemon $build_scdaemon_extra
1757         G13:       $build_g13
1758         Dirmngr:   $build_dirmngr
1759         Gpgtar:    $build_gpgtar
1760
1761         Protect tool:      $show_gnupg_protect_tool_pgm
1762         LDAP wrapper:      $show_gnupg_dirmngr_ldap_pgm
1763         Default agent:     $show_gnupg_agent_pgm
1764         Default pinentry:  $show_gnupg_pinentry_pgm
1765         Default scdaemon:  $show_gnupg_scdaemon_pgm
1766         Default dirmngr:   $show_gnupg_dirmngr_pgm
1767
1768         Use standard socket: $use_standard_socket
1769         Dirmngr auto start:  $dirmngr_auto_start
1770 "
1771 if test x"$use_regex" != xyes ; then
1772 echo "
1773         Warning: No regular expression support available.
1774                  OpenPGP trust signatures won't work.
1775                  gpg-check-pattern will not be build.
1776 "
1777 fi