A collection of awesome and self-documented m4 macros for GNU Autotools
This collection has grown steadly and has now more than 100 macros. The macros
are organized by topic and each topic has its own file. With the exception of
two stand-alone frameworks (not-autoversion.m4
and not-extended-config.m4
),
most of the macros are independent from each other, so you can just copy and
paste what you need. The few cases where a macro depends on a helper macro are
documented.
Each macro is versioned. If you copy and paste one or more macros, please do come back once in a while and check if newer versions are available. The version strings express semantic versioning, thus if a major version number has changed the newer macro will likely require some manual intervention in the caller's code. Minor changes and bug fixes instead will work out of the box.
For the complete list of the macros released by the Not Autotools project,
please refer to macro-index.md
.
Feel free to contribute. For any questions, drop a message.
This project has many similarities with the Autoconf Archive, however there are important differences too.
One difference is that while the Autoconf Archive mostly aims at solving
compiler or dependency problems, Not Autotools has a broader focus, which
includes expanding the M4 language to try and render it as less painful as
possible in its integration with the shell and the configure
script.
One other difference is represented by the way whereby the macros are
distributed. The Autoconf Archive expects users to install a package that
makes some new macros automatically available via autoreconf
. The Not
Autotools project instead by design releases macros that need to be manually
copied and pasted, or included directly in a build directory. This has the
advantage of not slowing down the project's evolution, and backward
incompatible changes do not break existing packages.
Finally, a further subtle difference is that the Not Autotools macros
compared to the Autoconf Archive macros on average rely on the m4
preprocessor more than they rely on the shell. This means that whenever is
possible the expansions of Not Autotools macros will leave only literals in
the configure
script generated, without much shell code. This should
guarantee a wide compatibility between different platform.
A way to think of the Not Autotools project is as “a possible staging laboratory for the Autoconf Archive”. Here the macros often change radically, or even disappear, without caring too much for backward compatibility. However, when a macro becomes good and stable enough it can easily become part of the Autoconf Archive as well.
This library is free software. You can redistribute it and/or modify it under the terms of the GPL3 license. See COPYING for details.