]> Git Repo - secp256k1.git/blame - configure.ac
Merge #782: Check if variable=yes instead of if var is set in travis.sh
[secp256k1.git] / configure.ac
CommitLineData
78cd96b1
CF
1AC_PREREQ([2.60])
2AC_INIT([libsecp256k1],[0.1])
6fac238f 3AC_CONFIG_AUX_DIR([build-aux])
4AC_CONFIG_MACRO_DIR([build-aux/m4])
78cd96b1
CF
5AC_CANONICAL_HOST
6AH_TOP([#ifndef LIBSECP256K1_CONFIG_H])
7AH_TOP([#define LIBSECP256K1_CONFIG_H])
f735446c 8AH_BOTTOM([#endif /*LIBSECP256K1_CONFIG_H*/])
5190079e 9AM_INIT_AUTOMAKE([foreign subdir-objects])
83fb1bce 10
ca739cba
JN
11# Set -g if CFLAGS are not already set, which matches the default autoconf
12# behavior (see PROG_CC in the Autoconf manual) with the exception that we don't
13# set -O2 here because we set it in any case (see further down).
83fb1bce 14: ${CFLAGS="-g"}
78cd96b1
CF
15LT_INIT
16
53628757
CF
17dnl make the compilation flags quiet unless V=1 is used
18m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
19
78cd96b1
CF
20PKG_PROG_PKG_CONFIG
21
3ab1178d
CF
22AC_PATH_TOOL(AR, ar)
23AC_PATH_TOOL(RANLIB, ranlib)
24AC_PATH_TOOL(STRIP, strip)
fbecc38a 25AX_PROG_CC_FOR_BUILD
3ab1178d 26
ed5334a7 27AM_PROG_CC_C_O
28
f735446c
GM
29AC_PROG_CC_C89
30if test x"$ac_cv_prog_cc_c89" = x"no"; then
31 AC_MSG_ERROR([c89 compiler support required])
78cd96b1 32fi
001f1763 33AM_PROG_AS
78cd96b1 34
a86f241d 35case $host_os in
e2274c58
CF
36 *darwin*)
37 if test x$cross_compiling != xyes; then
38 AC_PATH_PROG([BREW],brew,)
39 if test x$BREW != x; then
40 dnl These Homebrew packages may be keg-only, meaning that they won't be found
41 dnl in expected paths because they may conflict with system files. Ask
42 dnl Homebrew where each one is located, then adjust paths accordingly.
43
44 openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
45 gmp_prefix=`$BREW --prefix gmp 2>/dev/null`
46 if test x$openssl_prefix != x; then
47 PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
48 export PKG_CONFIG_PATH
84b5fc5b 49 CRYPTO_CPPFLAGS="-I$openssl_prefix/include"
e2274c58
CF
50 fi
51 if test x$gmp_prefix != x; then
52 GMP_CPPFLAGS="-I$gmp_prefix/include"
53 GMP_LIBS="-L$gmp_prefix/lib"
54 fi
55 else
56 AC_PATH_PROG([PORT],port,)
57 dnl if homebrew isn't installed and macports is, add the macports default paths
58 dnl as a last resort.
59 if test x$PORT != x; then
60 CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
61 LDFLAGS="$LDFLAGS -L/opt/local/lib"
62 fi
63 fi
64 fi
65 ;;
a86f241d
PD
66esac
67
ecba8138 68CFLAGS="-W $CFLAGS"
a099073a 69
7c3771dd 70warn_CFLAGS="-std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings"
a099073a 71saved_CFLAGS="$CFLAGS"
ecba8138 72CFLAGS="$warn_CFLAGS $CFLAGS"
a099073a
GM
73AC_MSG_CHECKING([if ${CC} supports ${warn_CFLAGS}])
74AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])],
75 [ AC_MSG_RESULT([yes]) ],
76 [ AC_MSG_RESULT([no])
77 CFLAGS="$saved_CFLAGS"
78 ])
79
118cd821 80saved_CFLAGS="$CFLAGS"
ecba8138 81CFLAGS="-fvisibility=hidden $CFLAGS"
118cd821
GM
82AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden])
83AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])],
84 [ AC_MSG_RESULT([yes]) ],
85 [ AC_MSG_RESULT([no])
86 CFLAGS="$saved_CFLAGS"
87 ])
a099073a 88
78cd96b1 89AC_ARG_ENABLE(benchmark,
a61a93ff 90 AS_HELP_STRING([--enable-benchmark],[compile benchmark [default=yes]]),
78cd96b1 91 [use_benchmark=$enableval],
4afec9f1 92 [use_benchmark=yes])
78cd96b1 93
a724d729 94AC_ARG_ENABLE(coverage,
a61a93ff 95 AS_HELP_STRING([--enable-coverage],[enable compiler flags to support kcov coverage analysis [default=no]]),
a724d729
AP
96 [enable_coverage=$enableval],
97 [enable_coverage=no])
98
78cd96b1 99AC_ARG_ENABLE(tests,
a61a93ff 100 AS_HELP_STRING([--enable-tests],[compile tests [default=yes]]),
78cd96b1
CF
101 [use_tests=$enableval],
102 [use_tests=yes])
103
a9b2a5d8 104AC_ARG_ENABLE(openssl_tests,
a61a93ff 105 AS_HELP_STRING([--enable-openssl-tests],[enable OpenSSL tests [default=auto]]),
a9b2a5d8
AP
106 [enable_openssl_tests=$enableval],
107 [enable_openssl_tests=auto])
108
83221ecb 109AC_ARG_ENABLE(experimental,
a61a93ff 110 AS_HELP_STRING([--enable-experimental],[allow experimental configure options [default=no]]),
83221ecb
PW
111 [use_experimental=$enableval],
112 [use_experimental=no])
113
20b8877b 114AC_ARG_ENABLE(exhaustive_tests,
a61a93ff 115 AS_HELP_STRING([--enable-exhaustive-tests],[compile exhaustive tests [default=yes]]),
20b8877b
AP
116 [use_exhaustive_tests=$enableval],
117 [use_exhaustive_tests=yes])
118
78cd96b1 119AC_ARG_ENABLE(endomorphism,
a61a93ff 120 AS_HELP_STRING([--enable-endomorphism],[enable endomorphism [default=no]]),
78cd96b1 121 [use_endomorphism=$enableval],
0e9baf6f 122 [use_endomorphism=no])
83221ecb 123
fbecc38a 124AC_ARG_ENABLE(ecmult_static_precomputation,
a61a93ff 125 AS_HELP_STRING([--enable-ecmult-static-precomputation],[enable precomputed ecmult table for signing [default=auto]]),
fbecc38a 126 [use_ecmult_static_precomputation=$enableval],
aa0b1fd1 127 [use_ecmult_static_precomputation=auto])
78cd96b1 128
0739bbb6 129AC_ARG_ENABLE(module_ecdh,
83221ecb 130 AS_HELP_STRING([--enable-module-ecdh],[enable ECDH shared secret computation (experimental)]),
0739bbb6
AP
131 [enable_module_ecdh=$enableval],
132 [enable_module_ecdh=no])
133
9f443be0 134AC_ARG_ENABLE(module_recovery,
a61a93ff 135 AS_HELP_STRING([--enable-module-recovery],[enable ECDSA pubkey recovery module [default=no]]),
9f443be0
PW
136 [enable_module_recovery=$enableval],
137 [enable_module_recovery=no])
138
47e6618e
JN
139AC_ARG_ENABLE(module_extrakeys,
140 AS_HELP_STRING([--enable-module-extrakeys],[enable extrakeys module (experimental)]),
141 [enable_module_extrakeys=$enableval],
142 [enable_module_extrakeys=no])
143
7a703fd9
JN
144AC_ARG_ENABLE(module_schnorrsig,
145 AS_HELP_STRING([--enable-module-schnorrsig],[enable schnorrsig module (experimental)]),
146 [enable_module_schnorrsig=$enableval],
147 [enable_module_schnorrsig=no])
148
5db782e6 149AC_ARG_ENABLE(external_default_callbacks,
a467047e 150 AS_HELP_STRING([--enable-external-default-callbacks],[enable external default callback functions [default=no]]),
5db782e6
TR
151 [use_external_default_callbacks=$enableval],
152 [use_external_default_callbacks=no])
153
79f1f7a4
PW
154dnl Test-only override of the (autodetected by the C code) "widemul" setting.
155dnl Legal values are int64 (for [u]int64_t), int128 (for [unsigned] __int128), and auto (the default).
156AC_ARG_WITH([test-override-wide-multiply], [] ,[set_widemul=$withval], [set_widemul=auto])
78cd96b1 157
1ba4a60a 158AC_ARG_WITH([bignum], [AS_HELP_STRING([--with-bignum=gmp|no|auto],
a61a93ff 159[bignum implementation to use [default=auto]])],[req_bignum=$withval], [req_bignum=auto])
78cd96b1 160
a61a93ff
TR
161AC_ARG_WITH([asm], [AS_HELP_STRING([--with-asm=x86_64|arm|no|auto],
162[assembly optimizations to useĀ (experimental: arm) [default=auto]])],[req_asm=$withval], [req_asm=auto])
1ba4a60a 163
2842dc52
TR
164AC_ARG_WITH([ecmult-window], [AS_HELP_STRING([--with-ecmult-window=SIZE|auto],
165[window size for ecmult precomputation for verification, specified as integer in range [2..24].]
166[Larger values result in possibly better performance at the cost of an exponentially larger precomputed table.]
167[The table will store 2^(SIZE-2) * 64 bytes of data but can be larger in memory due to platform-specific padding and alignment.]
168[If the endomorphism optimization is enabled, two tables of this size are used instead of only one.]
169["auto" is a reasonable setting for desktop machines (currently 15). [default=auto]]
170)],
171[req_ecmult_window=$withval], [req_ecmult_window=auto])
172
dcb2e3b3 173AC_ARG_WITH([ecmult-gen-precision], [AS_HELP_STRING([--with-ecmult-gen-precision=2|4|8|auto],
174[Precision bits to tune the precomputed table size for signing.]
175[The size of the table is 32kB for 2 bits, 64kB for 4 bits, 512kB for 8 bits of precision.]
176[A larger table size usually results in possible faster signing.]
177["auto" is a reasonable setting for desktop machines (currently 4). [default=auto]]
178)],
179[req_ecmult_gen_precision=$withval], [req_ecmult_gen_precision=auto])
180
7b50483a
GM
181AC_CHECK_HEADER([valgrind/memcheck.h], [enable_valgrind=yes], [enable_valgrind=no], [])
182AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"])
183
a724d729
AP
184if test x"$enable_coverage" = x"yes"; then
185 AC_DEFINE(COVERAGE, 1, [Define this symbol to compile out all VERIFY code])
ecba8138
JN
186 CFLAGS="-O0 --coverage $CFLAGS"
187 LDFLAGS="--coverage $LDFLAGS"
a724d729 188else
ca739cba 189 CFLAGS="-O2 $CFLAGS"
a724d729
AP
190fi
191
aa0b1fd1 192if test x"$use_ecmult_static_precomputation" != x"no"; then
2d5f4ceb 193 # Temporarily switch to an environment for the native compiler
aa0b1fd1
CF
194 save_cross_compiling=$cross_compiling
195 cross_compiling=no
2d5f4ceb 196 SAVE_CC="$CC"
aa0b1fd1 197 CC="$CC_FOR_BUILD"
2d5f4ceb
TR
198 SAVE_CFLAGS="$CFLAGS"
199 CFLAGS="$CFLAGS_FOR_BUILD"
200 SAVE_CPPFLAGS="$CPPFLAGS"
201 CPPFLAGS="$CPPFLAGS_FOR_BUILD"
202 SAVE_LDFLAGS="$LDFLAGS"
203 LDFLAGS="$LDFLAGS_FOR_BUILD"
204
205 warn_CFLAGS_FOR_BUILD="-Wall -Wextra -Wno-unused-function"
206 saved_CFLAGS="$CFLAGS"
ecba8138 207 CFLAGS="$warn_CFLAGS_FOR_BUILD $CFLAGS"
2d5f4ceb
TR
208 AC_MSG_CHECKING([if native ${CC_FOR_BUILD} supports ${warn_CFLAGS_FOR_BUILD}])
209 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])],
210 [ AC_MSG_RESULT([yes]) ],
211 [ AC_MSG_RESULT([no])
212 CFLAGS="$saved_CFLAGS"
213 ])
214
215 AC_MSG_CHECKING([for working native compiler: ${CC_FOR_BUILD}])
aa0b1fd1 216 AC_RUN_IFELSE(
2d5f4ceb 217 [AC_LANG_PROGRAM([], [])],
aa0b1fd1 218 [working_native_cc=yes],
5e8747ae 219 [working_native_cc=no],[:])
2d5f4ceb
TR
220
221 CFLAGS_FOR_BUILD="$CFLAGS"
222
223 # Restore the environment
aa0b1fd1 224 cross_compiling=$save_cross_compiling
2d5f4ceb
TR
225 CC="$SAVE_CC"
226 CFLAGS="$SAVE_CFLAGS"
227 CPPFLAGS="$SAVE_CPPFLAGS"
228 LDFLAGS="$SAVE_LDFLAGS"
aa0b1fd1
CF
229
230 if test x"$working_native_cc" = x"no"; then
2d5f4ceb 231 AC_MSG_RESULT([no])
aa0b1fd1 232 set_precomp=no
2d5f4ceb 233 m4_define([please_set_for_build], [Please set CC_FOR_BUILD, CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and/or LDFLAGS_FOR_BUILD.])
aa0b1fd1 234 if test x"$use_ecmult_static_precomputation" = x"yes"; then
2d5f4ceb 235 AC_MSG_ERROR([native compiler ${CC_FOR_BUILD} does not produce working binaries. please_set_for_build])
aa0b1fd1 236 else
2d5f4ceb 237 AC_MSG_WARN([Disabling statically generated ecmult table because the native compiler ${CC_FOR_BUILD} does not produce working binaries. please_set_for_build])
aa0b1fd1
CF
238 fi
239 else
2d5f4ceb 240 AC_MSG_RESULT([yes])
aa0b1fd1
CF
241 set_precomp=yes
242 fi
243else
244 set_precomp=no
245fi
246
1ba4a60a 247if test x"$req_asm" = x"auto"; then
0e9baf6f
CF
248 SECP_64BIT_ASM_CHECK
249 if test x"$has_64bit_asm" = x"yes"; then
1ba4a60a
PW
250 set_asm=x86_64
251 fi
252 if test x"$set_asm" = x; then
253 set_asm=no
78cd96b1 254 fi
1ba4a60a
PW
255else
256 set_asm=$req_asm
257 case $set_asm in
258 x86_64)
259 SECP_64BIT_ASM_CHECK
260 if test x"$has_64bit_asm" != x"yes"; then
261 AC_MSG_ERROR([x86_64 assembly optimization requested but not available])
262 fi
263 ;;
001f1763
WL
264 arm)
265 ;;
1ba4a60a
PW
266 no)
267 ;;
268 *)
269 AC_MSG_ERROR([invalid assembly optimization selection])
270 ;;
271 esac
272fi
78cd96b1 273
78cd96b1
CF
274if test x"$req_bignum" = x"auto"; then
275 SECP_GMP_CHECK
276 if test x"$has_gmp" = x"yes"; then
277 set_bignum=gmp
278 fi
279
78cd96b1 280 if test x"$set_bignum" = x; then
1ba4a60a 281 set_bignum=no
78cd96b1
CF
282 fi
283else
284 set_bignum=$req_bignum
285 case $set_bignum in
286 gmp)
287 SECP_GMP_CHECK
1ba4a60a
PW
288 if test x"$has_gmp" != x"yes"; then
289 AC_MSG_ERROR([gmp bignum explicitly requested but libgmp not available])
290 fi
78cd96b1 291 ;;
1ba4a60a 292 no)
78cd96b1
CF
293 ;;
294 *)
295 AC_MSG_ERROR([invalid bignum implementation selection])
296 ;;
297 esac
298fi
299
1ba4a60a 300# select assembly optimization
001f1763
WL
301use_external_asm=no
302
1ba4a60a
PW
303case $set_asm in
304x86_64)
305 AC_DEFINE(USE_ASM_X86_64, 1, [Define this symbol to enable x86_64 assembly optimizations])
306 ;;
001f1763
WL
307arm)
308 use_external_asm=yes
309 ;;
1ba4a60a
PW
310no)
311 ;;
312*)
313 AC_MSG_ERROR([invalid assembly optimizations])
314 ;;
315esac
316
79f1f7a4
PW
317# select wide multiplication implementation
318case $set_widemul in
319int128)
320 AC_DEFINE(USE_FORCE_WIDEMUL_INT128, 1, [Define this symbol to force the use of the (unsigned) __int128 based wide multiplication implementation])
78cd96b1 321 ;;
79f1f7a4
PW
322int64)
323 AC_DEFINE(USE_FORCE_WIDEMUL_INT64, 1, [Define this symbol to force the use of the (u)int64_t based wide multiplication implementation])
324 ;;
325auto)
78cd96b1
CF
326 ;;
327*)
79f1f7a4 328 AC_MSG_ERROR([invalid wide multiplication implementation])
78cd96b1
CF
329 ;;
330esac
331
332# select bignum implementation
333case $set_bignum in
334gmp)
597128d3
PW
335 AC_DEFINE(HAVE_LIBGMP, 1, [Define this symbol if libgmp is installed])
336 AC_DEFINE(USE_NUM_GMP, 1, [Define this symbol to use the gmp implementation for num])
d1502eb4
PW
337 AC_DEFINE(USE_FIELD_INV_NUM, 1, [Define this symbol to use the num-based field inverse implementation])
338 AC_DEFINE(USE_SCALAR_INV_NUM, 1, [Define this symbol to use the num-based scalar inverse implementation])
78cd96b1 339 ;;
1ba4a60a 340no)
597128d3
PW
341 AC_DEFINE(USE_NUM_NONE, 1, [Define this symbol to use no num implementation])
342 AC_DEFINE(USE_FIELD_INV_BUILTIN, 1, [Define this symbol to use the native field inverse implementation])
343 AC_DEFINE(USE_SCALAR_INV_BUILTIN, 1, [Define this symbol to use the native scalar inverse implementation])
344 ;;
78cd96b1
CF
345*)
346 AC_MSG_ERROR([invalid bignum implementation])
347 ;;
348esac
349
2842dc52
TR
350#set ecmult window size
351if test x"$req_ecmult_window" = x"auto"; then
352 set_ecmult_window=15
353else
354 set_ecmult_window=$req_ecmult_window
355fi
356
357error_window_size=['window size for ecmult precomputation not an integer in range [2..24] or "auto"']
358case $set_ecmult_window in
359''|*[[!0-9]]*)
360 # no valid integer
361 AC_MSG_ERROR($error_window_size)
362 ;;
363*)
364 if test "$set_ecmult_window" -lt 2 -o "$set_ecmult_window" -gt 24 ; then
365 # not in range
366 AC_MSG_ERROR($error_window_size)
367 fi
368 AC_DEFINE_UNQUOTED(ECMULT_WINDOW_SIZE, $set_ecmult_window, [Set window size for ecmult precomputation])
369 ;;
370esac
371
dcb2e3b3 372#set ecmult gen precision
373if test x"$req_ecmult_gen_precision" = x"auto"; then
374 set_ecmult_gen_precision=4
375else
376 set_ecmult_gen_precision=$req_ecmult_gen_precision
377fi
378
379case $set_ecmult_gen_precision in
3802|4|8)
381 AC_DEFINE_UNQUOTED(ECMULT_GEN_PREC_BITS, $set_ecmult_gen_precision, [Set ecmult gen precision bits])
382 ;;
383*)
384 AC_MSG_ERROR(['ecmult gen precision not 2, 4, 8 or "auto"'])
385 ;;
386esac
387
78cd96b1
CF
388if test x"$use_tests" = x"yes"; then
389 SECP_OPENSSL_CHECK
28ade27d 390 if test x"$has_openssl_ec" = x"yes"; then
a9b2a5d8
AP
391 if test x"$enable_openssl_tests" != x"no"; then
392 AC_DEFINE(ENABLE_OPENSSL_TESTS, 1, [Define this symbol if OpenSSL EC functions are available])
84b5fc5b 393 SECP_TEST_INCLUDES="$SSL_CFLAGS $CRYPTO_CFLAGS $CRYPTO_CPPFLAGS"
a9b2a5d8
AP
394 SECP_TEST_LIBS="$CRYPTO_LIBS"
395
396 case $host in
397 *mingw*)
398 SECP_TEST_LIBS="$SECP_TEST_LIBS -lgdi32"
399 ;;
400 esac
401 fi
402 else
403 if test x"$enable_openssl_tests" = x"yes"; then
404 AC_MSG_ERROR([OpenSSL tests requested but OpenSSL with EC support is not available])
405 fi
406 fi
407else
408 if test x"$enable_openssl_tests" = x"yes"; then
409 AC_MSG_ERROR([OpenSSL tests requested but tests are not enabled])
78cd96b1
CF
410 fi
411fi
412
7277fd76 413if test x"$set_bignum" = x"gmp"; then
78cd96b1 414 SECP_LIBS="$SECP_LIBS $GMP_LIBS"
e2274c58 415 SECP_INCLUDES="$SECP_INCLUDES $GMP_CPPFLAGS"
78cd96b1
CF
416fi
417
418if test x"$use_endomorphism" = x"yes"; then
c35ff1ea 419 AC_DEFINE(USE_ENDOMORPHISM, 1, [Define this symbol to use endomorphism optimization])
78cd96b1
CF
420fi
421
00c5d2e1 422if test x"$set_precomp" = x"yes"; then
fbecc38a
TD
423 AC_DEFINE(USE_ECMULT_STATIC_PRECOMPUTATION, 1, [Define this symbol to use a statically generated ecmult table])
424fi
425
0739bbb6
AP
426if test x"$enable_module_ecdh" = x"yes"; then
427 AC_DEFINE(ENABLE_MODULE_ECDH, 1, [Define this symbol to enable the ECDH module])
428fi
429
9f443be0
PW
430if test x"$enable_module_recovery" = x"yes"; then
431 AC_DEFINE(ENABLE_MODULE_RECOVERY, 1, [Define this symbol to enable the ECDSA pubkey recovery module])
432fi
433
7a703fd9
JN
434if test x"$enable_module_schnorrsig" = x"yes"; then
435 AC_DEFINE(ENABLE_MODULE_SCHNORRSIG, 1, [Define this symbol to enable the schnorrsig module])
436 enable_module_extrakeys=yes
437fi
438
439# Test if extrakeys is set after the schnorrsig module to allow the schnorrsig
440# module to set enable_module_extrakeys=yes
47e6618e
JN
441if test x"$enable_module_extrakeys" = x"yes"; then
442 AC_DEFINE(ENABLE_MODULE_EXTRAKEYS, 1, [Define this symbol to enable the extrakeys module])
443fi
444
001f1763
WL
445if test x"$use_external_asm" = x"yes"; then
446 AC_DEFINE(USE_EXTERNAL_ASM, 1, [Define this symbol if an external (non-inline) assembly implementation is used])
447fi
448
5db782e6
TR
449if test x"$use_external_default_callbacks" = x"yes"; then
450 AC_DEFINE(USE_EXTERNAL_DEFAULT_CALLBACKS, 1, [Define this symbol if an external implementation of the default callbacks is used])
451fi
452
83221ecb
PW
453if test x"$enable_experimental" = x"yes"; then
454 AC_MSG_NOTICE([******])
455 AC_MSG_NOTICE([WARNING: experimental build])
456 AC_MSG_NOTICE([Experimental features do not have stable APIs or properties, and may not be safe for production use.])
457 AC_MSG_NOTICE([Building ECDH module: $enable_module_ecdh])
47e6618e 458 AC_MSG_NOTICE([Building extrakeys module: $enable_module_extrakeys])
7a703fd9 459 AC_MSG_NOTICE([Building schnorrsig module: $enable_module_schnorrsig])
83221ecb
PW
460 AC_MSG_NOTICE([******])
461else
83221ecb
PW
462 if test x"$enable_module_ecdh" = x"yes"; then
463 AC_MSG_ERROR([ECDH module is experimental. Use --enable-experimental to allow.])
464 fi
47e6618e
JN
465 if test x"$enable_module_extrakeys" = x"yes"; then
466 AC_MSG_ERROR([extrakeys module is experimental. Use --enable-experimental to allow.])
467 fi
7a703fd9
JN
468 if test x"$enable_module_schnorrsig" = x"yes"; then
469 AC_MSG_ERROR([schnorrsig module is experimental. Use --enable-experimental to allow.])
470 fi
001f1763
WL
471 if test x"$set_asm" = x"arm"; then
472 AC_MSG_ERROR([ARM assembly optimization is experimental. Use --enable-experimental to allow.])
473 fi
83221ecb
PW
474fi
475
78cd96b1 476AC_CONFIG_HEADERS([src/libsecp256k1-config.h])
c7ee71f7 477AC_CONFIG_FILES([Makefile libsecp256k1.pc])
78cd96b1
CF
478AC_SUBST(SECP_INCLUDES)
479AC_SUBST(SECP_LIBS)
480AC_SUBST(SECP_TEST_LIBS)
481AC_SUBST(SECP_TEST_INCLUDES)
a724d729 482AM_CONDITIONAL([ENABLE_COVERAGE], [test x"$enable_coverage" = x"yes"])
78cd96b1 483AM_CONDITIONAL([USE_TESTS], [test x"$use_tests" != x"no"])
20b8877b 484AM_CONDITIONAL([USE_EXHAUSTIVE_TESTS], [test x"$use_exhaustive_tests" != x"no"])
8336040f 485AM_CONDITIONAL([USE_BENCHMARK], [test x"$use_benchmark" = x"yes"])
00c5d2e1 486AM_CONDITIONAL([USE_ECMULT_STATIC_PRECOMPUTATION], [test x"$set_precomp" = x"yes"])
0739bbb6 487AM_CONDITIONAL([ENABLE_MODULE_ECDH], [test x"$enable_module_ecdh" = x"yes"])
9f443be0 488AM_CONDITIONAL([ENABLE_MODULE_RECOVERY], [test x"$enable_module_recovery" = x"yes"])
7a703fd9
JN
489AM_CONDITIONAL([ENABLE_MODULE_EXTRAKEYS], [test x"$enable_module_extrakeys" = x"yes"])
490AM_CONDITIONAL([ENABLE_MODULE_SCHNORRSIG], [test x"$enable_module_schnorrsig" = x"yes"])
001f1763
WL
491AM_CONDITIONAL([USE_EXTERNAL_ASM], [test x"$use_external_asm" = x"yes"])
492AM_CONDITIONAL([USE_ASM_ARM], [test x"$set_asm" = x"arm"])
e2274c58
CF
493
494dnl make sure nothing new is exported so that we don't break the cache
495PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
496unset PKG_CONFIG_PATH
497PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
498
78cd96b1 499AC_OUTPUT
3965027c
EK
500
501echo
502echo "Build Options:"
5db782e6
TR
503echo " with endomorphism = $use_endomorphism"
504echo " with ecmult precomp = $set_precomp"
505echo " with external callbacks = $use_external_default_callbacks"
5db782e6
TR
506echo " with benchmarks = $use_benchmark"
507echo " with coverage = $enable_coverage"
508echo " module ecdh = $enable_module_ecdh"
509echo " module recovery = $enable_module_recovery"
47e6618e 510echo " module extrakeys = $enable_module_extrakeys"
7a703fd9 511echo " module schnorrsig = $enable_module_schnorrsig"
3965027c 512echo
5db782e6
TR
513echo " asm = $set_asm"
514echo " bignum = $set_bignum"
5db782e6 515echo " ecmult window size = $set_ecmult_window"
dcb2e3b3 516echo " ecmult gen prec. bits = $set_ecmult_gen_precision"
79f1f7a4
PW
517dnl Hide test-only options unless they're used.
518if test x"$set_widemul" != xauto; then
519echo " wide multiplication = $set_widemul"
520fi
3965027c 521echo
3d230225 522echo " valgrind = $enable_valgrind"
5db782e6
TR
523echo " CC = $CC"
524echo " CFLAGS = $CFLAGS"
525echo " CPPFLAGS = $CPPFLAGS"
526echo " LDFLAGS = $LDFLAGS"
3965027c 527echo
This page took 0.104111 seconds and 4 git commands to generate.