基于目标的Makefile环境

时间:2019-04-04 08:04:33

标签: makefile

此代码无效:

$ cat Makefile
dev:
        AWS_PROFILE=foobar-$@ echo $$AWS_PROFILE

demo:
        AWS_PROFILE=foobar-$@ echo $$AWS_PROFILE

基于我的目标,我希望为目标中的命令正确设置AWS_PROFILE。如何使用GNU Make 4.2.1实现这一目标?

1 个答案:

答案 0 :(得分:0)

echo命令之前添加分号:

dev:
    AWS_PROFILE=foobar-$@; echo $$AWS_PROFILE

配方的每一行都发送到另一个外壳。因此,如果要传播外壳变量,则必须在同一外壳列表的同一行上定义和使用它们。您还可以使用&&||来加入各个shell命令。

请注意,为了获得更好的可读性,您可以使用换行符:

dev:
    AWS_PROFILE=foobar-$@; \
    echo $$AWS_PROFILE