# GNU MAKE MAIN: https://devhints.io/makefile MAGIC VARIABLES --------------- out.o: src.c src.h $@ # target (out.o) $< # first prerequisite (src.c) $^ # all prerequisite (src.c src.h) %.o: %.c $* # the matched "stem" (foo in foo.o/foo.c) also: $+ # all prerequisite with dup $? # prerequisites (new ones) $| $(@D) # target directory ASSIGNMENTS ----------- = asignment (dynamic, renewing) := one time assignment ?= safe assignemnt (no effect on prev. dynamic assignments) += append != exec shell cmd and assign COMMAND PREFIX -------------- - ignore errors @ don't print + always run