有没有办法知道Makefile
中是否使用--dry-run
选项调用了GNU make?
我正在寻找类似的东西:
ifeq (dry-run)
; # do not create a rule
else
; # create a custom rule
endif
这也可以是任何其他解决方法。
原因是我引用了另一个依赖于
Makefile
目标的.PHONY
的规则,因此在空运行时,它显示所有目标,而不仅仅是过时的目标。
最佳答案
您可以检查MAKEFLAGS
的值以查看设置了哪些标志。如果存在-n
选项,则说明make在空运行模式下运行(不管命令行上指定了哪个选项,MAKEFLAGS
始终包含短单字符选项(如果存在的话)。
像这样的东西:
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
# run with -n / --dry-run
else
# not run with -n / --dry-run
endif
关于gnu-make - 在Makefile中,知道GNU make是否在--dry-run中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302443/