Follow-up Comment #14, bug #57751 (project make): Please read my previous answer...
Any dependency line in e.g. the form: $(TGT): $(DEPS) is completely expanded at the time the parser reads the makefile, so in this example, $(TGT) and $(DEPS) already need to have a value at the time, the dependency line is read/parsed. So POSIX requires to expand $@ to an empty string and bmake is clearly in conflict with POSIX. Special macros only have values at the time, when the update process is updating a target. What you like to get is not make syntax and if you believe that the POSIX standard supports your wish, then the POSIX text should be fixed to become less ambiguous. BTW: There is a SunPro Make enhancement (since 1986) that would need to use: foobar : $$@.blurfl with the behavior you like but this is not covered by POSIX nor by other make implementations. well.... except for bmake, that also seems to support it. Unlike the syntax you reported for bmake, the $$@ syntax is a clean enhancement to UNIX / POSIX make that is not in conflict with the standard. See the man page: $@ The name of the current target. This is the only dynamic macro whose value is strictly determined when used in a dependency list. (In which case it takes the form $$@.) _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?57751> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/