Automake aims to allow the programmer to write a makefile in a higher-level language, rather than having to write the whole makefile manually. In simple cases, it suffices to give:
Automake also takes care of automatically generating the dependency information,4 so that when a source file is modified, the next invocation of the make command will know which source files need to be recompiled. If the compiler allows it, Automake tries to make the dependency system dynamic: whenever a source file is compiled, that file's dependencies are updated by asking the compiler to regenerate the file's dependency list. In other words, dependency tracking is a side effect of the compilation process.
This attempts to avoid the problem with some static dependency systems, where the dependencies are detected only once when the programmer starts working on the project.5
Automake is written in Perl and must be used with GNU Autoconf.6 Automake contains the following commands:
aclocal, however, is a general-purpose program that can be useful to autoconf users. The GNU Compiler Collection (GCC), for example, uses aclocal even though its makefile is hand written.
Like Autoconf, Automake is not entirely backward compatible. For example, a project created with automake 1.13 will not necessarily work with automake 1.14.7
"GNU Automake". GNU. Free Software Foundation. 2021-10-01. Retrieved 2024-04-26. https://www.gnu.org/software/automake/manual/automake.html ↩
"Compiling the GTK+ libraries". Archived from the original on 2024-04-26. Retrieved 2024-04-26. https://web.archive.org/web/20240426154416/https://developer-old.gnome.org/gtk3/stable/gtk-building.html ↩
"XCircuit Compile and Install". Retrieved 2024-04-26. http://www.opencircuitdesign.com/xcircuit/install.html ↩
"Automake Manual -- Automatic Dependency Tracking". GNU.org. Retrieved 2024-04-26. https://www.gnu.org/software/automake/manual/html_node/Dependency-Tracking.html ↩
"Automake History". GNU.org. Retrieved 2024-04-26. https://www.gnu.org/software/automake/history/automake-history.html#Dependency-Tracking-Evolution ↩
"Re: "make distclean" broken?". 2013-07-16. Retrieved 2024-04-26. https://curl.se/mail/lib-2013-07/0173.html ↩