【发布时间】:2012-10-22 06:46:14
【问题描述】:
我想要的是:
给定一个名称数组,例如dependency1、dependency2、..、dependencyN:
将“_DEP_DIR”附加到每个名称,以形成例如dependency1_DEP_DIR、..、dependencyN_DEP_DIR。 (XXX_DEP_DIR 预定义为一个变量,指向每个依赖的本地磁盘路径。)
调用每个依赖项的特定批处理文件(setup.bat)。
我尝试的是:
DEP_NAMES=dependency1 dependency2 dependency3 dependency4 dependency5 dependency6
DEP_DIRS=$(foreach name,$(DEP_NAMES),$(name)_DEP_DIR)
for dependency in $(DEP_DIRS); do \
ECHO Copy $$dependency ; \
ECHO $($$dependency)/installers/windows ; \
"$($$dependency)/installers/windows/setup.bat" ; \
done
问题
第一个回显可以成功显示附加名称,例如“dependency1_DEP_DIR”。但是$($$dependency)并没有按预期工作,“/installers/windows”被打印出来了,更不用说下面对批处理文件的调用了。
疑难解答
我想问题是我的循环计数器($$dependency)的值恰好是我需要使用的变量的名称($(..))。并且表单($($$dependency)) 不正确(甚至不支持?)
有人知道吗?
另外,如果你们能想出其他方法来满足我的要求,绕过这个问题,很高兴知道;)
【问题讨论】:
-
不正确 并且不支持,因为 make 无权访问 shell 变量。
-
好的。有没有其他方法可以实现我的要求,例如,不使用 shell?
标签: windows shell makefile windows-shell