makefile 中的可选依赖项
Optional dependency in makefile
我正在尝试在 GNU make 中获得一个可选的依赖项。我尝试使用 $(wildcard) 但得到了意外的输出:
test.mk:
a:
@echo "a"
b: $(wildcard a)
@echo "b"
@touch a
预期输出:
$ make -f ./test.mk b
b
$ make -f ./test.mk b
a
b
实际输出:
$ make -f ./test.mk b
b
$ make -f ./test.mk b
b
关于 $(wildcard) 我错过了什么?
您没有遗漏任何关于 $(wildcard ...)
的信息。就是这样
当你第二次 运行 make b
时文件 a
已经存在,所以
make
不需要制作,因此不会 运行 它的食谱。
如果您添加:
.PHONY: a
到 makefile 然后目标 a
将被制作,如果需要,不管这样的文件是否存在
并提供您期望的行为,但是您的 post 并不清楚这是否真的会捕获您的 objective。
我正在尝试在 GNU make 中获得一个可选的依赖项。我尝试使用 $(wildcard) 但得到了意外的输出:
test.mk:
a:
@echo "a"
b: $(wildcard a)
@echo "b"
@touch a
预期输出:
$ make -f ./test.mk b
b
$ make -f ./test.mk b
a
b
实际输出:
$ make -f ./test.mk b
b
$ make -f ./test.mk b
b
关于 $(wildcard) 我错过了什么?
您没有遗漏任何关于 $(wildcard ...)
的信息。就是这样
当你第二次 运行 make b
时文件 a
已经存在,所以
make
不需要制作,因此不会 运行 它的食谱。
如果您添加:
.PHONY: a
到 makefile 然后目标 a
将被制作,如果需要,不管这样的文件是否存在
并提供您期望的行为,但是您的 post 并不清楚这是否真的会捕获您的 objective。