Ich habe ein Projekt, das GNU-Autotools verwendet, um sich selbst zu erstellen. Ich versuche zu ändern, dass Autotools alle nicht versionierten Steuerdateien in einem separaten Verzeichnis generiert, damit ich den Quellbaum frei von temporären Dateien halten kann. Hat jemand eine Idee, wie man das macht?
10
Antworten:
Das Autotools-Paket enthält aus gutem Grund viele fest codierte relative Pfade und Namen. Ihre beste Möglichkeit ist die Ausgabe zusammenzufassen und sie zu markieren , wie in Ihrer Revisionskontrolle ignoriert, zB in
.cvsignore
,.hgignore
oder alssvn:ignore
attibute. In einigen RCS können Sie sogar rekursiv Platzhalter angeben.quelle
Lösung: Erstellen Sie einen Out-of-Source-Build
Beispiel mit automatisierter Prüfung
Dadurch wird beispielsweise GNU Hallo abgerufen und erstellt und überprüft, ob der Quellbaum nicht geringfügig geändert wurde.
Vorbereitung des Quellbaums
Dieser Teil ruft die Verzeichnisse ab und bereitet sie vor.
Allgemeiner Teil: Verwenden Sie diesen in Ihrem Projekt wieder
Dieser Teil kann mit anderen autoconf-basierten Projekten verwendet werden. CD einfach in Ihr Projekt, bevor Sie es ausführen. Achtung: Dies läuft
rm
, wenn Sie vorsichtig mit Varianten spielen, sind Sie auf jeden Fall verantwortlich.Teil prüfen
Dadurch wird überprüft, ob der Build vollständig außerhalb der Quelle liegt.
Hier gibt es Folgendes aus:
Bonus: Nicht-Root-Installation
Der
--prefix="${MYPREFIX?}"
obige Teil ist optional. Es ermöglicht eine "make install", die lokal für Ihr Konto ist. Wenn Sie eine herkömmliche "sudo make install" an einem systemweiten Speicherort wünschen, können Sie diese entfernen--prefix="${MYPREFIX?}"
.quelle