【发布时间】:2018-12-01 18:18:33
【问题描述】:
我在我的 makefile 中定义了一个像这样的变量
target:
@for entry in ${FOLDERSS} ; \
do \
COUNT=$$(( $${COUNT}+1 )) ; \
if [ $$COUNT -eq 1 ] ; then \
FOLDERS="[ -s " ; \
aux=`echo $$entry` ; \
FOLDERS+=$$aux ; \
else \
FOLDERS+=" [ -s " ; \
aux=`echo $$entry` ; \
FOLDERS+=$$aux ; \
FOLDERS+=" ]" ; \
fi ; \
done ; \
FOLDERS+=" ]";\
“FOLDERSS”是在我的 Makefile 中手动定义的,其中包含我需要考虑编译的所有文件夹。现在我想要执行以下操作:
deps: target
${AUTOGEN} -d $${FOLDERS}) -f ${AUTOCONF};\
其中 AUTOGEN 是一个 bash 脚本,而 AUTOCONF 是一个配置文件。文件夹应该准确地写出它包含的内容,例如: [-s /home/at/src/folder1 [-s /home/at/src/folder2]] 所以总而言之,我的makefile中bashscript的执行应该有以下命令:
./path/to/autogen -d [ -s /home/at/src/folder1 [ -s /home/at/src/folder2 ] ] -f /path/to/autoconfile
如果我在 makefile 中手动键入它,它可以工作,但是当使用双美元符号时,它似乎无法评估变量 FOLDERS。
大家有什么建议吗
【问题讨论】:
标签: bash shell makefile compilation