Is there somewhere else this can be accidently be defined? It seems the #undef is unnecessary in my opinion. I would really suggest just having a set of

   #define VALUE // COMMENT
   //#define VALUE // COMMENT

And you just uncomment the items you want...