我正在尝试做一件简单的事情:
TMPDIR ?= /tmp
test:
@echo $(TMPDIR)
如果我运行,这会起作用:
$ make test
/tmp
如果我运行它也有效:
$ make test -e TMPDIR=~/tmp
/home/user/tmp
我该怎么做才能让它也适用于:
$ TMPDIR=~/tmp make test
/home/user/tmp
最佳答案
为了跟进我上面的评论,这里有一个例子:
T ?= foo
all:
: '$(T)'
现在,如果我以各种方式运行 Makefile,它会按我们预期的方式运行(仅当我未在命令行上设置 T
或环境):
$ make
: 'foo'
$ make T=bar
: 'bar'
$ T=bar make
: 'bar'
关于bash - 使用 ENV 变量或默认值定义 Makefile 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24263291/