Structure the project. Create necessary sub-directories. Provide a Makefile.
Allow compiler to be set via environment variables
Integrate with travis