Ermitteln Sie, ob das Ubuntu Linux-Betriebssystem in Makefile enthalten ist

13

Ich möchte ein Makefile erstellen, das meine Objekte kompiliert und sie gemäß der Linux-Distribution benennt (z. B. Suse, RedHat oder Ubuntu). Wie kann ich erkennen, ob das Betriebssystem Ubuntu ist oder nicht?

RRR
quelle
hat es funktioniert? (da du deinen Kommentar gelöscht hast: D)
Rinzwind
Ja, ich habe die Betriebssystemvariable in "shell lsb_release -si" geändert und jetzt funktioniert es gut :). Vielen Dank für Ihre Antwort!
RRR
+1 für den lustigen Titel. (Hinweis: Makefile und Make-Datei bedeuten ganz andere Dinge.)
Mahesh

Antworten:

19

Wir verwenden cat /etc/lsb-releasezur Identifizierung der Ubuntu-Version:

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

Für andere Versionen könnte es sein

ls /etc/*release

Gentoo, RedHat, Arch & SuSE haben alle eine Release-Datei: http://linuxmafia.com/faq/Admin/release-files.html Dies ist ein vollständiges Skript im Link;)


Beispielcode für Betriebssystem, Architektur und Version für Ubuntu-Systeme:

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