agnostic makefile