In this example, I would not expect bar to be updated due to
actual_source when foo is requested.  The timestamp dependency chain
should be broken between foo and bar and Make should be able to figure
that out when handling an explicit request for foo.  Is this a bug?

$ cat Makefile
foo: | bar
        cp $| $@

bar: actual_source
        cp $< $@

clean:
        rm -f foo bar
---------------------------------------------------------------------------
$ make clean
rm -f foo bar
---------------------------------------------------------------------------
$ make foo
cp actual_source bar
cp bar foo
---------------------------------------------------------------------------
$ make foo
make: 'foo' is up to date.
---------------------------------------------------------------------------
$ touch bar
---------------------------------------------------------------------------
$ make foo
make: 'foo' is up to date.
---------------------------------------------------------------------------
$ touch actual_source
---------------------------------------------------------------------------
$ make --debug=why foo
Makefile:5: update target 'bar' due to: actual_source
cp actual_source bar

Reply via email to