Next: , Previous: , Up: Programming in M4sugar   [Contents][Index]

8.3.2 Diagnostic messages from M4sugar

When macros statically diagnose abnormal situations, benign or fatal, they should report them using these macros. For issuing dynamic issues, i.e., when configure is run, see Printing Messages.

Macro: m4_assert (expression, [exit-status = ‘1])

Assert that the arithmetic expression evaluates to non-zero. Otherwise, issue a fatal error, and exit autom4te with exit-status.

Macro: m4_errprintn (message)

Similar to the builtin m4_errprint, except that a newline is guaranteed after message.

Macro: m4_fatal (message)

Report a severe error message prefixed with the current location, and have autom4te die.

Macro: m4_location

Useful as a prefix in a message line. Short for:

Macro: m4_warn (category, message)

Report message as a warning (or as an error if requested by the user) if warnings of the category are turned on. If the message is emitted, it is prefixed with the current location, and followed by a call trace of all macros defined via AC_DEFUN used to get to the current expansion.

The category must be one of:


Warnings about constructs that may interfere with cross-compilation, such as using AC_RUN_IFELSE without a default.


Warnings related to the GNU Coding Standards (see The GNU Coding Standards). On by default.


Warnings about obsolete features. On by default.


Warnings about redefinitions of Autoconf internals.


Warnings about non-portable constructs.


Warnings about recursive Make variable expansions ($(foo$(x))).


Extra warnings about non-portable constructs, covering rarely-used tools.


Warnings about questionable syntactic constructs, incorrectly ordered macro calls, typos, etc. On by default.


Warnings about unsupported features. On by default.

Hacking Note: The set of categories is defined by code in autom4te, not by M4sugar itself. Additions should be coordinated with Automake, so that both sets of tools accept the same options.

Next: , Previous: , Up: Programming in M4sugar   [Contents][Index]