Autom. - Automake

Autom
Heckert GNU white.svg
Entwickler GNU-Projekt
Erstveröffentlichung 28. Mai 1996 ; vor 25 Jahren ( 1996-05-28 )
Stabile Version
1.16.4 / 26. Juli 2021 ; Vor 40 Tagen ( 2021-07-26 )
Repository
Betriebssystem Plattformübergreifend
Typ Programmiertool
Lizenz GNU General Public License
Webseite www .gnu .org / Software / auto / Bearbeite dies bei Wikidata

In der Softwareentwicklung ist GNU Automake ein Programmierwerkzeug, um Teile des Kompilierungsprozesses zu automatisieren. Es erleichtert die üblichen Kompilierungsprobleme. Es weist beispielsweise auf benötigte Abhängigkeiten hin.

Es generiert automatisch eine oder mehrere Makefile.in aus Dateien namens Makefile.am . Jede Makefile.am enthält unter anderem nützliche Variablendefinitionen für die kompilierte Software, wie Compiler- und Linker- Flags, Abhängigkeiten und deren Versionen usw. Die generierten „ Makefile.in “-s sind portabel und konform mit den Makefile-Konventionen in der GNU Coding Standards und kann von Konfigurationsskripten verwendet werden , um ein funktionierendes Makefile zu generieren .

Die Free Software Foundation unterhältautomals eines der GNU- Programme und als Teil des GNU-Build-Systems . Es wird verwendet, um mehrere GNU-Anwendungen und -Bibliotheken wie GTK sowie Nicht-GNU-Software wie XCircuit zu erstellen .

Verfahren

Flussdiagramm von autoconf und automake

Automake zielt darauf ab, dem Programmierer zu ermöglichen, ein Makefile in einer höheren Sprache zu schreiben, anstatt das gesamte Makefile manuell schreiben zu müssen. In einfachen Fällen genügt die Angabe:

  • Eine Zeile, die den Namen des zu erstellenden Programms deklariert
  • Eine Liste von Quelldateien
  • Eine Liste von Befehlszeilenoptionen, die an den Compiler übergeben werden sollen (z. B. in welchen Verzeichnissen Header-Dateien gefunden werden)
  • Eine Liste von Befehlszeilenoptionen, die an den Linker übergeben werden sollen (welche Bibliotheken das Programm benötigt und in welchen Verzeichnissen sie zu finden sind)

Automake sorgt auch für die automatische Generierung der Abhängigkeitsinformationen , sodass beim nächsten Aufruf des make-Befehls beim Ändern einer Quelldatei erkannt wird, welche Quelldateien neu kompiliert werden müssen. Wenn der Compiler dies zulässt, versucht Automake, das Abhängigkeitssystem dynamisch zu machen: Immer wenn eine Quelldatei kompiliert wird, werden die Abhängigkeiten dieser Datei aktualisiert, indem der Compiler aufgefordert wird, die Abhängigkeitsliste der Datei neu zu generieren. Anders ausgedrückt ist die Abhängigkeitsverfolgung ein Nebeneffekt des Kompilierungsprozesses.

Dies versucht, das Problem mit einigen statischen Abhängigkeitssystemen zu vermeiden, bei denen die Abhängigkeiten nur einmal erkannt werden, wenn der Programmierer mit der Arbeit am Projekt beginnt.

Entwurf

Automake ist in Perl geschrieben und muss mit GNU Autoconf verwendet werden . Automake enthält die folgenden Befehle:

  • alokal
  • autom

alocal ist jedoch ein Allzweckprogramm, das für Autoconf-Benutzer nützlich sein kann. Die GNU Compiler Collection (GCC) zum Beispiel verwendet alocal , obwohl ihr Makefile handgeschrieben ist.

Wie Autoconf ist Automake nicht vollständig abwärtskompatibel . Beispielsweise funktioniert ein mit automake 1.13 erstelltes Projekt nicht unbedingt mit automake 1.14.

Siehe auch

Verweise

Quellen

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

Externe Links