]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/ocaml-http/Makefile
Initial revision
[helm.git] / helm / DEVEL / ocaml-http / Makefile
index 22eb5fb80164a2dae55ecdf2fa9ae1644aee0676..90ab28781a500ab06f3721cc8ce253d47feabf9b 100644 (file)
@@ -1,12 +1,26 @@
 include Makefile.defs
 
-MODULES = http_common http_misc http_types http_request http_parser http_tcp_server http_daemon http_response
-PUBLIC_MODULES = http_common http_types http_request http_daemon http_response
+MODULES =      \
+       http_types http_constants http_tcp_server http_parser_sanity    \
+       http_misc http_common http_parser http_message http_request             \
+       http_daemon http_response
+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_common http_request http_daemon http_response
+PUBLIC_IMPL = http_types
 DESTDIR = $(shell $(OCAMLFIND) printconf stdlib) 
 
-all: http.cma
-opt: http.cmxa
+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: *.mli
+       $(OCAMLDOC) -html -d doc/html   \
+               *.mli $(patsubst %, %.ml, $(PUBLIC_IMPL))
 
 examples:
        $(MAKE) -C examples/
@@ -24,10 +38,29 @@ depend:
        $(OCAMLC) -c $<
 %.cmx: %.ml %.cmi
        $(OCAMLOPT) -c $<
+include Makefile.overrides
 
-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 +69,44 @@ META: META.in
 
 clean:
        $(MAKE) -C examples/ clean
-       -rm -f *.cm[ioax] *.cmxa *.[ao] test{,.opt}
-distclean: clean
+       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 doc/html/*.html doc/html/*.css
+distclean: clean docclean
        $(MAKE) -C examples/ distclean
        -rm -f META
-dist: distclean depend
+dist: distreal distrm
+distreal: distclean depend
+       if [ -d $(DISTDIR) ]; then rm -rf $(DISTDIR); else true; fi
        mkdir $(DISTDIR)
-       cp -r   \
-               $(patsubst %,%.ml,$(MODULES)) $(patsubst %,%.mli,$(MODULES))    \
-               $(EXTRA_DIST) examples/ debian/ \
-               $(DISTDIR)/
+       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: 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 %, %.ml, $(PUBLIC_IMPL))     \
+               $(patsubst %, %.cmi, $(PUBLIC_MODULES)) \
+               $(patsubst %, %.cmi, $(PUBLIC_IMPL))    \
+               http{,_mt}.cm{,x}a http{,_mt}.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