Makefile Cheat Sheet/Secondary expansion

Allow a second variable expansion for prerequisites.

Section: Special targets and behavior control

Secondary expansion

makefile
makefile
.SECONDEXPANSION:

$(OUT_DIR)/%.o: $$(SRC_DIR)/%.c
	cc -c $< -o $@
Explanation

Advanced GNU make feature used with dynamic prerequisite lists.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Special targets and behavior control
Declare multiple phony targets
Mark non-file targets explicitly.
OpenIn sheetmakefilesame section
Silent recipes
Suppress command echoing globally or per line.
OpenIn sheetmakefilesame section
Delete target on error
Remove a partially built target if the recipe fails.
OpenIn sheetmakefilesame section
One shell per recipe
Run all lines of a recipe in a single shell instance.
OpenIn sheetmakefilesame section
Disable parallelism
Force serial execution for all or selected targets.
OpenIn sheetmakefilesame section
Set explicit default goal
Choose which target runs when the user invokes plain `make`.
OpenIn sheetmakefile1 tag match