2016-07-23 23 views
1

Ich bin neu mit Autotools, aber ich finde kein Kapitel in Autotools doc, das entspricht meiner Frage.configure.ac Spezifizieren Ordner für alle Build-Dateien

Gibt es einen Befehl, den ich im configure.ac-Skript angeben kann, der alle Build-Dateien (Konfigurationsdateien, Makefiles usw.) in einem Ordner (zB ./build) speichert? Oder wie sollte ich Autotools einrichten, um Unordnung in meinem Repo zu vermeiden? Meine Schritte:

$autoreconf --install 
$./configure 
$make 

Jede Tutorial oder Artikel wird sehr nützlich sein.

Antwort

1

Sie müssen nichts Besonderes in configure.ac zu tun, um Out-of-Tree Builds zu aktivieren. Sie müssen nur nichts falsch machen. Ein ordnungsgemäß automatisch gepooltes Paket wird als In-Tree- oder Out-of-Tree-Version erstellt.

Sagen Sie Ihre autotooled Paket befindet sich in ./foobar und Sie haben Ihre autotooling richtig damit getan:

cd foobar 
./configure 
make 
make distcheck 

alle erfolgreich funktioniert. Dann gleich:

mkdir foobar_build 
cd foobar_build 
../foobar/configure 
make 
make distcheck 

wird auch funktionieren genauso, nur dass alle Artefakte durch das Skript configure erstellt und make in ./foobar_build wird statt ./foobar.

Sie können nicht autoreconf erhalten, um die Dateien zu generieren, dass es schafft out-of-Baum (das configure Skript und Freunde), weil diese in der Verteilung Tarball von make dist (zB foobar-1.0.tar.gz) hergestellt einbezogen werden . Der Endbenutzers eines autotooled Paket sollte nicht brauchen, um die Autotools haben oder zu verstehen: sollten sie nur in der Lage:

  • Klon oder herunterladen und extrahieren
  • configure
  • macht
  • als Wurzel, machen

Aus dem gleichen Grund installieren die configure Skript und Freunde sollte in der Quellcodeverwaltungs-Repository sein, zumindest in dem Release-Zweig, den Sie für das Klonen veröffentlichen.

+0

Vielen Dank Mike, das ist wirklich meine Sicht geklärt. – Constantine