@@ -85,42 +85,42 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])],
8585 ] )
8686
8787AC_ARG_ENABLE ( benchmark ,
88- AS_HELP_STRING ( [ --enable-benchmark] ,[ compile benchmark ( default is yes) ] ) ,
88+ AS_HELP_STRING ( [ --enable-benchmark] ,[ compile benchmark [ default= yes] ] ) ,
8989 [ use_benchmark=$enableval] ,
9090 [ use_benchmark=yes] )
9191
9292AC_ARG_ENABLE ( coverage ,
93- AS_HELP_STRING ( [ --enable-coverage] ,[ enable compiler flags to support kcov coverage analysis] ) ,
93+ AS_HELP_STRING ( [ --enable-coverage] ,[ enable compiler flags to support kcov coverage analysis [ default=no ] ] ) ,
9494 [ enable_coverage=$enableval] ,
9595 [ enable_coverage=no] )
9696
9797AC_ARG_ENABLE ( tests ,
98- AS_HELP_STRING ( [ --enable-tests] ,[ compile tests ( default is yes) ] ) ,
98+ AS_HELP_STRING ( [ --enable-tests] ,[ compile tests [ default= yes] ] ) ,
9999 [ use_tests=$enableval] ,
100100 [ use_tests=yes] )
101101
102102AC_ARG_ENABLE ( openssl_tests ,
103- AS_HELP_STRING ( [ --enable-openssl-tests] ,[ enable OpenSSL tests, if OpenSSL is available ( default is auto) ] ) ,
103+ AS_HELP_STRING ( [ --enable-openssl-tests] ,[ enable OpenSSL tests [ default= auto] ] ) ,
104104 [ enable_openssl_tests=$enableval] ,
105105 [ enable_openssl_tests=auto] )
106106
107107AC_ARG_ENABLE ( experimental ,
108- AS_HELP_STRING ( [ --enable-experimental] ,[ allow experimental configure options ( default is no) ] ) ,
108+ AS_HELP_STRING ( [ --enable-experimental] ,[ allow experimental configure options [ default=no ] ] ) ,
109109 [ use_experimental=$enableval] ,
110110 [ use_experimental=no] )
111111
112112AC_ARG_ENABLE ( exhaustive_tests ,
113- AS_HELP_STRING ( [ --enable-exhaustive-tests] ,[ compile exhaustive tests ( default is yes) ] ) ,
113+ AS_HELP_STRING ( [ --enable-exhaustive-tests] ,[ compile exhaustive tests [ default= yes] ] ) ,
114114 [ use_exhaustive_tests=$enableval] ,
115115 [ use_exhaustive_tests=yes] )
116116
117117AC_ARG_ENABLE ( endomorphism ,
118- AS_HELP_STRING ( [ --enable-endomorphism] ,[ enable endomorphism ( default is no) ] ) ,
118+ AS_HELP_STRING ( [ --enable-endomorphism] ,[ enable endomorphism [ default=no ] ] ) ,
119119 [ use_endomorphism=$enableval] ,
120120 [ use_endomorphism=no] )
121121
122122AC_ARG_ENABLE ( ecmult_static_precomputation ,
123- AS_HELP_STRING ( [ --enable-ecmult-static-precomputation] ,[ enable precomputed ecmult table for signing ( default is yes) ] ) ,
123+ AS_HELP_STRING ( [ --enable-ecmult-static-precomputation] ,[ enable precomputed ecmult table for signing [ default=auto ] ] ) ,
124124 [ use_ecmult_static_precomputation=$enableval] ,
125125 [ use_ecmult_static_precomputation=auto] )
126126
@@ -130,26 +130,35 @@ AC_ARG_ENABLE(module_ecdh,
130130 [ enable_module_ecdh=no] )
131131
132132AC_ARG_ENABLE ( module_recovery ,
133- AS_HELP_STRING ( [ --enable-module-recovery] ,[ enable ECDSA pubkey recovery module ( default is no) ] ) ,
133+ AS_HELP_STRING ( [ --enable-module-recovery] ,[ enable ECDSA pubkey recovery module [ default=no ] ] ) ,
134134 [ enable_module_recovery=$enableval] ,
135135 [ enable_module_recovery=no] )
136136
137137AC_ARG_ENABLE ( jni ,
138- AS_HELP_STRING ( [ --enable-jni] ,[ enable libsecp256k1_jni ( default is no) ] ) ,
138+ AS_HELP_STRING ( [ --enable-jni] ,[ enable libsecp256k1_jni [ default=no ] ] ) ,
139139 [ use_jni=$enableval] ,
140140 [ use_jni=no] )
141141
142142AC_ARG_WITH ( [ field] , [ AS_HELP_STRING ( [ --with-field=64bit|32bit|auto] ,
143- [ Specify Field Implementation. Default is auto] ) ] ,[ req_field=$withval] , [ req_field=auto] )
143+ [ finite field implementation to use [ default= auto] ] ) ] ,[ req_field=$withval] , [ req_field=auto] )
144144
145145AC_ARG_WITH ( [ bignum] , [ AS_HELP_STRING ( [ --with-bignum=gmp|no|auto] ,
146- [ Specify Bignum Implementation. Default is auto] ) ] ,[ req_bignum=$withval] , [ req_bignum=auto] )
146+ [ bignum implementation to use [ default= auto] ] ) ] ,[ req_bignum=$withval] , [ req_bignum=auto] )
147147
148148AC_ARG_WITH ( [ scalar] , [ AS_HELP_STRING ( [ --with-scalar=64bit|32bit|auto] ,
149- [ Specify scalar implementation. Default is auto] ) ] ,[ req_scalar=$withval] , [ req_scalar=auto] )
149+ [ scalar implementation to use [ default= auto] ] ) ] ,[ req_scalar=$withval] , [ req_scalar=auto] )
150150
151- AC_ARG_WITH ( [ asm] , [ AS_HELP_STRING ( [ --with-asm=x86_64|arm|no|auto]
152- [ Specify assembly optimizations to use. Default is auto (experimental: arm)] ) ] ,[ req_asm=$withval] , [ req_asm=auto] )
151+ AC_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] )
153+
154+ AC_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] )
153162
154163AC_CHECK_TYPES ( [ __int128] )
155164
@@ -387,6 +396,28 @@ case $set_scalar in
387396 ;;
388397esac
389398
399+ # set ecmult window size
400+ if test x"$req_ecmult_window" = x"auto"; then
401+ set_ecmult_window=15
402+ else
403+ set_ecmult_window=$req_ecmult_window
404+ fi
405+
406+ error_window_size=[ 'window size for ecmult precomputation not an integer in range [ 2..24] or "auto"']
407+ case $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+ ;;
419+ esac
420+
390421if test x"$use_tests" = x"yes"; then
391422 SECP_OPENSSL_CHECK
392423 if test x"$has_openssl_ec" = x"yes"; then
@@ -516,6 +547,7 @@ echo " asm = $set_asm"
516547echo " bignum = $set_bignum"
517548echo " field = $set_field"
518549echo " scalar = $set_scalar"
550+ echo " ecmult window size = $set_ecmult_window"
519551echo
520552echo " CC = $CC"
521553echo " CFLAGS = $CFLAGS"
0 commit comments