aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib/extraction/test/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/extraction/test/Makefile')
-rw-r--r--contrib/extraction/test/Makefile112
1 files changed, 73 insertions, 39 deletions
diff --git a/contrib/extraction/test/Makefile b/contrib/extraction/test/Makefile
index bfc5ad0e5..9d91de87b 100644
--- a/contrib/extraction/test/Makefile
+++ b/contrib/extraction/test/Makefile
@@ -1,62 +1,96 @@
+#
+# General variables
+#
+
TOPDIR=../../..
-INCL= -I theories/Arith \
--I theories/Bool \
--I theories/Init \
--I theories/IntMap \
--I theories/Lists \
--I theories/Logic \
--I theories/Reals \
--I theories/Relations \
--I theories/Sets \
--I theories/Wellfounded \
--I theories/ZArith
+# Files with axioms to be realized: can't be extracted directly
+AXIOMSVO:= \
+theories/Arith/Arith.vo \
+theories/Lists/List.vo \
+theories/Reals/% \
+theories/Relations/Rstar.vo \
+theories/Sets/Integers.vo \
+theories/ZArith/Zsyntax.vo
-MLNAMES=
-CMONAMES=
+DIRS:= $(shell (cd $(TOPDIR);find theories -type d ! -name CVS))
-include .names.ml
-include .names.cmo
+INCL:= $(patsubst %,-I %,$(DIRS))
-all: ml2v v2ml allml .depend allcmo
+VO:= $(shell (cd $(TOPDIR);find theories -name \*.vo))
-allml: .names.ml $(MLNAMES)
+VO:= $(filter-out $(AXIOMSVO),$(VO))
-allcmo: .names.cmo $(CMONAMES)
+ML:= $(shell test -x v2ml && ./v2ml $(VO))
-.depend: Makefile
- rm -f .depend; ocamldep $(INCL) theories/*/*.ml > .depend
+CMO:= $(patsubst %.ml,%.cmo,$(ML))
-.names.ml: Makefile v2ml
- rm -f .names.ml; \
- echo "MLNAMES= \\" > .names.ml; \
- V2ML=`pwd`/v2ml; \
- (cd $(TOPDIR); find theories -name \*.v -exec $$V2ML \{\} \;) | \
- sed -e "s/\.ml/.ml \\\\/" >> .names.ml
+#
+# General rules
+#
-.names.cmo: .names.ml
- rm -f .names.cmo; \
- sed -e "1s/ML/CMO/" -e "s/\.ml/.cmo/" < .names.ml > .names.cmo
+all: $(ML) .depend $(CMO) v2ml
-tree:
- for f in `cd $(TOPDIR); find theories -type d ! -name CVS`; do \
- mkdir -p $$f; \
- done
+depend: $(ML)
+ rm -f .depend; ocamldep $(INCL) $(ML) > .depend
-ml2v: ml2v.ml
- ocamlc -o $@ $<
-
-v2ml: v2ml.ml
- ocamlc -o $@ $<
+tree:
+ mkdir -p $(DIRS)
%.cmo:%.ml
ocamlc $(INCL) -c -i $<
-%.ml:
+$(ML): ml2v
./extract `./ml2v $@`
clean:
rm -f theories/*/*.ml theories/*/*.cm*
+#
+# Extraction of Reals
+#
+
+REALSML:= \
+theories/Reals/typeSyntax.ml \
+theories/Reals/addReals.ml \
+theories/Reals/rdefinitions.ml \
+theories/Reals/raxioms.ml \
+theories/Reals/r_Ifp.ml \
+theories/Reals/rbase.ml \
+theories/Reals/rbasic_fun.ml \
+theories/Reals/rlimit.ml \
+theories/Reals/rderiv.ml
+
+REALSCMO:= $(patsubst %.ml,%.cmo,$(REALSML))
+
+reals: all $(REALSML) $(REALSCMO)
+
+realsml:
+ ./extract_reals
+ cp -f addReals.ml theories/Reals
+
+$(REALSML): realsml
+
+
+#
+# Utilities
+#
+
+ml2v: ml2v.ml
+ ocamlc -o $@ $<
+
+v2ml: v2ml.ml
+ ocamlc -o $@ $<
+ $(MAKE)
+
+#
+# The End
+#
+
+.PHONY: all tree clean reals realsml depend
+
include .depend
+
+
+