added undef for macro