标准 AIX make 工具是否有一些使用动态变量的技巧? 我希望根据底层主机名创建不同的目录:
# makefile
thisHOSTNAME=`hostname`
all: $(thisHOSTNAME) makeMyDir
machine-1:
TMP_DIR=V1
machine-2:
TMP_DIR=V2
makeMyDir:
@echo makeMyDir TMP_DIR=$(TMP_DIR)
# mkdir -p $(TMP_DIR) !! NOT WORKING
运行“make all”时,发现 $TMP_DIR 是空的!? 目标中的依赖项 $(thisHOSTNAME) all 已正确解析,并且相应的目标被执行,但变量 TMP_DIR 并未维护看起来分配的值。
$ 全部制作
TMP_DIR=V2
makeMyDir TMP_DIR=
最佳答案
反引号语法是shell语法,而不是make语法。您可以将其用作命令中使用的变量的值,但不能将其用作目标名称,如
thisHOSTNAME=`hostname`
all: $(thisHOSTNAME) makeMyDir
明白这变成了
all: `hostname` makeMyDir
并使all
依赖于目标主机名
包括反引号(我不知道如何在此处插入),因为依赖关系是在 make 语法中指定。
我不确定 AIX make
是否允许使用允许使用的 GNU make 语法
thisHOSTNAME = $(shell hostname)
如果没有,您可能会考虑将 AIX makefile 转换为 GNU makefile。
关于unix - AIX make/makefile : variable assignment is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317793/