METADIR = ../meta
-REQUIRES = threads hbugs-common helm-cic_proof_checking helm-tactics helm-getter
+REQUIRES = threads hbugs-common helm-cic_proof_checking helm-getter \
+ helm-cic_textual_parser \
+ helm-mathql helm-mathql_interpreter helm-tactics
COMMONOPTS = -package "$(REQUIRES)" -predicates "$(PREDICATES)"
OCAMLFIND = ocamlfind
-OCAMLC = $(OCAMLFIND) ocamlc $(COMMONOPTS)
-OCAMLOPT = $(OCAMLFIND) opt $(COMMONOPTS)
+OCAMLC = $(OCAMLFIND) ocamlc -thread $(COMMONOPTS)
+OCAMLOPT = $(OCAMLFIND) opt -thread $(COMMONOPTS)
+OCAMLDEP = $(OCAMLFIND) ocamldep -package "$(REQUIRES)"
LINK_OPTIONS = -thread -package threads -linkpkg
TUTORS_TEMPLATE = hbugs_tutor.TPL.ml
TUTORS_INDEX = INDEX.xml
CTL = ./sabba.sh
TUTORS_OPT = $(patsubst %,%.opt,$(TUTORS))
GENERATED_TUTORS_SRC = $(patsubst %,%.ml,$(GENERATED_TUTORS))
-COMMON = hbugs_tutors_common.cmo
+COMMON = hbugs_deity.cmo hbugs_tutors_common.cmo
COMMON_OPT = $(patsubst %.cmo,%.cmx,$(COMMON))
+DEPS = $(shell $(OCAMLFIND) query -recursive -predicates byte -format "%d/%a" $(REQUIRES))
+DEPSOPT = $(shell $(OCAMLFIND) query -recursive -predicates native -format "%d/%a" $(REQUIRES))
+
all: byte
world: byte opt
byte: $(TUTORS)
$(GENERATED_TUTORS_SRC): $(TUTORS_TEMPLATE) $(TUTORS_INDEX)
$(BUILD_TUTORS)
-%_tutor: $(COMMON) %_tutor.ml
- $(OCAMLC) $(LINK_OPTIONS) -o $@ $^
-%_tutor.opt: $(COMMON_OPT) %_tutor.ml
- $(OCAMLOPT) $(LINK_OPTIONS) -o $@ $^
+%_tutor: $(DEPS) $(COMMON) %_tutor.ml
+ $(OCAMLC) $(LINK_OPTIONS) -o $@ $(COMMON) $*_tutor.ml
+%_tutor.opt: $(DEPSOPT) $(COMMON_OPT) %_tutor.ml
+ $(OCAMLOPT) $(LINK_OPTIONS) -o $@ $(COMMON_OPT) $*_tutor.ml
-hbugs_tutors_common.cmi: hbugs_tutors_common.mli
+%.cmi: %.mli
$(OCAMLC) -c $<
-$(COMMON): hbugs_tutors_common.ml hbugs_tutors_common.cmi
+%.cmo: %.ml %.cmi
$(OCAMLC) -c $<
-$(COMMON_OPT): hbugs_tutors_common.ml
+%.cmx: %.ml %.cmi
$(OCAMLOPT) -c $<
clean:
distclean: clean
rm -f run/*
.PHONY: all world byte opt clean start stop
+.PRECIOUS: %.cmi