This allows make to do its thing when using Portage in a development
workflow, although the change also exposes how ebuild clean doesn't
clear out the WORKDIR.
TEST=`rm -rf /build/$board/tmp/portage/chromeos-base/kernel-0.0.1 &&
[ -e /build/$board/tmp/portage/chromeos-base/kernel-0.0.1/.unpacked ] &&
rm /build/$board/tmp/portage/chromeos-base/kernel-0.0.1/.unpacked &&
FEATURES=keepwork ebuild-$board kernel-0.0.1.ebuild install`
Then modify some of the source (preferably in the git repository rather
than the WORKDIR).
`[ -e /build/$board/tmp/portage/chromeos-base/kernel-0.0.1/.unpacked ] &&
rm /build/$board/tmp/portage/chromeos-base/kernel-0.0.1/.unpacked &&
FEATURES=keepwork ebuild-$board kernel-0.0.1.ebuild install &&`
On the second ebuild operation, make should be able to tell what
exactly, or if nothing at all, has changed, and rebuild only the
necessary object files.
http://codereview.chromium.org/
2922001
if [ "${newstuff}" == "yes" ]; then
# We don't necessarily have privileges to do a full dyn_clean here.
rm -rf "${PORTAGE_BUILDDIR}"/{.unpacked,.prepared,.configured,.compiled,.tested,.installed,.packaged,build-info}
- rm -rf "${WORKDIR}"
+ if ! hasq keepwork $FEATURES ; then
+ rm -rf "${WORKDIR}"
+ fi
if [ -d "${T}" ] && \
- ! hasq keeptemp $FEATURES && ! hasq keepwork $FEATURES ; then
+ ! hasq keeptemp $FEATURES ; then
rm -rf "${T}" && mkdir "${T}"
fi
fi