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