Makefile is a good solution when you are always going to build and run your software on the same system and things like
gcc versions and the available library versions are known. However, most software needs to be built and run in a variety of systems.
The GNU build system, or autotools, is a set of tools whose aim is to create a
Makefile for your software in a variety of systems. It's made up of three main tools:
- Autoconf: This parses the contents of a
configure.acfile that describes the source code to be built and creates a
configurescript. This script will then be used to generate the final
- Automake: This parses the contents of a
Makefile.amfile and converts it into a
Makefile.infile. This is then used by the
configurescript generated earlier to obtain a
config.statusscript that gets automatically executed to obtain the final
- Libtools: This manages the creation of both static and dynamic libraries.