diff options
-rwxr-xr-x | bin/ptxdist | 16 | ||||
-rw-r--r-- | doc/ref_parameter.inc | 6 |
2 files changed, 22 insertions, 0 deletions
diff --git a/bin/ptxdist b/bin/ptxdist index 03d6a37ff..1a8e02192 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -967,6 +967,7 @@ Clean Actions: clean cleanup build-host and build-cross dirs clean root cleanup root directory for target + clean target cleanup all target packages distclean cleanup everything Misc: @@ -1041,6 +1042,21 @@ EOF clean() { local dir bdir + # we want to clean all target packages + if [ "${1}" = "target" ]; then + if [ ! -n "${PTXDIST_FORCE}${PTXDIST_QUIET}${PTXCONF_SETUP_DIRECT_CLEAN}" ]; then + read -e -p "really clean all target packages? [y/N] " r + case "${r}" in + y|Y) ;; + *) exit 1 ;; + esac + fi + check_premake_compiler && + pkgs=($(ptxd_make "/print-PACKAGES /print-EXTRA_PACKAGES /print-LAZY_PACKAGES")) && + ptxd_make_log "${pkgs[@]/%/_clean}" + set -- root + fi + # we want to clean the root dir if [ "${1}" = "root" ]; then echo diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc index 0b11563c9..4aecb0471 100644 --- a/doc/ref_parameter.inc +++ b/doc/ref_parameter.inc @@ -162,6 +162,12 @@ Clean Actions The ``clean root`` and ``go`` action is useful if the *targetinstall* stage for all packages should run again. +``clean target`` + this action will call the ``clean`` action for each target package, + and also clean the root file system afterwards. + This can be useful if you want to rebuild the target file system from + scratch, without throwing away the already built host and cross packages. + ``clean <package>`` this action will only clean the dedicated <package>. It will remove its build directory and all installed files |