Makefile(计数)

Tre*_*key 0 makefile

我完全不知道如何在 Makefile 中做到这一点

假设我有一个目标。在目标内部我有一个循环。如何更改变量以跟踪迭代?

例如:

COUNTER = 0
target:
    (loop){
        COUNTER++
        echo COUNTER
}
Run Code Online (Sandbox Code Playgroud)

我知道 Makefile 中的变量只是扩展,我不确定它们是否可以永久更改,但必须有办法做到这一点,对吗?:(

以下是一些提出类似问题的消息来源。这些例子似乎只是暂时改变了变量:

也许我必须以eval某种方式使用该功能?

也许我每次都必须在 Makefile 字符串上附加一个字符,然后在 shell 中使用某些东西来计算字符数?

Bet*_*eta 5

如果变量不必遵守规则,则应该这样做(我假设是 bash):

clean:
    @n=0 ; \
   for x in $(THINGS_TO_BE_DELETED); do \
     if [ -f $$x ] ; then \
       rm $$x; \
       let "n+=1" ; \
     fi ; \
   done ; \
   echo deleted $$n files;
Run Code Online (Sandbox Code Playgroud)