File: Makefile

package info (click to toggle)
tyxml 2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 652 kB
  • sloc: ml: 8,786; makefile: 235; sh: 1
file content (96 lines) | stat: -rw-r--r-- 2,208 bytes parent folder | download
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
include ../Makefile.config
-include ../Makefile.local

FILES_F := xml_iter.ml   \
	   xml_print.ml  \
	   xhtml_f.ml    \
	   svg_f.ml      \
	   html5_f.ml    \

FILES := ${FILES_F} xml.ml xhtml.ml svg.ml html5.ml

DUCE_INTF  := xml_sigs_duce.mli xhtml_types_duce.mli xml_print_duce.mli xhtml_duce.mli

DUCE_FILES := xml_print_duce.ml xhtml_duce.ml

LIBS     := -package netstring

# SYNTAX := -ppopt ../syntax/pa_include.cmo -package camlp4 -syntax camlp4o

OCAMLC   := $(OCAMLFIND) ocamlc ${SYNTAX}
OCAMLOPT := $(OCAMLFIND) ocamlopt ${SYNTAX}
OCAMLDEP := $(OCAMLFIND) ocamldep ${SYNTAX}

OCAMLDUCEC   := ${OCAMLDUCEFIND} ocamlc${BYTEDBG} -thread
OCAMLDUCEOPT := ${OCAMLDUCEFIND} ocamlopt ${OPTDBG} -thread
OCAMLDUCEDEP := ${OCAMLDUCEFIND} ocamldep

all: byte opt

byte:: ${LIBNAME}.cma ${LIBNAME}_f.cma
opt:: ${LIBNAME}.cmxa ${LIBNAME}_f.cmxa
ifeq "${NATDYNLINK}" "yes"
opt:: ${LIBNAME}.cmxs ${LIBNAME}_f.cmxs
endif

${LIBNAME}.cma: $(FILES:.ml=.cmo)
	$(OCAMLC) -a $^ -o $@

${LIBNAME}.cmxa: $(FILES:.ml=.cmx)
	$(OCAMLOPT) -a $^ -o $@

${LIBNAME}_f.cma: $(FILES_F:.ml=.cmo)
	$(OCAMLC) -a $^ -o $@

${LIBNAME}_f.cmxa: $(FILES_F:.ml=.cmx)
	$(OCAMLOPT) -a $^ -o $@

##########

ifeq "${OCAMLDUCE}" "yes"
byte:: ${LIBNAME}_duce.cma
opt:: ${LIBNAME}_duce.cmxa
ifeq "${NATDYNLINK}" "yes"
opt:: ${LIBNAME}_duce.cmxs
endif
endif

${LIBNAME}_duce.cma: ${DUCE_FILES:.ml=.cmo}
	${OCAMLC} -a -o $@ $^
${LIBNAME}_duce.cmxa: ${DUCE_FILES:.ml=.cmx}
	${OCAMLOPT} -a -o $@ $^

##########

${DUCE_INTF:.mli=.cmi}: %.cmi: %.mli
	$(OCAMLDUCEC) ${LIBS} -c $<
${DUCE_FILES:.ml=.cmo}: %.cmo: %.ml
	$(OCAMLDUCEC) ${LIBS} -c $<
${DUCE_FILES:.ml=.cmx}: %.cmx: %.ml
	$(OCAMLDUCEOPT) ${LIBS} -c $<

%.cmi: %.mli
	$(OCAMLC) ${LIBS} -c $<
%.cmo: %.ml
	$(OCAMLC) ${LIBS} -c $<
%.cmx: %.ml
	$(OCAMLOPT) ${LIBS} -c $<
%.cmxs: %.cmxa
	$(OCAMLOPT) -shared -linkall -o $@ $<

# Clean up
clean:
	-rm -f *.cm[ioax] *.cmxa *.cmxs *.o *.a *.annot
distclean: clean
	-rm -f *~ \#* .\#*

depend:
	$(OCAMLDEP) $(filter-out ${DUCE_INTF}, ${wildcard *.mli}) > .depend
	$(OCAMLDEP) $(filter-out ${DUCE_FILES}, ${wildcard *.ml}) >> .depend
ifeq "${OCAMLDUCE}" "yes"
	${OCAMLDUCEDEP} ${DUCE_FILES} ${DUCE_INTF} >> .depend
endif

FORCE:

-include .depend