[comp.unix.questions] Strange SYSV Makefile

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