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