Speedup for make clean-depends (and thus make clean)

Alexander Leidinger Alexander at Leidinger.net
Mon May 21 08:20:50 UTC 2007


Quoting Jeremy Lea <reg at FreeBSD.ORG> (from Sun, 20 May 2007 19:13:13 -0700):

> Hi,
>
> On Sun, May 20, 2007 at 09:01:49AM +0200, Alexander Leidinger wrote:
>> I could write such a new target, e.g. limited-clean, which could be used
>> with update tools if there's some interest in something like this from
>> the author of such a tool.
>
> The patch below should get you going on this.  The first will save a
> stat and a make for each port, so it should reduce your time even more,

I tried to do the WRKDIR and _DEPEND_DIRS part in one go myself, but  
it was slower than the patch I did post (in the case where all dirs  
are already clean). But I did use another implementation, I did a "set  
-- $$children" and used shift instead of state variables. Did you  
compare the speed of your patch with the speed of my patch (in a  
directory with a lot of dependencies like e.g. gnome2)?

> and the second does the limited-clean.  I've just added little targets
> to test them.

There's a bug. You continue if the WRKDIR does not exist, but you  
don't change the state, so you don't check if the first dependency was  
already checked. You need to switch to the second state before  
checking the existence of the WRKDIR.

> One might want to use the logic that 'make clean' does a 'make clean
> limited-clean' if NOCLEANDEPENDS is not defined, and 'make clean' if it
> is, and leave 'make clean-depends' to do the full clean.

I don't think changing the semantic of some existing stuff without a  
major reason is a good idea. I think it is better to introduce a new  
target and let people use the new target instead.

Bye,
Alexander.

-- 
A log may float in a river, but that does not make it a crocodile.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-ports mailing list