improve makefile and add gitignore