Improved Makefile to run and only compile as needed