我想用我的应用分发我的启动脚本。它被称为“blah”,它位于我项目的脚本/文件夹中。我在configure.ac中有这个:
...
AC_CONFIG_FILES([
Makefile
scripts/Makefile
....
])
AC_CONFIG_FILES([scripts/blah], [chmod +x scripts/blah])
AC_OUTPUT
在scripts目录中,我有以下Makefile.am:
dist_bin_SCRIPTS = blah
CLEANFILES = $(bin_SCRIPTS)
在同一个目录中,我确实有“blah.in”文件。
但是当我做“make install”时它会创建脚本/ blah,bot不会将它安装到/ usr / local / bin目录。我的设置有什么问题?感谢
答案 0 :(得分:8)
如果您AC_CONFIG_FILES([scripts/blah], ...)
从script/blah
创建script/blah.in
,那么您应该只分发script/blah.in
(这会自动发生,因为使用AC_CONFIG_FILES
会产生副作用)而不是分发script/blah
。
您的Makefile
应该阅读
bin_SCRIPTS = blah # not dist_bin_SCRIPTS
CLEANFILES = $(bin_SCRIPTS)
如果您只想按原样分发和安装脚本,而不使用configure
生成脚本,请仅使用
dist_bin_SCRIPTS = blah
并省略CLEANFILES
以及AC_CONFIG_FILES
行。
现在这不是你真正的错误。查看您的github文件,我可以看到scripts
未出现在根SUBDIRS
的{{1}}变量中。因此Makefile.am
不会递归到该子目录中,也不会安装脚本。
答案 1 :(得分:0)
您确定需要指定:
AC_CONFIG_FILES([scripts/blah], [chmod +x scripts/blah])
对我来说,autotools生成blah.in,因为他们认为,你的脚本是一个makefile。尝试删除此行,告诉发生了什么。