BIN_DIR = /usr/local/bin REQUIRES = unix helm-cic_textual_parser \ helm-mathql helm-mathql_interpreter helm-mathql_generator PREDICATES = OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" OCAMLC = ocamlfind ocamlc $(OCAMLOPTIONS) OCAMLOPT = ocamlfind ocamlopt $(OCAMLOPTIONS) OCAMLDEP = ocamldep OCAMLYACC = ocamlyacc OCAMLLEX = ocamllex 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)) MQTOP = mqtop.ml MQITOP = mqitop.ml MQGTOP = mqgtop.ml DEPOBJS = $(MQTOP) $(MQITOP) $(MQGTOP) AUXOBJS = mQGTopParser.ml mQGTopParser.mli mQGTopLexer.ml all: $(DEPOBJS:.ml=) opt: $(DEPOBJS:.ml=.opt) depend: $(AUXOBJS) $(OCAMLDEP) $(DEPOBJS) $(AUXOBJS) > .depend mqtop: $(MQTOP:.ml=.cmo) $(LIBRARIES) $(OCAMLC) -linkpkg -o mqtop $(MQTOP:.ml=.cmo) mqtop.opt: $(MQTOP:.ml=.cmx) $(LIBRARIES_OPT) $(OCAMLOPT) -linkpkg -o mqtop.opt $(MQTOP:.ml=.cmx) mqitop: $(MQITOP:.ml=.cmo) $(LIBRARIES) $(OCAMLC) -linkpkg -o mqitop $(MQITOP:.ml=.cmo) mqitop.opt: $(MQITOP:.ml=.cmx) $(LIBRARIES_OPT) $(OCAMLOPT) -linkpkg -o mqitop.opt $(MQITOP:.ml=.cmx) mqgtop: mQGTopParser.cmi $(AUXOBJS:.ml=.cmo) $(MQGTOP:.ml=.cmo) $(LIBRARIES) $(OCAMLC) -linkpkg -o mqgtop $(AUXOBJS:.ml=.cmo) $(MQGTOP:.ml=.cmo) mqgtop.opt: $(AUXOBJS:.ml=.cmx) $(MQGTOP:.ml=.cmx) $(LIBRARIES_OPT) $(OCAMLOPT) -linkpkg -o mqgtop.opt $(AUXOBJS:.ml=.cmx) $(MQGTOP:.ml=.cmx) .SUFFIXES: .ml .mli .cmo .cmi .cmx .mly .mll .ml.cmo: $(LIBRARIES) $(OCAMLC) -c $< .mli.cmi: $(LIBRARIES) $(OCAMLC) -c $< .ml.cmx: $(LIBRARIES_OPT) $(OCAMLOPT) -c $< .mly.ml: $(OCAMLYACC) $< .mly.mli: $(OCAMLYACC) $< .mll.ml: $(OCAMLLEX) $< $(DEPOBJS:%.ml=%.cmo): $(LIBRARIES) $(DEPOBJS:%.ml=%.cmx): $(LIBRARIES_OPT) clean: rm -f *.cm[iox] *.o $(DEPOBJS:.ml=) $(DEPOBJS:.ml=.opt) \ mQGTopParser.ml mQGTopParser.mli mQGTopLexer.ml install: cp $(DEPOBJS:.ml=) $(DEPOBJS:.ml=.opt) $(BIN_DIR) uninstall: cd $(BIN_DIR) rm -f $(DEPOBJS:.ml=) $(DEPOBJS:.ml=.opt) .PHONY: install uninstall clean ifneq ($(MAKECMDGOALS), depend) include .depend endif