automake: Wie kopiere ich Dateien in das Build-Verzeichnis?

8

Ich automatisiere ein Bibliotheksprojekt automatisch, und dieses Projekt hat einige Beispielprogramme. Ich möchte, dass die Beispielprogramme in dist verteilt werden, aber nicht installiert ist.

Derzeit sind die Demo-Programme wie folgt organisiert:

%Vor%

Es ist wichtig, dass RunDemo nach dem Erstellen der Software ausführbar ist, ohne dass der Schritt "install" erforderlich ist.

Bisher war ich in der Lage, die "Demo" mit einem noinst_PROGRAMS Ziel zu erstellen. Nach make in einem VPATH-Build ist jedoch Folgendes verfügbar:

%Vor%

Wie Sie sehen, wird das RunDemo-Skript, das zum Ausführen von "demo" benötigt wird, nicht in $ (builddir) kopiert. Ich habe ein paar Dinge versucht, zB RunDemo zu dist_noinst_SCRIPTS hinzuzufügen, sowie meine eigenen Kopierziele hinzuzufügen und zu versuchen, all zu haken. Egal was ich versuche, ich bekomme immer die Ausgabe,

%Vor%

Ich kann anscheinend kein Ziel im builddir erstellen, das besagt: "Wenn diese Datei nicht im builddir ist, kopieren Sie sie aus dem srcdir."

Ist das mit automake möglich?

    
Steve 30.09.2013, 17:02
quelle

1 Antwort

7

Sie können Dateien in der Build-Struktur nach dem Schritt ./configure mit dem Makro AC_CONFIG_LINKS (bereitgestellt mit autoconf ) in Ihrem Skript configure.ac zugänglich machen. Wenn möglich wird ein symbolischer Link erstellt, andernfalls wird die Datei kopiert.

In Ihrem Fall würde es aussehen wie

%Vor%

Von autoconf manual :

  

Makro: AC_CONFIG_LINKS (dest: source ..., [cmds], [init-cmds])

     

Machen Sie AC_OUTPUT mit den vorhandenen Dateien source verlinken   entsprechender Linkname dest . Macht einen symbolischen Link, wenn möglich,   ansonsten eine feste Verbindung wenn möglich, ansonsten eine Kopie. Das Ziel und    source Namen sollten relativ zu der Quelle oder dem Build der obersten Ebene sein   Verzeichnis

Die Verwendung von dist_noinst_SCRIPTS ist immer noch notwendig, damit die Datei verteilt wird.

    
Gavin Smith 30.09.2013, 20:15
quelle

Tags und Links