diff --git a/mk/target.mk b/mk/target.mk
index ce6406298aa5fc68b7f4f2b5c10e3c571193a6da..799eec3c95af3765feac70e3c9f5214ad79e9e6d 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -1048,10 +1048,10 @@ all docs runtests boot TAGS clean veryclean maintainer-clean install info ::
 	@echo "===fptools== Recursively making \`$@' in $(SUBDIRS) ..."
 	@echo "PWD = $(shell pwd)"
 	@echo "------------------------------------------------------------------------"
-	@case '${MFLAGS}' in *-[ik]*) set +e;; *) set -e;; esac; \
+	@case '${MFLAGS}' in *-[ik]*) set +e;; *-r*[ik]*) set +e;; *) set -e;; esac; \
 	for i in $(SUBDIRS) ; do \
 	  echo "------------------------------------------------------------------------"; \
-	  echo "==fptools== $(MAKE) $@;"; \
+	  echo "==fptools== $(MAKE) $@ $(MFLAGS);"; \
 	  echo " in $(shell pwd)/$$i"; \
 	  echo "------------------------------------------------------------------------"; \
 	  $(MAKE) --no-print-directory -C $$i $(MFLAGS) $@; \
@@ -1062,7 +1062,7 @@ all docs runtests boot TAGS clean veryclean maintainer-clean install info ::
 	@echo "------------------------------------------------------------------------"
 
 dist ::
-	@case '${MFLAGS}' in *-[ik]*) set +e;; *) set -e;; esac; \
+	@case '${MFLAGS}' in *-[ik]*) set +e;; *-r*[ik]*) set +e;; *) set -e;; esac; \
 	for i in $(SUBDIRS) ; do \
 	  $(MKDIRHIER_PREFIX)mkdirhier $(SRC_DIST_DIR)/$$i; \
 	  $(MAKE) -C $$i $(MFLAGS) $@ SRC_DIST_DIR=$(SRC_DIST_DIR)/$$i; \
@@ -1090,7 +1090,7 @@ all docs runtests TAGS clean veryclean maintainer-clean install ::
 	@echo "===fptools== Recursively making \`$@' for ways: $(WAYS) ..."
 	@echo "PWD = $(shell pwd)"
 	@echo "------------------------------------------------------------------------"
-	@case '${MFLAGS}' in *-[ik]*) set +e;; *) set -e;; esac; \
+	@case '${MFLAGS}' in *-[ik]*) set +e;; *-r*[ik]*) set +e;; *) set -e;; esac; \
 	for i in $(WAYS) ; do \
 	  echo "------------------------------------------------------------------------"; \
 	  echo "==fptools== $(MAKE) way=$$i $@;"; \