Adding gitignore and some thoughts on handling preprocessor constants