在Makefile中检测是否为Ubuntu Linux操作系统

我想创建一个makefile,它可以编译我的对象并根据Linux发行版(例如Suse、RedHat或Ubuntu)为它们命名。我如何检测操作系统是否为Ubuntu?

弄好了吗?(因为你删除了你的评论 :D) - Rinzwind
是的,我将操作系统变量更改为“shell lsb_release -si”,现在运行得很好:)。非常感谢您的回答! - RRR
+1 对于这个有趣的标题点赞。 (提示:Makefile和Make file的意思完全不同。) - Mahesh
1个回答

我们使用cat /etc/lsb-release来识别Ubuntu版本。
sh-3.2$  cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"

对于其他版本可能 会这样。
ls /etc/*release

Gentoo、RedHat、Arch和SuSE都有一个发布文件:http://linuxmafia.com/faq/Admin/release-files.html 这个链接里有一个完整的脚本 ;)
Ubuntu类型系统的操作系统、架构和版本的示例代码:
OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)