Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 4586
Status: resolved
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: Marek.Rouchal [...] gmx.net
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 6.21
Fixed in: (no value)



Subject: blibdirs should not be a :: target
With EU::MM 6.21 the generated Makefile contains a "blibdirs ::" target, which does often have no dependencies. From the GNU make manual: "If there are no prerequisites for that [double-colon] rule, its commands are always executed (even if the target already exists)." This has the consequence, that a couple of targets are unneccessarily rebuilt with each "make test", "make install" etc., like e.g. $(INST_DYNAMIC), which causes a (sometime long-running) re-link. I propose to make blibdirs a "single-colon" target. Works fine here with GNU make and Solaris make. Seems that these places need to be touched: $ find lib -type f | xargs grep -n 'blibdirs.*::' lib/ExtUtils/MM_Any.pm:110: my $make = "\nblibdirs :: \n"; lib/ExtUtils/MM_Unix.pm:620:blibdirs :: @targs Cheers, Marek
Date: Fri, 5 Dec 2003 13:30:23 -0800
From: Michael G Schwern <schwern [...] pobox.com>
To: via RT <bug-ExtUtils-MakeMaker [...] rt.cpan.org>
CC: "AdminCc of cpan Ticket #4586": ;
Subject: Re: [cpan #4586] blibdirs should not be a :: target
RT-Send-Cc:
On Fri, Dec 05, 2003 at 10:01:45AM -0500, via RT wrote: Show quoted text
> With EU::MM 6.21 the generated Makefile contains a "blibdirs ::" target, > which does often have no dependencies. From the GNU make manual: > "If there are no prerequisites for that [double-colon] > rule, its commands are always executed (even if the target > already exists)."
I never understood the rationale for this. Show quoted text
> This has the consequence, that a couple of targets are unneccessarily > rebuilt with each "make test", "make install" etc., like e.g. > $(INST_DYNAMIC), which causes a (sometime long-running) re-link. > > I propose to make blibdirs a "single-colon" target. Works fine > here with GNU make and Solaris make.
No, the double-colon is needed because... Show quoted text
> Seems that these places need to be touched: > > $ find lib -type f | xargs grep -n 'blibdirs.*::' > lib/ExtUtils/MM_Any.pm:110: my $make = "\nblibdirs :: \n"; > lib/ExtUtils/MM_Unix.pm:620:blibdirs :: @targs
...as you can see, there's two places which generate blibdirs targets. The default and then calling dir_targets() can add to it. Anyhow, this has been fixed, a bit sloppily, in the snapshot on makemaker.org. -- Michael G Schwern schwern@pobox.com http://www.pobox.com/~schwern/ I'm going to have to hurt you on principle.
A proper fix is in the snapshot and will be in 6.22.