AUTOM4TE(1)

πŸ“¦ version 2.64, in debian bookworm, ubuntu jammy, ubuntu noble

✨ AUTOM4TE ✨

okay bestie, welcome to autom4te, a manual page from the GNU Autoconf fam 🫢. In the official docs it lives under the name AUTOM4TE(1) in the "User Commands" section β€” but here? It's just us two and a whole lotta M4. Let's go πŸ’…


🌸 NAME 🌸

autom4te β€” generate files and scripts thanks to M4 ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

autom4te [OPTION]... [FILES]

πŸ’– DESCRIPTION πŸ’–

So basically: it runs GNU M4 on the FILES, but it's smart about it and avoids useless runs πŸ‘‘ (no redundant re-runs here, we don't do that). What comes out depends on what you asked for β€” it outputs the traces if you're tracing, the frozen file if you're freezing, and otherwise the expansion of the FILES.

If some of the FILES are named FILE.m4f, those are considered to be M4 frozen files of all the previous files (which therefore are not loaded). If FILE.m4f isn't found, then FILE.m4 gets used instead, together with all the previous files. The way it just... handles that for you? Iconic.

Some files may be optional β€” meaning they'll only be processed if they're found in the include path, but then they must end in .m4? . And no, the question mark is not part of the actual file name, it's a lil wildcard vibe, iykyk πŸ’€

πŸŽ€ Operation modes πŸŽ€

  • -h, --help β€” print this help, then dip out (exit). ✌️
  • -V, --version β€” print the version number, then exit.
  • -v, --verbose β€” verbosely report processing. Tell me everything, bestie πŸ—£οΈ
  • -d, --debug β€” don't remove temporary files (so you can go snooping later πŸ”).
  • -o, --output=FILE β€” save output in FILE (defaults to -, i.e. stdout).
  • -f, --force β€” don't rely on cached values. Fresh start energy 🌈
  • -W, --warnings=CATEGORY β€” report the warnings falling in CATEGORY.
  • -l, --language=LANG β€” specify the set of M4 macros to use.
  • -C, --cache=DIRECTORY β€” preserve results for future runs in DIRECTORY. Save it for later πŸ’Ύ
  • --no-cache β€” disable the cache. Not today 🚫
  • -m, --mode=OCTAL β€” change the non trace output file mode (0666).
  • -M, --melt β€” don't use M4 frozen files (melt them away 🫠).

🧚 Languages include 🧚

  • Autoconf β€” create Autoconf configure scripts.
  • Autotest β€” create Autotest test suites.
  • M4sh β€” create M4sh shell scripts.
  • M4sugar β€” create M4sugar output.

πŸ’œ Warning categories include πŸ’œ

  • cross β€” cross compilation issues.
  • gnu β€” GNU coding standards (default in gnu and gnits modes).
  • obsolete β€” obsolete features or constructions.
  • override β€” user redefinitions of Automake rules or variables.
  • portability β€” portability issues (default in gnu and gnits modes).
  • syntax β€” dubious syntactic constructs (default).
  • unsupported β€” unsupported or incomplete features (default).
  • all β€” all the warnings. all of them. every single one 🫠
  • no-CATEGORY β€” turn off warnings in CATEGORY.
  • none β€” turn off all the warnings.
  • error β€” treat warnings as errors. bestie they're not playing around 😭
Also: the environment variables M4 and WARNINGS are honored. Respect them, they're the moment πŸ’…

🌈 Library directories 🌈

  • -B, --prepend-include=DIR β€” prepend directory DIR to search path.
  • -I, --include=DIR β€” append directory DIR to search path.

πŸ”₯ Tracing πŸ”₯

  • -t, --trace=MACRO[:FORMAT] β€” report the MACRO invocations.
  • -p, --preselect=MACRO β€” prepare to trace MACRO in a future run. Foreshadowing ✨

πŸ“ Freezing πŸ“

  • -F, --freeze β€” produce an M4 frozen state file for FILES. ❄️

FORMAT defaults to $f:$l:$n:$%, and can use the following escapes β€” memorise these, they're lowkey the whole personality:

  • $$ β€” literal $
  • $f β€” file where macro was called
  • $l β€” line where macro was called
  • $d β€” nesting depth of macro call
  • $n β€” name of the macro
  • $NUM β€” argument NUM, unquoted and with newlines
  • $SEP@ β€” all arguments, with newlines, quoted, and separated by SEP
  • $SEP* β€” all arguments, with newlines, unquoted, and separated by SEP
  • $SEP% β€” all arguments, without newlines, unquoted, and separated by SEP

SEP can be empty for the default (comma for @ and *, colon for %), a single character for that character, or {STRING} to use a string. Slay πŸ’…


πŸ‘‘ AUTHOR πŸ‘‘

Written by Akim Demaille. We stan 🫢


😭 REPORTING BUGS 😭

Found a bug? Not on my watch. Report bugs to <bug-autoconf@gnu.org> πŸ“§

GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>

General help using GNU software: <http://www.gnu.org/gethelp/>


Copyright Β© 2009 Free Software Foundation, Inc.

License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/old-licenses/gpl-2.0.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. fr fr, read that part twice 😀

🌟 SEE ALSO 🌟

autoconf(1), automake(1), autoreconf(1), autoupdate(1), autoheader(1), autoscan(1), config.guess(1), config.sub(1), ifnames(1), libtool(1) β€” the whole friend group πŸ’ž

The full documentation for autom4te is maintained as a Texinfo manual. If the info and autom4te programs are properly installed at your site, the command

info autom4te

should give you access to the complete manual. go read it bestie πŸ“–βœ¨


GNU Autoconf 2.64 Β· July 2009 β€” mwah, that's the version and the date, and that's a wrap on AUTOM4TE(1) πŸŽ€ bye bestie, go freeze some files β„οΈπŸ’…

πŸ“¦ where this page comes from