advanced makefile hopefully final