A generic Makefile