gpt4 book ai didi

installation - 使用 automake 安装包含大量文件的数据目录树

转载 作者:行者123 更新时间:2023-12-03 20:17:10 24 4
gpt4 key购买 nike

我有一个数据目录,我希望 automake 为其生成安装和卸载目标。本质上,我只想将此目录逐字复制到 DATA 目录,通常,我可能会单独列出所有文件,例如

dist_whatever_DATA=dir/subdir/filea ...

但是当我的目录结构看起来像这样时就会出现问题
*root
*subdir
*~10 files
*subdir
*~10 files
*subdir
*~700 files
*subdir
...
~20 subdirs

我只是无法列出 Makefile.am 中包含的所有 1000 多个文件。那将是荒谬的。

我还需要保留目录结构。我应该注意,这些数据根本不是由构建过程生成的,实际上是很短的录音。所以我不想让 automake“检查”我想安装的每个文件是否已经实际创建,因为它们要么在那里,要么在那里,无论那里有什么文件,我知道我想安装它,不管文件不是,不应该安装。我知道这是在其他地方不进行通配符安装的理由,但所有可能的原因都不适用于这里。

最佳答案

我会使用脚本来生成 Makefile列出所有文件的片段:

echo 'subdir_files =' > subfiles.mk
find subdir -type f -print | sed 's/^/ /;$q;s/$/ \\/' >> subfiles.mk

然后包括这个 subfiles.mk来自您的主要 Makefile.am :
include $(srcdir)/subfiles.mk
nobase_dist_pkgdata_DATA = $(subdir_files)

第二种选择是 EXTRA_DIST = subdir ,然后写自定义 install-data-localuninstall-local规则。

这里的问题是 EXTRA_DIST = subdir将分发 subdir/ 中的所有文件,包括备份文件、配置文件(例如来自您的 VCS)以及您不想分发的其他内容。

使用上述脚本,您可以过滤真正想要分发的文件。

关于installation - 使用 automake 安装包含大量文件的数据目录树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com