Makefile and prepare.sh by https://github.com/olebowle