Autotools:PROGRAMS 安装路径
Posted
技术标签:
【中文标题】Autotools:PROGRAMS 安装路径【英文标题】:Autotools: PROGRAMS installation paths 【发布时间】:2019-11-28 08:47:07 【问题描述】:在典型情况下,当您需要构建二进制文件并安装它们时,我可以使用类似的东西:
bin_PROGMRAMS: foo
foo_SOURCES: goo.c
或
sbin_PROGRAMS: foo
foo_SOURCES: goo.c
这意味着 foo 将被构建,然后安装在 $(prefix)/bin
或 $(prefix)/sbin
中。但是,如果您使用 data_PROGRAMS
而不是 bin_PROGRAMS
,则 automake 将不允许这样做。
问题:二进制文件(“程序”)安装允许的完整路径列表是什么?
【问题讨论】:
【参考方案1】:PROGRAMS
允许的预定义安装目录的完整列表是:
‘bindir’, ‘sbindir’, ‘libexecdir’, ‘pkglibdir’
类似标准路径的完整列表可以在auto-book 中找到
编辑:上面的列表不正确,我把它留在这里只是为了给评论部分提供上下文,见下文:
自动预订似乎已过时。正确的安装目录列表是:
bindir, sbindir, libexecdir, pkglibexecdir
https://www.gnu.org/software/automake/manual/html_node/Program-Sources.html#Program-Sources
【讨论】:
您似乎从 Autobook 中复制了您的列表,结果证明这是错误的,您可以通过实验验证。pkglibdir
不是与PROGRAMS
主目录一起使用的有效目录,因为它确实与libdir
的允许使用一致。我想 Autobook 的意思是说pkglibexecdir
,否则会构成遗漏。无论如何,此信息的主要来源是the Automake manual。
@JohnBollinger 是的,它来自 autobook,正如我在答案中所说的那样。我检查了您提供的链接,它似乎没有列出可以通过 automake 安装 PROGRAMS 的目录...
这里的关键问题是给出的答案明显是错误。 pkglibdir
不允许用于 PROGRAMS
,而 pkglibexecdir
是。我链接的 Automake 手册部分通过引用 the GNU Coding Standards 部分提供了正确的信息,部分通过评论“Automake 使用 pkgdatadir、pkgincludedir、pkglibdir 和 pkglibexecdir 扩展了这个列表;这些与非'pkg ' 版本,但附加了 '$(PACKAGE)'。"
好的,找到正确的答案(相应地编辑了答案)以上是关于Autotools:PROGRAMS 安装路径的主要内容,如果未能解决你的问题,请参考以下文章