Smarter Makefile