Automake

Automake

Infobox_Software
name = Automake

developer = The GNU Project
latest_release_version = 1.10.1
latest_release_date = January 21, 2008
operating_system = Cross-platform
genre = Programming tool
license = GNU General Public License
website = http://sourceware.org/automake/

GNU Automake is a programming tool that produces portable makefiles for use by the make program, used in compiling software. It is made by the Free Software Foundation as one of GNU programs, and is part of the GNU build system. The makefiles produced follow the GNU Coding Standards.

It is written in the Perl programming language and must be used with GNU autoconf. Automake contains the following commands:

*"aclocal"
*"automake"

"aclocal", however, is a general-purpose program that can be useful to autoconf users. The GNU Compiler Collection, for example, uses "aclocal" even though its makefile is hand written.

Like Autoconf, Automake can be quite hard to deal with because it is not entirely backwards compatible. For example, a project created with automake 1.4 will not necessarily work with automake 1.9.Fact|date=March 2007

Approach

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:
*a line that declares the name of the program to build;
*a list of source files;
*a list of command-line options to be passed to the compiler (for example, in which directories header files will be found);
*a list of command-line options to be passed to the linker (which libraries the program needs and in what directories they are to be found).

From this information, Automake generates a makefile that allows the user to:
*compile the program;
*clean (i.e., remove the files resulting from the compilation);
*install the program in standard directories;
*uninstall the program from where it was installed;
*create a source distribution archive (commonly called a "tarball");
*test that this archive is self-sufficient, and in particular that the program can be compiled in a directory other than the one where the sources are deployed.

Dependency generation

Automake also takes care of automatically generating [ [http://sources.redhat.com/automake/automake.html#Dependency-Tracking Automatic Dependency Tracking] , Automake Manual] the dependency information, 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. [ [http://sources.redhat.com/automake/automake.html#Dependency-Tracking-Evolution Dependency Tracking in Automake] , Automake Manual] In such a case, if a source file gains a new dependency (e.g., if the programmer adds a new #include directive in a C source file), then a discrepancy is introduced between the real dependencies and those that are used by the compilation system. The programmer should then regenerate the dependencies, but runs the risk of forgetting to do so.

In the general case, automake generates dependencies via the bundled depcomp script, which will invoke the compiler appropriately or fall back to makedepend. If the compiler is a sufficiently recent version of gcc, however, automake will inline the dependency generation code to call gcc directly.

Libtool

Automake can also help with the compilation of libraries by automatically generating makefiles that will invoke GNU Libtool. The programmer is thus exempted from having to know how to call Libtool directly, and the project benefits from the use of a portable library creation tool.

ee also

* CMake
* imake
* Flowtracer

References

* Gary V. Vaughan, Ben Elliston, Tom Tromey: "Gnu Autoconf, Automake, and Libtool", Sams, ISBN 1-57870-190-2

External links

* [http://sources.redhat.com/automake/ Automake home page]
* [http://sources.redhat.com/autobook/ Online version of "The Goat Book" aka Autobook]
* [http://autotoolset.sourceforge.net/ Autotoolset home page]
* Article " [http://www.openismus.com/documents/linux/automake/automake.shtml Using Automake and Autoconf with C++] " by Murray Cumming

Tutorials

* Tutorial for beginners " [http://www.developingprogrammers.com/index.php/2006/01/05/autotools-tutorial/ Autotools Tutorial] " by Sarah George
* Tutorial " [http://www.amath.washington.edu/~lf/tutorials/autoconf/ Learning Autoconf and Automake] " by Eleftherios Gkioulekas
* The " [http://www.lrde.epita.fr/~adl/autotools.html Autotools Tutorial] " by Alexandre Duret-Lutz introduces Autoconf, Automake, Libtool, and Gettext.
* [http://autotoolset.sourceforge.net/tutorial.html Learning the GNU Development tools]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Automake — GNU Automake est un logiciel générant des makefiles portables qui peuvent être utilisés par make pour compiler des programmes. Il provient de la Free Software Foundation et fait partie du système de compilation GNU. Les makefiles produits se… …   Wikipédia en Français

  • Automake — Automake …   Википедия

  • Automake — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU Automake — es una herramienta de programación que produce programas makefiles portables para el uso de make usado en la compilación de software. Es mantenido por la Fundación de Software Libre como uno de los programas GNU y es parte del sistema de… …   Wikipedia Español

  • GNU Automake — est un logiciel générant des makefiles portables qui peuvent être utilisés par make pour compiler des programmes. C est un logiciel libre développé et maintenu par le projet GNU et utilisé dans le processus de compilation du système GNU. Les… …   Wikipédia en Français

  • Autoconf — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Autoheader — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Configure — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU Autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”