centralized makefile