Subject: bug#10697: closed (Re: bug#10697: subdir-objects "make clean" invokes one rm for each .o file)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 11 Jun 2012 16:52:02 +0000

Your bug report

#10697: subdir-objects "make clean" invokes one rm for each .o file

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10697: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10697
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10697: subdir-objects "make clean" invokes one rm for each .o file
From: Stefano Lattarini <[email-masked]>
To: Jim Meyering <[email-masked]>
Cc: [email-masked], "[email-masked]" <[email-masked]>
Date: Mon, 11 Jun 2012 18:48:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On 06/10/2012 02:17 PM, Stefano Lattarini wrote:
> Reference: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10697>
> 
> See the attached patch; I will push it by tomorrow if there is no objection
> (and if anyone would like to give it a try on a real project, that would be
> much appreciated).
>
Pushed now (to maint).  I'm thus closing this  bug report.

Regards,
  Stefano

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.