File: Makefile

package info (click to toggle)
ocaml-stdcompat 19-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,516 kB
  • sloc: ml: 27,806; sh: 875; makefile: 246
file content (96 lines) | stat: -rw-r--r-- 2,004 bytes parent folder | download | duplicates (3)
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 $@