develooper Front page | perl.perl5.porters | Postings from June 2004

Re: Smoke [5.9.2] 22881 FAIL(M) MSWin32 WinXP/.Net SP1 (x86/1 cpu)

Thread Previous | Thread Next
From:
Steve Hay
Date:
June 7, 2004 01:40
Subject:
Re: Smoke [5.9.2] 22881 FAIL(M) MSWin32 WinXP/.Net SP1 (x86/1 cpu)
Message ID:
40C42AF0.1030503@uk.radan.com
Nick Ing-Simmons wrote:

>Steve Hay <steve.hay@uk.radan.com> writes:
>  
>
>>OK, forget the previous example makefile.mk which was playing with 
>>one.txt.  Let's look at a couple that more closely resembles Perl's 
>>win32/makefile.mk:
>>
>>makefile1.mk
>>============
>>.USESHELL :
>>FILE = ..\tmp\foo\bar.txt
>>all : makefile1.mk $(FILE)
>>$(FILE) : make_file
>>make_file : ..\tmp\foo\mkbar.pl
>>   cd ..\tmp\foo && perl mkbar.pl
>>
>>
>>If I run "dmake -f makefile1.mk" from C:\Temp then C:\tmp\foo\bar.txt 
>>gets written every time, even if it is up-to-date already.
>>
>>
>>Furthermore, GNU make behaves the same way, which suggests I've missed 
>>something somewhere, rather than this being a problem with dmake.
>>
>>Why doesn't makefile1.mk work properly?
>>    
>>
>
>It is trying to cause ./make_file to come into existance, when that 
>has happened $(FILE) will be up to date, and so will all
>but it never does so they ain't.
>
Grr.  I think this is actually what Spider Boardman was saying last week 
(http://marc.theaimsgroup.com/?l=perl5-porters&m=108634191703958&w=2), 
which I obviously mis-interpreted.  Sorry.

So how to I tell dmake that make_file is a "pseudo-target" (as you 
originally referred to it yourself).  dmake does have the .PHONY 
attribute that Spider Boardman mentioned, but I couldn't see how to make 
use of it.  This makes no difference:

.USESHELL :
FILE = ..\tmp\foo\bar.txt
all : makefile1.mk $(FILE)
$(FILE) : make_file
.PHONY : make_file
make_file : ..\tmp\foo\mkbar.pl
    cd ..\tmp\foo && perl mkbar.pl

dmake's manpage says this of the .PHONY attribute:

                   Any target with this attribute set  will  have
                   its  recipe  executed  each time the target is
                   made even if a file matching the  target  name
                   can  be  located.   Any  targets  that  have a
                   .PHONY attributed  target  as  a  prerequisite
                   will  be  made each time the .PHONY attributed
                   prerequisite is made.

Or is there no way to make this work?  If not then we'll have to revert 
to your other suggestion (nominating one of the $(UNIDATAFILES) as the 
only dependency -- 
http://marc.theaimsgroup.com/?l=perl5-porters&m=108618038227388&w=2).

- Steve



------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files transmitted with it are confidential and intended for the addressee(s) only.  If you have received this message in error or there are any problems, please notify the sender immediately.  The unauthorized use, disclosure, copying or alteration of this message is strictly forbidden.  Note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Radan Computational Ltd.  The recipient(s) of this message should check it and any attached files for viruses: Radan Computational will accept no liability for any damage caused by any virus transmitted by this email.


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About