带数据文件的Autotools

kay*_*kun 4 autotools

我想使用Autotools分发我的源代码和相关数据文件:

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

./conf:
foo-pref.conf

./dat:
data.dat

./src:
main.c  Makefile.am
Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所拥有的.如果没有./conf和./dat子目录,我可以让Autotools为单个可执行文件设置它.但是我想将data.dat安装在$(前缀)/ share和foo-pref.conf中以安装在相应的/ etc目录中.我能做些什么来实现这个目标?

den*_*ane 7

您可以使用dist_data_DATA = dat/data.datdist_sysconf_DATA = conf/foo-pref.conf实现您想要的.该dist_前缀表示,这些文件应该由生成的分布分配make dist.(在本例中)中间部分表示目标目录是什么:datafor ${datadir},sysconffor ${sysconfdir},...如果需要,可以在生成的Makefile中查找其他目录.好吧,DATA主要说不要对这些文件做任何特别的事情,而不是说SCRIPTS.

请注意,在默认情况下,配置将设置${sysconfdir},以${prefix}/etc相对于更习惯/etc.如果要更改它,则需要使用eg调用configure ./configure --sysconfdir=/etc.