Most of my Makefiles depend heavily on GNU make. Among other things they include two files called "GNUmakevars" and "GNUmakerules", which define a few variables and extra rules. I usually put this file into /usr/local/include on all machines where I have to install my programs and then adapt it to the local machine.

Here are some samples:

Until recently both variables and rules were in a single file: