Remove duplicated typedefs.
[ntbtls.git] / configure.ac
1 # configure.ac - for the Not Too Bad TLS library
2 # Copyright (C) 2014-2017 g10 Code GmbH
3 #
4 # This file is part of NTBTLS
5 #
6 # NTBTLS is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # NTBTLS is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
18
19 # Process this file with autoconf to produce a configure script.
20 AC_PREREQ(2.61)
21 min_automake_version="1.14"
22
23 # To build a release you need to create a tag with the version number
24 # (git tag -s gnupg-2.n.m) and run "./autogen.sh --force".  Please
25 # bump the version number immediately *after* the release and do
26 # another commit and push so that the git magic is able to work.
27 m4_define([mym4_package],[ntbtls])
28 m4_define([mym4_major], [0])
29 m4_define([mym4_minor], [1])
30 m4_define([mym4_micro], [3])
31
32 # To start a new development series, i.e a new major or minor number
33 # you need to mark an arbitrary commit before the first beta release
34 # with an annotated tag.  For example the 1.2 branch starts off with
35 # the tag "ntbtls-1.2-base".  This is used as the base for counting
36 # beta numbers before the first release of a series.
37
38 # Below is m4 magic to extract and compute the git revision number,
39 # the decimalized short revision number, a beta version string and a
40 # flag indicating a development version (mym4_isbeta).  Note that the
41 # m4 processing is done by autoconf and not during the configure run.
42 m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
43                            mym4_package mym4_major mym4_minor mym4_micro),[:]))
44 m4_define([mym4_isbeta],       m4_argn(2, mym4_verslist))
45 m4_define([mym4_version],      m4_argn(4, mym4_verslist))
46 m4_define([mym4_revision],     m4_argn(7, mym4_verslist))
47 m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
48 m4_esyscmd([echo ]mym4_version[>VERSION])
49 AC_INIT([mym4_package],[mym4_version], [http://bugs.gnupg.org])
50
51 # LT Version numbers, remember to change them just *before* a release.
52 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
53 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
54 #   (No interfaces changed:                   REVISION++)
55 LIBNTBTLS_LT_CURRENT=0
56 LIBNTBTLS_LT_AGE=0
57 LIBNTBTLS_LT_REVISION=2
58
59 # If the API is changed in an incompatible way: increment the next counter.
60 NTBTLS_CONFIG_API_VERSION=1
61
62 # Minimum versions for required libraries
63
64 NEED_GPG_ERROR_VERSION=1.17
65
66 NEED_LIBGCRYPT_API=1
67 NEED_LIBGCRYPT_VERSION=1.6.0
68
69 NEED_KSBA_API=1
70 NEED_KSBA_VERSION=1.2.0
71
72
73 # End of config section
74
75 AC_CONFIG_AUX_DIR([build-aux])
76 AC_CONFIG_SRCDIR([src/ntbtls.h.in])
77 AC_CONFIG_HEADER([config.h])
78 AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip])
79 AC_CANONICAL_HOST
80 AC_GNU_SOURCE
81
82 # Some status variables.
83 have_gpg_error=no
84 have_libgcrypt=no
85 have_ksba=no
86 use_zip=yes
87
88 AC_SUBST(LIBNTBTLS_LT_CURRENT)
89 AC_SUBST(LIBNTBTLS_LT_AGE)
90 AC_SUBST(LIBNTBTLS_LT_REVISION)
91
92 VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_major \
93                           mym4_minor mym4_micro)
94 AC_SUBST(VERSION_NUMBER)
95
96
97 AC_DEFINE_UNQUOTED(NEED_LIBGCRYPT_VERSION, "$NEED_LIBGCRYPT_VERSION",
98                                        [Required version of Libgcrypt])
99 AC_DEFINE_UNQUOTED(NEED_KSBA_VERSION, "$NEED_KSBA_VERSION",
100                                        [Required version of Libksba])
101
102
103
104
105 #
106 # To avoid double inclusion of config.h which might happen at some
107 # places, we add the usual double inclusion protection at the top of
108 # config.h.
109 #
110 AH_TOP([
111 #ifndef NTBTLS_CONFIG_H_INCLUDED
112 #define NTBTLS_CONFIG_H_INCLUDED
113 ])
114
115 #
116 # Stuff which goes at the bottom of config.h.
117 #
118 AH_BOTTOM([
119 /* If the configure check for endianness has been disabled, get it from
120    OS macros.  This is intended for making fat binary builds on OS X.  */
121 #ifdef DISABLED_ENDIAN_CHECK
122 # if defined(__BIG_ENDIAN__)
123 #  define WORDS_BIGENDIAN 1
124 # elif defined(__LITTLE_ENDIAN__)
125 #  undef WORDS_BIGENDIAN
126 # else
127 #  error "No endianness found"
128 # endif
129 #endif /*DISABLED_ENDIAN_CHECK*/
130
131 /* Provide the es_ macro for estream.  */
132 #define GPGRT_ENABLE_ES_MACROS 1
133
134 /* Tell libgcrypt not to use its own libgpg-error implementation. */
135 #define USE_LIBGPG_ERROR 1
136
137 /* Tell Libgcrypt not to include deprecated definitions.  */
138 #define GCRYPT_NO_DEPRECATED 1
139
140 #endif /*NTBTLS_CONFIG_H_INCLUDED*/
141 ])
142
143
144 # Substitutions to set generated files in a Emacs buffer to read-only.
145 AC_SUBST(emacs_local_vars_begin, ['Local Variables:'])
146 AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
147 AC_SUBST(emacs_local_vars_end, ['End:'])
148
149
150 AM_MAINTAINER_MODE
151
152 AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
153
154
155 # Checks for programs.
156 AC_MSG_NOTICE([checking for programs])
157 AC_PROG_MAKE_SET
158 AM_SANITY_CHECK
159 missing_dir=`cd $ac_aux_dir && pwd`
160 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
161 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
162 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
163 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
164 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
165 AM_SILENT_RULES
166 AC_PROG_AWK
167 AC_PROG_CC
168 AC_PROG_CPP
169 AM_PROG_CC_C_O
170 if test "x$ac_cv_prog_cc_c89" = "xno" ; then
171   AC_MSG_ERROR([[No C-89 compiler found]])
172 fi
173 AC_PROG_INSTALL
174 AC_PROG_LN_S
175 AC_PROG_RANLIB
176 AC_CHECK_TOOL(AR, ar, :)
177 AC_PATH_PROG(PERL,"perl")
178 AC_CHECK_TOOL(WINDRES, windres, :)
179 AC_ISC_POSIX
180
181 # We need to compile and run a program on the build machine.  A
182 # comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
183 # the AC archive is broken for autoconf 2.57.  Given that there is no
184 # newer version of that macro, we assume that it is also broken for
185 # autoconf 2.61 and thus we use a simple but usually sufficient
186 # approach.
187 AC_MSG_CHECKING(for cc for build)
188 if test "$cross_compiling" = "yes"; then
189   CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
190 else
191   CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
192 fi
193 AC_MSG_RESULT($CC_FOR_BUILD)
194 AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
195
196 LT_PREREQ([2.2.6])
197 LT_INIT([win32-dll disable-static])
198 LT_LANG([Windows Resource])
199
200
201 have_dosish_system=no
202 have_w32_system=no
203 have_w32ce_system=no
204 have_android_system=no
205 run_tests=yes
206 case "${host}" in
207     *-mingw32*)
208         # special stuff for Windoze NT
209         have_dosish_system=yes
210         have_w32_system=yes
211         run_tests=no
212         ;;
213     *-linux-androideabi)
214         have_android_system=yes
215         run_tests=no
216         ;;
217     *-apple-darwin*)
218         AC_DEFINE(_DARWIN_C_SOURCE, 900000L,
219                   Expose all libc features (__DARWIN_C_FULL).)
220         ;;
221     *)
222        ;;
223 esac
224
225 if test "$have_dosish_system" = yes; then
226    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
227              [Defined if we run on some of the PCDOS like systems
228               (DOS, Windoze. OS/2) with special properties like
229               no file modes, case insensitive file names and preferred
230               use of backslashes as directory name separators.])
231 fi
232 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
233
234 if test "$have_w32_system" = yes; then
235    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
236 fi
237 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
238
239 if test "$have_android_system" = yes; then
240    AC_DEFINE(HAVE_ANDROID_SYSTEM,1, [Defined if we build for an Android system])
241 fi
242 AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
243
244 if test "$run_tests" = yes; then
245    AC_DEFINE(RUN_TESTS,1, [Defined if we should run the tests])
246 fi
247 AM_CONDITIONAL(RUN_TESTS, test "$run_tests" = yes)
248
249
250 #
251 # Checks for libraries.
252 #
253 AC_MSG_NOTICE([checking for libraries])
254
255
256 #
257 # libgpg-error is a library with common runtime functions like error
258 # codes, simple mutexes, and the estream functions.
259 #
260 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
261                   have_gpg_error=yes,have_gpg_error=no)
262 AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_TLS,
263           [The default error source for NTBTLS.])
264
265
266 #
267 # Libgcrypt is our generic crypto library
268 #
269 AM_PATH_LIBGCRYPT("$NEED_LIBGCRYPT_API:$NEED_LIBGCRYPT_VERSION",
270                   have_libgcrypt=yes,have_libgcrypt=no)
271
272
273 #
274 # libksba is our X.509 support library
275 #
276 AM_PATH_KSBA("$NEED_KSBA_API:$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
277
278
279
280 AC_MSG_NOTICE([checking for networking options])
281
282 #
283 # Must check for network library requirements before doing link tests
284 # for ldap, for example. If ldap libs are static (or dynamic and without
285 # ELF runtime link paths), then link will fail and LDAP support won't
286 # be detected.
287 #
288 AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname,
289         [NETLIBS="-lnsl $NETLIBS"]))
290 AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt,
291         [NETLIBS="-lsocket $NETLIBS"]))
292
293
294 #
295 # Checks for header files.
296 #
297 AC_MSG_NOTICE([checking for header files])
298 AC_HEADER_STDC
299 AC_CHECK_HEADERS([string.h unistd.h stdint.h])
300 AC_HEADER_TIME
301
302
303 #
304 # Checks for typedefs, structures, and compiler characteristics.
305 #
306 AC_MSG_NOTICE([checking for system characteristics])
307 AC_C_CONST
308 AC_C_INLINE
309 AC_C_VOLATILE
310 AC_CHECK_SIZEOF(unsigned long)
311 AC_TYPE_SIZE_T
312 AC_TYPE_MODE_T
313 AC_TYPE_SIGNAL
314 AC_DECL_SYS_SIGLIST
315
316 gl_HEADER_SYS_SOCKET
317
318 # For some systems we know that we have ld_version scripts.
319 # Use it then as default.
320 have_ld_version_script=no
321 case "${host}" in
322     *-*-linux*)
323         have_ld_version_script=yes
324         ;;
325     *-*-gnu*)
326         have_ld_version_script=yes
327         ;;
328 esac
329
330 AC_ARG_ENABLE([ld-version-script],
331               AC_HELP_STRING([--enable-ld-version-script],
332                              [enable/disable use of linker version script.
333                               (default is system dependent)]),
334               [have_ld_version_script=$enableval],
335               [ : ] )
336 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
337
338 AC_ARG_ENABLE(endian-check,
339               AC_HELP_STRING([--disable-endian-check],
340               [disable the endian check and trust the OS provided macros]),
341               endiancheck=$enableval,endiancheck=yes)
342 if test x"$endiancheck" = xyes ; then
343   AC_C_BIGENDIAN
344 else
345   AC_DEFINE(DISABLED_ENDIAN_CHECK,1,[configure did not test for endianess])
346 fi
347
348 #
349 # Checks for library functions.
350 #
351 AC_MSG_NOTICE([checking for library functions])
352 AC_CHECK_FUNCS([strlwr flockfile])
353
354
355
356 #
357 # Check for ELF visibility support.
358 #
359 AC_CACHE_CHECK(whether the visibility attribute is supported,
360        ntbtls_cv_visibility_attribute,
361        [ntbtls_cv_visibility_attribute=no
362         AC_LANG_CONFTEST([AC_LANG_SOURCE(
363           [[int foo __attribute__ ((visibility ("hidden"))) = 1;
364             int bar __attribute__ ((visibility ("protected"))) = 1;
365           ]])])
366
367         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
368                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
369             if grep '\.hidden.*foo' conftest.s >/dev/null 2>&1 ; then
370                 if grep '\.protected.*bar' conftest.s >/dev/null 2>&1; then
371                     ntbtls_cv_visibility_attribute=yes
372                 fi
373             fi
374         fi
375        ])
376 if test "$ntbtls_cv_visibility_attribute" = "yes"; then
377     AC_CACHE_CHECK(for broken visibility attribute,
378        ntbtls_cv_broken_visibility_attribute,
379        [ntbtls_cv_broken_visibility_attribute=yes
380         AC_LANG_CONFTEST([AC_LANG_SOURCE(
381           [[int foo (int x);
382             int bar (int x) __asm__ ("foo")
383                             __attribute__ ((visibility ("hidden")));
384             int bar (int x) { return x; }
385           ]])])
386
387         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
388                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
389            if grep '\.hidden@<:@        _@:>@foo' conftest.s >/dev/null 2>&1;
390             then
391                ntbtls_cv_broken_visibility_attribute=no
392            fi
393         fi
394        ])
395 fi
396 if test "$ntbtls_cv_visibility_attribute" = "yes"; then
397     AC_CACHE_CHECK(for broken alias attribute,
398        ntbtls_cv_broken_alias_attribute,
399        [ntbtls_cv_broken_alias_attribute=yes
400         AC_LANG_CONFTEST([AC_LANG_SOURCE(
401           [[extern int foo (int x) __asm ("xyzzy");
402             int bar (int x) { return x; }
403             extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
404             extern int dfoo;
405             extern __typeof (dfoo) dfoo __asm ("abccb");
406             int dfoo = 1;
407           ]])])
408
409         if ${CC-cc} -Werror -S conftest.c -o conftest.s \
410                   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
411            if grep 'xyzzy' conftest.s >/dev/null 2>&1 && \
412               grep 'abccb' conftest.s >/dev/null 2>&1; then
413               ntbtls_cv_broken_alias_attribute=no
414            fi
415         fi
416         ])
417 fi
418 if test "$ntbtls_cv_visibility_attribute" = "yes"; then
419     AC_CACHE_CHECK(if gcc supports -fvisibility=hidden,
420        ntbtls_cv_gcc_has_f_visibility,
421        [ntbtls_cv_gcc_has_f_visibility=no
422         _gcc_cflags_save=$CFLAGS
423         CFLAGS="-fvisibility=hidden"
424         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
425                           ntbtls_cv_gcc_has_f_visibility=yes)
426         CFLAGS=$_gcc_cflags_save;
427        ])
428 fi
429 if test "$ntbtls_cv_visibility_attribute" = "yes" \
430    && test "$ntbtls_cv_broken_visibility_attribute" != "yes" \
431    && test "$ntbtls_cv_broken_alias_attribute" != "yes" \
432    && test "$ntbtls_cv_gcc_has_f_visibility" = "yes"
433  then
434    AC_DEFINE(NTBTLS_USE_VISIBILITY, 1,
435                [Define to use the GNU C visibility attribute.])
436    CFLAGS="$CFLAGS -fvisibility=hidden"
437 fi
438
439
440 #
441 # Do we have zlib? Must do it here because Solaris failed
442 # when compiling a conftest (due to the "-lz" from LIBS).
443 # Note that we combine zlib and bzlib2 in ZLIBS.
444 #
445 if test "$use_zip" = yes ; then
446   _cppflags="${CPPFLAGS}"
447   _ldflags="${LDFLAGS}"
448   AC_ARG_WITH(zlib,
449     [  --with-zlib=DIR         use libz in DIR],[
450       if test -d "$withval"; then
451         CPPFLAGS="${CPPFLAGS} -I$withval/include"
452         LDFLAGS="${LDFLAGS} -L$withval/lib"
453       fi
454     ])
455
456   AC_CHECK_HEADER(zlib.h,
457      AC_CHECK_LIB(z, deflateInit2_,
458        [
459        ZLIBS="-lz"
460        AC_DEFINE(HAVE_ZIP,1, [Defined if ZIP and ZLIB are supported])
461        ],
462        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
463        CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
464 fi
465
466
467
468 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
469
470 # Add some extra libs here so that previous tests don't fail for
471 # mysterious reasons - the final link step should bail out.
472 # W32SOCKLIBS is also defined so that if can be used for tools not
473 # requiring any network stuff but linking to code in libcommon which
474 # tracks in winsock stuff (e.g. init_common_subsystems).
475 if test "$have_w32_system" = yes; then
476    if test "$have_w32ce_system" = yes; then
477      W32SOCKLIBS="-lws2"
478    else
479      W32SOCKLIBS="-lws2_32"
480    fi
481    NETLIBS="${NETLIBS} ${W32SOCKLIBS}"
482 fi
483
484 AC_SUBST(NETLIBS)
485 AC_SUBST(W32SOCKLIBS)
486
487 #
488 # Setup gcc specific options
489 #
490 AC_MSG_NOTICE([checking for cc features])
491 if test "$GCC" = yes; then
492     # Check whether gcc does not emit a diagnositc for unknow -Wno-*
493     # options.  This is the case for gcc >= 4.6
494     AC_MSG_CHECKING([if gcc ignores unknown -Wno-* options])
495     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
496 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6 )
497 #kickerror
498 #endif]],[])],[_gcc_silent_wno=yes],[_gcc_silent_wno=no])
499     AC_MSG_RESULT($_gcc_silent_wno)
500
501     # Note that it is okay to use CFLAGS here because these are just
502     # warning options and the user should have a chance of overriding
503     # them.
504     if test "$USE_MAINTAINER_MODE" = "yes"; then
505         CFLAGS="$CFLAGS -O3 -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
506         CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security"
507         if test x"$_gcc_silent_wno" = xyes ; then
508           _gcc_wopt=yes
509         else
510           AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
511           _gcc_cflags_save=$CFLAGS
512           CFLAGS="-Wno-missing-field-initializers"
513           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
514                             [_gcc_wopt=yes],[_gcc_wopt=no])
515           AC_MSG_RESULT($_gcc_wopt)
516           CFLAGS=$_gcc_cflags_save;
517         fi
518         if test x"$_gcc_wopt" = xyes ; then
519           CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers"
520         fi
521
522         AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement])
523         _gcc_cflags_save=$CFLAGS
524         CFLAGS="-Wdeclaration-after-statement"
525         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
526         AC_MSG_RESULT($_gcc_wopt)
527         CFLAGS=$_gcc_cflags_save;
528         if test x"$_gcc_wopt" = xyes ; then
529           CFLAGS="$CFLAGS -Wdeclaration-after-statement"
530         fi
531     else
532         CFLAGS="$CFLAGS -Wall"
533     fi
534
535     if test x"$_gcc_silent_wno" = xyes ; then
536       _gcc_psign=yes
537     else
538       AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
539       _gcc_cflags_save=$CFLAGS
540       CFLAGS="-Wno-pointer-sign"
541       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
542                         [_gcc_psign=yes],[_gcc_psign=no])
543       AC_MSG_RESULT($_gcc_psign)
544       CFLAGS=$_gcc_cflags_save;
545     fi
546     if test x"$_gcc_psign" = xyes ; then
547        CFLAGS="$CFLAGS -Wno-pointer-sign"
548     fi
549
550     AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
551     _gcc_cflags_save=$CFLAGS
552     CFLAGS="-Wpointer-arith"
553     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no)
554     AC_MSG_RESULT($_gcc_psign)
555     CFLAGS=$_gcc_cflags_save;
556     if test x"$_gcc_psign" = xyes ; then
557        CFLAGS="$CFLAGS -Wpointer-arith"
558     fi
559 fi
560
561
562 #
563 # This is handy for debugging so the compiler doesn't rearrange
564 # things and eliminate variables.
565 #
566 AC_ARG_ENABLE(optimization,
567    AC_HELP_STRING([--disable-optimization],
568                   [disable compiler optimization]),
569                   [if test $enableval = no ; then
570                       CFLAGS=`echo $CFLAGS | sed s/-O[[1-9]]\ /-O0\ /g`
571                    fi])
572
573 #
574 # Set variables for use by automake makefiles.
575 #
576
577
578
579 #
580 # Set variables for use by ntbtls-config.
581 #
582 NTBTLS_CONFIG_LIBS="-lntbtls -lksba -lgcrypt"
583 NTBTLS_CONFIG_CFLAGS=""
584 NTBTLS_CONFIG_HOST="$host"
585
586 AC_SUBST(NTBTLS_CONFIG_API_VERSION)
587 AC_SUBST(NTBTLS_CONFIG_LIBS)
588 AC_SUBST(NTBTLS_CONFIG_CFLAGS)
589 AC_SUBST(NTBTLS_CONFIG_HOST)
590
591
592 #
593 # Provide information about the build.
594 #
595 BUILD_REVISION="mym4_revision"
596 AC_SUBST(BUILD_REVISION)
597 AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
598                    [GIT commit id revision used to build this package])
599
600 changequote(,)dnl
601 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
602 changequote([,])dnl
603 BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
604 AC_SUBST(BUILD_FILEVERSION)
605 AC_ARG_ENABLE([build-timestamp],
606   AC_HELP_STRING([--enable-build-timestamp],
607                  [set an explicit build timestamp for reproducibility.
608                   (default is the current time in ISO-8601 format)]),
609      [if test "$enableval" = "yes"; then
610         BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
611       else
612         BUILD_TIMESTAMP="$enableval"
613       fi],
614      [BUILD_TIMESTAMP="<none>"])
615 AC_SUBST(BUILD_TIMESTAMP)
616 AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
617                    [The time this package was configured for a build])
618 BUILD_HOSTNAME="$ac_hostname"
619 AC_SUBST(BUILD_HOSTNAME)
620
621
622 #
623 # Print errors here so that they are visible all
624 # together and the user can acquire them all together.
625 #
626 die=no
627 if test "$have_gpg_error" = "no"; then
628    die=yes
629    AC_MSG_NOTICE([[
630 ***
631 *** You need libgpg-error to build this program.
632 **  This library is for example available at
633 ***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
634 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
635 ***]])
636 fi
637 if test "$have_libgcrypt" = "no"; then
638    die=yes
639    AC_MSG_NOTICE([[
640 ***
641 *** You need libgcrypt to build this program.
642 **  This library is for example available at
643 ***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
644 *** (at least version $NEED_LIBGCRYPT_VERSION (API $NEED_LIBGCRYPT_API) is required.)
645 ***]])
646 fi
647 if test "$have_ksba" = "no"; then
648     die=yes
649     AC_MSG_NOTICE([[
650 ***
651 *** You need libksba to build this program.
652 *** This library is for example available at
653 ***   ftp://ftp.gnupg.org/gcrypt/libksba/
654 *** (at least version $NEED_KSBA_VERSION using API $NEED_KSBA_API is required).
655 ***]])
656 fi
657
658 if test "$die" = "yes"; then
659     AC_MSG_ERROR([[
660 ***
661 *** Required libraries not found. Please consult the above messages
662 *** and install them before running configure again.
663 ***]])
664 fi
665
666
667
668 AC_CONFIG_FILES([
669 Makefile
670 m4/Makefile
671 src/Makefile
672 src/ntbtls.h
673 src/ntbtls-config
674 src/ntbtls.pc
675 src/versioninfo.rc
676 ])
677 AC_CONFIG_COMMANDS([ntbtls-conf],[[
678 chmod +x src/ntbtls-config
679 ]])
680
681
682 AC_OUTPUT
683
684 echo "
685         NTBTLS v${VERSION} has been configured as follows:
686
687         Revision:  mym4_revision  (mym4_revision_dec)
688         Platform:  $host
689
690 "
691 if test "x${gpg_config_script_warn}" != x; then
692 cat <<G10EOF
693         Mismatches between the target platform and the to
694         be used libraries have been been detected for:
695          ${gpg_config_script_warn}
696         Please check above for warning messages.
697
698 G10EOF
699 fi