Detectar se o seu Ubuntu Linux OS no Makefile

13

Eu quero criar um makefile que compile meus objetos e os nomeie de acordo com a distribuição Linux (por exemplo, Suse, RedHat ou Ubuntu). Como posso detectar se o SO é Ubuntu ou não?

RRR
fonte
conseguiu funcionar? (desde que você excluiu seu comentário: D)
Rinzwind 08/04
sim, mudei o var do sistema operacional para "shell lsb_release -si" e agora funciona bem :). Obrigado pela sua resposta!
RRR
+1 para o título engraçado. (dica: Makefile e fazer arquivo significar coisas totalmente diferentes.)
Mahesh

Respostas:

19

Usamos cat /etc/lsb-releasepara identificar a versão do 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"

Para outros lançamentos, pode ser

ls /etc/*release

O Gentoo, RedHat, Arch & SuSE têm um arquivo de lançamento: http://linuxmafia.com/faq/Admin/release-files.html Este é um script completo no link;)


Exemplo de código para sistema operacional, arquitetura e versão para sistemas do 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)
Rinzwind
fonte