reorganize the makefile to smart and sexy includes