URL:
<https://savannah.gnu.org/bugs/?55532>
Summary: Missing prerequisites are not included in $^ if
.SECONDARY is present
Project: make
Submitted by: None
Submitted on: Mon 21 Jan 2019 01:03:46 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: None
Operating System: Any
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
The $^ should contain all the prerequisites that are newer than the target,
including missing prerequisites.
However, the '.SECONDARY' special target is present,
the missing prerequisites are not included in the ^$.
[Test code]
foo: bar baz
@echo newer prerequisites are: $?
bar:
.SECONDARY:
[Result]
$ touch foo
$ touch baz
$ make
newer prerequisites are: baz
The 'baz' is correctly contained in $^ since it is newer than 'foo'.
We expect 'bar' in $^ as well because it does not exist. However, this
behavior is changed by the presence of .SECONDARY.
If you delete the '.SECONDARY:' line, the result is what we expect:
$ make
newer prerequisites are: bar baz
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?55532>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make