Skip to content

A collection of awesome and self-documented m4 macros for GNU Autotools

License

Notifications You must be signed in to change notification settings

madmurphy/not-autotools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Not Autotools

A collection of awesome and self-documented m4 macros for GNU Autotools

Overview

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.

Relationship with the Autoconf Archive

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.

Free software

This library is free software. You can redistribute it and/or modify it under the terms of the GPL3 license. See COPYING for details.