1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
OCAMLFIND := ocamlfind
OCAMLFIND_AVAILABLE := $(shell \
if $(OCAMLFIND) query -help >/dev/null 2>&1; then \
echo true; \
else \
echo false; \
fi \
)
ifeq ($(OCAMLFIND_AVAILABLE),true)
OCAMLOPT := $(OCAMLFIND) ocamlopt
OCAMLC := $(OCAMLFIND) ocamlc
OCAMLDOC := $(OCAMLFIND) ocamldoc
OCAMLDEP := $(OCAMLFIND) ocamldep
OCAMLFLAGS := -package unix,compiler-libs.common
OCAMLLDFLAGS := -linkpkg
else
OCAMLOPT := $(shell \
if ocamlopt.opt -version >/dev/null 2>&1; then \
echo ocamlopt.opt; \
elif ocamlopt -version >/dev/null 2>&1; then \
echo ocamlopt; \
fi \
)
OCAMLC := $(shell \
if ocamlc.opt -version >/dev/null 2>&1; then \
echo ocamlc.opt; \
elif ocamlc -version >/dev/null 2>&1; then \
echo ocamlc; \
fi \
)
OCAMLDOC := ocamldoc
OCAMLDEP := ocamldep
endif
OCAMLFLAGS += -g
OCAMLCFLAGS += $(OCAMLFLAGS)
OCAMLLDFLAGS += $(OCAMLFLAGS)
ifeq ($(OCAMLC),)
$(error There is no OCaml compiler available in PATH)
endif
ifeq ($(OCAMLOPT),)
OCAMLOPT_AVAILABLE := false
else
OCAMLOPT_AVAILABLE := $(shell \
if $(OCAMLOPT) -version >/dev/null 2>&1; then \
echo true; \
else \
echo false; \
fi \
)
endif
ifeq ($(OCAMLOPT_AVAILABLE),true)
OCAMLBEST := $(OCAMLOPT)
CMOX := cmx
else
OCAMLBEST := $(OCAMLC)
CMOX := cmo
endif
MODULES := interface_tools.ml interface_dumper.ml interface_generator.ml
all : interface_dumper interface_generator
clean :
- rm -f $(MODULES:.ml=.cmo) $(MODULES:.ml=.cmx) $(MODULES:.ml=.cmi) \
$(MODULES:.ml=.o) .depend
.depend : $(MODULES) $(MODULES:.ml=.mli)
$(OCAMLDEP) $^ >$@
ifneq ($(MAKECMDGOALS),clean)
-include .depend
endif
interface_dumper : interface_tools.$(CMOX) interface_dumper.$(CMOX)
$(OCAMLBEST) $(OCAMLLDFLAGS) $^ -o $@
interface_generator : interface_tools.$(CMOX) interface_generator.$(CMOX)
$(OCAMLBEST) $(OCAMLLDFLAGS) $^ -o $@
%.cmi : %.mli
$(OCAMLC) $(OCAMLCFLAGS) -c $< -o $@
%.cmo : %.ml
$(OCAMLC) $(OCAMLCFLAGS) -c $< -o $@
%.cmx : %.ml
$(OCAMLOPT) $(OCAMLCFLAGS) -c $< -o $@
|