2010-11-20 12 views
3

Ich möchte meinen Quellcode und relevante Daten-Dateien mit Autotools verteilen:Autotools mit Datendateien

~/foo$ ls -R 
.: 
conf configure.ac dat Makefile.am src 

./conf: 
foo-pref.conf 

./dat: 
data.dat 

./src: 
main.c Makefile.am 

Das ist, was ich bisher haben. Ohne die Unterverzeichnisse ./conf und ./dat kann ich mit Autotools arbeiten, um es für eine einzelne ausführbare Datei einzurichten. Aber ich möchte, dass data.dat in $ (Präfix)/share und foo-pref.conf installiert wird, um im entsprechenden Verzeichnis/etc installiert zu werden. Was kann ich tun, um dies zu erreichen?

Antwort

6

Sie können dist_data_DATA = dat/data.dat und dist_sysconf_DATA = conf/foo-pref.conf verwenden, um zu erreichen, was Sie wollen. Das Präfix dist_ besagt, dass diese Dateien von Distributionen verteilt werden sollten, die mit make dist generiert wurden. Der (in diesem Fall) mittlere Teil sagt, was das Zielverzeichnis ist: data für ${datadir}, sysconf für ${sysconfdir}, ... andere können im generierten Makefile nachgeschlagen werden, wenn es sein muss. Nun, und die DATA primäre sagt nichts mit diesen Dateien spektakulär zu tun, im Gegensatz zu, sagen SCRIPTS.

Beachten Sie, dass configure standardmäßig ${sysconfdir} auf ${prefix}/etc setzt, im Gegensatz zu den üblichen /etc. Wenn Sie das ändern möchten, müssen Sie configure mit z. ./configure --sysconfdir=/etc.