-OCAMLOPTIONS = -package netstring -package netclient -package pxp
-
+REQUIRES = helm-xml helm-cic_proof_checking
+PREDICATES = miniReduction
+OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -pp camlp4o
OCAMLDEP = ocamldep
OCAMLFIND = ocamlfind
OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLOPTIONS)
OCAMLOPT = $(OCAMLFIND) ocamlopt $(OCAMLOPTIONS)
+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))
+
all: mk_forward
opt: mk_forward.opt
-DEPOBJS = xml.ml xml.mli csc_pxp_reader.ml configuration.ml \
- clientHTTP.ml clientHTTP.mli cic.ml deannotate.ml \
- uriManager.ml uriManager.mli getter.ml getter.mli \
- pxpUriResolver.ml cicParser3.ml cicParser3.mli \
- cicParser2.ml cicParser2.mli cicParser.ml \
- cicParser.mli cicSubstitution.ml cicSubstitution.mli \
- cicMiniReduction.ml cicMiniReduction.mli mk_forward.ml
-
-MKFORWARDOBJS = xml.cmo csc_pxp_reader.cmo configuration.cmo \
- clientHTTP.cmo cic.cmo deannotate.cmo \
- uriManager.cmo getter.cmo pxpUriResolver.ml \
- cicParser3.cmo cicParser2.cmo cicParser.cmo \
- cicSubstitution.cmo cicMiniReduction.cmo \
- mk_forward.cmo
+DEPOBJS = mk_forward.ml
+
+MKFORWARDOBJS = mk_forward.cmo
depend:
$(OCAMLDEP) $(DEPOBJS) > .depend
-mk_forward: $(MKFORWARDOBJS)
+mk_forward: $(MKFORWARDOBJS) $(LIBRARIES)
$(OCAMLC) -linkpkg -o mk_forward $(MKFORWARDOBJS)
-mk_forward.opt: $(MKFORWARDOBJS:.cmo=.cmx)
+mk_forward.opt: $(MKFORWARDOBJS:.cmo=.cmx) $(LIBRARIES_OPT)
$(OCAMLOPT) -linkpkg -o mk_forward.opt $(MKFORWARDOBJS:.cmo=.cmx)
.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
+.ml.cmo: $(LIBRARIES)
$(OCAMLC) -c $<
-.mli.cmi:
+.mli.cmi: $(LIBRARIES)
$(OCAMLC) -c $<
-.ml.cmx:
+.ml.cmx: $(LIBRARIES_OPT)
$(OCAMLOPT) -c $<
clean: