fully automated makefile