[gimp-help-2/gimp-help-2-6-2] Fix Makefile problem with make v3.82



commit 23bb4e52959878c067c85109ea83838e6ac065cb
Author: Ulf-D. Ehlert <ulfehlert svn gnome org>
Date:   Tue Dec 21 21:04:03 2010 +0100

    Fix Makefile problem with make v3.82
    
    * make v3.82 (and make v3.80) didn't handle pattern rules containing
    wildcards (see #637505). So the rules for making POT files are changed,
    now using GNU make's "Secondary Expansion" feature.
    (bugfix by Miroslav Šulc <fordfrog fordfrog name>)
    * Fix "make pot/gimp.pot".
    (bugfix by Miroslav Šulc <fordfrog fordfrog name>)
    * Fix (and use) image prerequisites for pot files (if an image is
    changed, the pot file is updated).

 Makefile.GNU |    8 ++++++--
 Makefile.am  |   16 ++++++++++------
 2 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/Makefile.GNU b/Makefile.GNU
index 28f17f5..102c29e 100644
--- a/Makefile.GNU
+++ b/Makefile.GNU
@@ -354,11 +354,15 @@ POT_FILES  = $(patsubst src/%,pot/%.pot,$(filter-out src src/,$(SRC_DIRS)))
 # Special case: src/*.xml --> pot/gimp.pot
 POT_FILES += pot/gimp.pot
 
+# XXX: Secondary Expansion of the following two rules is required because
+# "pot/%.pot: $(srcdir)/src/%/*.xml" didn't work with make v3.82
+# (cf. bug #637505).
+.SECONDEXPANSION:
 # General case
 ifeq ($(filter pot/%.pot po/%.po,$(MAKECMDGOALS)),)
-pot/%.pot: src/%/*.xml $(wildcard images/C/%/*.*)
+pot/%.pot: src/$$*/*.xml $$(wildcard images/C/$$*/*.*)
 else
-pot/%.pot: src/%/*.xml FORCE
+pot/%.pot: src/$$*/*.xml FORCE
 endif
        $(cmd) $(call make_target_dir,$@)
        $(msg) "[POT] $@"
diff --git a/Makefile.am b/Makefile.am
index ba64713..1a06cd1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -414,15 +414,19 @@ MAINTAINERS: gimp-help-2.doap $(DOAP_STYLESHEET)
 ########################################################################
 
 # src/path/to/file/*.xml --> pot/path/to/file.pot
-POT_FILES  = $(patsubst src/%,pot/%.pot,$(filter-out src src/,$(SRC_DIRS)))
+# HIDE FROM AUTOMAKE #POT_FILES  = $(patsubst src/%,pot/%.pot,$(filter-out src src/,$(SRC_DIRS)))
 # Special case: src/*.xml --> pot/gimp.pot
-POT_FILES += pot/gimp.pot
+# HIDE FROM AUTOMAKE #POT_FILES += pot/gimp.pot
 
+# XXX: Secondary Expansion of the following two rules is required because
+# "pot/%.pot: $(srcdir)/src/%/*.xml" didn't work with make v3.82
+# (cf. bug #637505).
+# HIDE FROM AUTOMAKE #.SECONDEXPANSION:
 # General case
 # HIDE FROM AUTOMAKE #ifeq ($(filter pot/%.pot,$(MAKECMDGOALS)),)
-# HIDE FROM AUTOMAKE #pot/%.pot: $(srcdir)/src/%/*.xml
+# HIDE FROM AUTOMAKE #pot/%.pot: $(srcdir)/src/$$*/*.xml $$(wildcard images/C/$$*/*.*)
 # HIDE FROM AUTOMAKE #else
-# HIDE FROM AUTOMAKE #pot/%.pot: $(srcdir)/src/%/*.xml FORCE
+# HIDE FROM AUTOMAKE #pot/%.pot: $(srcdir)/src/$$*/*.xml FORCE
 # HIDE FROM AUTOMAKE #endif
 # HIDE FROM AUTOMAKE # $(cmd) $(call make_target_dir,$@)
 # HIDE FROM AUTOMAKE # $(msg) "[POT] $@"
@@ -435,10 +439,10 @@ POT_FILES += pot/gimp.pot
 # HIDE FROM AUTOMAKE #endif
 # HIDE FROM AUTOMAKE # $(cmd) $(call make_target_dir,$@)
 # HIDE FROM AUTOMAKE # $(msg) "[POT] $@"
-# HIDE FROM AUTOMAKE # $(cmd) $(call xml2pot,$^,$@)
+# HIDE FROM AUTOMAKE # $(cmd) $(call xml2pot,$(filter-out FORCE,$^),$@)
 # Special case: pot file for the authors DocBook file
 # requires an additional prerequisite
-AUTHORS_POT = $(AUTHORS_DOCBOOK_XML:src/%/$(AUTHORS_DOCBOOK_FILENAME)=pot/%.pot)
+# HIDE FROM AUTOMAKE #AUTHORS_POT = $(AUTHORS_DOCBOOK_XML:src/%/$(AUTHORS_DOCBOOK_FILENAME)=pot/%.pot)
 # HIDE FROM AUTOMAKE #ifeq ($(filter pot/%.pot,$(MAKECMDGOALS)),)
 # HIDE FROM AUTOMAKE #$(AUTHORS_POT): $(AUTHORS_DOCBOOK_XML) $(wildcard $(AUTHORS_DOCBOOK_DIRNAME)*.xml)
 # HIDE FROM AUTOMAKE #else


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]