X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Focaml-http%2FMakefile;h=572a7f2584f050b328534219697c338a0c0f1e7b;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=31f63cf972519914c7a45023fc9a57c1a5b28217;hpb=697d0d8857366485238a67386d0ce8f18404ac42;p=helm.git diff --git a/helm/DEVEL/ocaml-http/Makefile b/helm/DEVEL/ocaml-http/Makefile index 31f63cf97..572a7f258 100644 --- a/helm/DEVEL/ocaml-http/Makefile +++ b/helm/DEVEL/ocaml-http/Makefile @@ -1,12 +1,48 @@ include Makefile.defs -MODULES = http_common http_misc http_types http_request http_parser tcp_server http_daemon http_response -PUBLIC_MODULES = http_common http_types http_request http_daemon http_response -DESTDIR = $(shell $(OCAMLFIND) printconf stdlib) +MODULES = \ + http_constants http_types http_parser_sanity http_misc http_common \ + http_tcp_server http_parser http_message http_request http_daemon \ + http_response http_user_agent -all: http.cma -opt: http.cmxa +THREADED_SRV = http_threaded_tcp_server +MODULES_MT = $(patsubst http_tcp_server, mt/$(THREADED_SRV) http_tcp_server, $(MODULES)) +MODULES_NON_MT = $(patsubst http_tcp_server, non_mt/$(THREADED_SRV) http_tcp_server, $(MODULES)) +PUBLIC_MODULES = \ + http_types \ + http_common \ + http_message \ + http_request \ + http_daemon \ + http_response \ + http_user_agent +OCAMLDOC_STUFF = *.mli +DOCDIR = doc/html +DOTDIR = doc/dot +TEXDIR = doc/latex +DESTDIR = $(shell $(OCAMLFIND) printconf destdir) + +all: all_non_mt all_mt +opt: opt_non_mt opt_mt +all_non_mt: http.cma +opt_non_mt: http.cmxa +all_mt: http_mt.cma +opt_mt: http_mt.cmxa world: all opt +doc: all $(DOCDIR)/index.html $(DOTDIR)/ocaml-http.ps $(TEXDIR)/ocaml-http.ps $(OCAMLDOC_STUFF) +$(DOCDIR)/index.html: + $(OCAMLDOC) -html -d $(DOCDIR) $(OCAMLDOC_STUFF) +$(TEXDIR)/ocaml-http.tex: $(OCAMLDOC_STUFF) + $(OCAMLDOC) -latex -o $@ $^ +$(TEXDIR)/ocaml-http.ps: $(TEXDIR)/ocaml-http.tex + cd $(TEXDIR); \ + latex ocaml-http; \ + latex ocaml-http; \ + dvips ocaml-http +$(DOTDIR)/ocaml-http.ps: $(DOTDIR)/ocaml-http.dot + $(DOT) -Tps $< > $@ +$(DOTDIR)/ocaml-http.dot: *.ml *.mli + $(OCAMLDOC) -dot -o $(DOTDIR)/ocaml-http.dot *.ml *.mli examples: $(MAKE) -C examples/ @@ -25,9 +61,27 @@ depend: %.cmx: %.ml %.cmi $(OCAMLOPT) -c $< -http.cma: $(patsubst %,%.cmo,$(MODULES)) +non_mt/$(THREADED_SRV).cmo: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi + cp $(THREADED_SRV).{cmi,mli} non_mt/ + $(OCAMLC) -c $< +non_mt/$(THREADED_SRV).cmx: non_mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi + cp $(THREADED_SRV).{cmi,mli} non_mt/ + $(OCAMLOPT) -c $< + +mt/$(THREADED_SRV).cmo: mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi + cp $(THREADED_SRV).{cmi,mli} mt/ + $(OCAMLC) $(THREADS_FLAGS) -c $< +mt/$(THREADED_SRV).cmx: mt/$(THREADED_SRV).ml $(THREADED_SRV).cmi + cp $(THREADED_SRV).{cmi,mli} mt/ + $(OCAMLOPT) $(THREADS_FLAGS) -c $< + +http.cma: $(patsubst %,%.cmo,$(MODULES_NON_MT)) $(OCAMLC) -a -o $@ $^ -http.cmxa: $(patsubst %,%.cmx,$(MODULES)) +http.cmxa: $(patsubst %,%.cmx,$(MODULES_NON_MT)) + $(OCAMLOPT) -a -o $@ $^ +http_mt.cma: $(patsubst %,%.cmo,$(MODULES_MT)) + $(OCAMLC) -a -o $@ $^ +http_mt.cmxa: $(patsubst %,%.cmx,$(MODULES_MT)) $(OCAMLOPT) -a -o $@ $^ meta: META @@ -36,26 +90,48 @@ META: META.in clean: $(MAKE) -C examples/ clean - -rm -f *.cm[ioax] *.cmxa *.[ao] test{,.opt} + for d in . mt non_mt; do \ + rm -f $$d/*.cm[ioax] $$d/*.cmxa $$d/*.[ao] $$d/test{,.opt}; \ + done + rm -f {mt,non_mt}/$(THREADED_SRV).mli +docclean: + -rm -f \ + $(DOCDIR)/*.html $(DOCDIR)/*.css \ + $(DOTDIR)/*.dot $(DOTDIR)/*.ps \ + $(TEXDIR)/*.{dvi,ps,ps.gz,pdf,aux,log,out,toc,tmp,haux,sty,tex} distclean: clean $(MAKE) -C examples/ distclean - -rm -f META -dist: distclean depend - mkdir $(DISTDIR) - cp -r \ - $(patsubst %,%.ml,$(MODULES)) $(patsubst %,%.mli,$(MODULES)) \ - $(EXTRA_DIST) examples/ debian/ \ - $(DISTDIR)/ + rm -f META +dist: distreal distrm +distdoc: all doc + if [ -d $(DISTDIR) ]; then rm -rf $(DISTDIR); else true; fi + mkdir -p $(DISTDIR)/doc/ + cp -r doc/html/ $(DISTDIR)/doc/ + cp doc/dot/ocaml-http.ps $(DISTDIR)/doc/modules.ps + cp doc/latex/ocaml-http.ps $(DISTDIR)/doc/ +distreal: distdoc distclean depend + for f in \ + $(patsubst %, %.ml, $(MODULES)) \ + $(patsubst %, %.mli, $(MODULES) $(THREADED_SRV)) \ + mt/ non_mt/ $(EXTRA_DIST) examples/ debian/; \ + do \ + cp -r $$f $(DISTDIR)/; \ + done -find $(DISTDIR)/ -type d -name CVS -exec rm -rf {} \; -find $(DISTDIR)/ -type f -name ".cvs*" -exec rm -f {} \; tar cvzf $(DISTDIR).tar.gz $(DISTDIR)/ +distrm: + rm -rf $(DISTDIR)/ +deb: docclean distreal + (cd $(DISTDIR)/ && debuild) rm -rf $(DISTDIR)/ install: META $(OCAMLFIND) install -destdir $(DESTDIR) $(PKGNAME) \ - META $(patsubst %,%.mli,$(PUBLIC_MODULES)) \ - $(patsubst %,%.cmi,$(PUBLIC_MODULES)) http.cm{,x}a http.a + $(patsubst %, %.mli, $(PUBLIC_MODULES)) \ + $(patsubst %, %.cmi, $(PUBLIC_MODULES)) \ + $(wildcard *.cma *.cmxa *.a) META .PHONY: \ - all opt world examples examples.opt depend clean distclean dist \ - install meta - + all opt world all_non_mt all_mt opt_non_mt opt_mt \ + examples examples.opt depend clean distclean dist \ + install meta doc deb distreal distrm