autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: zsh and autoconf-2.50


From: Akim Demaille
Subject: Re: zsh and autoconf-2.50
Date: 31 May 2001 19:34:38 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (GTK)

>>>>> "Clint" == Clint Adams <address@hidden> writes:

>> > Yes, autoconf 2.50 undefines `define' and `undefine'.
>> 
>> Whatever for?

Clint> It "renames" them to m4_define and m4_undefine.  I don't know
Clint> why.  Akim, can you enlighten us?

Err, this is both right and wrong :)

Autoconf is on top of M4sh, a pure sh layer, itself on top of M4sugar,
a pure M4 layer.  It is today considered bad design to have kept some
primitive such as define etc. out of any pseudo name space.  That's
why M4sugar moves all the builtins (but dnl) into the `m4_' pseudo
name space.

Nevertheless, for backward compatibility, autoconf.m4 restores these:

     # We discourage the use of the non prefixed macro names: M4sugar maps
     # all the builtins into `m4_'.  Autoconf has been converted to these
     # names too.  But users may still depend upon these, so reestablish
     # them.
     
     m4_copy_unm4([m4_builtin])
     m4_copy_unm4([m4_changequote])
     m4_copy_unm4([m4_decr])
     m4_copy_unm4([m4_define])
     m4_copy_unm4([m4_defn])
     m4_copy_unm4([m4_divert])
     m4_copy_unm4([m4_divnum])
     m4_copy_unm4([m4_errprint])
     m4_copy_unm4([m4_esyscmd])
     m4_copy_unm4([m4_ifdef])
     m4_copy([m4_if], [ifelse])
     m4_copy_unm4([m4_incr])
     m4_copy_unm4([m4_index])
     m4_copy_unm4([m4_indir])
     m4_copy_unm4([m4_len])
     m4_copy_unm4([m4_patsubst])
     m4_copy_unm4([m4_popdef])
     m4_copy_unm4([m4_pushdef])
     m4_copy_unm4([m4_regexp])
     m4_copy_unm4([m4_sinclude])
     m4_copy_unm4([m4_syscmd])
     m4_copy_unm4([m4_sysval])
     m4_copy_unm4([m4_traceoff])
     m4_copy_unm4([m4_traceon])
     m4_copy_unm4([m4_translit])
     m4_copy_unm4([m4_undefine])
     m4_copy_unm4([m4_undivert])

So yes, define and undefine are undefined (in M4sh and M4sugar), but
no, you should not know about this (in Autoconf), you should not be
aware of it.

What happens?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]