ignore stuff
...
un-hardcoded makefile
codeblocks explanations