Improved makefile build system