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
+OCAMLDOC_STUFF = *.mli $(patsubst %, %.ml, $(PUBLIC_IMPL))
+DOCDIR = doc/html
+DOTDIR = doc/dot
DESTDIR = $(shell $(OCAMLFIND) printconf stdlib)
all: all_non_mt all_mt
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))
+doc: dot $(OCAMLDOC_STUFF)
+ $(OCAMLDOC) -html -d $(DOCDIR) $(OCAMLDOC_STUFF)
+dot: $(DOTDIR)/ocaml-http.ps
+$(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/
done
rm -f {mt,non_mt}/$(THREADED_SRV).mli
docclean:
- rm -f doc/html/*.html doc/html/*.css
+ rm -f $(DOCDIR)/*.html $(DOCDIR)/*.css $(DOTDIR)/*.dot $(DOTDIR)/*.ps
distclean: clean docclean
$(MAKE) -C examples/ distclean
- -rm -f META
+ rm -f META
dist: distreal distrm
distreal: distclean depend
if [ -d $(DISTDIR) ]; then rm -rf $(DISTDIR); else true; fi
.PHONY: \
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
+ install meta doc deb distreal distrm dot
OCAMLC = $(OCAMLFIND) ocamlc $(COMMON_FLAGS)
OCAMLOPT = $(OCAMLFIND) ocamlopt $(COMMON_FLAGS)
OCAMLDEP = $(OCAMLFIND) ocamldep $(COMMON_FLAGS)
-OCAMLDOC := ocamldoc -I $(shell $(OCAMLFIND) query netstring)
+OCAMLDOC := \
+ ocamldoc \
+ $(shell $(OCAMLFIND) query -i-format unix) \
+ $(shell $(OCAMLFIND) query -i-format pcre) \
+ $(shell $(OCAMLFIND) query -i-format netstring)
+DOT = dot
DISTNAME = ocaml-http
DISTDIR = $(DISTNAME)-$(DISTVERSION)