Makefile: target-purgelocales: fix top-level parallel make support
authorFabio Porcedda <fabio.porcedda@gmail.com>
Tue, 29 Apr 2014 15:32:34 +0000 (17:32 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 1 May 2014 21:38:27 +0000 (23:38 +0200)
The "target-purgelocales" target must be executed after all the other
targets and before the "target-finalize" target, so create a
TARGET_PURGE_LOCALES variable containing the commands of the target
"target-purgelocales" and add it at the beginning of the
"target-finalize" target.

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Makefile

index 30b2271666f65a0e927890599bd6e51d35a9e643..2f18aabdb5969398281c227c3b0bfc6f5c31b62a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -391,10 +391,6 @@ include system/system.mk
 
 include $(BR2_EXTERNAL)/external.mk
 
-ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
-TARGETS += target-purgelocales
-endif
-
 ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
 ifneq ($(GENERATE_LOCALE),)
 TARGETS += target-generatelocales
@@ -516,9 +512,28 @@ STRIP_FIND_CMD += -type f \( -perm /111 -o -name '*.so*' \)
 #   done for kernel modules with incorrect permissions.
 STRIP_FIND_CMD += -not \( $(call findfileclauses,libpthread*.so* *.ko $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) -print
 
+ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
+LOCALE_WHITELIST = $(BUILD_DIR)/locales.nopurge
+LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))
+
+define TARGET_PURGE_LOCALES
+       rm -f $(LOCALE_WHITELIST)
+       for i in $(LOCALE_NOPURGE); do echo $$i >> $(LOCALE_WHITELIST); done
+
+       for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/man /usr/share/man /usr/lib/locale)); \
+       do \
+               for lang in $$(cd $$dir; ls .|grep -v man); \
+               do \
+                       grep -qx $$lang $(LOCALE_WHITELIST) || rm -rf $$dir/$$lang; \
+               done; \
+       done
+endef
+endif
+
 $(TARGETS_ROOTFS): target-finalize
 
 target-finalize: $(TARGETS)
+       $(TARGET_PURGE_LOCALES)
        rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
                $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
                $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
@@ -582,23 +597,6 @@ endif
                $(call MESSAGE,"Executing post-build script $(s)"); \
                $(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
 
-ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
-LOCALE_WHITELIST = $(BUILD_DIR)/locales.nopurge
-LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))
-
-target-purgelocales:
-       rm -f $(LOCALE_WHITELIST)
-       for i in $(LOCALE_NOPURGE); do echo $$i >> $(LOCALE_WHITELIST); done
-
-       for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/man /usr/share/man /usr/lib/locale)); \
-       do \
-               for lang in $$(cd $$dir; ls .|grep -v man); \
-               do \
-                       grep -qx $$lang $(LOCALE_WHITELIST) || rm -rf $$dir/$$lang; \
-               done; \
-       done
-endif
-
 ifneq ($(GENERATE_LOCALE),)
 # Generate locale data. Basically, we call the localedef program
 # (built by the host-localedef package) for each locale. The input