我已在我的makefile中添加以下代码
RHELC="0"
UBUNTUC="0"
SUSEC="0"
RHELC=$(shell cat /etc/*-release | grep rhel -c)
UBUNTUC=$(shell cat /etc/*-release | grep ubuntu -c)
SUSEC=$(shell cat /etc/*-release | grep suse -c)
ifneq "${RHELC}" "0"
OS_DIST="RHEL"
endif
ifneq "${UBUNTUC}" "0"
OS_DIST="UBUNTU"
endif
ifneq "${SUSEC}" "0"
OS_DIST="SUSE"
endif
但是未设置OS_DIST。
这里有很多错误。意识到makefile不是shell脚本,并且它们具有不同的语法和规则。
首先,请弄清environment变量和make变量之间的区别。您在此处设置make变量,而不是环境变量。这些变量的值将出现在您的makefile中,但不会出现在您的环境中。
其次,make对变量中的引号没有什么特别的作用。它们与其他任何字符一样对待。当你写:
RHELC="0"
您正在将make变量RHELC
设置为文字字符串"0"
,包括引号。您没有将其设置为0。类似地,当您编写时:
OS_DIST="RHEL"
您正在将make变量OS_DIST
设置为文字字符串"RHEL"
。
关于您的问题,您尚未解释为什么您认为未设置make变量。您显示给我们的makefile中没有检查或使用这些值的内容,也没有显示给我们显示描述它们如何使用的输出。
所以,我们不能再为您提供帮助。
您可以调试生成文件的一件事是使用$(info ...)
make函数显示变量的值:
$(info RHELC=$(RHELC))
例如。