这要么是微不足道的,要么与make应该如何使用的哲学背道而驰,但是我希望有一个命令行,它读作"make debug"而不是"make DEBUG = 1".我尝试创建一个名为debug的虚假目标,除了设置DEBUG变量之外什么也没做,但是"make debug build"和"make build debug"之间存在差异 - 即在一种情况下,变量在构建之后设置了发生了.
有没有办法给某些目标优先权?
谢谢你的帮助.
小智 3
您还可以通过查看 MAKECMDGOALS 变量来完成此操作
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
DEBUG = 1
endif
build:
@echo build and DEBUG is [$(DEBUG)]
debug:
Run Code Online (Sandbox Code Playgroud)
当您调用它时会发生以下情况:
$ make build
build and DEBUG is []
$ make build debug
build and DEBUG is [1]
make: Nothing to be done for `debug'.
$ make debug build
make: Nothing to be done for `debug'.
build and DEBUG is [1]
Run Code Online (Sandbox Code Playgroud)