使用autotools分发脚本

lza*_*zap 1 autoconf autotools

我想用我的应用程序分发我的启动脚本.它被称为"blah",它位于我项目的脚本/文件夹中.我在configure.ac中有这个:

... 
AC_CONFIG_FILES([
    Makefile
    scripts/Makefile
    ....
])

AC_CONFIG_FILES([scripts/blah], [chmod +x scripts/blah])

AC_OUTPUT
Run Code Online (Sandbox Code Playgroud)

在scripts目录中,我有以下Makefile.am:

dist_bin_SCRIPTS = blah
CLEANFILES = $(bin_SCRIPTS)
Run Code Online (Sandbox Code Playgroud)

在同一个目录中,我有"blah.in"文件.

但是当我做"make install"时它会创建脚本/ blah,bot不会将它安装到/ usr/local/bin目录.我的设置有什么问题?谢谢

adl*_*adl 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)
Run Code Online (Sandbox Code Playgroud)

如果您只是想按原样分发和安装脚本,而不configure使用它来生成,请仅使用

dist_bin_SCRIPTS = blah
Run Code Online (Sandbox Code Playgroud)

并省略CLEANFILESAC_CONFIG_FILES行.

现在这不是你真正的错误.查看你的github文件,我可以看到scripts它没有出现在SUBDIRS你的root变量中Makefile.am.因此make install不会递归到该子目录,也不会安装脚本.