OK, I understand now Eli's reasons of assigning "failure" and "success".  Thank 
you.  

So now your question to Paul is this, let me rephrase myself:

SHELL=cmd.exe
                
vpath %.s foobar0 foobar1

%.o: %.s
                echo $<
                
foobar0/foobar.s:

(and as always, foobar.s only in foobar1, not in foobar0).  


Here, the current behavior of make is 

C:\tmp>make foobar.o
echo foobar0/foobar.s

How can this possibly be "correct"??  GNU make manual only states that for the 
rule with no commands or prerequisites, make "imagines" the target has been 
updated, even if it does not exist.  People are using this property, to prevent 
failure if the file does not exist, for example, for auto-dependencies in the 
well-known website 

http://make.paulandlesley.org/autodep.html

This is not going to work, if make still found foobar0/foobar.s after  the user 
deleting it.  

Mark



_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to