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