A truly generic makefile