Makefile не найти правило - PullRequest
0 голосов
/ 13 апреля 2020

Я нахожусь в Jekyll проекте со следующим makefile:

project = jekyll-template-repository

e:          execute
execute:
            bundle
            build


r:          run
run:
            jekyll serve -l -o -b /$(project)


b:          build
build:      clean
            jekyll build

c:          clean
clean:
            jekyll clean

И когда я запускаю make execute, он выдает мне ошибку make: build: Command not found

Полагаю, он пытается выполнить ее как обычную команду bash, однако я хотел бы вызвать правило build, которое я написал в файле. Существует ли какой-то особый синтаксис для указания на другие правила make, если они не соответствуют другому правилу :?

1 Ответ

1 голос
/ 14 апреля 2020

Вы не можете "вызывать" правила в make-файле. Правила не являются функциями. Вы можете зависеть от цели , и в этом случае эта цель будет обновлена ​​до того, как эта цель будет считаться актуальной.

Каждый рецепт Правило, действительно, сценарий оболочки. Это не список других целей.

Вы можете написать:

execute: build

, тогда он сначала выполнит рецепт цели build (при условии, что он не обновлен), затем после что он выполнит рецепт для цели execute.

...