Add make_enum macros and a unit test, also add to project files