在我的项目中,我有一组 bash 脚本,它们与 C/C++ 二进制文件一起复制到安装根目录。
问题是我必须在安装之前为每个 BASH 脚本运行一个命令。更具体地说,我必须用 autoconf 输出变量替换一个变量:
anyfile sed 's/ECLIPSE_PATH/@prefix@/g'
这是 Makefile.am 中定义脚本的位置
bin_SCRIPTS = file1.sh file2.sh
我想知道是否有任何标准的方法来处理这个问题。如果不是,我想用一些技巧来处理它。谢谢!
更新
我想出了一个 hack 来解决它,这里是 Automake 配方:
install-data-hook:
input_path="@prefix@"; \
path=$${input_path//\//\\/}; \
for i in @bindir@/*; do \
if [[ ! `file $${i}` =~ "ELF" ]]; then \
sed -i "s/\$$ECLIPSE_PATH/$${path}/g" $$i; \
fi \
done
但我仍然想知道是否有标准的方法来做到这一点