]> matita.cs.unibo.it Git - helm.git/blob - helm/matita/Makefile.in
coq.moo is now automatically generated. New targets:
[helm.git] / helm / matita / Makefile.in
1 export SHELL=/bin/bash
2
3 MAKEFLAGS+=--no-print-directory
4 OCAMLPATH = ../ocaml/METAS/
5 OCAMLFIND = OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH @OCAMLFIND@
6 CAMLP4O = @CAMLP4O@
7 LABLGLADECC = @LABLGLADECC@
8 REQUIRES = @FINDLIB_REQUIRES@
9 CREQUIRES = @FINDLIB_CREQUIRES@
10 DEPREQUIRES = @FINDLIB_DEPREQUIRES@
11 CLEANREQUIRES = @FINDLIB_CLEANREQUIRES@
12 HAVE_OCAMLOPT = @HAVE_OCAMLOPT@
13
14 OCAML_FLAGS = -pp $(CAMLP4O)
15 PKGS = -package "$(REQUIRES)"
16 CPKGS = -package "$(CREQUIRES)"
17 DEPPKGS = -package "$(DEPREQUIRES)"
18 CLEANPKGS = -package "$(CLEANREQUIRES)"
19 OCAML_THREADS_FLAGS = -thread
20 OCAML_DEBUG_FLAGS = -g
21 OCAMLC_FLAGS = $(OCAML_FLAGS) $(OCAML_THREADS_FLAGS)
22 OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS)
23 OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS)
24 OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS)
25 # objects for matita (GTK GUI)
26 NULL =
27 CMOS =                          \
28         buildTimeConf.cmo       \
29         matitaLog.cmo           \
30         matitaTypes.cmo         \
31         matitaMoo.cmo           \
32         matitaExcPp.cmo         \
33         matitaMisc.cmo          \
34         matitaDb.cmo            \
35         matitamakeLib.cmo       \
36         matitaInit.cmo  \
37         matitaSync.cmo          \
38         matitacleanLib.cmo      \
39         matitaDisambiguator.cmo \
40         matitaEngine.cmo        \
41         matitacLib.cmo          \
42         matitaScript.cmo        \
43         matitaGeneratedGui.cmo  \
44         matitaGtkMisc.cmo       \
45         matitaMathView.cmo      \
46         matitaGui.cmo           \
47         $(NULL)
48 # objects for matitac (batch compiler)
49 CCMOS =                         \
50         buildTimeConf.cmo       \
51         matitaLog.cmo           \
52         matitaTypes.cmo         \
53         matitaMoo.cmo           \
54         matitaExcPp.cmo         \
55         matitaMisc.cmo          \
56         matitaDb.cmo            \
57         matitamakeLib.cmo       \
58         matitaInit.cmo \
59         matitaSync.cmo          \
60         matitaDisambiguator.cmo \
61         matitacleanLib.cmo      \
62         matitaEngine.cmo        \
63         matitacLib.cmo          \
64         $(NULL)
65 CLEANCMOS = $(CCMOS)
66 MAKECMOS = $(CCMOS) 
67 PROGRAMS_BYTE = matita matitac cicbrowser matitadep matitaclean matitamake
68 PROGRAMS = $(PROGRAMS_BYTE) matitatop dump_moo
69 PROGRAMS_OPT = $(patsubst %,%.opt,$(PROGRAMS_BYTE))
70
71 all: matita.conf.xml $(PROGRAMS) coq.moo
72
73 matita.conf.xml: matita.conf.xml.sample
74         @if diff matita.conf.xml.sample matita.conf.xml 1>/dev/null 2>/dev/null; then\
75                 touch matita.conf.xml;\
76         else\
77                 echo;\
78                 echo "matita.conf.xml.sample is newer than matita.conf.xml";\
79                 echo;\
80                 echo "PLEASE update your configuration file!";\
81                 echo "(copying matita.conf.xml.sample should work)";\
82                 echo;\
83                 false;\
84         fi
85
86 matita.conf.xml.sample: matita.conf.xml.sample.in
87         autoconf
88         ./configure
89         @echo 
90         @echo "WARNING: The configuration sample file has changed!"
91         @echo 
92
93 coq.moo: coq.ma matitac
94         ./matitac coq.ma
95 coq.moo.opt: coq.ma matitac.opt
96         ./matitac.opt coq.ma
97
98 ifeq ($(HAVE_OCAMLOPT),yes)
99 CMXS = $(patsubst %.cmo,%.cmx,$(CMOS))
100 CCMXS = $(patsubst %.cmo,%.cmx,$(CCMOS))
101 CLEANCMXS = $(patsubst %.cmo,%.cmx,$(CLEANCMOS))
102 MAKECMXS = $(patsubst %.cmo,%.cmx,$(MAKECMOS))
103 LIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(REQUIRES))
104 LIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(REQUIRES))
105 CLIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(CREQUIRES))
106 CLIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(CREQUIRES))
107 DEPLIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(DEPREQUIRES))
108 DEPLIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(DEPREQUIRES))
109 CLEANLIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(CLEANREQUIRES))
110 CLEANLIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(CLEANREQUIRES))
111 MAKELIB_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "byte" -format "%d/%a" $(MAKEREQUIRES))
112 MAKELIBX_DEPS := $(shell $(OCAMLFIND) query -recursive -predicates "native" -format "%d/%a" $(MAKEREQUIRES))
113 opt: $(PROGRAMS_OPT) coq.moo.opt
114 else
115 opt:
116         @echo "Native code compilation is disabled"
117 endif
118
119 matita: $(LIB_DEPS) $(CMOS) matita.ml
120         $(OCAMLC) $(PKGS) -linkpkg -o $@ $(CMOS) matita.ml
121 matita.opt: $(LIBX_DEPS) $(CMXS) matita.ml
122         $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(CMXS) matita.ml
123
124 dump_moo: buildTimeConf.cmo matitaLog.cmo matitaMoo.cmo dump_moo.ml
125         $(OCAMLC) $(PKGS) -linkpkg -o $@ $^
126
127 matitac: $(CLIB_DEPS) $(CCMOS) matitac.ml
128         $(OCAMLC) $(CPKGS) -linkpkg -o $@ $(CCMOS) matitac.ml
129 matitac.opt: $(CLIBX_DEPS) $(CCMXS) matitac.ml
130         $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) matitac.ml
131
132 matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
133         $(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
134
135 matitadep: matitadep.ml $(DEPLIB_DEPS) $(CCMOS)
136         $(OCAMLC) $(DEPPKGS) -linkpkg -o $@ $(CCMOS) $<
137 matitadep.opt: matitadep.ml $(DEPLIB_DEPS) $(CCMXS)
138         $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(CCMXS) $<
139
140 matitaclean: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMOS)
141         $(OCAMLC) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMOS) $<
142 matitaclean.opt: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
143         $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $<
144
145 matitamake: matitamake.ml $(MAKECMOS)
146         $(OCAMLC) $(PKGS) -linkpkg -o $@ $(MAKECMOS) $<
147 matitamake.opt: matitamake.ml $(MAKECMXS)
148         $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(MAKECMXS) $<
149         
150 cicbrowser: matita
151         @test -f $@ || ln -s $< $@
152 cicbrowser.opt: matita.opt
153         @test -f $@ || ln -s $< $@
154
155 matitaGeneratedGui.ml matitaGeneratedGui.mli: matita.glade
156         $(LABLGLADECC) -embed $< > matitaGeneratedGui.ml
157         $(OCAMLC) $(PKGS) -i matitaGeneratedGui.ml > matitaGeneratedGui.mli
158
159 %.cmi: %.mli
160         $(OCAMLC) $(PKGS) -c $<
161 %.cmo %.cmi: %.ml
162         $(OCAMLC) $(PKGS) -c $<
163 %.cmx: %.ml
164         $(OCAMLOPT) $(PKGS) -c $<
165 %.annot: %.ml
166         $(OCAMLC) -dtypes $(PKGS) -c $<
167
168 clean:
169         rm -rf *.cma *.cmo *.cmi *.cmx *.cmxa *.a *.o   \
170                 matita matita.opt matitac matitac.opt   \
171                 cicbrowser cicbrowser.opt       \
172                 matitadep matitadep.opt \
173                 matitaclean matitaclean.opt \
174                 matitamake matitamake.opt \
175                 matitatop matitatop.opt \
176                 dump_moo
177 distclean: clean
178         rm -f matitaGeneratedGui.ml matitaGeneratedGui.mli
179         rm -f config.log config.status Makefile buildTimeConf.ml
180         rm -f matita.glade.bak matita.gladep.bak
181         rm -rf autom4te.cache/
182         rm -f configure matita.conf.xml.sample
183
184 tests: matitac matitadep matitaclean
185         @(cd library && make MATITAC="- ../scripts/do_tests.sh $(DO_TESTS_OPTS) ../matitac ../matitaclean /dev/null" clean all)
186         @(cd tests && make MATITAC="- ../scripts/do_tests.sh $(DO_TESTS_OPTS) ../matitac ../matitaclean /dev/null" clean all)
187         @(cd contribs/LAMBDA-TYPES && make MATITAC="- ../../scripts/do_tests.sh $(DO_TESTS_OPTS) ../../matitac ../../matitaclean /dev/null" clean all)
188 tests.opt: matitac.opt matitadep.opt matitaclean.opt
189         @(cd library && make MATITAC="- ../scripts/do_tests.sh $(DO_TESTS_OPTS) ../matitac.opt ../matitaclean.opt /dev/null" clean.opt opt)
190         @(cd tests && make MATITAC="- ../scripts/do_tests.sh $(DO_TESTS_OPTS) ../matitac.opt ../matitaclean.opt /dev/null" clean.opt opt)
191         @(cd contribs/LAMBDA-TYPES && make MATITAC="- ../../scripts/do_tests.sh $(DO_TESTS_OPTS) ../../matitac.opt ../../matitaclean.opt /dev/null" clean.opt opt)
192 cleantests: matitaclean
193         @(cd library && make clean)
194         @(cd tests && make clean)
195         @(cd contribs/LAMBDA-TYPES && make clean)
196 .PHONY: tests tests.opt cleantests
197
198 tags: TAGS
199 .PHONY: TAGS
200 TAGS:
201         cd ..; otags -vi -r ocaml/ matita/
202
203 #.depend: matitaGeneratedGui.ml matitaGeneratedGui.mli *.ml *.mli
204 depend:
205         $(OCAMLDEP) *.ml *.mli > .depend
206
207 include .depend
208
209 .PHONY: all opt clean distclean depend
210
211 $(CMOS): $(LIB_DEPS)
212 $(CMOS:%.cmo=%.cmx): $(LIBX_DEPS)
213
214 ifeq ($(MAKECMDGOALS),all)
215    $(CMOS:%.cmo=%.cmi): $(LIB_DEPS)
216 endif
217 ifeq ($(MAKECMDGOALS),)
218    $(CMOS:%.cmo=%.cmi): $(LIB_DEPS)
219 endif
220 ifeq ($(MAKECMDGOALS),opt)
221    $(CMOS:%.cmo=%.cmi): $(LIBX_DEPS)
222 endif
223