我在一个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
规则不在另一个规则:
之后时,是否需要一些特殊的语法来指向它们?
您不能在makefile中"调用"规则。规则不是函数。您可以依赖目标,在这种情况下,该目标将是最新的,然后才能被视为最新的。
事实上,规则的每个配方都是一个shell脚本。它从来都不是其他目标的清单。
你可以写:
execute: build
则它将首先执行build
目标的配方(假设它不是最新的(,然后它将执行execute
目标的配方。