Subject: subdir-objects "make clean" invokes one rm for each .o file
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Thu, 02 Feb 2012 17:06:17 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

In cppi (http://git.savannah.gnu.org/cgit/cppi.git), I am now using non-
recursive make via subdir-objects, modeled after the way bison does it.
I see that "make clean" is inefficient: one "rm -f" per .o file:

  rm -fr *.o
  rm -f *.o
  rm -f lib/calloc.o
  rm -f lib/close-stream.o
  rm -f lib/closeout.o
  rm -f lib/error.o
  rm -f lib/exitfail.o
  rm -f lib/fpending.o
  rm -f lib/getopt.o
  rm -f lib/getopt1.o
  rm -f lib/localcharset.o
  rm -f lib/malloc.o
  rm -f lib/mbrtowc.o
  rm -f lib/mbsinit.o
  rm -f lib/msvc-inval.o
  rm -f lib/msvc-nothrow.o
  rm -f lib/obstack.o
  rm -f lib/progname.o
  rm -f lib/quote.o
  rm -f lib/quotearg.o
  rm -f lib/realloc.o
  rm -f lib/stpcpy.o
  rm -f lib/strerror-override.o
  rm -f lib/strerror.o
  rm -f lib/version-etc-fsf.o
  rm -f lib/version-etc.o
  rm -f lib/xalloc-die.o
  rm -f lib/xmalloc.o
  rm -f lib/xstrtol-error.o
  rm -f lib/xstrtol.o
  rm -f lib/xstrtoul.o
  rm -f src/cppi.o

cppi has so few .o files that it's not a problem, but with hundreds
(coreutils has over 600), it could be noticeable.

Contrast that with its removal of *.o above and of all tests/*.log files
using just one rm invocation each, I think it must simply be an oversight.
Seems like it'd be worth fixing some day.