Question

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

Was it helpful?

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).

[...]

OTHER TIPS

IIRC, dnl is do-next-line. It simply skips the remainder of the current line. It's how you write comments in M4 files.

dnl preprocessor will eat this
but not this dnl though this

will yield the result document

but not this

(untested; might also kill the idle process or crash your hard disk).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top