$^ and $+ are defined twice in the documentation 
(http://www.gnu.org/software/make/manual/make.html).  The second time, it does 
not mention the exclusion of order-only dependencies, implying they are 
included.


$^
The names of all the prerequisites, with spaces between them. For prerequisites 
which are archive members, only the named member is used (see 
Archives<http://www.gnu.org/software/make/manual/make.html#Archives>). A target 
has only one prerequisite on each other file it depends on, no matter how many 
times each file is listed as a prerequisite. So if you list a prerequisite more 
than once for a target, the value of $^ contains just one copy of the name. 
This list does not contain any of the order-only prerequisites; for those see 
the '$|' variable, below.
$+
This is like '$^', but prerequisites listed more than once are duplicated in 
the order they were listed in the makefile. This is primarily useful for use in 
linking commands where it is meaningful to repeat library file names in a 
particular order.

...

$^
$+
The names of all the prerequisites, with spaces between them. For prerequisites 
which are archive members, only the named member is used (see 
Archives<http://www.gnu.org/software/make/manual/make.html#Archives>). The 
value of $^ omits duplicate prerequisites, while $+ retains them and preserves 
their order.

John

_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to