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:
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,
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?
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.
Tags und Links automake