Search code examples
autotoolsautoconfm4

In autotools, what is dnl'ed?


I see a lot in autoconf code about stuff being dnl'ed and not dnl'ed. What is dnl'ed?


Solution

  • from the GNU M4 1.4.13 macro processor manual:

    8.1 Deleting whitespace in input

    The builtin dnl stands for “Discard to Next Line”:

    — Builtin: dnl

    All characters, up to and including the next newline, are discarded without performing any macro expansion. A warning is issued if the end of the file is encountered without a newline.

    The expansion of dnl is void.

    It is often used in connection with define, to remove the newline that follows the call to define. Thus

       define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
       foo
       ⇒Macro foo.
    

    The input up to and including the next newline is discarded, as opposed to the way comments are treated (see Comments).

    [...]