我的包中使用了一些数据文件。它们是目录中的74个文件。根据{{3}}部分 9.3与架构无关的数据文件,我可以单独列出它们
dist_pkgdata_DATA = mydir/file1 mydir/file2 ..... mydir/file74
打字太多了。谁能建议一个好的解决方案? 对于这样的问题有一个automake manual,但它本质上是相同的机制(手动列出所有文件)。由于程序员很懒,我们不想输入它们。此外,每次需要添加新文件或删除旧文件时,都必须更新Makefile.am。
答案 0 :(得分:0)
如果您不想在所有the compressed file approach上列出文件,那么安装/卸载挂钩对于大量文件来说就像是一种合理的方法,特别是如果它们本质上是&#34 ;只写#34;。
如果您希望这些文件通常可以检查,您必须执行以下操作:
MYDIR = mydir
EXTRA_DIST = $(MYDIR)
install-data-local:
test -z $(pkgdatadir) || $(MKDIR_P) $(pkgdatadir)
find "$(MYDIR)" -type f -exec $(INSTALL_DATA) {} $(pkgdatadir) \;
太多打字"部分是由于dist_
前缀 - automake
被告知打包这些文件以进行分发tarball。另一方面,EXTRA_DIST
会将目录的全部内容包含在tarball中,但您必须在以后指定如何处理这些文件。它也确实无法检查。如果mydir
包含2个文件或74个文件,则它与automake
完全相同。
另一种解决方法是在bootstrap.sh
中调用另一个程序(在调用autoreconf
之前)创建一个定义dist_pkgdata_DATA
的makefile片段,然后在{included
中Makefile.am
1}}。这仍然无法解决正确数量的文件问题。