universal Makefile