Makefile (считая) - PullRequest
       1

Makefile (считая)

0 голосов
/ 24 августа 2011

Я полностью озадачен тем, как это сделать в Makefile

Допустим, у меня есть цель. Внутри цели у меня есть петля. Как изменить переменную, чтобы отслеживать итерации?

Например:

COUNTER = 0
target:
    (loop){
        COUNTER++
        echo COUNTER
}

Я знаю, что переменные в Make-файлах только раскрываются, и я не уверен, что их можно постоянно изменять, но должен быть способ сделать это, верно? (

Вот несколько источников, которые задают подобные вопросы. Кажется, что эти примеры только временно изменяют переменную:

Может, мне как-то нужно использовать функцию eval?

Может быть, мне нужно каждый раз добавлять в строку Makefile символ, а затем использовать что-то в оболочке для подсчета символов?

Ответы [ 2 ]

4 голосов
/ 25 августа 2011

Если переменная не должна выдерживать правило, это должно сделать (я предполагаю, 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;
1 голос
/ 24 августа 2011

Вот одно из решений: напишите простой скрипт, подобный этому:

#!/bin/bash
count=`cat count.txt`
count=$((count + 1))
echo $count
cat $count > count.txt

Инициализируйте файл, выполнив

$ echo "0" > count.txt

Затем включите его в качестве требования .PHONY, чтобы построить что угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...