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?


ç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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.