Skip Menu |

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

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

People
Owner: Nobody in particular
Requestors: alex.leites [...] esca.com
Cc:
AdminCc:

Bug Information
Severity: Unimportant
Broken in: 5.54_01
Fixed in: (no value)



Subject: win32 nmake: fatal error U1087: cannot have : and :: dependents for same target, when MAKEFILE=> is used
------ Versions: ActiveState 628, MakeMaker 5.45 ------ Problem: When Makefile-bin.PL uses MAKEFILE=>'Makefile-bin' option, nmake generates the folloing message: Makefile-bin(591) : fatal error U1087: cannot have : and :: dependents for same target ------ Makefile-bin.PL content: use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'test', 'MAKEFILE' => 'Makefile-bin' ) ---- Results of 'nmake -f Makefile-bin' Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Makefile-bin(591) : fatal error U1087: cannot have : and :: dependents for same target Stop. ----- More Data Apparently, forcing makefile to a different name using MAKEFILE option in the Makefile-bin.PL file causes 'processPL' section to be generated. This section uses '::' form of the rule. There is also the 'makefile' section that uses ':' form of the rule (and has some comments on why :: would not work). Having both of these is causing nmake trouble.
Subject: Inconsistent rules lines for `<Makefile-name>`, when MAKEFILE=> option is used
From: alex.leites [...] esca.com
Apparently this happens on other platforms as well, except make might be more forgiving. On Tru64, Perl v5.6.0, MakeMaker 5.45, the error produced by make is: "Inconsistent rules lines for `Makefile-bin'" but the make continues. And here are the problematic lines: % grep '^Makefile-bin' Makefile-bin Makefile-bin :: Makefile-bin.PL Makefile-bin : Makefile.PL $(CONFIGDEP)
Date: Thu, 4 Apr 2002 22:24:50 -0500
From: Michael G Schwern <schwern [...] pobox.com>
To: Guest via RT <bug-ExtUtils-MakeMaker [...] rt.cpan.org>
Cc: 'AdminCc of cpan Ticket #444': ;
Subject: Re: [cpan #444] Inconsistent rules lines for `<Makefile-name>`, when MAKEFILE=> option is used
On Thu, Apr 04, 2002 at 07:36:02PM -0500, Guest via RT wrote: Show quoted text
> Apparently this happens on other platforms as well, except make might > be more forgiving. > > On Tru64, Perl v5.6.0, MakeMaker 5.45, the error produced by make is: > > "Inconsistent rules lines for `Makefile-bin'" > > but the make continues. And here are the problematic lines: > > % grep '^Makefile-bin' Makefile-bin > Makefile-bin :: Makefile-bin.PL > Makefile-bin : Makefile.PL $(CONFIGDEP)
Ok, I've reproduced your problem. It only happens when both MAKEFILE is used *and* you're building using something which is not Makefile.PL perl Makefile.PL MAKEFILE=Makefile-bin # ok perl Makefile-bin.PL # ok perl Makefile-bin.PL MAKEFILE=Makefile-bin # bad And oh, that comment about Tk b9.02. That's a seven year old version of Tk. I think that's enough time for Nick to have fixed that. :) This problem is still in 5.55_01. This patch outta do it. The line numbers will be *way* off, but all it's doing is adding a colon. Lemme know if it works. --- lib/ExtUtils/MM_Unix.pm 4 Apr 2002 18:57:15 -0000 1.36 +++ lib/ExtUtils/MM_Unix.pm 5 Apr 2002 03:20:09 -0000 @@ -2499,7 +2499,7 @@ push @m, q{ # We take a very conservative approach here, but it\'s worth it. # We move Makefile to Makefile.old here to avoid gnu make looping. -}.$self->{MAKEFILE}.q{ : Makefile.PL $(CONFIGDEP) +}.$self->{MAKEFILE}.q{ :: Makefile.PL $(CONFIGDEP) }.$self->{NOECHO}.q{echo "Makefile out-of-date with respect to $?" }.$self->{NOECHO}.q{echo "Cleaning current config before rebuilding Makefile..." -}.$self->{NOECHO}.q{$(RM_F) }."$self->{MAKEFILE}.old".q{ -- Michael G. Schwern <schwern@pobox.com> http://www.pobox.com/~schwern/ Perl Quality Assurance <perl-qa@perl.org> Kwalitee Is Job One You're smoother than a tunnel of shining sorrow.
[alex.leites2@esca.com - Fri Apr 5 13:20:16 2002]: Show quoted text
> The fix works, but only part way. There are not related errors from > make this time, but this is what does happen: > > NMAKE : fatal error U1073: don't know how to make 'Makefile.PL' > Stop. > > From what I can tell, there are still many places in the generated > Makefile-bin that explicitly use "Makefile.PL", even though > the name of the script was different. > My guess would be that until these are fixed, using something but > Makefile.PL is not fully supported.
Yes. I don't think the intent of this feature was to allow alternate Makefile.PL's, but additional ones. I have to remove my patch as it's causing havoc with lots of other modules. Compress::Zlib and Tk (so the comment was right). And it's too difficult to properly fix the Makefile.PL logic right now. Show quoted text
> In my case, I do have some reasons for using alternative names, > or at least I think I do. One of them, for Makefile-bin.PL > at least, was that I wanted > MakeMaker to skip this particular subdirectory when making > from parent directory, and I think it is looking for > Makefile.PL in the subdirectories.
Yes, it does that. One way around it is to specify the DIR attribute, telling MakeMaker specifically which directories to scan. Show quoted text
> The reason I want it to be skipped is that it containes > precompiled module that is installed using > 'make pure_install' only.
If it's precompiled and it's for Windows, why not just make a PPM?
No response in 10 years. Closing ticket.