- case $cleanmode in
- git) echo >&4 'BUILD-MODES PROGRAM git clean -xdf' ;;
- git-ff) echo >&4 'BUILD-MODES PROGRAM git clean -xdff' ;;
- check) echo >&4 'BUILD-MODES PROGRAM git clean -xdn' ;;
- dpkg-source-d) echo >&4 "EXAMPLE RULES TARGET clean" ;;
- dpkg-source) bm-build-deps-ok || tolerate_fail=tolerate
+ local eff_cleanmode=$cleanmode
+
+ case "$e_targets" in
+ *[^\ ]*)
+ ;;
+ *)
+ # if no build is going to be run, dgit will only check
+ # cleanliness rather than actually cleaning
+ eff_cleanmode=C$cleanmode
+ ;;
+ esac
+
+ case "$act" in
+ sbuild*)
+ # dgit sbuild will only check cleanliness
+ # because it doesn't need to to make a .dsc for sbuild
+ eff_cleanmode=C$cleanmode
+ ;;
+ esac
+
+ # we are running the builder in-tree ?
+ # when we have --include-dirty, we will want to check
+ # that too and reset eff_cleanmode to $cleanmode
+
+ case $eff_cleanmode in
+ git|Cgit,always)
+ echo >&4 'BUILD-MODES PROGRAM git clean -xdf' ;;
+ git-ff|Cgit-ff,always)
+ echo >&4 'BUILD-MODES PROGRAM git clean -xdff' ;;
+ check|Ccheck) echo >&4 'BUILD-MODES PROGRAM git clean -dn -x' ;;
+ dpkg-source-d|dpkg-source-d,no-check)
+ echo >&4 "EXAMPLE RULES TARGET clean"
+ ;;
+ dpkg-source|dpkg-source,no-check)
+ bm-build-deps-ok || tolerate_fail=tolerate