2011-04-01 195 views
2

我在makefile如下:的makefile循环变量

RESULT=ab 
nums: 
    number=1 ; while [[ $$number -le $(DIRS_NUM) ]] ; do \ 

     now=`echo $(CURR_DIR) | cut -d "/" -f 1-$$number` ;\ 

     **RESULT = $$now;\** 

     echo $(RESULT);\ 

     ((number = number + 1)) ; \  
    done 

我想更新RESULT变量,但我不知道如何做到这一点。

+0

为什么?你打算怎么用'RESULT'做什么? – Beta 2011-04-01 12:35:43

回答

3

无法从规则内更新makefile变量。你可以使用$(shell cmd)宏来执行一个命令并从其输出流中获取一个值,但是这与你所能达到的一样近。一个简单的例子:

X := $(shell echo 5) 

现在X将具有值5

请注意在这里使用:=,而不是简单的=。这会立即扩展右侧的所有内容,而不是每次引用X