]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/ocaml-http/Makefile
c602c29db6bd213ae172a881fb581402f7c2e472
[helm.git] / helm / DEVEL / ocaml-http / Makefile
1 include Makefile.defs
2
3 MODULES =       \
4         http_types http_constants http_tcp_server http_parser_sanity    \
5         http_misc http_common http_parser http_message http_request             \
6         http_daemon http_response
7 THREADED_SRV = http_threaded_tcp_server
8 MODULES_MT = $(patsubst http_tcp_server, mt/$(THREADED_SRV) http_tcp_server, $(MODULES))
9 MODULES_NON_MT = $(patsubst http_tcp_server, non_mt/$(THREADED_SRV) http_tcp_server, $(MODULES))
10 PUBLIC_MODULES = http_common http_message http_request http_daemon http_response
11 PUBLIC_IMPL = http_types
12 OCAMLDOC_STUFF = *.mli $(patsubst %, %.ml, $(PUBLIC_IMPL))
13 DOCDIR = doc/html
14 DOTDIR = doc/dot
15 TEXDIR = doc/latex
16 DESTDIR = $(shell $(OCAMLFIND) printconf stdlib) 
17
18 all: all_non_mt all_mt
19 opt: opt_non_mt opt_mt
20 all_non_mt: http.cma
21 opt_non_mt: http.cmxa
22 all_mt: http_mt.cma
23 opt_mt: http_mt.cmxa
24 world: all opt
25 doc: $(DOTDIR)/ocaml-http.ps $(TEXDIR)/ocaml-http.tex $(OCAMLDOC_STUFF)
26         $(OCAMLDOC) -html -d $(DOCDIR) $(OCAMLDOC_STUFF)
27 $(TEXDIR)/ocaml-http.tex: $(OCAMLDOC_STUFF)
28         $(OCAMLDOC) -latex -o $@ $^
29 $(DOTDIR)/ocaml-http.ps: $(DOTDIR)/ocaml-http.dot
30         $(DOT) -Tps $< > $@
31 $(DOTDIR)/ocaml-http.dot: *.ml *.mli
32         $(OCAMLDOC) -dot -o $(DOTDIR)/ocaml-http.dot *.ml *.mli
33
34 examples:
35         $(MAKE) -C examples/
36 examples.opt:
37         $(MAKE) -C examples/ opt
38
39 include .depend
40
41 depend:
42         $(OCAMLDEP) *.ml *.mli > .depend
43
44 %.cmi: %.mli
45         $(OCAMLC) -c $<
46 %.cmo: %.ml %.cmi
47         $(OCAMLC) -c $<
48 %.cmx: %.ml %.cmi
49         $(OCAMLOPT) -c $<
50 include Makefile.overrides
51
52 non_mt/$(THREADED_SRV).cmo: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
53         cp $(THREADED_SRV).{cmi,mli} non_mt/
54         $(OCAMLC) -c $<
55 non_mt/$(THREADED_SRV).cmx: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
56         cp $(THREADED_SRV).{cmi,mli} non_mt/
57         $(OCAMLOPT) -c $<
58
59 mt/$(THREADED_SRV).cmo: mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
60         cp $(THREADED_SRV).{cmi,mli} mt/
61         $(OCAMLC) $(THREADS_FLAGS) -c $<
62 mt/$(THREADED_SRV).cmx: mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
63         cp $(THREADED_SRV).{cmi,mli} mt/
64         $(OCAMLOPT) $(THREADS_FLAGS) -c $<
65
66 http.cma: $(patsubst %,%.cmo,$(MODULES_NON_MT))
67         $(OCAMLC) -a -o $@ $^
68 http.cmxa: $(patsubst %,%.cmx,$(MODULES_NON_MT))
69         $(OCAMLOPT) -a -o $@ $^
70 http_mt.cma: $(patsubst %,%.cmo,$(MODULES_MT))
71         $(OCAMLC) -a -o $@ $^
72 http_mt.cmxa: $(patsubst %,%.cmx,$(MODULES_MT))
73         $(OCAMLOPT) -a -o $@ $^
74
75 meta: META
76 META: META.in
77         cat META.in | sed -e 's/@DISTVERSION@/$(DISTVERSION)/' > META
78
79 clean:
80         $(MAKE) -C examples/ clean
81         for d in . mt non_mt; do        \
82                 rm -f $$d/*.cm[ioax] $$d/*.cmxa $$d/*.[ao] $$d/test{,.opt};     \
83         done
84         rm -f {mt,non_mt}/$(THREADED_SRV).mli
85 docclean:
86         rm -f   \
87                 $(DOCDIR)/*.html $(DOCDIR)/*.css        \
88                 $(DOTDIR)/*.dot $(DOTDIR)/*.ps  \
89                 $(TEXDIR)/*.tex
90 distclean: clean docclean
91         $(MAKE) -C examples/ distclean
92         rm -f META
93 dist: distreal distrm
94 distreal: distclean depend
95         if [ -d $(DISTDIR) ]; then rm -rf $(DISTDIR); else true; fi
96         mkdir $(DISTDIR)
97         for f in        \
98                         $(patsubst %, %.ml, $(MODULES)) \
99                         $(patsubst %, %.mli, $(MODULES) $(THREADED_SRV))        \
100                         mt/ non_mt/ $(EXTRA_DIST) examples/     debian/;        \
101         do      \
102                 cp -r $$f $(DISTDIR)/;  \
103         done
104         -find $(DISTDIR)/ -type d -name CVS -exec rm -rf {} \;
105         -find $(DISTDIR)/ -type f -name ".cvs*" -exec rm -f {} \;
106         tar cvzf $(DISTDIR).tar.gz $(DISTDIR)/
107 distrm:
108         rm -rf $(DISTDIR)/
109 deb: distreal
110         (cd $(DISTDIR)/ && debuild)
111         rm -rf $(DISTDIR)/
112 install: META
113         $(OCAMLFIND) install -destdir $(DESTDIR) $(PKGNAME)     \
114                 $(patsubst %, %.mli, $(PUBLIC_MODULES)) \
115                 $(patsubst %, %.ml, $(PUBLIC_IMPL))     \
116                 $(patsubst %, %.cmi, $(PUBLIC_MODULES)) \
117                 $(patsubst %, %.cmi, $(PUBLIC_IMPL))    \
118                 http{,_mt}.cm{,x}a http{,_mt}.a META
119
120 .PHONY: \
121         all opt world all_non_mt all_mt opt_non_mt opt_mt       \
122         examples examples.opt depend clean distclean dist       \
123         install meta doc deb distreal distrm
124