General Makefile cleanup

General Makefile cleanup. Target is only rebuilt when necessary.