summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Scherer <gabriel.scherer@gmail.com>2019-07-27 21:55:32 +0200
committerGabriel Scherer <gabriel.scherer@gmail.com>2019-08-30 09:59:27 +0200
commitbb1be5dd17f5197b2aa49a4325c6813d079244d2 (patch)
treec676cfb2ac3e9691b8a7ec5a55227827f919583a
parent2bbf7caa728847ac4873bc9b75f2773f17cbbee9 (diff)
downloadocaml-bb1be5dd17f5197b2aa49a4325c6813d079244d2.tar.gz
ocamldoc/Makefile: use ocamldoc.opt when available
-rw-r--r--Changes5
-rw-r--r--ocamldoc/Makefile26
2 files changed, 23 insertions, 8 deletions
diff --git a/Changes b/Changes
index 46bcea6ee4..f2ca952864 100644
--- a/Changes
+++ b/Changes
@@ -154,6 +154,11 @@ Working version
(Stephen Dolan, review by Gabriel Scherer, Sébastien Hinderer and
Thomas Refis)
+- #8837: build manpages using ocamldoc.opt when available
+ cuts the manpages build time from 14s to 4s
+ (Gabriel Scherer, review by David Allsopp and Sébastien Hinderer,
+ report by David Allsopp)
+
- #8843, #8841: fix use of off_t on 32-bit systems.
(Stephen Dolan, report by Richard Jones, review by Xavier Leroy)
diff --git a/ocamldoc/Makefile b/ocamldoc/Makefile
index 503de60148..0908a580cd 100644
--- a/ocamldoc/Makefile
+++ b/ocamldoc/Makefile
@@ -44,24 +44,34 @@ OCAMLPP=-pp 'sh ./remove_DEBUG'
MKDIR=mkdir -p
CP=cp
OCAMLDOC=ocamldoc
+OCAMLDOC_OPT=$(OCAMLDOC).opt
# TODO: clarify whether the following really needs to be that complicated
ifeq "$(UNIX_OR_WIN32)" "unix"
ifeq "$(TARGET)" "$(HOST)"
ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"
- OCAMLDOC_RUN=$(OCAMLRUN) -I $(ROOTDIR)/otherlibs/$(UNIXLIB) -I $(ROOTDIR)/otherlibs/str ./$(OCAMLDOC)
+ OCAMLDOC_RUN_BYTE=$(OCAMLRUN) -I $(ROOTDIR)/otherlibs/$(UNIXLIB) -I $(ROOTDIR)/otherlibs/str ./$(OCAMLDOC)
else
- OCAMLDOC_RUN=./$(OCAMLDOC)
+ OCAMLDOC_RUN_BYTE=./$(OCAMLDOC)
endif
else
- OCAMLDOC_RUN=$(OCAMLRUN) ./$(OCAMLDOC)
+ OCAMLDOC_RUN_BYTE=$(OCAMLRUN) ./$(OCAMLDOC)
endif
else # Windows
- OCAMLDOC_RUN = \
+ OCAMLDOC_RUN_BYTE = \
CAML_LD_LIBRARY_PATH="$(ROOTDIR)/otherlibs/win32unix;$(ROOTDIR)/otherlibs/str" $(OCAMLRUN) ./$(OCAMLDOC)
endif
-OCAMLDOC_OPT=$(OCAMLDOC).opt
+OCAMLDOC_RUN_OPT=./$(OCAMLDOC_OPT)
+
+OCAMLDOC_RUN_PLUGINS=$(OCAMLDOC_RUN_BYTE)
+
+ifeq "$(wildcard $(OCAMLDOC_OPT))" ""
+ OCAMLDOC_RUN=$(OCAMLDOC_RUN_BYTE)
+else
+ OCAMLDOC_RUN=$(OCAMLDOC_RUN_OPT)
+endif
+
OCAMLDOC_LIBCMA=odoc_info.cma
OCAMLDOC_LIBCMI=odoc_info.cmi
OCAMLDOC_LIBCMXA=odoc_info.cmxa
@@ -341,7 +351,7 @@ test:
$(MKDIR) $@
$(OCAMLDOC_RUN) -html -colorize-code -sort -d $@ $(INCLUDES) -dump $@/ocamldoc.odoc odoc*.ml odoc*.mli -v
$(MKDIR) $@-custom
- $(OCAMLDOC_RUN) -colorize-code -sort -d $@-custom $(INCLUDES) \
+ $(OCAMLDOC_RUN_PLUGINS) -colorize-code -sort -d $@-custom $(INCLUDES) \
-g generators/odoc_literate.cmo -g generators/odoc_todo.cmo \
-load $@/ocamldoc.odoc -v
@@ -364,7 +374,7 @@ test_stdlib_code:
.PHONY: test_framed
test_framed:
$(MKDIR) $@
- $(OCAMLDOC_RUN) -g odoc_fhtml.cmo -sort -colorize-code -d $@ $(INCLUDES) odoc*.ml odoc*.mli
+ $(OCAMLDOC_RUN_PLUGINS) -g odoc_fhtml.cmo -sort -colorize-code -d $@ $(INCLUDES) odoc*.ml odoc*.mli
.PHONY: test_latex
test_latex:
@@ -444,7 +454,7 @@ stdlib_latex/stdlib.pdf: stdlib_latex/stdlib.tex
.PHONY: autotest_stdlib
autotest_stdlib:
$(MKDIR) $@
- $(OCAMLDOC_RUN) -g autotest/odoc_test.cmo\
+ $(OCAMLDOC_RUN_PLUGINS) -g autotest/odoc_test.cmo\
$(INCLUDES) -keep-code \
$(ROOTDIR)/stdlib/*.mli \
$(ROOTDIR)/otherlibs/$(UNIXLIB)/unix.mli \