major makefile restructure