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