diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index 941c06d032..9b36f3c7b6 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass @@ -124,10 +124,9 @@ autotools_do_configure() { # uninstalling data from the sysroot. See Yocto #861 for details. # We avoid this by taking a copy here and then files cannot disappear. if [ -d ${STAGING_DATADIR}/aclocal ]; then - mkdir -p ${B}/aclocal-copy/ # for scratch build this directory can be empty # so avoid cp's no files to copy error - cp -r ${STAGING_DATADIR}/aclocal/. ${B}/aclocal-copy/ + cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/ acpaths="$acpaths -I ${B}/aclocal-copy/" fi # autoreconf is too shy to overwrite aclocal.m4 if it doesn't look diff --git a/scripts/cp-noerror b/scripts/cp-noerror new file mode 100755 index 0000000000..fdb3d2d19a --- /dev/null +++ b/scripts/cp-noerror @@ -0,0 +1,15 @@ +#!/usr/bin/env python +# +# Allow copying of $1 to $2 but if files in $1 disappear during the copy operation, +# don't error. +# + +import sys +import shutil + +try: + shutil.copytree(sys.argv[1], sys.argv[2]) +except shutil.Error: + pass + +