Понимание скрипта makefile для Linux

230
vport

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

BRANCH := $(shell TRY=$(CURDIR) BRANCH=dev while [ "$$" != "$(ROOT)" -a "$$" != "/" ]; do if [ -e "$$/.branch" ]; then BRANCH=$$(cat "$$/.branch")  break fi TRY=$$(dirname $$) done echo $$) 
2
Почему понижающий голос ??? Я исправил это. MariusMatutiae 7 лет назад 1

1 ответ на вопрос

1
Kusalananda

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

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

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

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

Похожие вопросы