make clean: split file list into manageable chunks
"make clean" might fail with the following error:
make[2]: execvp: /bin/bash: Argument list too long
This error was observed on a platform that has lots of additional
source files compared to upstream (drivers, etc.), and that sets a long
output path on the command line (make ... O=/some/long/path).
Fix the error by splitting the file list into more manageable chunks.
Note that removing one file at a time is not reasonable, because
spawning too may shells takes quite a long time (up to 7-10 seconds to
"make clean").
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reported-by: Lijianhui <airbak.li@hisilicon.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/Makefile b/Makefile
index c9bf912..069519a 100644
--- a/Makefile
+++ b/Makefile
@@ -86,7 +86,7 @@
.PHONY: clean
clean:
@$(cmd-echo-silent) ' CLEAN $(out-dir)'
- ${q}rm -f $(cleanfiles)
+ $(call do-rm-f, $(cleanfiles))
${q}dirs="$(call cleandirs-for-rmdir)"; if [ "$$dirs" ]; then $(RMDIR) $$dirs; fi
@if [ "$(out-dir)" != "$(O)" ]; then $(cmd-echo-silent) ' CLEAN $(O)'; fi
${q}if [ -d "$(O)" ]; then $(RMDIR) $(O); fi