在 Makefile 中进行 VAR 评估



我希望make wheel打印轮子名称

cat Makefile
wheel:
    @rm -fr build dist
    @python setup.py bdist_wheel
    $(eval WHEEL=$(shell find . -name '*.whl'))
    @printf 'n => wheel ready %snn' $(WHEEL)

几乎有效,因为在调用 setup.py dist文件夹为空之前评估 eval。

我也试过WHEEL:=$(shell find . -name '*.whl'),同样的结果

将结果放在变量中似乎完全是错误的。

wheel:
    @rm -fr build dist
    python setup.py bdist_wheel
    @printf 'n => wheel ready %snn' $$(find . -name '*.whl')

printf换行符看起来很古怪,但也许你喜欢虚假的空行。

使用不同的目标来创建文件。将命令存储在带有$(shell)的变量中(您使用的是GNU Make,对吗?(,使用它运行关联的命令:

WHEEL = $(shell find . -name '*.whl')
wheel: create_wheel
    printf 'n => wheel ready %snn' $(WHEEL)
create_wheel:
    @rm -fr build dist
    @python setup.py bdist_wheel

分配命令时需要使用=,否则(使用 := (它将在 make 过程开始时进行评估。

最新更新