在 Makefile 中检查 FreeBSD 版本

在 Makefile 中检查 FreeBSD 版本

我的 Makefile 中有这些行:

PLATFORM     = $(shell uname -r)
OLD_FREEBSD  = 7.3-RELEASE-p2                                                                                                                                            
ifeq ($(OLD_FREEBSD), $(findstring $(OLD_FREEBSD),$(PLATFORM)))
... 
do some stuff
...
else
... 
do some other stuff
...
endif

这按预期工作。但我发现,一些 FreeBSD 7.3 映像将命令“uname -r”的输出显示为 7.2-RELEASE-p2。我不知道为什么它会这样,但我应该介绍这个变体。另外,这个 Makefile(使用 gmake 运行)应该对较新的 FreeBSD 和 CentOS 有效。那么,验证操作系统是 7.3 还是 7.2 的最佳方法是什么?

答案1

您可以将一个字符串(一个单词)与其他几个字符串进行比较筛选,它返回任何与该单词匹配的内容。例如,

...
OLDER_FREEBSD  = 7.2-RELEASE-p2
M = $(filter $(PLATFORM),$(OLD_FREEBSD) $(OLDER_FREEBSD))
ifneq ($(M),)
...

相关内容