aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Ferrell <major@homeonderanged.org>2012-04-26 17:13:03 -0500
committerMark Ferrell <major@homeonderanged.org>2012-04-26 17:13:03 -0500
commitb319329de187321dc814fd75a231bdd9e238351e (patch)
treeef55e6241adde188c75158f4b6e748cf7f20e1b2
parent2882804244caf0797a06c47ef0ef4f55b2e1464a (diff)
Wrapping clean w/ distclean not as expected
* Attempting to call build-clean from build-distclean has some undesirable results. It may be possible to do this in the future by supplying a --distclean option to build-clean, but for now that isn't possible.
-rwxr-xr-xscripts/builder/build-distclean24
-rwxr-xr-xscripts/builder/build-makedeps7
2 files changed, 26 insertions, 5 deletions
diff --git a/scripts/builder/build-distclean b/scripts/builder/build-distclean
index 6b4499d..fa08e10 100755
--- a/scripts/builder/build-distclean
+++ b/scripts/builder/build-distclean
@@ -2,9 +2,25 @@
echo "distcleaning: ${1}"
eval $(build query --environ "${1}")
-# Shutdown the NOCLEAN flag during DISTCLEAN
-NOCLEAN=
-export NOCLEAN
-build-clean "${1}"
+
+if [ -f "${BUILDER_ATFDIR}/${CATEGORY}/${NAME}-${VERSION}.${ARCHIVE_FORMAT}" ]; then
+ rm "${BUILDER_ATFDIR}/${CATEGORY}/${NAME}-${VERSION}.${ARCHIVE_FORMAT}" &
+fi
+if [ -f "${SYSROOT}/var/db/binpkgs/${CATEGORY}/${NAME}" ]; then
+ cd "${SYSROOT}"
+ # FIXME: we are failing to handle file collisions produce in
+ # this file.
+ cat "var/db/binpkgs/${CATEGORY}/${NAME}" | xargs -0 rm -f &
+fi
+if [ -d "${W}" ]; then
+ rm -rf "${W}" &
+fi
+
+wait
+
+# Clobber our package marker.
+if [ -f "${SYSROOT}/var/db/binpkgs/${CATEGORY}/${NAME}" ]; then
+ rm "${SYSROOT}/var/db/binpkgs/${CATEGORY}/${NAME}"
+fi
# vim: filetype=sh
diff --git a/scripts/builder/build-makedeps b/scripts/builder/build-makedeps
index 8c44146..a0b1119 100755
--- a/scripts/builder/build-makedeps
+++ b/scripts/builder/build-makedeps
@@ -5,7 +5,7 @@ cat >"${BUILDER_MAKEFILE}" <<EOF
all: packages_archive
all_fetch: packages_fetch
all_clean: packages_clean
-all_distclean: packages_clean sysroot_clean artifacts_clean
+all_distclean: packages_distclean sysroot_clean artifacts_clean
all_archive: packages_archive
all_install: packages_install
all_makedeps:
@@ -28,6 +28,7 @@ PACKAGES_COMPILE=
PACKAGES_ARCHIVE=
PACKAGES_INSTALL=
PACKAGES_CLEAN=
+PACKAGES_DISTCLEAN=
for package in $(cd "${BUILDER_PKGDIR}" && echo */*); do
if ! eval $(build query --environ "${package}"); then
die "in package '${package}'"
@@ -95,6 +96,8 @@ ${package_make}_makedeps:
${package_make}_fetch: ${package_sources}
${package_make}_clean:
@build-clean "${CATEGORY}/${NAME}"
+${package_make}_distclean:
+ @build-distclean "${CATEGORY}/${NAME}"
${package_archive}: ${package_sources} ${package_deps}
@build-package "${CATEGORY}/${NAME}"
${package_install}: ${package_archive}
@@ -138,6 +141,7 @@ EOF
PACKAGES_INSTALL="${PACKAGES_INSTALL} ${package_install}"
fi
PACKAGES_CLEAN="${PACKAGES_CLEAN} ${package_make}_clean"
+ PACKAGES_DISTCLEAN="${PACKAGES_DISTCLEAN} ${package_make}_distclean"
done >> "${BUILDER_MAKEFILE}"
cat<<EOF >> "${BUILDER_MAKEFILE}"
@@ -145,6 +149,7 @@ packages_fetch: ${PACKAGES_SOURCES}
packages_archive: ${PACKAGES_ARCHIVES}
packages_install: ${PACKAGES_INSTALL}
packages_clean: ${PACKAGES_CLEAN}
+packages_distclean: ${PACKAGES_DISTCLEAN}
EOF
# vim: filetype=sh