makefile中的条件错误

makefile中的条件错误,makefile,gnu-make,Makefile,Gnu Make,我的MakeFile中有以下命令: .PHONY: lint lint: eslint src --ext ts .PHONY: component component: ifndef name $(error name is not set. try 'make component name=') endif 问题是,当我运行makelint或任何其他命令时,在组件中发现错误并退出 我怎样才能阻止这一切的发生 Make将扩展ifndef…块作为解析makefile的一部分。它可以扩

我的MakeFile中有以下命令:

.PHONY: lint
lint:
    eslint src --ext ts

.PHONY: component
component:
ifndef name
$(error name is not set. try 'make component name=')
endif
问题是,当我运行
makelint
或任何其他命令时,在
组件中发现错误并退出


我怎样才能阻止这一切的发生

Make将扩展
ifndef…
块作为解析makefile的一部分。它可以扩展到目标或命令。您编写了“如果未定义
name
,则生成一个错误”,因此Make会按照您的指示执行

似乎您打算为
组件
目标编写一条规则。如果是这样,您需要将解析时错误更改为运行时错误

component:
ifdef name
        command_to_generate_component $(name)
else
        false "Error: name is not set. Try 'make component name=…'"
endif