Rileva se il suo sistema operativo Ubuntu Linux in Makefile


13

Voglio creare un makefile che compilerà i miei oggetti e li nominerà in base alla distribuzione Linux (ad esempio Suse, RedHat o Ubuntu). Come posso rilevare se il sistema operativo è Ubuntu o no?


farlo funzionare? (da quando hai eliminato il tuo commento: D)
Rinzwind

sì, ho cambiato il var del sistema operativo in "shell lsb_release -si" e ora funziona bene :). Grazie per la tua risposta!
RRR

+1 per il titolo divertente. (suggerimento: Makefile e Make file significano cose totalmente diverse.)
Mahesh

Risposte:


19

Usiamo cat /etc/lsb-releaseper identificare la versione di 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"

Per altre versioni potrebbe essere

ls /etc/*release

Gentoo, RedHat, Arch e SuSE hanno tutti un file di rilascio: http://linuxmafia.com/faq/Admin/release-files.html Questo è uno script completo nel link;)


Codice di esempio per sistema operativo, architettura e versione per sistemi di tipo Ubuntu:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.