BIN_DIR = /usr/local/bin
-REQUIRES = lablgtkmathview helm-cic_textual_parser helm-tex_cic_textual_parser \
- helm-cic_proof_checking helm-xml gdome2-xslt helm-cic_unification \
- helm-mathql helm-mathql_interpreter helm-mathql_generator \
- helm-tactics threads hbugs-client mathml-editor \
- helm-cic_transformations
+TEST_REQUIRES = \
+ helm-registry \
+ helm-mathql_interpreter \
+ helm-mathql_generator \
+ helm-tactics \
+ helm-cic_transformations \
+ helm-cic_textual_parser2 \
+ helm-cic_textual_parser \
+ helm-tex_cic_textual_parser \
+ mathml-editor \
+ lablgtkmathview
+REQUIRES = \
+ $(TEST_REQUIRES) \
+ gdome2-xslt \
+ hbugs-client
PREDICATES = "gnome,init,glade"
-OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -pp camlp4o
+OCAMLOPTIONS = \
+ -package "$(REQUIRES)" -predicates "$(PREDICATES)" -pp camlp4o -thread
OCAMLFIND = ocamlfind
-OCAMLC = $(OCAMLFIND) ocamlc -thread $(OCAMLOPTIONS)
-OCAMLOPT = $(OCAMLFIND) ocamlopt -thread $(OCAMLOPTIONS)
-OCAMLDEP = ocamldep -pp camlp4o
+OCAMLDEBUGOPTIONS = -g
+OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLDEBUGOPTIONS) $(OCAMLOPTIONS)
+OCAMLOPT = $(OCAMLFIND) ocamlopt $(OCAMLOPTIONS)
+OCAMLDEP = $(OCAMLFIND) ocamldep -pp camlp4o
+OCAMLDEBUG = wowcamldebug
LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+TEST_LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(TEST_REQUIRES))
+TEST_LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(TEST_REQUIRES))
all: styles gTopLevel
opt: styles gTopLevel.opt
+start:
+ $(MAKE) -C ../hbugs/ start
+stop:
+ $(MAKE) -C ../hbugs/ stop
+
+INTERFACE_FILES = \
+ proofEngine.mli \
+ logicalOperations.mli \
+ oldDisambiguate.mli \
+ disambiguatingParser.mli \
+ termEditor.mli \
+ texTermEditor.mli \
+ xmlDiff.mli \
+ chosenTransformer.mli \
+ termViewer.mli \
+ invokeTactics.mli \
+ hbugs.mli \
+ chosenTermEditor.mli \
+ helmGtkLogger.mli
+
DEPOBJS = \
- proofEngine.ml proofEngine.mli logicalOperations.ml \
- logicalOperations.mli disambiguate.ml disambiguate.mli termEditor.ml \
- termEditor.mli texTermEditor.ml texTermEditor.mli xmlDiff.ml \
- xmlDiff.mli termViewer.ml termViewer.mli invokeTactics.ml \
- invokeTactics.mli hbugs.ml hbugs.mli gTopLevel.ml
+ $(INTERFACE_FILES) $(INTERFACE_FILES:%.mli=%.ml) \
+ gTopLevel.ml regtest.ml testlibrary.ml batchParser.ml batchParser.mli
+
+TOPLEVELOBJS = $(INTERFACE_FILES:%.mli=%.cmo) gTopLevel.cmo
+TESTOBJS = \
+ oldDisambiguate.cmo \
+ disambiguatingParser.cmo \
+ batchParser.cmo
+REGTESTOBJS = $(TESTOBJS) regtest.cmo
+TESTLIBOBJS = $(TESTOBJS) testlibrary.cmo
-TOPLEVELOBJS = \
- proofEngine.cmo logicalOperations.cmo \
- disambiguate.cmo termEditor.cmo texTermEditor.cmo xmlDiff.cmo \
- termViewer.cmo invokeTactics.cmo hbugs.cmo gTopLevel.cmo
+$(INTERFACE_FILES:%.mli=%.cmo): $(LIBRARIES)
+$(INTERFACE_FILES:%.mli=%.cmx): $(LIBRARIES_OPT)
styles:
@echo "***********************************************************************"
$(OCAMLDEP) $(DEPOBJS) > .depend
gTopLevel: $(TOPLEVELOBJS) $(LIBRARIES)
- $(OCAMLC) -linkpkg -o gTopLevel $(TOPLEVELOBJS)
-
+ $(OCAMLC) -thread -linkpkg -o $@ $(TOPLEVELOBJS)
gTopLevel.opt: $(TOPLEVELOBJS:.cmo=.cmx) $(LIBRARIES_OPT)
- $(OCAMLOPT) -linkpkg -o gTopLevel.opt $(TOPLEVELOBJS:.cmo=.cmx)
+ $(OCAMLOPT) -thread -linkpkg -o $@ $(TOPLEVELOBJS:.cmo=.cmx)
+
+testlibrary: $(TESTLIBOBJS) $(TEST_LIBRARIES)
+ $(OCAMLFIND) ocamlc -thread $(OCAMLDEBUGOPTIONS) -linkpkg \
+ -package "$(TEST_REQUIRES)" -o $@ $(TESTLIBOBJS)
+testlibrary.opt: $(TESTLIBOBJS:.cmo=.cmx) $(TEST_LIBRARIES_OPT)
+ $(OCAMLFIND) ocamlopt -thread -linkpkg -package "$(TEST_REQUIRES)" -o $@ \
+ $(TESTLIBOBJS:.cmo=.cmx)
+
+regtest: $(REGTESTOBJS) $(TEST_LIBRARIES)
+ $(OCAMLFIND) ocamlc -thread $(OCAMLDEBUGOPTIONS) -linkpkg \
+ -package "$(TEST_REQUIRES)" -o $@ $(REGTESTOBJS)
+regtest.opt: $(REGTESTOBJS:.cmo=.cmx) $(TEST_LIBRARIES_OPT)
+ $(OCAMLFIND) ocamlopt -thread -linkpkg -package "$(TEST_REQUIRES)" -o $@ \
+ $(REGTESTOBJS:.cmo=.cmx)
.SUFFIXES: .ml .mli .cmo .cmi .cmx
.ml.cmo:
$(TOPLEVELOBJS:.cmo=.cmx)): $(LIBRARIES_OPT)
clean:
- rm -f *.cm[iox] *.o gTopLevel gTopLevel.opt
-
+ rm -f *.cm[iox] *.o gTopLevel{,.opt} regtest{,.opt} testlibrary{,.opt}
install:
cp gTopLevel gTopLevel.opt $(BIN_DIR)
-
uninstall:
rm -f $(BIN_DIR)/gTopLevel $(BIN_DIR)/gTopLevel.opt
-.PHONY: install uninstall clean
+.PHONY: install uninstall clean test
+
+INTESTS := $(wildcard tests/*.cic)
+OUTTESTS := $(patsubst %, %.test, $(INTESTS))
+gentest: $(OUTTESTS)
+cleantest:
+ rm -f $(OUTTESTS)
+tests/%.cic.test: tests/%.cic regtest
+ time ./regtest -gen $<
+test: regtest
+ ./regtest $(INTESTS) 2> /dev/null
+test.opt: regtest.opt
+ ./regtest.opt $(INTESTS) 2> /dev/null
+envtest: regtest
+ ./regtest -dump $(INTESTS) 2> /dev/null
+envtest.opt: regtest.opt
+ ./regtest.opt -dump $(INTESTS) 2> /dev/null
+librarytest: testlibrary
+ ./testlibrary -vars -varsprefix cic:/Coq index.txt 2>/dev/null >LOG &
+librarytest.opt: testlibrary.opt
+ ./testlibrary.opt -vars -varsprefix cic:/Coq index.txt 2>/dev/null >LOG &
+
+MAIN = ./gTopLevel
+ARGS =
+debug:
+ $(OCAMLFIND) query -recursive -predicates byte -a-format \
+ helm-cic_unification | \
+ sed 's/\(.*\)/load_printer "\1"/' \
+ > .debug_script
+ echo "install_printer CicMetaSubst.fppsubst" >> .debug_script
+ echo "install_printer CicMetaSubst.fppterm" >> .debug_script
+ echo "install_printer CicMetaSubst.fppmetasenv" >> .debug_script
+ ledit $(OCAMLDEBUG) \
+ -source .debug_script \
+ $(shell $(OCAMLFIND) query -recursive -i-format $(REQUIRES)) \
+ $(MAIN) $(ARGS)
ifneq ($(MAKECMDGOALS), depend)
include .depend
endif
-
-
-
-
-
-
-