2

Я использую fpgalink fx2 для сборки на машине с Windows. Вот makefile, что означает следующий скрипт:

BRANCH := $(shell TRY=$(CURDIR)
BRANCH=dev
while [ "$${TRY}" != "$(ROOT)" -a "$${TRY}" != "/" ]; do
    if [ -e "$${TRY}/.branch" ]; then
        BRANCH=$$(cat "$${TRY}/.branch") 
        break
    fi
    TRY=$$(dirname $${TRY})
done
echo $${BRANCH})

1 ответ1

1

Этот фрагмент Makefile GNU устанавливает значение переменной Makefile BRANCH .

Это делается путем вызова короткого сценария оболочки, встроенного в Makefile.

Сценарий оболочки пытается найти файл с именем .branch в текущем каталоге. Если этот файл не найден, он пытается найти его в указанном выше каталоге и т.д., Пока он не попадет ни в корневой каталог (/), либо в каталог, заданный значением переменной Makefile ROOT .

В случае, если файл найден, его содержимое будет использоваться для установки значения BRANCH (и цикл завершается). Если файл .branch нигде не найден , переменной BRANCH будет присвоено значение dev .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .