]> git.lizzy.rs Git - rust.git/commitdiff
Refactor the doc building rules a bit, sensitize them to the presence or absence...
authorGraydon Hoare <graydon@mozilla.com>
Wed, 18 Jan 2012 22:14:28 +0000 (14:14 -0800)
committerGraydon Hoare <graydon@mozilla.com>
Wed, 18 Jan 2012 22:14:42 +0000 (14:14 -0800)
Makefile.in
configure
mk/docs.mk

index 55c5c43ceb6cfdd3dcade260c27adf455ae15a14..ffc6e104078f4913736dcf008c7960e6297691a3 100644 (file)
@@ -133,39 +133,6 @@ ifdef CFG_BAD_VALGRIND
   CFG_VALGRIND :=
 endif
 
-DOCS :=
-ifeq ($(CFG_PANDOC),)
-  $(info cfg: no pandoc found, omitting doc/rust.html)
-else
-  DOCS += doc/rust.html
-endif
-
-ifeq ($(CFG_PANDOC),)
-  $(info cfg: no pandoc found, omitting doc/rust.pdf)
-else
-  ifeq ($(CFG_PDFLATEX),)
-    $(info cfg: no pdflatex found, omitting doc/rust.pdf)
-  else
-    DOCS += doc/rust.pdf
-  endif
-endif
-
-ifeq ($(CFG_NODE),)
-  $(info cfg: no node found, omitting doc/tutorial/web)
-else
-  DOCS += doc/tutorial/web/index.html
-endif
-
-ifeq ($(CFG_NATURALDOCS),)
-  $(info cfg: no naturaldocs found, omitting library doc build)
-else
-  DOCS += doc/core/index.html doc/std/index.html
-endif
-
-ifdef CFG_DISABLE_DOCS
-  $(info cfg: disabling doc build (CFG_DISABLE_DOCS))
-  DOCS :=
-endif
 
 ######################################################################
 # Target-and-rule "utility variables"
@@ -431,7 +398,7 @@ CFG_INFO := $(info cfg: *** compiler is in snapshot transition ***)
 CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
 CFG_INFO := $(info cfg:)
 
-all: $(SREQ1$(CFG_HOST_TRIPLE)) $(GENERATED) $(DOCS)
+all: $(SREQ1$(CFG_HOST_TRIPLE)) $(GENERATED) docs
 
 else
 
@@ -442,7 +409,7 @@ FUZZ := $(HBIN3_H_$(CFG_HOST_TRIPLE))/fuzzer$(X)
 CARGO := $(HBIN3_H_$(CFG_HOST_TRIPLE))/cargo$(X)
 RUSTDOC := $(HBIN3_H_$(CFG_HOST_TRIPLE))/rustdoc$(X)
 
-all: rustc $(GENERATED) $(DOCS) $(FUZZ) $(CARGO) $(RUSTDOC)
+all: rustc $(GENERATED) docs $(FUZZ) $(CARGO) $(RUSTDOC)
 
 endif
 
index 4009bd2c58a7e21870ffefe2d4ca9d2c4de8ef6b..71ee86389d34018695034808a4cdef6ea8f4e434 100755 (executable)
--- a/configure
+++ b/configure
@@ -289,6 +289,8 @@ probe CFG_NATURALDOCS      naturaldocs
 probe CFG_LLNEXTGEN        LLnextgen
 probe CFG_PANDOC           pandoc
 probe CFG_PDFLATEX         pdflatex
+probe CFG_XETEX            xetex
+probe CFG_LUATEX           luatex
 probe CFG_NODE             node
 
 if [ -z "$CFG_NODE" ]
index 4edc0cc3b8dac0d483575893345f2d4a695a98f9..60dd912d8c9cc54387c5f3ea325454089963cdfa 100644 (file)
@@ -2,16 +2,17 @@
 # Doc variables and rules
 ######################################################################
 
-doc/version.md: $(MKFILE_DEPS) rust.md
-       @$(call E, version-stamp: $@)
-       $(Q)echo "$(CFG_VERSION)" >>$@
+DOCS :=
 
-doc/keywords.md: $(MKFILE_DEPS) rust.md
-       @$(call E, grep -v: $$@)
-       $(Q)grep -v '^#' $< >$@
 
-ifdef CFG_PANDOC
+######################################################################
+# Pandoc (reference-manual related)
+######################################################################
+ifeq ($(CFG_PANDOC),)
+  $(info cfg: no pandoc found, omitting doc/rust.pdf)
+else
 
+DOCS += doc/rust.html
 doc/rust.html: rust.md doc/version.md doc/keywords.md
        @$(call E, pandoc: $@)
        $(Q)$(CFG_PANDOC) \
