makefile based build