add gitignore and learn some about makefile