improve the makefile

every file should be properly tracked now, so when
you run make only the changed files will be updated