@@ -26,8 +27,17 @@ doc/rust.html: rust.md doc/version.md doc/keywords.md
        -$(Q)cp -a $(S)doc/rust.css doc/rust.css 2> /dev/null
 
 
-ifdef CFG_PDFLATEX
+  ifeq ($(CFG_PDFLATEX),)
+    $(info cfg: no pdflatex found, omitting doc/rust.pdf)
+  else
+    ifeq ($(CFG_XETEX),)
+      $(info cfg: no xetex found, disabling doc/rust.pdf)
+    else
+      ifeq ($(CFG_LUATEX),)
+        $(info cfg: lacking luatex, disabling pdflatex)
+      else
 
+DOCS += doc/rust.pdf
 doc/rust.tex: rust.md doc/version.md doc/keywords.md
        @$(call E, pandoc: $@)
        $(Q)$(CFG_PANDOC) \
@@ -44,13 +54,39 @@ doc/rust.pdf: doc/rust.tex
         -output-directory=doc \
         $<
 
+      endif
+    endif
+  endif
 endif
 
+
+######################################################################
+# LLnextgen (grammar analysis from refman)
+######################################################################
+ifeq ($(CFG_LLNEXTGEN),)
+  $(info cfg: no llnextgen found, omitting grammar-verification)
+else
+.PHONY: verify-grammar
+
+doc/rust.g: rust.md $(S)src/etc/extract_grammar.py
+       @$(call E, extract_grammar: $@)
+       $(Q)$(S)src/etc/extract_grammar.py $< >$@
+
+verify-grammar: doc/rust.g
+       @$(call E, LLnextgen: $<)
+       $(Q)$(CFG_LLNEXTGEN) --generate-lexer-wrapper=no $< >$@
+       $(Q)rm -f doc/rust.c doc/rust.h
 endif
 
 
-ifdef CFG_NODE
+######################################################################
+# Node (tutorial related)
+######################################################################
+ifeq ($(CFG_NODE),)
+  $(info cfg: no node found, omitting doc/tutorial/web)
+else
 
+DOCS += doc/tutorial/web/index.html
 doc/tutorial/web/index.html: \
         $(wildcard $(S)doc/tutorial/*.md)
        @$(call E, cp: $(S)doc/tutorial)
@@ -61,23 +97,14 @@ doc/tutorial/web/index.html: \
 endif
 
 
-ifdef CFG_LLNEXTGEN
-doc/rust.g: rust.md $(S)src/etc/extract_grammar.py
-       @$(call E, extract_grammar: $@)
-       $(Q)$(S)src/etc/extract_grammar.py $< >$@
 
-verify-grammar: doc/rust.g
-       @$(call E, LLnextgen: $<)
-       $(Q)$(CFG_LLNEXTGEN) --generate-lexer-wrapper=no $< >$@
-       $(Q)rm -f doc/rust.c doc/rust.h
-endif
-
-
-GENERATED += doc/keywords.md doc/version.md
+######################################################################
+# Naturaldocs (library reference related)
+######################################################################
 
-docsnap: doc/rust.pdf
-       @$(call E, snap: doc/rust-$(shell date +"%Y-%m-%d")-snap.pdf)
-       $(Q)mv $< doc/rust-$(shell date +"%Y-%m-%d")-snap.pdf
+ifeq ($(CFG_NATURALDOCS),)
+  $(info cfg: no naturaldocs found, omitting library doc build)
+else
 
 define libdoc
 doc/$(1)/index.html: nd/$(1)/Languages.txt nd/$(1)/Topics.txt \
@@ -103,10 +130,27 @@ GENERATED += nd/$(1)/Languages.txt \
              nd/$(1)/Data
 
 DOCS += doc/$(1)/index.html nd/$(1)/lib.css
-
 endef
 
 $(eval $(call libdoc,core,$(CORELIB_CRATE) $(CORELIB_INPUTS)))
 $(eval $(call libdoc,std,$(STDLIB_CRATE) $(STDLIB_INPUTS)))
+endif
+
+
+ifdef CFG_DISABLE_DOCS
+  $(info cfg: disabling doc build (CFG_DISABLE_DOCS))
+  DOCS :=
+endif
+
+
+doc/version.md: $(MKFILE_DEPS) rust.md
+       @$(call E, version-stamp: $@)
+       $(Q)echo "$(CFG_VERSION)" >>$@
+
+doc/keywords.md: $(MKFILE_DEPS) rust.md
+       @$(call E, grep -v: $$@)
+       $(Q)grep -v '^#' $< >$@
+
+GENERATED += doc/keywords.md doc/version.md
 
 docs: $(DOCS)