From: Richard Purdie Date: Fri, 31 May 2013 11:06:24 +0000 (+0300) Subject: autotools.bbclass: Factor out aclocal copying function X-Git-Tag: rev_ivi_2015_02_04~12317 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1545a439c66c5d4a7ba84a2ac0bd5df29adb3478;p=scm%2Fbb%2Ftizen-distro.git autotools.bbclass: Factor out aclocal copying function 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 Signed-off-by: Cristian Iorga Signed-off-by: Richard Purdie --- diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index b19a871..66c0f5d 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.