wagner@iaoobelix.UUCP (09/12/87)
On Suns with SunOS3.2 (essentially a mixture of 4.2BSD and SYSV) this feature
is documented in the manpage for make:
"Substitutions within macros can be made as follows:
$(name:str1=str2)
where str1 is either a suffix, or a word to be replaced in
the macro definition, and str2 is the replacement suffix or
word."
If you take this together with the information that $? represents
"the list of dependencies with respect to which the target is out of date",
it becomes clear what $(?:.o=.c) does:
It recompiles all .c files corresponding to the out-of-date .o files
listed in the dependency list for the target, producing the necessary
object files.
Juergen Wagner, (USENET) ...seismo!unido!iaoobel!wagner
("Gandalf") Fraunhofer Institute IAO, Stuttgart