基于环境变量的Makefile条件分配

时间:2019-08-02 22:42:33

标签: makefile

我希望我的Makefile中具有以下行为:

if the current user is "dev-builder":
  CACHE_DIR=/nfs/artifacts
else
  CACHE_DIR=
endif

在我的Makefile中,我有这样的东西:

ifeq($$USER,"dev-builder")
CACHE_DIR_FLAG="--output_base=/nfs/artifacts"
endif

mytarget:
  bazel $(CACHE_DIR_FLAG) build (other args)

但是make发出的命令只是bazel build (other args),并且似乎没有满足ifeq的条件,即使我已确认已以生成器帐户登录。如果我删除条件ifeq并只是盲目地分配CACHE_DIR_FLAG,则该命令是所需的。任何见解将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

ifeq中的引号导致字符串比较失败。

ifeq($(USER),dev-builder)
commands here
endif