Added compilation option data structures
Added compilation functions
Merge branch 'compilation' into develop