Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Automake

From Wikipedia, the free encyclopedia
Programming tool to automate parts of the compilation process
Automake
Developer(s)GNU Project
Initial releaseMay 28, 1996; 28 years ago (1996-05-28)
Stable release
1.17[1] Edit this on Wikidata / 11 July 2024; 8 months ago (11 July 2024)
Repository
Operating systemCross-platform
TypeProgramming tool
LicenseGNU General Public License
Websitewww.gnu.org/software/automake/Edit this at Wikidata

GNU Automake is asoftware development tool to automate parts of the compilation process. It eases common compilation problems. For example, it points to needed dependencies.

It automatically generates one or moreMakefile.in from files calledMakefile.am. EachMakefile.am contains, among other things, useful variable definitions for the compiled software, such ascompiler andlinker flags, dependencies and their versions, etc. The generated "Makefile.in"s are portable and compliant with the Makefile conventions in theGNU Coding Standards, and may be used byconfigure scripts to generate a workingMakefile.[2]

TheFree Software Foundation maintainsautomake as one of theGNU programs, and as part of theGNU build system. It is used to build several GNU applications and libraries, such asGTK,[3] as well as non-GNU software such asXCircuit.[4]

Process

[edit]
Flow diagram of autoconf and automake

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 thecompiler (for example, in which directories header files will be found)
  • A list of command-line options to be passed to thelinker (which libraries the program needs and in what directories they are to be found)

Automake also takes care of automatically generating thedependency information,[5] 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.[6]

Design

[edit]

Automake is written inPerl and must be used withGNU Autoconf.[2] Automake contains the following commands:

  • aclocal
  • automake

aclocal, however, is a general-purpose program that can be useful to autoconf users. TheGNU Compiler Collection (GCC), for example, usesaclocal even though its makefile is hand written.

Like Autoconf, Automake is not entirelybackward compatible. For example, a project created with automake 1.13 will not necessarily work with automake 1.14.[7]

See also

[edit]

References

[edit]
  1. ^Jim Meyering (11 July 2024)."automake-1.17 released [stable]". Retrieved12 July 2024.
  2. ^ab"GNU Automake".GNU.Free Software Foundation. 2021-10-01. Retrieved2024-04-26.
  3. ^"Compiling the GTK+ libraries". Archived fromthe original on 2024-04-26. Retrieved2024-04-26.
  4. ^"XCircuit Compile and Install". Retrieved2024-04-26.
  5. ^"Automake Manual -- Automatic Dependency Tracking".GNU.org. Retrieved2024-04-26.
  6. ^"Automake History".GNU.org. Retrieved2024-04-26.
  7. ^"Re: "make distclean" broken?". 2013-07-16. Retrieved2024-04-26.

Sources

[edit]
  • Vaughan, Gary V.; Elliston, Ben; Tromey, Tom (2000).GNU Autoconf, Automake, and Libtool. Sams.ISBN 1-57870-190-2.

External links

[edit]
History
Licenses
Software
Contributors
Other topics
Things
Frameworks
Software
Related
Books
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Automake&oldid=1274244922"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp