makefile: add clean target, improvment single file compile