Make is what ties it all together. Makefiles are some arcane gizmo magic. They are also old, old enough that they exist everywhere. Some of you might believe that makefiles are just for building code. Indeed they can be used for this: hello: $(subst .c,.o,$(wildcard *.c)) @$(CC) $(LDFLAGS) -o $@ $^ Where the power of make comes in, is in its ability to encode village knowledge and arcane corner cases. When I start new projects I always put two things in there immediately: a Readme.