Автоинструменты с файлами данных

Я хочу распространять свой исходный код и соответствующие файлы данных с помощью Autotools:

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

./conf:
foo-pref.conf

./dat:
data.dat

./src:
main.c  Makefile.am

Это то, что у меня есть до сих пор. Без подкаталогов ./conf и ./dat я могу настроить Autotools для работы с одним исполняемым файлом. Но я хочу, чтобы data.dat был установлен в $(prefix)/share, а foo-pref.conf — в соответствующий каталог /etc. Что я могу сделать, чтобы достичь этого?


person kaykun    schedule 20.11.2010    source источник


Ответы (1)


Вы можете использовать dist_data_DATA = dat/data.dat и dist_sysconf_DATA = conf/foo-pref.conf для достижения желаемого. Префикс dist_ говорит о том, что эти файлы должны распространяться дистрибутивами, сгенерированными с помощью make dist. В средней части (в данном случае) указывается целевой каталог: data для ${datadir}, sysconf для ${sysconfdir}, ... другие при необходимости можно найти в сгенерированном Makefile. Ну, и первичный DATA говорит не делать с этими файлами ничего интересного, в отличие, скажем, от SCRIPTS.

Обратите внимание, что по умолчанию configure установит ${sysconfdir} в ${prefix}/etc, в отличие от более привычного /etc. Если вы хотите изменить это, вам нужно вызвать configure, например. ./configure --sysconfdir=/etc.

person dennycrane    schedule 20.11.2010