将 automake 安装文件名设置为与原始文件名不同

Posted

技术标签:

【中文标题】将 automake 安装文件名设置为与原始文件名不同【英文标题】:Setting automake install filename to be different from original filename 【发布时间】:2011-11-27 07:58:03 【问题描述】:

是否可以设置 automake 以安装不同名称的文件?例如,假设我的包中有一个 LICENSE 文件,我想将其安装在 /usr/share/licenses/mypackage 下。是否可以扩展下面的代码,以便将 LICENSE 文件安装为“mypackage”?

licensedir = $(datadir)/licenses
license_DATA = LICENSE

我已经在谷歌上搜索了很长时间,但没有发现任何有用的东西。

【问题讨论】:

【参考方案1】:

一个可能的解决方案是添加一个安装钩子:

install-data-hook:
    cd $(DESTDIR)$(datadir)/licenses; \
    mv LICENSE mypackage

【讨论】:

这在 AUTOmake 文件中有效吗?如果我将您的代码添加到我的 Makefile.am 中,我会收到“没有规则可以创建目标 LICENSE', needed by all-am”。在制作结束时。 对不起,我忘了 cd 到目标目录。是的,这适用于 Automake - 规则 install-data-local 仅对 Automake 有特殊意义。 钩子将是 install-data-hook 并在所有其他 install-data 规则之后执行。 install-data-local 可以在 install-license_DATA 之前执行,然后 mv 将不起作用(就像我的情况一样)。

以上是关于将 automake 安装文件名设置为与原始文件名不同的主要内容,如果未能解决你的问题,请参考以下文章

使用 automake 在 CentOS 上将 pkg-config 文件安装到正确的路径

Automake:设置数据文件权限模式

使用 automake 设置每个文件的标志

设置 %option prefix= 时如何让 automake 识别 flex 生成的非默认文件名

如何使用 automake 安装 D 库的 .d 文件?

为 Automake 文件中的一个程序设置 Preproccessor 指令