如何忽略makefile中的依赖检查
How to ignore dependency check in makefile
我想忽略 makefile 中的依赖项检查。
例如,请看这段代码。
test:: test1 test2
@echo "test"
test1:: back3
@echo "test1"
test2:: back3
@echo "test2"
back3::
@echo "back3"
“进行测试”的结果
back3
test1
test2
test
但我想得到以下结果。
back3
test1
back3 <---- I want to run back3 again.
test2
test
我该怎么做?
test: test1 test2
@echo "test"
test1:
$(MAKE) back3
@echo "test1"
test2:
$(MAKE) back3
@echo "test2"
back3:
@echo "back3"
或使用 "canned recipe":
define run_back3
@echo "back3"
endef
test: test1 test2
@echo "test"
test1:
$(run_back3)
@echo "test1"
test2:
$(run_back3)
@echo "test2"
你写
I'd like to ignore dependency check in makefile.
,这似乎意味着您希望在构建该目标之前重建每个目标的所有先决条件,特别是 for 该目标,这样的先决条件可能是建造了不止一次。
make
根本不能那样工作。在每个 运行 上,make
最多构建每个目标一次。先决条件列表帮助它确定需要构建哪些目标,以何种顺序构建,但指定先决条件不应被视为调用子例程。
如果您确实想要像调用子程序一样工作的东西,那么它需要在规则的配方中表达,而不是它的先决条件列表。您的 为此提供了两种选择。其中,递归 make 示例更为通用;基于定义自定义函数的函数特定于 GNU make
.
我想忽略 makefile 中的依赖项检查。 例如,请看这段代码。
test:: test1 test2
@echo "test"
test1:: back3
@echo "test1"
test2:: back3
@echo "test2"
back3::
@echo "back3"
“进行测试”的结果
back3
test1
test2
test
但我想得到以下结果。
back3
test1
back3 <---- I want to run back3 again.
test2
test
我该怎么做?
test: test1 test2
@echo "test"
test1:
$(MAKE) back3
@echo "test1"
test2:
$(MAKE) back3
@echo "test2"
back3:
@echo "back3"
或使用 "canned recipe":
define run_back3
@echo "back3"
endef
test: test1 test2
@echo "test"
test1:
$(run_back3)
@echo "test1"
test2:
$(run_back3)
@echo "test2"
你写
I'd like to ignore dependency check in makefile.
,这似乎意味着您希望在构建该目标之前重建每个目标的所有先决条件,特别是 for 该目标,这样的先决条件可能是建造了不止一次。
make
根本不能那样工作。在每个 运行 上,make
最多构建每个目标一次。先决条件列表帮助它确定需要构建哪些目标,以何种顺序构建,但指定先决条件不应被视为调用子例程。
如果您确实想要像调用子程序一样工作的东西,那么它需要在规则的配方中表达,而不是它的先决条件列表。您的 make
.