@@ -22,7 +22,7 @@ SKIP_INCLUDE?=
2222SKIP_COQSCRIPTS_INCLUDE? =
2323ifneq ($(SKIP_INCLUDE ) ,1)
2424# this include must be before all: and validate: which are overriden below
25- - include Makefile.coq
25+ include Makefile.composed
2626ifneq ($(SKIP_COQSCRIPTS_INCLUDE ) ,1)
2727include etc/coq-scripts/Makefile.vo_closure
2828endif
@@ -242,8 +242,6 @@ DEPFLAGS_NL :=
242242ifneq ($(EXTERNAL_REWRITER ) ,1)
243243DEPFLAGS_NL: =-Q ${CURDIR_SAFE}/$(REWRITER_SRC ) /$(REWRITER_NAME ) $(REWRITER_NAME ) \n-I ${CURDIR_SAFE}/$(REWRITER_SRC ) /$(REWRITER_NAME ) /Util/plugins\n$(DEPFLAGS_NL )
244244deps : rewriter
245- $(VOFILES ) : | rewriter
246- $(ALLDFILES ) : | rewriter
247245cleanall :: clean-rewriter
248246install : install-rewriter
249247endif
@@ -252,8 +250,6 @@ ifneq ($(SKIP_BEDROCK2),1)
252250ifneq ($(EXTERNAL_BEDROCK2 ) ,1)
253251DEPFLAGS_NL: =-Q ${CURDIR_SAFE}/$(RUPICOLA_SRC ) /$(RUPICOLA_NAME ) $(RUPICOLA_NAME ) \n-Q ${CURDIR_SAFE}/$(BEDROCK2_SRC ) /$(BEDROCK2_NAME ) $(BEDROCK2_NAME ) \n-Q ${CURDIR_SAFE}/$(BEDROCK2_EXAMPLES_SRC ) /$(BEDROCK2_EXAMPLES_NAME ) $(BEDROCK2_EXAMPLES_NAME ) \n-Q ${CURDIR_SAFE}/$(BEDROCK2_COMPILER_SRC ) /$(BEDROCK2_COMPILER_NAME ) $(BEDROCK2_COMPILER_NAME ) \n-Q ${CURDIR_SAFE}/$(RISCV_SRC ) /$(RISCV_NAME ) $(RISCV_NAME ) \n$(DEPFLAGS_NL )
254252deps : bedrock2 bedrock2-compiler rupicola
255- $(VOFILES ) : | bedrock2 bedrock2-compiler rupicola
256- $(ALLDFILES ) : | bedrock2 bedrock2-compiler rupicola
257253cleanall :: clean-bedrock2 clean-bedrock2-compiler clean-rupicola
258254install : install-bedrock2 install-bedrock2-compiler install-rupicola
259255endif
@@ -262,85 +258,72 @@ endif
262258ifneq ($(EXTERNAL_COQUTIL ) ,1)
263259DEPFLAGS_NL: =-Q ${CURDIR_SAFE}/$(COQUTIL_SRC ) /$(COQUTIL_NAME ) $(COQUTIL_NAME ) \n$(DEPFLAGS_NL )
264260deps : coqutil
265- $(VOFILES ) : | coqutil
266- $(ALLDFILES ) : | coqutil
267261cleanall :: clean-coqutil
268262install : install-coqutil
269263endif
270264
271265ifneq ($(EXTERNAL_COQPRIME ) ,1)
272266DEPFLAGS_NL: =-Q ${CURDIR_SAFE}/$(COQPRIME_SRC ) /$(COQPRIME_NAME ) $(COQPRIME_NAME ) \n$(DEPFLAGS_NL )
273267deps : coqprime
274- $(VOFILES ) : | coqprime
275- $(ALLDFILES ) : | coqprime
276268cleanall :: clean-coqprime
277269install : install-coqprime
278270endif
279271
280272DEPFLAGS: =$(subst \n, ,$(DEPFLAGS_NL ) )
281273
282- coqprime :
283- $(MAKE ) --no-print-directory -C $(COQPRIME_FOLDER ) src/Coqprime/PrimalityTest/Zp.vo src/Coqprime/PrimalityTest/PocklingtonCertificat.vo
274+ coqprime : $(COQPRIME_VOFILES )
284275
285276coqprime-all : coqprime
286- $(MAKE ) --no-print-directory -C $(COQPRIME_FOLDER )
287277
288278clean-coqprime :
289- $( MAKE ) --no-print-directory -C $( COQPRIME_FOLDER ) clean
279+ rm -f $( COQPRIME_VOFILES ) $( COQPRIME_VOFILES:.vo=.vos ) $( COQPRIME_VOFILES:.vo=.vok ) $( COQPRIME_VOFILES:.vo=.glob )
290280
291281install-coqprime :
292282 $(MAKE ) --no-print-directory -C $(COQPRIME_FOLDER ) install
293283
294- rewriter :
295- $(MAKE ) --no-print-directory -C $(REWRITER_FOLDER )
284+ rewriter : $(REWRITER_VOFILES )
296285
297286clean-rewriter :
298- $( MAKE ) --no-print-directory -C $( REWRITER_FOLDER ) clean
287+ rm -f $( REWRITER_VOFILES ) $( REWRITER_VOFILES:.vo=.vos ) $( REWRITER_VOFILES:.vo=.vok ) $( REWRITER_VOFILES:.vo=.glob )
299288
300289install-rewriter :
301290 $(MAKE ) --no-print-directory -C $(REWRITER_FOLDER ) install
302291
303- coqutil :
304- $(MAKE ) --no-print-directory -C $(COQUTIL_FOLDER )
292+ coqutil : $(COQUTIL_VOFILES )
305293
306294clean-coqutil :
307- $( MAKE ) --no-print-directory -C $( COQUTIL_FOLDER ) clean
295+ rm -f $( COQUTIL_VOFILES ) $( COQUTIL_VOFILES:.vo=.vos ) $( COQUTIL_VOFILES:.vo=.vok ) $( COQUTIL_VOFILES:.vo=.glob )
308296
309297install-coqutil :
310298 $(MAKE ) --no-print-directory -C $(COQUTIL_FOLDER ) install
311299
312- bedrock2 : coqutil
313- $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) bedrock2_ex
300+ bedrock2 : coqutil $(BEDROCK_VOFILES ) $(BEDROCK_EXAMPLES_VOFILES )
314301
315302clean-bedrock2 :
316- $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) clean_bedrock2
303+ rm -f $(BEDROCK_VOFILES ) $(BEDROCK_VOFILES:.vo=.vos ) $(BEDROCK_VOFILES:.vo=.vok ) $(BEDROCK_VOFILES:.vo=.glob )
304+ rm -f $(BEDROCK_EXAMPLES_VOFILES ) $(BEDROCK_EXAMPLES_VOFILES:.vo=.vos ) $(BEDROCK_EXAMPLES_VOFILES:.vo=.vok ) $(BEDROCK_EXAMPLES_VOFILES:.vo=.glob )
317305
318306install-bedrock2 :
319307 $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) install_bedrock2
320308
321- bedrock2-compiler : bedrock2
322- $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) compiler_noex
309+ bedrock2-compiler : bedrock2 $(BEDROCK_COMPILER_VOFILES )
323310
324311clean-bedrock2-compiler :
325- $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) clean_deps
326- $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) clean_compiler
312+ rm -f $(BEDROCK_COMPILER_VOFILES ) $(BEDROCK_COMPILER_VOFILES:.vo=.vos ) $(BEDROCK_COMPILER_VOFILES:.vo=.vok ) $(BEDROCK_COMPILER_VOFILES:.vo=.glob )
327313
328314install-bedrock2-compiler :
329315 $(MAKE ) --no-print-directory -C $(BEDROCK2_ROOT_FOLDER ) install_compiler
330316
331- rupicola : bedrock2 | bedrock2-compiler
332- $(MAKE ) --no-print-directory -C $(RUPICOLA_FOLDER ) all
317+ rupicola : bedrock2 bedrock2-compiler $(RUPICOLA_VOFILES )
333318
334319clean-rupicola :
335- $( MAKE ) --no-print-directory -C $( RUPICOLA_FOLDER ) clean
320+ rm -f $( RUPICOLA_VOFILES ) $( RUPICOLA_VOFILES:.vo=.vos ) $( RUPICOLA_VOFILES:.vo=.vok ) $( RUPICOLA_VOFILES:.vo=.glob )
336321
337322install-rupicola :
338323 $(MAKE ) --no-print-directory -C $(RUPICOLA_FOLDER ) install_lib
339324endif
340325
341- Makefile.coq : Makefile _CoqProject
342- $(SHOW ) ' COQ_MAKEFILE -f _CoqProject > $@'
343- $(HIDE )$(COQBIN ) coq_makefile -f _CoqProject INSTALLDEFAULTROOT = $(INSTALLDEFAULTROOT ) -o $@
326+
344327
345328include Makefile.examples
346329include Makefile.standalone
@@ -355,6 +338,10 @@ $(STANDALONE_JS_OF_OCAML:%=src/ExtractionJsOfOCaml/%.ml): src/StandaloneJsOfOCam
355338$(BEDROCK2_STANDALONE_JS_OF_OCAML:% =src/ExtractionJsOfOCaml/%.ml): src/Bedrock/Standalone/StandaloneJsOfOCamlMain.vo
356339# $(PERF_STANDALONE:%=src/ExtractionHaskell/%.hs): src/Rewriter/PerfTesting/StandaloneHaskellMain.vo
357340
341+ src/ExtractionOCaml/% .ml : private COQLIBS += $(FIATCRYPTO_COQFLAGS )
342+ src/ExtractionJsOfOCaml/% .ml : private COQLIBS += $(FIATCRYPTO_COQFLAGS )
343+ src/ExtractionHaskell/% .hs : private COQLIBS += $(FIATCRYPTO_COQFLAGS )
344+
358345pre-standalone-extracted : $(STANDALONE_OCAML:%=src/ExtractionOCaml/%.ml ) $(STANDALONE_JS_OF_OCAML:%=src/ExtractionJsOfOCaml/%.ml ) $(STANDALONE_HASKELL:%=src/ExtractionHaskell/%.hs )
359346
360347$(STANDALONE_OCAML:% =src/ExtractionOCaml/%.ml) : %.ml : %.v
@@ -491,8 +478,7 @@ $(ACCEPT_OUTPUTS) : accept-% :
491478 $(SHOW ) ' ACCEPT $*.out'
492479 $(HIDE ) cp -f $* .out output-tests/$* .expected
493480
494- clean ::
495- rm -f Makefile.coq
481+
496482
497483cleanall :: clean
498484 rm -rf src/Rewriter/PerfTesting/Specific/generated
@@ -536,25 +522,4 @@ printdeps::
536522printreversedeps ::
537523 $(HIDE )$(foreach vo,$(filter % .vo,$(MAKECMDGOALS ) ) ,echo '$(vo ) : $(call vo_reverse_closure,$(VOFILES ) ,$(vo ) ) '; )
538524
539- REGULAR_WITH_BEDROCK2_LIBS := $(sort $(subst /,.,$(patsubst src/% .vo,Crypto/% ,$(filter-out src/Bedrock/Everything.vo src/Everything.vo $(AFTER_EVERYTHING_VOFILES ) ,$(REGULAR_WITH_BEDROCK2_VOFILES ) ) ) ) )
540- REGULAR_EXCEPT_BEDROCK2_LIBS := $(sort $(subst /,.,$(patsubst src/% .vo,Crypto/% ,$(filter-out src/Bedrock/Everything.vo src/Everything.vo $(AFTER_EVERYTHING_VOFILES ) ,$(REGULAR_EXCEPT_BEDROCK2_VOFILES ) ) ) ) )
541- make_Everything_v_cmd_gen = { printf 'Require Import\n'; printf '%s\n' $(1 ) ; printf '.\n'; }
542- make_Everything_v_cmd := $(call make_Everything_v_cmd_gen,$(REGULAR_EXCEPT_BEDROCK2_LIBS ) )
543- make_Bedrock_Everything_v_cmd := $(call make_Everything_v_cmd_gen,$(REGULAR_WITH_BEDROCK2_LIBS ) )
544- EXISTING_EVERYTHING_V_CONTENTS: =$(shell cat src/Everything.v 2>&1)
545- EXISTING_BEDROCK_EVERYTHING_V_CONTENTS: =$(shell cat src/Bedrock/Everything.v 2>&1)
546- NEW_EVERYTHING_V_CONTENTS: =$(shell $(make_Everything_v_cmd ) )
547- NEW_BEDROCK_EVERYTHING_V_CONTENTS: =$(shell $(make_Bedrock_Everything_v_cmd ) )
548- ifneq ($(EXISTING_EVERYTHING_V_CONTENTS ) ,$(NEW_EVERYTHING_V_CONTENTS ) )
549- .PHONY : src/Everything.v
550- src/Everything.v :
551- $(SHOW ) ' ECHO > $@'
552- $(HIDE )$(make_Everything_v_cmd ) > $@
553- endif
554525
555- ifneq ($(EXISTING_BEDROCK_EVERYTHING_V_CONTENTS ) ,$(NEW_BEDROCK_EVERYTHING_V_CONTENTS ) )
556- .PHONY : src/Bedrock/Everything.v
557- src/Bedrock/Everything.v :
558- $(SHOW ) ' ECHO > $@'
559- $(HIDE )$(make_Bedrock_Everything_v_cmd ) > $@
560- endif
0 commit comments