GNU Build System
It's designed for portability with a load of systems no-one uses anymore.
Also known collectively as autotools.
CMake is apparantly much better?
Honestly, it seems like anything would be better.
Has some standard targets which sysadmins are apparantly familiar with.
These allow e.g. cross-compiling to different architectures.
GNU Makefile Conventions
DESTDIR environment variable.
Some standard targets.
Don't use any programs except stupid ancient ones.
This makes the configure.scan file by scanning some source code for common portability issues.
This configure.scan file is then handed edited into configure.ac.
autoconf turns configure.ac into configure.
Converts a configure script generated by autoconf into Makefile.in.
m4 is the macro system used by autotools.
This is some sort of hack to tell automake to spit out less gunk.
It is now superceded by automake's silent rules.
Automake makes some m4 macros for your project.
aclocal makes a file aclocal.m4 which holds these, based on configure.ac.
Autotools looks at this file.
For "preparing the build system" prior to running autotools.
Looks up shared C libraries are on your system, and tells GCC when to find them.
Does the same as pkg-config. You would probably use either one or the other.
Some systems prefer dynamic or static linking, or don't support one of those two options. libtool knows about this.
"Prepares" a library for libtool. Whatever.
Makes a config.status file.
config.status converts Makefile.in into Makefile.
configure --help is useful!