我正在开发一个将与 GNU autoconf/automake 一起分发的项目,并且我有一组调用 awk 脚本的 bash 脚本。我希望 bash 脚本最终出现在 $PATH 中,而不是 awk 脚本中。我应该如何将它们插入到项目中?它们应该与其他二进制文件放在一起吗?
另外,有没有办法确定安装后文件的最终位置?我认为 /usr/local/bin 不是always可执行文件最终在哪里...
您可以只在 Makefile.am 中列出要安装的脚本:
bin_SCRIPTS = foo bar
这将导致 foo 和 bar 在 make install 期间被安装。要获取最终位置的路径,您可以在 foo.in 中使用 @bindir@ 并让 configure build foo 为您服务。例如,在configure.ac中:
AC_CONFIG_FILES([foo bar])
然后在 foo.in 中:
#!/bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
echo bindir = $bindir
请记住,运行配置的人可以指定 --prefix、--exec_prefix 或
--bindir,并且可以使用 DESTDIR 重定向安装。使用此处描述的技术,将不考虑 DESTDIR,并且脚本将安装在它将回显的路径之外的位置。这是设计使然,并且是正确的行为,因为通常使用 DESTDIR 安装来创建 tarball,该 tarball 最终将解压到文件系统中,以使脚本中的 bindir 变得有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)