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