A more generic makefile