]> Git Repo - secp256k1.git/blob - configure.ac
Merge bitcoin-core/secp256k1#944: Various improvements related to CFLAGS
[secp256k1.git] / configure.ac
1 AC_PREREQ([2.60])
2 AC_INIT([libsecp256k1],[0.1])
3 AC_CONFIG_AUX_DIR([build-aux])
4 AC_CONFIG_MACRO_DIR([build-aux/m4])
5 AC_CANONICAL_HOST
6 AH_TOP([#ifndef LIBSECP256K1_CONFIG_H])
7 AH_TOP([#define LIBSECP256K1_CONFIG_H])
8 AH_BOTTOM([#endif /*LIBSECP256K1_CONFIG_H*/])
9 AM_INIT_AUTOMAKE([foreign subdir-objects])
10
11 LT_INIT
12
13 # Make the compilation flags quiet unless V=1 is used.
14 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
15
16 PKG_PROG_PKG_CONFIG
17
18 AC_PATH_TOOL(AR, ar)
19 AC_PATH_TOOL(RANLIB, ranlib)
20 AC_PATH_TOOL(STRIP, strip)
21
22 # Save definition of AC_PROG_CC because AM_PROG_CC_C_O in automake<=1.13 will
23 # redefine AC_PROG_CC to exit with an error, which avoids the user calling it
24 # accidently and screwing up the effect of AM_PROG_CC_C_O. However, we'll need
25 # AC_PROG_CC later on in AX_PROG_CC_FOR_BUILD, where its usage is fine, and
26 # we'll carefully make sure not to call AC_PROG_CC anywhere else.
27 m4_copy([AC_PROG_CC], [saved_AC_PROG_CC])
28 AM_PROG_CC_C_O
29 # Restore AC_PROG_CC
30 m4_rename_force([saved_AC_PROG_CC], [AC_PROG_CC])
31
32 AC_PROG_CC_C89
33 if test x"$ac_cv_prog_cc_c89" = x"no"; then
34   AC_MSG_ERROR([c89 compiler support required])
35 fi
36 AM_PROG_AS
37
38 case $host_os in
39   *darwin*)
40      if  test x$cross_compiling != xyes; then
41        AC_PATH_PROG([BREW],brew,)
42        if test x$BREW != x; then
43          # These Homebrew packages may be keg-only, meaning that they won't be found
44          # in expected paths because they may conflict with system files. Ask
45          # Homebrew where each one is located, then adjust paths accordingly.
46          openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
47          valgrind_prefix=`$BREW --prefix valgrind 2>/dev/null`
48          if test x$openssl_prefix != x; then
49            PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
50            export PKG_CONFIG_PATH
51            CRYPTO_CPPFLAGS="-I$openssl_prefix/include"
52          fi
53          if test x$valgrind_prefix != x; then
54            VALGRIND_CPPFLAGS="-I$valgrind_prefix/include"
55          fi
56        else
57          AC_PATH_PROG([PORT],port,)
58          # If homebrew isn't installed and macports is, add the macports default paths
59          # as a last resort.
60          if test x$PORT != x; then
61            CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
62            LDFLAGS="$LDFLAGS -L/opt/local/lib"
63          fi
64        fi
65      fi
66    ;;
67 esac
68
69 # Try if some desirable compiler flags are supported and append them to SECP_CFLAGS.
70 #
71 # These are our own flags, so we append them to our own SECP_CFLAGS variable (instead of CFLAGS) as
72 # recommended in the automake manual (Section "Flag Variables Ordering"). CFLAGS belongs to the user
73 # and we are not supposed to touch it. In the Makefile, we will need to ensure that SECP_CFLAGS
74 # is prepended to CFLAGS when invoking the compiler so that the user always has the last word (flag).
75 #
76 # Another advantage of not touching CFLAGS is that the contents of CFLAGS will be picked up by
77 # libtool for compiling helper executables. For example, when compiling for Windows, libtool will
78 # generate entire wrapper executables (instead of simple wrapper scripts as on Unix) to ensure
79 # proper operation of uninstalled programs linked by libtool against the uninstalled shared library.
80 # These executables are compiled from C source file for which our flags may not be appropriate,
81 # e.g., -std=c89 flag has lead to undesirable warnings in the past.
82 #
83 # TODO We should analogously not touch CPPFLAGS and LDFLAGS but currently there are no issues.
84 AC_DEFUN([SECP_TRY_APPEND_DEFAULT_CFLAGS], [
85     # Try to append -Werror=unknown-warning-option to CFLAGS temporarily. Otherwise clang will
86     # not error out if it gets unknown warning flags and the checks here will always succeed
87     # no matter if clang knows the flag or not.
88     SECP_TRY_APPEND_DEFAULT_CFLAGS_saved_CFLAGS="$CFLAGS"
89     SECP_TRY_APPEND_CFLAGS([-Werror=unknown-warning-option], CFLAGS)
90
91     SECP_TRY_APPEND_CFLAGS([-std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef], $1) # GCC >= 3.0, -Wlong-long is implied by -pedantic.
92     SECP_TRY_APPEND_CFLAGS([-Wno-overlength-strings], $1) # GCC >= 4.2, -Woverlength-strings is implied by -pedantic.
93     SECP_TRY_APPEND_CFLAGS([-Wall], $1) # GCC >= 2.95 and probably many other compilers
94     SECP_TRY_APPEND_CFLAGS([-Wno-unused-function], $1) # GCC >= 3.0, -Wunused-function is implied by -Wall.
95     SECP_TRY_APPEND_CFLAGS([-Wextra], $1) # GCC >= 3.4, this is the newer name of -W, which we don't use because older GCCs will warn about unused functions.
96     SECP_TRY_APPEND_CFLAGS([-Wcast-align], $1) # GCC >= 2.95
97     SECP_TRY_APPEND_CFLAGS([-Wcast-align=strict], $1) # GCC >= 8.0
98     SECP_TRY_APPEND_CFLAGS([-Wconditional-uninitialized], $1) # Clang >= 3.0 only
99     SECP_TRY_APPEND_CFLAGS([-fvisibility=hidden], $1) # GCC >= 4.0
100
101     CFLAGS="$SECP_TRY_APPEND_DEFAULT_CFLAGS_saved_CFLAGS"
102 ])
103 SECP_TRY_APPEND_DEFAULT_CFLAGS(SECP_CFLAGS)
104
105 ###
106 ### Define config arguments
107 ###
108
109 AC_ARG_ENABLE(benchmark,
110     AS_HELP_STRING([--enable-benchmark],[compile benchmark [default=yes]]),
111     [use_benchmark=$enableval],
112     [use_benchmark=yes])
113
114 AC_ARG_ENABLE(coverage,
115     AS_HELP_STRING([--enable-coverage],[enable compiler flags to support kcov coverage analysis [default=no]]),
116     [enable_coverage=$enableval],
117     [enable_coverage=no])
118
119 AC_ARG_ENABLE(tests,
120     AS_HELP_STRING([--enable-tests],[compile tests [default=yes]]),
121     [use_tests=$enableval],
122     [use_tests=yes])
123
124 AC_ARG_ENABLE(openssl_tests,
125     AS_HELP_STRING([--enable-openssl-tests],[enable OpenSSL tests [default=auto]]),
126     [enable_openssl_tests=$enableval],
127     [enable_openssl_tests=auto])
128
129 AC_ARG_ENABLE(experimental,
130     AS_HELP_STRING([--enable-experimental],[allow experimental configure options [default=no]]),
131     [use_experimental=$enableval],
132     [use_experimental=no])
133
134 AC_ARG_ENABLE(exhaustive_tests,
135     AS_HELP_STRING([--enable-exhaustive-tests],[compile exhaustive tests [default=yes]]),
136     [use_exhaustive_tests=$enableval],
137     [use_exhaustive_tests=yes])
138
139 AC_ARG_ENABLE(ecmult_static_precomputation,
140     AS_HELP_STRING([--enable-ecmult-static-precomputation],[enable precomputed ecmult table for signing [default=auto]]),
141     [use_ecmult_static_precomputation=$enableval],
142     [use_ecmult_static_precomputation=auto])
143
144 AC_ARG_ENABLE(module_ecdh,
145     AS_HELP_STRING([--enable-module-ecdh],[enable ECDH shared secret computation]),
146     [enable_module_ecdh=$enableval],
147     [enable_module_ecdh=no])
148
149 AC_ARG_ENABLE(module_recovery,
150     AS_HELP_STRING([--enable-module-recovery],[enable ECDSA pubkey recovery module [default=no]]),
151     [enable_module_recovery=$enableval],
152     [enable_module_recovery=no])
153
154 AC_ARG_ENABLE(module_extrakeys,
155     AS_HELP_STRING([--enable-module-extrakeys],[enable extrakeys module (experimental)]),
156     [enable_module_extrakeys=$enableval],
157     [enable_module_extrakeys=no])
158
159 AC_ARG_ENABLE(module_schnorrsig,
160     AS_HELP_STRING([--enable-module-schnorrsig],[enable schnorrsig module (experimental)]),
161     [enable_module_schnorrsig=$enableval],
162     [enable_module_schnorrsig=no])
163
164 AC_ARG_ENABLE(external_default_callbacks,
165     AS_HELP_STRING([--enable-external-default-callbacks],[enable external default callback functions [default=no]]),
166     [use_external_default_callbacks=$enableval],
167     [use_external_default_callbacks=no])
168
169 # Test-only override of the (autodetected by the C code) "widemul" setting.
170 # Legal values are int64 (for [u]int64_t), int128 (for [unsigned] __int128), and auto (the default).
171 AC_ARG_WITH([test-override-wide-multiply], [] ,[set_widemul=$withval], [set_widemul=auto])
172
173 AC_ARG_WITH([asm], [AS_HELP_STRING([--with-asm=x86_64|arm|no|auto],
174 [assembly optimizations to useĀ (experimental: arm) [default=auto]])],[req_asm=$withval], [req_asm=auto])
175
176 AC_ARG_WITH([ecmult-window], [AS_HELP_STRING([--with-ecmult-window=SIZE|auto],
177 [window size for ecmult precomputation for verification, specified as integer in range [2..24].]
178 [Larger values result in possibly better performance at the cost of an exponentially larger precomputed table.]
179 [The table will store 2^(SIZE-1) * 64 bytes of data but can be larger in memory due to platform-specific padding and alignment.]
180 ["auto" is a reasonable setting for desktop machines (currently 15). [default=auto]]
181 )],
182 [req_ecmult_window=$withval], [req_ecmult_window=auto])
183
184 AC_ARG_WITH([ecmult-gen-precision], [AS_HELP_STRING([--with-ecmult-gen-precision=2|4|8|auto],
185 [Precision bits to tune the precomputed table size for signing.]
186 [The size of the table is 32kB for 2 bits, 64kB for 4 bits, 512kB for 8 bits of precision.]
187 [A larger table size usually results in possible faster signing.]
188 ["auto" is a reasonable setting for desktop machines (currently 4). [default=auto]]
189 )],
190 [req_ecmult_gen_precision=$withval], [req_ecmult_gen_precision=auto])
191
192 AC_ARG_WITH([valgrind], [AS_HELP_STRING([--with-valgrind=yes|no|auto],
193 [Build with extra checks for running inside Valgrind [default=auto]]
194 )],
195 [req_valgrind=$withval], [req_valgrind=auto])
196
197 ###
198 ### Handle config options (except for modules)
199 ###
200
201 if test x"$req_valgrind" = x"no"; then
202   enable_valgrind=no
203 else
204   SECP_VALGRIND_CHECK
205   if test x"$has_valgrind" != x"yes"; then
206     if test x"$req_valgrind" = x"yes"; then
207       AC_MSG_ERROR([Valgrind support explicitly requested but valgrind/memcheck.h header not available])
208     fi
209     enable_valgrind=no
210   else
211     enable_valgrind=yes
212   fi
213 fi
214 AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"])
215
216 if test x"$enable_coverage" = x"yes"; then
217     AC_DEFINE(COVERAGE, 1, [Define this symbol to compile out all VERIFY code])
218     SECP_CFLAGS="-O0 --coverage $SECP_CFLAGS"
219     LDFLAGS="--coverage $LDFLAGS"
220 else
221     # Most likely the CFLAGS already contain -O2 because that is autoconf's default.
222     # We still add it here because passing it twice is not an issue, and handling
223     # this case would just add unnecessary complexity (see #896).
224     SECP_CFLAGS="-O2 $SECP_CFLAGS"
225     SECP_CFLAGS_FOR_BUILD="-O2 $SECP_CFLAGS_FOR_BUILD"
226 fi
227
228 if test x"$req_asm" = x"auto"; then
229   SECP_64BIT_ASM_CHECK
230   if test x"$has_64bit_asm" = x"yes"; then
231     set_asm=x86_64
232   fi
233   if test x"$set_asm" = x; then
234     set_asm=no
235   fi
236 else
237   set_asm=$req_asm
238   case $set_asm in
239   x86_64)
240     SECP_64BIT_ASM_CHECK
241     if test x"$has_64bit_asm" != x"yes"; then
242       AC_MSG_ERROR([x86_64 assembly optimization requested but not available])
243     fi
244     ;;
245   arm)
246     ;;
247   no)
248     ;;
249   *)
250     AC_MSG_ERROR([invalid assembly optimization selection])
251     ;;
252   esac
253 fi
254
255 # Select assembly optimization
256 use_external_asm=no
257
258 case $set_asm in
259 x86_64)
260   AC_DEFINE(USE_ASM_X86_64, 1, [Define this symbol to enable x86_64 assembly optimizations])
261   ;;
262 arm)
263   use_external_asm=yes
264   ;;
265 no)
266   ;;
267 *)
268   AC_MSG_ERROR([invalid assembly optimizations])
269   ;;
270 esac
271
272 if test x"$use_external_asm" = x"yes"; then
273   AC_DEFINE(USE_EXTERNAL_ASM, 1, [Define this symbol if an external (non-inline) assembly implementation is used])
274 fi
275
276
277 # Select wide multiplication implementation
278 case $set_widemul in
279 int128)
280   AC_DEFINE(USE_FORCE_WIDEMUL_INT128, 1, [Define this symbol to force the use of the (unsigned) __int128 based wide multiplication implementation])
281   ;;
282 int64)
283   AC_DEFINE(USE_FORCE_WIDEMUL_INT64, 1, [Define this symbol to force the use of the (u)int64_t based wide multiplication implementation])
284   ;;
285 auto)
286   ;;
287 *)
288   AC_MSG_ERROR([invalid wide multiplication implementation])
289   ;;
290 esac
291
292 # Set ecmult window size
293 if test x"$req_ecmult_window" = x"auto"; then
294   set_ecmult_window=15
295 else
296   set_ecmult_window=$req_ecmult_window
297 fi
298
299 error_window_size=['window size for ecmult precomputation not an integer in range [2..24] or "auto"']
300 case $set_ecmult_window in
301 ''|*[[!0-9]]*)
302   # no valid integer
303   AC_MSG_ERROR($error_window_size)
304   ;;
305 *)
306   if test "$set_ecmult_window" -lt 2 -o "$set_ecmult_window" -gt 24 ; then
307     # not in range
308     AC_MSG_ERROR($error_window_size)
309   fi
310   AC_DEFINE_UNQUOTED(ECMULT_WINDOW_SIZE, $set_ecmult_window, [Set window size for ecmult precomputation])
311   ;;
312 esac
313
314 # Set ecmult gen precision
315 if test x"$req_ecmult_gen_precision" = x"auto"; then
316   set_ecmult_gen_precision=4
317 else
318   set_ecmult_gen_precision=$req_ecmult_gen_precision
319 fi
320
321 case $set_ecmult_gen_precision in
322 2|4|8)
323   AC_DEFINE_UNQUOTED(ECMULT_GEN_PREC_BITS, $set_ecmult_gen_precision, [Set ecmult gen precision bits])
324   ;;
325 *)
326   AC_MSG_ERROR(['ecmult gen precision not 2, 4, 8 or "auto"'])
327   ;;
328 esac
329
330 if test x"$use_tests" = x"yes"; then
331   SECP_OPENSSL_CHECK
332   if test x"$enable_openssl_tests" != x"no" && test x"$has_openssl_ec" = x"yes"; then
333       enable_openssl_tests=yes
334       AC_DEFINE(ENABLE_OPENSSL_TESTS, 1, [Define this symbol if OpenSSL EC functions are available])
335       SECP_TEST_INCLUDES="$SSL_CFLAGS $CRYPTO_CFLAGS $CRYPTO_CPPFLAGS"
336       SECP_TEST_LIBS="$CRYPTO_LIBS"
337
338       case $host in
339       *mingw*)
340         SECP_TEST_LIBS="$SECP_TEST_LIBS -lgdi32"
341         ;;
342       esac
343   else
344     if test x"$enable_openssl_tests" = x"yes"; then
345       AC_MSG_ERROR([OpenSSL tests requested but OpenSSL with EC support is not available])
346     fi
347     enable_openssl_tests=no
348   fi
349 else
350   if test x"$enable_openssl_tests" = x"yes"; then
351     AC_MSG_ERROR([OpenSSL tests requested but tests are not enabled])
352   fi
353   enable_openssl_tests=no
354 fi
355
356 if test x"$enable_valgrind" = x"yes"; then
357   SECP_INCLUDES="$SECP_INCLUDES $VALGRIND_CPPFLAGS"
358 fi
359
360 # Add -Werror and similar flags passed from the outside (for testing, e.g., in CI)
361 SECP_CFLAGS="$SECP_CFLAGS $WERROR_CFLAGS"
362
363 # Handle static precomputation (after everything which modifies CFLAGS and friends)
364 if test x"$use_ecmult_static_precomputation" != x"no"; then
365   if test x"$cross_compiling" = x"no"; then
366     set_precomp=yes
367     if test x"${CC_FOR_BUILD+x}${CFLAGS_FOR_BUILD+x}${CPPFLAGS_FOR_BUILD+x}${LDFLAGS_FOR_BUILD+x}" != x; then
368       AC_MSG_WARN([CC_FOR_BUILD, CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and/or LDFLAGS_FOR_BUILD is set but ignored because we are not cross-compiling.])
369     fi
370     # If we're not cross-compiling, simply use the same compiler for building the static precompation code.
371     CC_FOR_BUILD="$CC"
372     CPPFLAGS_FOR_BUILD="$CPPFLAGS"
373     SECP_CFLAGS_FOR_BUILD="$SECP_CFLAGS"
374     CFLAGS_FOR_BUILD="$CFLAGS"
375     LDFLAGS_FOR_BUILD="$LDFLAGS"
376   else
377     AX_PROG_CC_FOR_BUILD
378
379     # Temporarily switch to an environment for the native compiler
380     save_cross_compiling=$cross_compiling
381     cross_compiling=no
382     SAVE_CC="$CC"
383     CC="$CC_FOR_BUILD"
384     SAVE_CPPFLAGS="$CPPFLAGS"
385     CPPFLAGS="$CPPFLAGS_FOR_BUILD"
386     SAVE_CFLAGS="$CFLAGS"
387     CFLAGS="$CFLAGS_FOR_BUILD"
388     SAVE_LDFLAGS="$LDFLAGS"
389     LDFLAGS="$LDFLAGS_FOR_BUILD"
390
391     SECP_TRY_APPEND_DEFAULT_CFLAGS(SECP_CFLAGS_FOR_BUILD)
392
393     AC_MSG_CHECKING([for working native compiler: ${CC_FOR_BUILD}])
394     AC_RUN_IFELSE(
395       [AC_LANG_PROGRAM([], [])],
396       [working_native_cc=yes],
397       [working_native_cc=no],[:])
398
399     # Restore the environment
400     cross_compiling=$save_cross_compiling
401     CC="$SAVE_CC"
402     CPPFLAGS="$SAVE_CPPFLAGS"
403     CFLAGS="$SAVE_CFLAGS"
404     LDFLAGS="$SAVE_LDFLAGS"
405
406     if test x"$working_native_cc" = x"no"; then
407       AC_MSG_RESULT([no])
408       set_precomp=no
409       m4_define([please_set_for_build], [Please set CC_FOR_BUILD, CPPFLAGS_FOR_BUILD, CFLAGS_FOR_BUILD, and/or LDFLAGS_FOR_BUILD.])
410       if test x"$use_ecmult_static_precomputation" = x"yes";  then
411         AC_MSG_ERROR([native compiler ${CC_FOR_BUILD} does not produce working binaries. please_set_for_build])
412       else
413         AC_MSG_WARN([Disabling statically generated ecmult table because the native compiler ${CC_FOR_BUILD} does not produce working binaries. please_set_for_build])
414       fi
415     else
416       AC_MSG_RESULT([yes])
417       set_precomp=yes
418     fi
419   fi
420
421   AC_SUBST(CC_FOR_BUILD)
422   AC_SUBST(CPPFLAGS_FOR_BUILD)
423   AC_SUBST(SECP_CFLAGS_FOR_BUILD)
424   AC_SUBST(CFLAGS_FOR_BUILD)
425   AC_SUBST(LDFLAGS_FOR_BUILD)
426 else
427   set_precomp=no
428 fi
429
430 if test x"$set_precomp" = x"yes"; then
431   AC_DEFINE(USE_ECMULT_STATIC_PRECOMPUTATION, 1, [Define this symbol to use a statically generated ecmult table])
432 fi
433
434 ###
435 ### Handle module options
436 ###
437
438 if test x"$enable_module_ecdh" = x"yes"; then
439   AC_DEFINE(ENABLE_MODULE_ECDH, 1, [Define this symbol to enable the ECDH module])
440 fi
441
442 if test x"$enable_module_recovery" = x"yes"; then
443   AC_DEFINE(ENABLE_MODULE_RECOVERY, 1, [Define this symbol to enable the ECDSA pubkey recovery module])
444 fi
445
446 if test x"$enable_module_schnorrsig" = x"yes"; then
447   AC_DEFINE(ENABLE_MODULE_SCHNORRSIG, 1, [Define this symbol to enable the schnorrsig module])
448   enable_module_extrakeys=yes
449 fi
450
451 # Test if extrakeys is set after the schnorrsig module to allow the schnorrsig
452 # module to set enable_module_extrakeys=yes
453 if test x"$enable_module_extrakeys" = x"yes"; then
454   AC_DEFINE(ENABLE_MODULE_EXTRAKEYS, 1, [Define this symbol to enable the extrakeys module])
455 fi
456
457 if test x"$use_external_default_callbacks" = x"yes"; then
458   AC_DEFINE(USE_EXTERNAL_DEFAULT_CALLBACKS, 1, [Define this symbol if an external implementation of the default callbacks is used])
459 fi
460
461 ###
462 ### Check for --enable-experimental if necessary
463 ###
464
465 if test x"$enable_experimental" = x"yes"; then
466   AC_MSG_NOTICE([******])
467   AC_MSG_NOTICE([WARNING: experimental build])
468   AC_MSG_NOTICE([Experimental features do not have stable APIs or properties, and may not be safe for production use.])
469   AC_MSG_NOTICE([Building extrakeys module: $enable_module_extrakeys])
470   AC_MSG_NOTICE([Building schnorrsig module: $enable_module_schnorrsig])
471   AC_MSG_NOTICE([******])
472 else
473   if test x"$enable_module_extrakeys" = x"yes"; then
474     AC_MSG_ERROR([extrakeys module is experimental. Use --enable-experimental to allow.])
475   fi
476   if test x"$enable_module_schnorrsig" = x"yes"; then
477     AC_MSG_ERROR([schnorrsig module is experimental. Use --enable-experimental to allow.])
478   fi
479   if test x"$set_asm" = x"arm"; then
480     AC_MSG_ERROR([ARM assembly optimization is experimental. Use --enable-experimental to allow.])
481   fi
482 fi
483
484 ###
485 ### Generate output
486 ###
487
488 AC_CONFIG_HEADERS([src/libsecp256k1-config.h])
489 AC_CONFIG_FILES([Makefile libsecp256k1.pc])
490 AC_SUBST(SECP_INCLUDES)
491 AC_SUBST(SECP_LIBS)
492 AC_SUBST(SECP_TEST_LIBS)
493 AC_SUBST(SECP_TEST_INCLUDES)
494 AC_SUBST(SECP_CFLAGS)
495 AM_CONDITIONAL([ENABLE_COVERAGE], [test x"$enable_coverage" = x"yes"])
496 AM_CONDITIONAL([USE_TESTS], [test x"$use_tests" != x"no"])
497 AM_CONDITIONAL([USE_EXHAUSTIVE_TESTS], [test x"$use_exhaustive_tests" != x"no"])
498 AM_CONDITIONAL([USE_BENCHMARK], [test x"$use_benchmark" = x"yes"])
499 AM_CONDITIONAL([USE_ECMULT_STATIC_PRECOMPUTATION], [test x"$set_precomp" = x"yes"])
500 AM_CONDITIONAL([ENABLE_MODULE_ECDH], [test x"$enable_module_ecdh" = x"yes"])
501 AM_CONDITIONAL([ENABLE_MODULE_RECOVERY], [test x"$enable_module_recovery" = x"yes"])
502 AM_CONDITIONAL([ENABLE_MODULE_EXTRAKEYS], [test x"$enable_module_extrakeys" = x"yes"])
503 AM_CONDITIONAL([ENABLE_MODULE_SCHNORRSIG], [test x"$enable_module_schnorrsig" = x"yes"])
504 AM_CONDITIONAL([USE_EXTERNAL_ASM], [test x"$use_external_asm" = x"yes"])
505 AM_CONDITIONAL([USE_ASM_ARM], [test x"$set_asm" = x"arm"])
506
507 # Make sure nothing new is exported so that we don't break the cache.
508 PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
509 unset PKG_CONFIG_PATH
510 PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
511
512 AC_OUTPUT
513
514 echo
515 echo "Build Options:"
516 echo "  with ecmult precomp     = $set_precomp"
517 echo "  with external callbacks = $use_external_default_callbacks"
518 echo "  with benchmarks         = $use_benchmark"
519 echo "  with tests              = $use_tests"
520 echo "  with openssl tests      = $enable_openssl_tests"
521 echo "  with coverage           = $enable_coverage"
522 echo "  module ecdh             = $enable_module_ecdh"
523 echo "  module recovery         = $enable_module_recovery"
524 echo "  module extrakeys        = $enable_module_extrakeys"
525 echo "  module schnorrsig       = $enable_module_schnorrsig"
526 echo
527 echo "  asm                     = $set_asm"
528 echo "  ecmult window size      = $set_ecmult_window"
529 echo "  ecmult gen prec. bits   = $set_ecmult_gen_precision"
530 # Hide test-only options unless they're used.
531 if test x"$set_widemul" != xauto; then
532 echo "  wide multiplication     = $set_widemul"
533 fi
534 echo
535 echo "  valgrind                = $enable_valgrind"
536 echo "  CC                      = $CC"
537 echo "  CPPFLAGS                = $CPPFLAGS"
538 echo "  SECP_CFLAGS             = $SECP_CFLAGS"
539 echo "  CFLAGS                  = $CFLAGS"
540 echo "  LDFLAGS                 = $LDFLAGS"
541 echo
542 if test x"$set_precomp" = x"yes"; then
543 echo "  CC_FOR_BUILD            = $CC_FOR_BUILD"
544 echo "  CPPFLAGS_FOR_BUILD      = $CPPFLAGS_FOR_BUILD"
545 echo "  SECP_CFLAGS_FOR_BUILD   = $SECP_CFLAGS_FOR_BUILD"
546 echo "  CFLAGS_FOR_BUILD        = $CFLAGS_FOR_BUILD"
547 echo "  LDFLAGS_FOR_BUILD       = $LDFLAGS_FOR_BUILD"
548 fi
This page took 0.060538 seconds and 4 git commands to generate.