I want to create a makefile that will compile my objects and name them according to the Linux distro (e.g. Suse, RedHat, or Ubuntu). How can I detect if the OS is Ubuntu or not?
Asked
Active
Viewed 7,201 times
14
-
got it working? (since you deleted your comment :D) – Rinzwind Apr 08 '13 at 10:03
-
yes, I changed the OS var to be "shell lsb_release -si" and now it works well :). Thanks you for your answer! – RRR Apr 08 '13 at 11:04
-
+1 for the funny title. (hint: Makefile and Make file mean totally different things.) – Mahesh Apr 08 '13 at 14:11
1 Answers
20
We use cat /etc/lsb-release
for identifying the Ubuntu release:
sh-3.2$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"
For other releases it might be
ls /etc/*release
Gentoo, RedHat, Arch & SuSE all have a release file: http://linuxmafia.com/faq/Admin/release-files.html These is a complete script in the link ;)
Example code for operation system, architecture and version for Ubuntu type systems:
OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)

Josip Rodin
- 380

Rinzwind
- 299,756