bash - 使用 ENV 变量或默认值定义 Makefile 变量

标签 bash shell makefile environment-variables

我正在尝试做一件简单的事情:

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/

相关文章:

Bash 等待进程启动

ubuntu - 文件 GDB : 'make' fails for sample (Ubuntu 15)

c++ - CMake的package_find冲突如何解决?

linux - Bash 脚本自动化

linux - 在bash中用另一个数字替换一个数字

regex - Bash:用于查找具有双引号的模式的正则表达式

c++ - 我正在使用 Dev-C++ 并收到一个编译器错误,提示 "collect2.exe"正在接收状态 1

bash - 根据 shell 脚本中的列打印行

bash - 运行 matlab 命令行并自动运行 unix 服务器 bjob​​s

linux - 无法更改 tclsh 路径