-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
61 lines (45 loc) · 1.27 KB
/
Makefile
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
# OCaml programs for compiling
OCAMLC = ocamlc
OCAMLDEBUG = ocamlc -g
OCAMLOPT = ocamlopt
OCAMLFIND = ocamlfind
OCAMLDOC = ocamldoc
OCAMLDEP = ocamldep
# Libs to link with
REQUIRES = unix str o9p threads
# Sources
SOURCES = src/util.ml src/wmii.ml \
plugin/xwarppointer.mli plugin/xwarppointer.ml \
plugin/tmp_tag.mli plugin/tmp_tag.ml \
plugin/acpi.mli plugin/acpi.ml \
plugin/gajim.mli plugin/gajim.ml \
plugin/date.mli plugin/date.ml \
src/wmii_conf.ml src/wmiirc.ml
INCLUDES = -I src -I plugin
# The output to create
CLIENT = wmiirc
OCAMLFLAGS=$(INCLUDES) -thread
OCAMLOPTFLAGS=$(INCLUDES) -thread
OCAMLFINDFLAGS=-package "$(REQUIRES)"
# Automagic stuff below
#
OBJX = $(patsubst %.ml,%.cmx,$(SOURCES))
.SUFFIXES: .cmo .cmi .cmx .ml .mli
.PHONY: all
all: $(CLIENT)
$(CLIENT): $(OBJX)
$(OCAMLFIND) $(OCAMLOPT) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) -linkpkg -o $@ \
$^
.ml.cmo:
$(OCAMLFIND) $(OCAMLC) $(OCAMLFLAGS) $(OCAMLFINDFLAGS) $<
.mli.cmi:
$(OCAMLFIND) $(OCAMLC) -c $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $<
.ml.cmx:
$(OCAMLFIND) $(OCAMLOPT) -c $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $<
.PHONY: clean
clean:
rm -f src/*.cmx src/*.cmi src/*.o plugin/*.cmi plugin/*.o plugin/*.cmx \
depend $(CLIENT)
depend:
$(OCAMLDEP) $(SOURCES) > depend
include depend