autotools.bbclass: Factor out aclocal copying function
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 31 May 2013 11:06:24 +0000 (14:06 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 4 Jun 2013 10:50:24 +0000 (11:50 +0100)
Some recipes may need to manually call the aclocal copying
functionality so factor this out into a function.

(From OE-Core rev: a5a08543c8cec43d993b2bba0ad6a9357c0a5e04)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/autotools.bbclass

index b19a871..66c0f5d 100644 (file)
@@ -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.