enhanced makefile