path: root/meta/classes/gettext.bbclass
diff options
authorRichard Purdie <>2011-10-18 18:26:26 +0100
committerRichard Purdie <>2011-11-02 08:56:11 +0000
commit01b2a16beb4a924077b74943ad4d6e7976563ff1 (patch)
tree66c1780bc958d046218bed37de27ced8abe0eab2 /meta/classes/gettext.bbclass
parenta46c6c6e8926e202aacf85a6b00dfd4e9c128792 (diff)
gettext: Switch to disabling nls and reducing -native build dependencies to a set of pre built m4 macros
When analysing our build performance, its apparent that binutils-cross takes an age to get built. This is due to its dependencies on flex-native and bison-native which in turn depend on gettext-native. gettext-native is problematic as it has a significant dependency chain of its own and takes an age to build. What is worse is that we never care about the native language support in -native and -cross packages since we always force the C locale. This patch therefore disables nls for all -native packages (its already disabled for -cross) and adds a new gettext-minimal-native package which contains the m4 macros to keep autoconf/automake happy. This means we gain a significant build time speedup by the removal of gettext-native from most dependency chains (only being part of gettext for the target now). For now the LICENCE field says GPLv3, the macros are actually under a FSF MIT like licence so we need to update this part of the patch in due course. Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta/classes/gettext.bbclass')
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass
index d5b3d701e9..1793748af2 100644
--- a/meta/classes/gettext.bbclass
+++ b/meta/classes/gettext.bbclass
@@ -3,9 +3,13 @@ def gettext_dependencies(d):
return ""
if d.getVar('INHIBIT_DEFAULT_DEPS', True) and not oe.utils.inherits(d, 'cross-canadian'):
return ""
+ if oe.utils.inherits(d, 'native'):
+ return "gettext-minimal-native"
return d.getVar('DEPENDS_GETTEXT', False)
def gettext_oeconf(d):
+ if oe.utils.inherits(d, 'native'):
+ return '--disable-nls'
# Remove the NLS bits if USE_NLS is no.
if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'cross-canadian'):
return '--disable-nls'