@@ -52,6 +52,7 @@ noinst_HEADERS += src/hash_impl.h
52
52
noinst_HEADERS += src/field.h
53
53
noinst_HEADERS += src/field_impl.h
54
54
noinst_HEADERS += src/bench.h
55
+ noinst_HEADERS += src/basic-config.h
55
56
noinst_HEADERS += contrib/lax_der_parsing.h
56
57
noinst_HEADERS += contrib/lax_der_parsing.c
57
58
noinst_HEADERS += contrib/lax_der_privatekey_parsing.h
@@ -125,37 +126,37 @@ exhaustive_tests_LDFLAGS = -static
125
126
TESTS += exhaustive_tests
126
127
endif
127
128
128
- 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 )
129
132
gen_ecmult_static_pre_g_SOURCES = src/gen_ecmult_static_pre_g.c
130
- # 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`.
131
141
src/ecmult_static_pre_g.h :
132
142
$(MAKE ) $(AM_MAKEFLAGS ) gen_ecmult_static_pre_g$(EXEEXT )
133
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 )
134
147
135
- if USE_ECMULT_STATIC_PRECOMPUTATION
136
- 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 )
137
151
138
- gen_ecmult_gen_static_prec_table_OBJECTS = gen_ecmult_gen_static_prec_table.o
139
- gen_ecmult_gen_static_prec_table_BIN = gen_ecmult_gen_static_prec_table$(BUILD_EXEEXT )
140
- $(gen_ecmult_gen_static_prec_table_OBJECTS ) : src/gen_ecmult_gen_static_prec_table.c src/libsecp256k1-config.h
141
- $(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
142
154
143
- $(gen_ecmult_gen_static_prec_table_BIN ) : $(gen_ecmult_gen_static_prec_table_OBJECTS )
144
- $(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 )
145
158
146
- $(libsecp256k1_la_OBJECTS ) : src/ecmult_gen_static_prec_table.h
147
- $(tests_OBJECTS ) : src/ecmult_gen_static_prec_table.h
148
- $(exhaustive_tests_OBJECTS ) : src/ecmult_gen_static_prec_table.h
149
- $(bench_internal_OBJECTS ) : src/ecmult_gen_static_prec_table.h
150
- $(bench_ecmult_OBJECTS ) : src/ecmult_gen_static_prec_table.h
151
-
152
- src/ecmult_gen_static_prec_table.h : $(gen_ecmult_gen_static_prec_table_BIN )
153
- ./$(gen_ecmult_gen_static_prec_table_BIN )
154
-
155
- CLEANFILES = $(gen_ecmult_gen_static_prec_table_BIN ) src/ecmult_gen_static_prec_table.h
156
- endif
157
-
158
- 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
159
160
160
161
if ENABLE_MODULE_ECDH
161
162
include src/modules/ecdh/Makefile.am.include
0 commit comments