autotools.bbclass: Fix gettext macro versions issues

gettext m4 macros don't use the usual versioning/serial mechanism used by
aclocal. It therefore won't update them over and above any local version of
the macro. Equally, we don't run gettextize due to it doing slightly crazy
things to the build.

When we put the aclocal directory as a -I option to aclocal, if this was
found first compared to any recipe provided macros, the correct version
of the gettext macro would still "win". With the switch so correctly override
the system directory, older recipe provided macros may get used.

This patch manually removes the problematic m4 macros in the case we're using
gettext and need to use the correct m4 macros.

This patch also always ensures the gettext manipulations happen, even in the
-native case since missing or stale gettext files could cause build failures.

(From OE-Core rev: e9645d2bbeabaa5251d49edd659ab320fd66d0ee)

(From OE-Core rev: 841ea3c1c18e50e77fccbd5f44d6a79a50913b67)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2012-10-11 08:43:01 +00:00
parent c0bf723089
commit 7950bdf88d

View File

@@ -166,21 +166,24 @@ autotools_do_configure() {
else else
CONFIGURE_AC=configure.ac CONFIGURE_AC=configure.ac
fi fi
if ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then : do nothing -- we still have an old unmodified configure.ac
: do nothing -- we still have an old unmodified configure.ac else
else bbnote Executing glib-gettextize --force --copy
bbnote Executing glib-gettextize --force --copy echo "no" | glib-gettextize --force --copy
echo "no" | glib-gettextize --force --copy fi
fi else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then # We'd call gettextize here if it wasn't so broken...
# We'd call gettextize here if it wasn't so broken... cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/
cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ if [ -d ${S}/po/ ]; then
if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/
cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/
fi
fi fi
for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do
for j in `find ${S} -name $i | grep -v aclocal-copy`; do
rm $j
done
done
fi fi
fi fi
mkdir -p m4 mkdir -p m4