@@ -28,6 +28,8 @@ noinst_HEADERS += src/ecmult_const.h
28
28
noinst_HEADERS += src/ecmult_const_impl.h
29
29
noinst_HEADERS += src/ecmult_gen.h
30
30
noinst_HEADERS += src/ecmult_gen_impl.h
31
+ noinst_HEADERS += src/ecmult_gen_build_table.h
32
+ noinst_HEADERS += src/ecmult_gen_build_table_impl.h
31
33
noinst_HEADERS += src/field_10x26.h
32
34
noinst_HEADERS += src/field_10x26_impl.h
33
35
noinst_HEADERS += src/field_5x52.h
@@ -50,6 +52,7 @@ noinst_HEADERS += src/hash_impl.h
50
52
noinst_HEADERS += src/field.h
51
53
noinst_HEADERS += src/field_impl.h
52
54
noinst_HEADERS += src/bench.h
55
+ noinst_HEADERS += src/basic-config.h
53
56
noinst_HEADERS += contrib/lax_der_parsing.h
54
57
noinst_HEADERS += contrib/lax_der_parsing.c
55
58
noinst_HEADERS += contrib/lax_der_privatekey_parsing.h
@@ -123,37 +126,37 @@ exhaustive_tests_LDFLAGS = -static
123
126
TESTS += exhaustive_tests
124
127
endif
125
128
126
- EXTRA_PROGRAMS = gen_ecmult_static_pre_g
129
+ # ## Precomputed tables
130
+ EXTRA_PROGRAMS = gen_ecmult_static_pre_g gen_ecmult_gen_static_prec_table
131
+ CLEANFILES = $(EXTRA_PROGRAMS )
127
132
gen_ecmult_static_pre_g_SOURCES = src/gen_ecmult_static_pre_g.c
128
- # See Automake manual, Section "Errors with distclean"
133
+ gen_ecmult_gen_static_prec_table_SOURCES = src/gen_ecmult_gen_static_prec_table.c
134
+
135
+ # See Automake manual, Section "Errors with distclean".
136
+ # We don't list any dependencies for the prebuilt files here because
137
+ # otherwise make's decision whether to rebuild them (even in the first
138
+ # build by a normal user) depends on mtimes, and thus is very fragile.
139
+ # This means that rebuilds of the prebuilt files always need to be
140
+ # forced by deleting them, e.g., by invoking `make clean-precomp`.
129
141
src/ecmult_static_pre_g.h :
130
142
$(MAKE ) $(AM_MAKEFLAGS ) gen_ecmult_static_pre_g$(EXEEXT )
131
143
./gen_ecmult_static_pre_g$(EXEEXT )
144
+ src/ecmult_gen_static_prec_table.h :
145
+ $(MAKE ) $(AM_MAKEFLAGS ) gen_ecmult_gen_static_prec_table$(EXEEXT )
146
+ ./gen_ecmult_gen_static_prec_table$(EXEEXT )
132
147
133
- if USE_ECMULT_STATIC_PRECOMPUTATION
134
- CPPFLAGS_FOR_BUILD +=-I$(top_srcdir ) -I$(builddir ) /src
148
+ PRECOMP = src/ecmult_gen_static_prec_table.h src/ecmult_static_pre_g.h
149
+ noinst_HEADERS += $(PRECOMP )
150
+ precomp : $(PRECOMP )
135
151
136
- gen_ecmult_gen_static_prec_table_OBJECTS = gen_ecmult_gen_static_prec_table.o
137
- gen_ecmult_gen_static_prec_table_BIN = gen_ecmult_gen_static_prec_table$(BUILD_EXEEXT )
138
- $(gen_ecmult_gen_static_prec_table_OBJECTS ) : src/gen_ecmult_gen_static_prec_table.c src/libsecp256k1-config.h
139
- $(CC_FOR_BUILD ) $(DEFS ) $(CPPFLAGS_FOR_BUILD ) $(SECP_CFLAGS_FOR_BUILD ) $(CFLAGS_FOR_BUILD ) -c $< -o $@
152
+ # One can use `make maintainerclean` instead of `make clean-precomp && make clean`.
153
+ maintainerclean-local : clean-precomp
140
154
141
- $(gen_ecmult_gen_static_prec_table_BIN ) : $(gen_ecmult_gen_static_prec_table_OBJECTS )
142
- $(CC_FOR_BUILD ) $(SECP_CFLAGS_FOR_BUILD ) $(CFLAGS_FOR_BUILD ) $(LDFLAGS_FOR_BUILD ) $^ -o $@
155
+ .PHONY : clean-precomp
156
+ clean-precomp :
157
+ rm -f $(PRECOMP )
143
158
144
- $(libsecp256k1_la_OBJECTS ) : src/ecmult_gen_static_prec_table.h
145
- $(tests_OBJECTS ) : src/ecmult_gen_static_prec_table.h
146
- $(exhaustive_tests_OBJECTS ) : src/ecmult_gen_static_prec_table.h
147
- $(bench_internal_OBJECTS ) : src/ecmult_gen_static_prec_table.h
148
- $(bench_ecmult_OBJECTS ) : src/ecmult_gen_static_prec_table.h
149
-
150
- src/ecmult_gen_static_prec_table.h : $(gen_ecmult_gen_static_prec_table_BIN )
151
- ./$(gen_ecmult_gen_static_prec_table_BIN )
152
-
153
- CLEANFILES = $(gen_ecmult_gen_static_prec_table_BIN ) src/ecmult_gen_static_prec_table.h
154
- endif
155
-
156
- EXTRA_DIST = autogen.sh src/gen_ecmult_gen_static_prec_table.c src/ecmult_static_pre_g.h src/basic-config.h
159
+ EXTRA_DIST = autogen.sh SECURITY.md
157
160
158
161
if ENABLE_MODULE_ECDH
159
162
include src/modules/ecdh/Makefile.am.include
0 commit comments