make recognizes the % wild card pattern in the target portion of a conditional macro definition. For instance:
profile_% := CFLAGS += -pg
would modify the CFLAGS
macro for all targets having the `profile_' prefix. Pattern replacements can be used within the value of a conditional definition. For instance:
profile_% := OBJECTS = $(SOURCES:%.c=profile_%.o)
applies the profile_ prefix and .o suffix to the basename of every .c file in the SOURCES list (value).
Substring replacement now takes place following expansion of the macro being referenced. Previous versions of make applied the substitution first, with results that were counterintuitive.
make now expands inner references before parsing the outer reference. A nested reference as in this example:
CFLAGS-g = -I../include OPTION = -g $(CFLAGS$(OPTION))
now yields the value -I../include , rather than a null value, as it would have in previous versions.
The predefined macros HOST_ARCH and TARGET_ARCH are available for use in cross-compilations. By default, the arch macros are set to the value returned by the arch command.