added makefile and dependency generation