Except with make most small setups are at least 20-40 lines of nontrivial code becaue you have to redo everything from scratch
include std.mk
TARGET=foo
HFILES=bar.h
OFILES=main.o foo.o baz.o
include cmd.mk
This is what Makefiles tend to look like in some places.