检测Makefile中是否包含Ubuntu Linux操作系统


13

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


工作了吗?(因为您删除了评论:D)
Rinzwind

是的,我将OS变量更改为“ shell lsb_release -si”,现在可以正常使用了:)。感谢您的回答!
$$$$

+1为有趣的标题。(提示:Makefile和Make file的含义完全不同。)
Mahesh 2013年

Answers:


19

我们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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.