[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Build translated manuals: Don't rebuild everything each time unless nece
From: |
julien . rioux |
Subject: |
Build translated manuals: Don't rebuild everything each time unless necessary. (issue 5494069) |
Date: |
Sun, 18 Dec 2011 16:57:03 +0000 |
Reviewers: ,
Message:
Moving towards a build system which tracks dependencies for every file,
update timestamps correctly and so on. These are all the fixes for the
translated manuals.
Description:
Build: Don't rebuild everything each time unless necessary.
- Fix a typo.
- Update timestamp when linking files.
- Unify the rules and variables for xref-map files.
- Unify the rule for bib files.
- Fix txt-to-html dependencies.
- Fix dependencies for translated manuals.
Please review this at http://codereview.appspot.com/5494069/
Affected files:
M Documentation/GNUmakefile
M input/regression/lilypond-book/GNUmakefile
M make/doc-i18n-root-rules.make
M make/doc-i18n-root-targets.make
M make/doc-i18n-root-vars.make
M make/ly-rules.make
M scripts/build/mass-link.py
M stepmake/stepmake/texinfo-rules.make
M stepmake/stepmake/texinfo-vars.make
Index: Documentation/GNUmakefile
diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile
index
00b4eeb4e415111d8e4dc790be673973042c0baf..d1989f9988204217c29a6982328da5fabc0c2455
100644
--- a/Documentation/GNUmakefile
+++ b/Documentation/GNUmakefile
@@ -23,7 +23,7 @@ TEXI2PDF_FLAGS = \
-I $(outdir) \
-I $(top-build-dir)/Documentation/$(outconfbase)
$(outdir)/snippets-big-page.html: TEXI2HTML_FLAGS += -D short_toc
-$(outdir)/snippets/index..html: TEXI2HTML_FLAGS += -D short_toc
+$(outdir)/snippets/index.html: TEXI2HTML_FLAGS += -D short_toc
### Extra source files
@@ -134,18 +134,6 @@ $(outdir)/essay.texi: \
$(outdir)/computer-notation.itexi \
$(outdir)/engravingbib.itexi
-$(outdir)/others-did.itexi:
- BSTINPUTS=$(src-dir)/web/ $(buildscript-dir)/bib2texi \
- -s $(top-src-dir)/Documentation/lily-bib \
- -o $(outdir)/others-did.itexi \
- $(src-dir)/web/others-did.bib
-
-$(outdir)/we-wrote.itexi:
- BSTINPUTS=$(src-dir)/web/ $(buildscript-dir)/bib2texi \
- -s $(top-src-dir)/Documentation/lily-bib \
- -o $(outdir)/we-wrote.itexi \
- $(src-dir)/web/we-wrote.bib
-
###########
### Targets
@@ -209,10 +197,13 @@ endif
$(outdir)/lilypond-%.info: $(outdir)/%.texi
$(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep $(outdir)/version.itexi
$(outdir)/weblinks.itexi
$(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ $<
-# cd $(outdir) rule gets bit hairy for --srcdir configure builds
-txt-to-html:
- $(foreach a, $(README_TOP_FILES), cp $(top-src-dir)/$(a)
$(outdir)/$(a).txt && ) true
- $(PYTHON) $(step-bindir)/text2html.py $(OUT_TXT_FILES)
+txt-to-html: $(OUT_TXT_FILES) $(OUT_TXT_FILES:%.txt=%.html)
+
+$(OUT_TXT_FILES): $(outdir)/%.txt: $(top-src-dir)/%
+ cp -f $< $@
+
+$(OUT_TXT_FILES:%.txt=%.html): $(outdir)/%.html: $(outdir)/%.txt
+ $(PYTHON) $(step-bindir)/text2html.py $<
# Explicitly list the dependencies on generated content
$(outdir)/web.texi: $(outdir)/we-wrote.itexi $(outdir)/others-did.itexi
$(outdir)/weblinks.itexi
Index: input/regression/lilypond-book/GNUmakefile
diff --git a/input/regression/lilypond-book/GNUmakefile
b/input/regression/lilypond-book/GNUmakefile
index
6081f7fe36d84daf75f222b41d94ae2b7841b816..479dc0cf8885b47c3888f0124b90020a3ac508c6
100644
--- a/input/regression/lilypond-book/GNUmakefile
+++ b/input/regression/lilypond-book/GNUmakefile
@@ -16,3 +16,9 @@ EXTRA_DIST_FILES += $(call src-wildcard,*.tely)
EXTRA_DIST_FILES += $(call src-wildcard,*.itely)
+# Due to automatic language detection the standard rule using the script
+# extract_texi_filenames would create .es.xref-map for these files. The
+# following rule is to circumvent this for the purpose of the build. For
+# the regression tests the .xref-map files are empty and not used anyway.
+$(XREF_MAPS_DIR)/texinfo-include-language-detection.xref-map
$(XREF_MAPS_DIR)/texinfo-language-detection.xref-map:
+ touch $@
Index: make/doc-i18n-root-rules.make
diff --git a/make/doc-i18n-root-rules.make b/make/doc-i18n-root-rules.make
index
fc01d8c887884497d21f4316e15e16aebdf86286..1d0f09903995e6edfc658eb1907a66ba92c8bc80
100644
--- a/make/doc-i18n-root-rules.make
+++ b/make/doc-i18n-root-rules.make
@@ -4,22 +4,17 @@
# Explicitly list the dependencies on generated content
$(outdir)/web.texi: $(outdir)/weblinks.itexi
-$(top-build-dir)/Documentation/$(outdir)/%/index.$(ISOLANG).html:
$(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map
$(TRANSLATION_LILY_IMAGES)
+$(top-build-dir)/Documentation/$(outdir)/%/index.$(ISOLANG).html:
$(outdir)/%/index.html $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map
$(TRANSLATION_LILY_IMAGES)
mkdir -p $(dir $@)
- mkdir -p $(outdir)/$*
- DEPTH=$(depth)/../ $(TEXI2HTML) $(TEXI2HTML_SPLIT) $(TEXI2HTML_FLAGS)
--output=$(outdir)/$* $<
find $(outdir)/$* -name '*.html' | xargs grep -L 'UNTRANSLATED NODE:
IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link
--prepend-suffix .$(ISOLANG) hard $(outdir)
$(top-build-dir)/Documentation/$(outdir)
-$(top-build-dir)/Documentation/$(outdir)/%-big-page.$(ISOLANG).html:
$(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map
$(TRANSLATION_LILY_IMAGES)
- DEPTH=$(depth) $(TEXI2HTML) -D bigpage $(TEXI2HTML_FLAGS) --output=$@ $<
-
-$(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).html:
$(outdir)/%.texi $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map
$(outdir)/version.itexi $(outdir)/weblinks.itexi
- DEPTH=$(depth) $(TEXI2HTML) $(TEXI2HTML_FLAGS) --output=$@ $<
+$(top-build-dir)/Documentation/$(outdir)/%-big-page.$(ISOLANG).html:
$(outdir)/%-big-page.html $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map
$(TRANSLATION_LILY_IMAGES)
+ mkdir -p $(dir $@)
+ cp -f $< $@
-$(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).pdf: $(outdir)/%.texi
- cd $(outdir) && \
- texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $*.texi && \
- mkdir -p $(dir $@) && mv $*.pdf $@
+$(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).pdf: $(outdir)/%.pdf
+ mkdir -p $(dir $@)
+ cp -f $< $@
$(outdir)/version.%: $(top-src-dir)/VERSION
$(PYTHON) $(top-src-dir)/scripts/build/create-version-itexi.py > $@
@@ -30,9 +25,6 @@ $(outdir)/weblinks.%: $(top-src-dir)/VERSION
$(outdir)/%.png: $(top-build-dir)/Documentation/$(outdir)/%.png
ln -f $< $@
-$(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map: $(outdir)/%.texi
$(XREF_MAPS_DIR)/%.xref-map
- $(buildscript-dir)/extract_texi_filenames -o $(XREF_MAPS_DIR)
$(XREF_MAP_FLAGS) --master-map-file=$(XREF_MAPS_DIR)/$*.xref-map $<
-
$(MASTER_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES) $(outdir)/pictures
$(outdir)/pictures:
Index: make/doc-i18n-root-targets.make
diff --git a/make/doc-i18n-root-targets.make
b/make/doc-i18n-root-targets.make
index
a022da9ae5d79d1ead37fcf6a8ab18272a0e256c..5d9efce3b560a5865866800aa8d65115f6d0534d
100644
--- a/make/doc-i18n-root-targets.make
+++ b/make/doc-i18n-root-targets.make
@@ -9,8 +9,6 @@ local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES)
$(XREF_MAPS_FILES)
endif
local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES)
$(DOCUMENTATION_LOCALE_TARGET)
-# FIXME: move the following line to a rule that generate the right file
- (echo | grep -L 'UNTRANSLATED NODE: IGNORE ME' $(HTML_FILES)) | xargs
$(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir)
$(top-build-dir)/Documentation/$(outdir)
$(DOCUMENTATION_LOCALE_TARGET):
$(MAKE) -C $(depth)/Documentation/po out=www messages
Index: make/doc-i18n-root-vars.make
diff --git a/make/doc-i18n-root-vars.make b/make/doc-i18n-root-vars.make
index
8c20f494bde0106e624edd30e2a9c140267dcd84..5a49d5eaef93f3e4fb3aeb6e1b53fa489cc78d60
100644
--- a/make/doc-i18n-root-vars.make
+++ b/make/doc-i18n-root-vars.make
@@ -34,12 +34,6 @@ LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES)
MAKEINFO_FLAGS += --force --enable-encoding $(DOCUMENTATION_INCLUDES)
MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
-# texi2html xref map files
-# FIXME: duplicated in stepake/texinfo-vars.make
make/doc-i18n-root-vars.make
-XREF_MAPS_DIR=$(top-build-dir)/$(outdir)/xref-maps
-XREF_MAPS_FILES=$(TEXINFO_MANUALS:%=$(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map)
-XREF_MAP_FLAGS += -I $(outdir) -I $(src-dir) $(DOCUMENTATION_INCLUDES)
-
WEB_MANUALS=web
###########
Index: make/ly-rules.make
diff --git a/make/ly-rules.make b/make/ly-rules.make
index
a876b04f1864ea548e03997b35aecccbed5bbcbd..0461e1b9c696c5c71fc738eb8e36b96512f76a29
100644
--- a/make/ly-rules.make
+++ b/make/ly-rules.make
@@ -40,3 +40,9 @@ $(outdir)/%.html.omf: $(outdir)/%.texi
$(outdir)/%.pdf.omf: $(outdir)/%.texi
$(call GENERATE_OMF,pdf)
+
+$(outdir)/others-did.itexi $(outdir)/we-wrote.itexi: $(outdir)/%.itexi:
$(top-src-dir)/Documentation/web/%.bib
$(top-src-dir)/Documentation/lily-bib.bst
+ BSTINPUTS=$(top-src-dir)/Documentation/web/ $(buildscript-dir)/bib2texi
\
+ -s $(top-src-dir)/Documentation/lily-bib \
+ -o $(outdir)/$*.itexi \
+ $(top-src-dir)/Documentation/web/$*.bib
Index: scripts/build/mass-link.py
diff --git a/scripts/build/mass-link.py b/scripts/build/mass-link.py
index
00df532f0a06fa7c543b1acbe506d02b5c560a80..33b8dac467a7af4179361954868800caa912c488
100644
--- a/scripts/build/mass-link.py
+++ b/scripts/build/mass-link.py
@@ -61,5 +61,6 @@ def force_link (src,dest):
if os.path.exists (dest):
os.system ('rm -f ' + dest)
link (src, dest)
+ os.utime (dest, None)
map (force_link, sourcefiles, destfiles)
Index: stepmake/stepmake/texinfo-rules.make
diff --git a/stepmake/stepmake/texinfo-rules.make
b/stepmake/stepmake/texinfo-rules.make
index
83120ed87fb7e9a3684cc7c9d1dc7eef424ac9bc..1fb024739002dd447660532743949e12824fc968
100644
--- a/stepmake/stepmake/texinfo-rules.make
+++ b/stepmake/stepmake/texinfo-rules.make
@@ -57,8 +57,13 @@ else
DEPTH=$(depth)/../ AJAX_SEARCH=$(AJAX_SEARCH) $(TEXI2HTML)
$(TEXI2HTML_SPLIT) $(TEXI2HTML_FLAGS) --output=$(dir $@) $<
endif
+ifneq ($(ISOLANG),)
+$(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map: $(outdir)/%.texi
$(XREF_MAPS_DIR)/%.xref-map
+ $(buildscript-dir)/extract_texi_filenames $(XREF_MAP_FLAGS) -o
$(XREF_MAPS_DIR) --master-map-file=$(XREF_MAPS_DIR)/$*.xref-map $<
+else
$(XREF_MAPS_DIR)/%.xref-map: $(outdir)/%.texi
$(buildscript-dir)/extract_texi_filenames $(XREF_MAP_FLAGS) -o
$(XREF_MAPS_DIR) $<
+endif
$(outdir)/%.info: %.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep
$(outdir)/version.itexi $(outdir)/weblinks.itexi
$(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ $<
Index: stepmake/stepmake/texinfo-vars.make
diff --git a/stepmake/stepmake/texinfo-vars.make
b/stepmake/stepmake/texinfo-vars.make
index
2f2d801ab1210e1bc784306df498c5e84d5b553f..fe910811ea0002783c5904854b37c0317bbb48b8
100644
--- a/stepmake/stepmake/texinfo-vars.make
+++ b/stepmake/stepmake/texinfo-vars.make
@@ -37,10 +37,14 @@ MAKEINFO_FLAGS += --enable-encoding
$(DOCUMENTATION_INCLUDES)
MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
# texi2html xref map files
-# FIXME: duplicated in stepake/texinfo-vars.make
make/doc-i18n-root-vars.make
XREF_MAPS_DIR = $(top-build-dir)/$(outdir)/xref-maps
+ifneq ($(ISOLANG),)
+XREF_MAPS_FILES +=
$(TEXI_FILES:%.texi=$(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map) \
+ $(TELY_FILES:%.tely=$(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map)
+else
XREF_MAPS_FILES += $(TEXI_FILES:%.texi=$(XREF_MAPS_DIR)/%.xref-map) \
$(TELY_FILES:%.tely=$(XREF_MAPS_DIR)/%.xref-map)
+endif
XREF_MAP_FLAGS += -I $(outdir) -I $(src-dir) $(DOCUMENTATION_INCLUDES)
###########
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Build translated manuals: Don't rebuild everything each time unless necessary. (issue 5494069),
julien . rioux <=