Automake系列( 四)安装可执行脚本

来源:互联网 发布:adobe cc mac 注册机 编辑:程序博客网 时间:2024/04/30 16:50

原创:http://blog.chinaunix.net/uid-686647-id-3462422.html

有些程序在发布的时候,除了编译的二进制可执行程序以外,还需要安装一些可执行的脚本。安装这些可执行脚本,有两种方式:

1.安装可执行脚本到bin目录或者是sbin目录

比如我这里有个脚本在源代码目录的./tools/cm.pl。那么在Makefile.am中增加如下语句:

dist_bin_SCRIPTS=./tools/cm.pl

将会把cm.pl脚本安装到目标安装目录的bin子目录下。如果你想安装到sbin目录下,请使用

dist_sbin_SCRIPTS=./tools/cm.pl


2.安装到其他目录下

这个时候,可以使用install-data-hook目标或者install-exec-hook。由于automake生成的makefile在执行安装的时候,是先执行可执行文件的安装的,即install-exec,后执行数据文件的安装,即install-data。所以install-exec-hook目标下的命令是在安装完可执行文件以后去执行的,而install-data-hook下的命令是安装完数据文件以后,去执行的。

比如我这里想把cm.pl安装的安装目录下的tools子目录下,则在Makefile.am中使用如下的语句:

install-exec-hook:      
        mkdir -p $(prefix)/tools
        cp ./tools/cm.pl $(prefix)/tools
        chmod a+x $(prefix)/tools/cm.pl

或者使用install-data-hook替换install-exec-hook也是可以的。

另外,也可以使用这样的方法,就是把cm.pl当数据文件来安装,使用install-data-hook仅仅做文件执行权限的更改,但是这样比较麻烦。不推荐。这样做的代码如下:

toolsdir = $(prefix)/tools
tools_DATA = ./tools/cm.pl
install-data-hook:
        chmod a+x $(toolsdir)/cm.pl

0 0
原创粉丝点击