
Rules of Makefiles - rodelrod
http://make.mad-scientist.net/papers/rules-of-makefiles/
======
buserror
Rule #3 "Life is simplest if the targets are built in the current working
directory." is not clear at best, or wrong.

Pretty much any size-able project will build 'in' the source directory but
create the objects somewhere else. That's what the O= parameter is when
building the linux kernel for example.

Allows 'make clean' to have a single directory to delete, allows you to keep a
build for gcc, clang, arm, ia64, debug, release etc etc without risking them
clobbering each others.

Other than that, yes, 'modern' Makefiles that use % patterns, and most
especially VPATH are a LOT simpler than the nightmare from years past.
Combined with gcc -MMD to automatically create the dependencies file it
becomes very simple to maintain a clean Makefile!

Add some pkg-config magic, and you really don't need autotools and stuff --
libtool can still be handy if you want 'portability' but it's pretty easy to
add...

