The preprocessor == operator only performs integer arithmetic (macros that don't expand to something that looks like an integer are considered to have a value of 0). It can't be used to compare strings.
Make it something like this:
#if defined(MAP_ENGINE_CE4)
// ...
#elif defined(MAP_ENGINE_CE5)
// ...
#else
#error Exactly one of MAP_ENGINE_CE4 and MAP_ENGINE_CE5 must be defined
#endif