help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The value of $* changes within the same rule


From: Paul D. Smith
Subject: Re: The value of $* changes within the same rule
Date: Wed, 18 Sep 2002 14:30:25 -0400

%% "Martin d'Anjou" <address@hidden> writes:

  md> I have this rule:

  md> $(VRO_DIR)/%.vro $(INCLUDE_DIR)/%.vrh: ./vera/%.vr
  md>         $(VERA) -h ./vera/$*.vr . && vrhfix ./$*.vrh ./vera/$*.vr
  md>         @if [ ! -d $(INCLUDE_DIR) ]; then mkdir $(INCLUDE_DIR); fi
  md>         mv $*.vrh $(INCLUDE_DIR)
  md>         @if [ ! -d $(VRO_DIR) ]; then mkdir $(VRO_DIR); fi
  md>         mv $*.vro $(VRO_DIR)

  md> And sometimes, not all the times, I get an error message:

  md> vera -h ./vera/system_cfg.vr . && vrhfix ./system_cfg.vrh 
./vera/system_cfg.vr
  md> mv: cannot stat `./.tmp.system_cfg.vrh': No such file or directory
  md> Couldn't write ./system_cfg.vrh
  md> make[3]: *** [/work/verif1/shared/vro/system_cfg.vro] Error 1

  md> How can $* on the third line (first mv) change from "system.cfg"
  md> to ".tmp.system_cfg"??

It can't, and it doesn't.

You are misinterpreting the error message.  The fact that make does not
print the mv line proves that it's not make that is trying to perform
the mv... in other words, it's not the third line in your script that is
failing.

I suspect that "vrhfix" above is a shell script, and one of the things
it's trying to do is "mv", and it's _THAT_ mv which is failing and
displaying the error you're seeing, not the third line of the make
rule.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]