lilypond-devel
[Top][All Lists]
Advanced

[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)

 ###########





reply via email to

[Prev in Thread] Current Thread [Next in Thread]