Detectar si es Ubuntu Linux OS en Makefile

13

Quiero crear un archivo MAKE que compile mis objetos y los nombre de acuerdo con la distribución de Linux (por ejemplo, Suse, RedHat o Ubuntu). ¿Cómo puedo detectar si el sistema operativo es Ubuntu o no?

RRR
fuente
lo tienes funcionando? (desde que eliminó su comentario: D)
Rinzwind
Sí, cambié la variable OS para que sea "shell lsb_release -si" y ahora funciona bien :). Gracias por tu respuesta!
RRR
+1 por el título gracioso. (pista: Makefile y Make file significan cosas totalmente diferentes.)
Mahesh

Respuestas:

19

Usamos cat /etc/lsb-releasepara identificar la versión de 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 otros lanzamientos podría ser

ls /etc/*release

Gentoo, RedHat, Arch y SuSE tienen un archivo de lanzamiento: http://linuxmafia.com/faq/Admin/release-files.html Este es un script completo en el enlace;)


Código de ejemplo para sistema operativo, arquitectura y versión para sistemas de 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
fuente