Generalize the Makefile