Sprawdź, czy jego system operacyjny Ubuntu Linux w Makefile

13

Chcę utworzyć plik makefile, który będzie kompilował moje obiekty i nazywał je zgodnie z dystrybucją systemu Linux (np. Suse, RedHat lub Ubuntu). Jak mogę wykryć, czy system operacyjny to Ubuntu, czy nie?

RRR
źródło
masz działa? (ponieważ skasowałeś swój komentarz: D)
Rinzwind
tak, zmieniłem var OS na „shell lsb_release -si” i teraz działa dobrze :). Dziękuję za odpowiedź!
RRR
+1 za zabawny tytuł. (wskazówka: Makefile i Make file oznaczają zupełnie inne rzeczy).
Mahesh

Odpowiedzi:

19

Używamy cat /etc/lsb-releasedo identyfikacji wersji 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"

W przypadku innych wydań może być

ls /etc/*release

Gentoo, RedHat, Arch i SuSE mają plik wydania: http://linuxmafia.com/faq/Admin/release-files.html To jest kompletny skrypt w linku;)


Przykładowy kod systemu operacyjnego, architektury i wersji dla systemów typu Ubuntu:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
Rinzwind
źródło