'Define a preprocessor macro for all compilations driven by this
compiler object.  The optional parameter \'value\' should be a
string; if it is not supplied, then the macro will be defined
without an explicit value and the exact outcome depends on the
compiler used (XXX true? does ANSI say anything about this?)'

def define_macro(self, name, value=None):

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