Makefile'deki Ubuntu Linux işletim sisteminin olup olmadığını tespit edin


13

Nesnelerimi derleyecek ve Linux dağıtımına (örneğin Suse, RedHat veya Ubuntu) göre adlandıracak bir makefile oluşturmak istiyorum. İşletim sisteminin Ubuntu olup olmadığını nasıl tespit edebilirim?


çalıştın mı? (yorumunuzu sildiğiniz için: D)
Rinzwind

Evet, OS var "shell lsb_release -si" olarak değiştirdim ve şimdi iyi çalışıyor :). Cevabınız için teşekkürler!
RRR

Komik başlık için +1. (ipucu: Makefile ve Make dosyası tamamen farklı şeyler ifade eder.)
Mahesh

Yanıtlar:


19

cat /etc/lsb-releaseUbuntu sürümünü tanımlamak için kullanıyoruz :

sh-3.2$  cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"

Diğer sürümler için

ls /etc/*release

Gentoo, RedHat, Arch & SuSE hepsinin bir yayın dosyası var: http://linuxmafia.com/faq/Admin/release-files.html Bunlar bağlantıdaki tam bir komut dosyasıdır;)


Ubuntu tipi sistemler için işletim sistemi, mimari ve sürüm için örnek kod:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.