summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/classes/autotools.bbclass37
1 files changed, 22 insertions, 15 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index b19a871827..66c0f5d10a 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -127,6 +127,26 @@ EXTRACONFFUNCS ??= ""
do_configure[prefuncs] += "autotools_preconfigure ${EXTRACONFFUNCS}"
do_configure[postfuncs] += "autotools_postconfigure"
+ACLOCALDIR = "${B}/aclocal-copy"
+
+autotools_copy_aclocal () {
+ # Remove any previous copy of the m4 macros
+ rm -rf ${ACLOCALDIR}/
+
+ # The aclocal directory could get modified by other processes
+ # uninstalling data from the sysroot. See Yocto #861 for details.
+ # We avoid this by taking a copy here and then files cannot disappear.
+ # We copy native first, then target. This avoids certain races since cp-noerror
+ # won't overwrite existing files.
+ mkdir -p ${ACLOCALDIR}/
+ if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
+ cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
+ fi
+ if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
+ cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
+ fi
+}
+
autotools_do_configure() {
# WARNING: gross hack follows:
# An autotools built package generally needs these scripts, however only
@@ -142,9 +162,8 @@ autotools_do_configure() {
if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then
olddir=`pwd`
cd ${S}
- # Remove any previous copy of the m4 macros
- rm -rf ${B}/aclocal-copy/
- ACLOCAL="aclocal --system-acdir=${B}/aclocal-copy/"
+ autotools_copy_aclocal
+ ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/"
if [ x"${acpaths}" = xdefault ]; then
acpaths=
for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
@@ -160,18 +179,6 @@ autotools_do_configure() {
if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then
ACLOCAL="$ACLOCAL --automake-acdir=${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV"
fi
- # The aclocal directory could get modified by other processes
- # uninstalling data from the sysroot. See Yocto #861 for details.
- # We avoid this by taking a copy here and then files cannot disappear.
- # We copy native first, then target. This avoids certain races since cp-noerror
- # won't overwrite existing files.
- mkdir -p ${B}/aclocal-copy/
- if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
- cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${B}/aclocal-copy/
- fi
- if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
- cp-noerror ${STAGING_DATADIR}/aclocal/ ${B}/aclocal-copy/
- fi
# autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
# like it was auto-generated. Work around this by blowing it away
# by hand, unless the package specifically asked not to run aclocal.