more generic Makefile