Automachen

GNU macht Auto ist ein Programmierwerkzeug, das tragbaren makefiles für den Gebrauch durch das machen Programm erzeugt, das im Kompilieren der Software verwendet ist. Es wird von der Organisation zur Förderung freier Software als eines von GNU-Programmen gemacht, und ist ein Teil des GNUS bauen System. Die erzeugten makefiles folgen dem GNU, das Standards Codiert.

Es wird auf der Programmiersprache von Perl geschrieben und muss mit dem GNU autoconf verwendet werden. Machen Sie auto enthält die folgenden Befehle:

  • aclocal
  • machen Sie auto

aclocal ist jedoch ein Mehrzweckprogramm, das für autoconf Benutzer nützlich sein kann. Die GNU-Bearbeiter-Sammlung verwendet zum Beispiel aclocal, wenn auch sein makefile schriftliche Hand ist.

Wie Autoconf, Machen Sie verwendet Auto, um völlig umgekehrt nicht vereinbar zu sein. Zum Beispiel macht ein Projekt, das damit geschaffen ist, 1.4 auto wird damit nicht notwendigerweise arbeiten machen 1.9 auto. Die Situation hat sich jedoch merklich mit neueren Ausgaben verbessert.

Sich nähern

Machen Sie Ziele auto, dem Programmierer zu erlauben, einen makefile auf einer Sprache des höheren Niveaus zu schreiben, anstatt den ganzen makefile manuell schreiben zu müssen. In einfachen Fällen genügt es, um zu geben:

  • eine Linie, die den Namen des Programms erklärt zu bauen;
  • eine Liste von Quelldateien;
  • eine Liste von Optionen der Befehl-Linie, zum Bearbeiter (zum Beispiel passiert zu werden, in dem Verzeichniskopfball-Dateien gefunden werden);
  • eine Liste von Optionen der Befehl-Linie, zum linker (der Bibliotheken die Programm-Bedürfnisse und worin Verzeichnisse passiert zu werden, sollen sie gefunden werden).

Von dieser Information, machen Sie Auto erzeugt einen makefile, der dem Benutzer erlaubt:

  • kompilieren Sie das Programm;
  • sauber (d. h., entfernen Sie die Dateien, die sich aus der Kompilation ergeben);
  • installieren Sie das Programm in Standardverzeichnissen;
  • deinstallieren Sie das Programm davon, wo es installiert wurde;
  • schaffen Sie ein Quellvertriebsarchiv (allgemein hat einen tarball genannt);
  • Test, dass dieses Archiv, und insbesondere unabhängig ist, dass das Programm in einem Verzeichnis außer demjenigen kompiliert werden kann, wo die Quellen aufmarschiert werden.

Abhängigkeitsgeneration

Machen Sie auto auch passt darauf auf, automatisch die Abhängigkeitsinformation zu erzeugen, so dass, wenn eine Quelldatei modifiziert wird, die folgende Beschwörung des machen Befehls wissen wird, welche Quelldateien wiederkompiliert werden müssen. Wenn der Bearbeiter es erlaubt, Machen Sie Versuche Auto, das Abhängigkeitssystem dynamisch zu machen: Wann auch immer eine Quelldatei kompiliert wird, dass die Abhängigkeiten der Datei aktualisiert werden, indem sie den Bearbeiter gebeten wird, die Abhängigkeitsliste der Datei zu regenerieren. Mit anderen Worten ist das Abhängigkeitsverfolgen eine Nebenwirkung des Kompilationsprozesses.

Das versucht, das Problem mit einigen statischen Abhängigkeitssystemen zu vermeiden, wo die Abhängigkeiten nur einmal entdeckt werden, wenn der Programmierer anfängt, am Projekt zu arbeiten. In solch einem Fall, wenn eine Quelldatei eine neue Abhängigkeit gewinnt (z.B, wenn der Programmierer einen neuen #include Direktive in einer C Quelldatei hinzufügt), dann wird eine Diskrepanz zwischen den echten Abhängigkeiten und denjenigen eingeführt, die durch das Kompilationssystem verwendet werden. Der Programmierer sollte dann die Abhängigkeiten regenerieren, aber läuft die Gefahr des Vergessens, so zu tun.

Im allgemeinen Fall, machen Sie auto erzeugt Abhängigkeiten über die gestopfte depcomp Schrift, die den Bearbeiter passend anrufen oder zu makedepend zurückweichen wird. Wenn der Bearbeiter eine genug neue Version von gcc jedoch ist, machen Sie auto wird Reihen-der Abhängigkeitsgenerationscode, um gcc direkt zu nennen.

Libtool

Machen Sie auto kann auch mit der Kompilation von Bibliotheken durch das automatische Erzeugen makefiles helfen, der GNU Libtool anrufen wird. Der Programmierer wird so davon befreit, wissen zu müssen, wie man Libtool direkt nennt, und das Projekt aus dem Gebrauch eines tragbaren Bibliotheksentwicklungswerkzeugs einen Nutzen zieht.

Siehe auch

  • CMake
  • imake
  • Flowtracer
  • Gary V. Vaughan, Ben Elliston, Tom Tromey: Gnu Autoconf, Machen Sie und Libtool, Sams, internationale Standardbuchnummer 1-57870-190-2 Auto

Links

Tutorenkurse


Roswell K. Colcord / Dorothy Frooks
Impressum & Datenschutz