'Undefine a preprocessor macro for all compilations driven by
this compiler object.  If the same macro is defined by
\'define_macro()\' and undefined by \'undefine_macro()\' the last call
takes precedence (including multiple redefinitions or
undefinitions).  If the macro is redefined/undefined on a
per-compilation basis (ie. in the call to \'compile()\'), then that
takes precedence.'

def undefine_macro(self, name):

    i = self._find_macro(name)
    if (i is not None):
        del self.macros[i]
    undefn = (name,)
    self.macros.append(undefn)
    return
