Détecter si son système d'exploitation Ubuntu Linux dans Makefile

13

Je veux créer un makefile qui compilera mes objets et les nommera selon la distribution Linux (par exemple Suse, RedHat ou Ubuntu). Comment puis-je détecter si le système d'exploitation est Ubuntu ou non?

RRR
la source
ça marche? (puisque vous avez supprimé votre commentaire: D)
Rinzwind
oui, j'ai changé la var OS en "shell lsb_release -si" et maintenant ça marche bien :). Merci pour votre réponse!
RRR
+1 pour le titre amusant. (indice: Makefile et Make file signifient des choses totalement différentes.)
Mahesh

Réponses:

19

Nous utilisons cat /etc/lsb-releasepour identifier la version d'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"

Pour d'autres versions, il pourrait être

ls /etc/*release

Gentoo, RedHat, Arch & SuSE ont tous un fichier de version: http://linuxmafia.com/faq/Admin/release-files.html Ceci est un script complet dans le lien;)


Exemple de code pour le système d'exploitation, l'architecture et la version pour les systèmes de type 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
la source