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
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))
12 http_common http_message http_request http_daemon http_response \
14 PUBLIC_IMPL = http_types
15 OCAMLDOC_STUFF = *.mli $(patsubst %, %.ml, $(PUBLIC_IMPL))
19 DESTDIR = $(shell $(OCAMLFIND) printconf stdlib)
21 all: all_non_mt all_mt
22 opt: opt_non_mt opt_mt
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
34 $(DOTDIR)/ocaml-http.dot: *.ml *.mli
35 $(OCAMLDOC) -dot -o $(DOTDIR)/ocaml-http.dot *.ml *.mli
40 $(MAKE) -C examples/ opt
45 $(OCAMLDEP) *.ml *.mli > .depend
53 include Makefile.overrides
55 non_mt/$(THREADED_SRV).cmo: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
56 cp $(THREADED_SRV).{cmi,mli} non_mt/
58 non_mt/$(THREADED_SRV).cmx: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi
59 cp $(THREADED_SRV).{cmi,mli} non_mt/
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 $<
69 http.cma: $(patsubst %,%.cmo,$(MODULES_NON_MT))
71 http.cmxa: $(patsubst %,%.cmx,$(MODULES_NON_MT))
72 $(OCAMLOPT) -a -o $@ $^
73 http_mt.cma: $(patsubst %,%.cmo,$(MODULES_MT))
75 http_mt.cmxa: $(patsubst %,%.cmx,$(MODULES_MT))
76 $(OCAMLOPT) -a -o $@ $^
80 cat META.in | sed -e 's/@DISTVERSION@/$(DISTVERSION)/' > META
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}; \
87 rm -f {mt,non_mt}/$(THREADED_SRV).mli
90 $(DOCDIR)/*.html $(DOCDIR)/*.css \
91 $(DOTDIR)/*.dot $(DOTDIR)/*.ps \
93 distclean: clean docclean
94 $(MAKE) -C examples/ distclean
97 distreal: distclean depend
98 if [ -d $(DISTDIR) ]; then rm -rf $(DISTDIR); else true; fi
101 $(patsubst %, %.ml, $(MODULES)) \
102 $(patsubst %, %.mli, $(MODULES) $(THREADED_SRV)) \
103 mt/ non_mt/ $(EXTRA_DIST) examples/ debian/; \
105 cp -r $$f $(DISTDIR)/; \
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)/
113 (cd $(DISTDIR)/ && debuild)
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
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