Mendeteksi apakah itu Ubuntu Linux OS di Makefile


13

Saya ingin membuat makefile yang akan mengkompilasi objek saya dan menamainya menurut distro Linux (misalnya Suse, RedHat, atau Ubuntu). Bagaimana saya bisa mendeteksi apakah OS itu Ubuntu atau tidak?


berhasil? (karena Anda menghapus komentar Anda: D)
Rinzwind

ya, saya mengubah var OS menjadi "shell lsb_release -si" dan sekarang berfungsi dengan baik :). Terima kasih atas jawaban anda!
RRR

+1 untuk judul lucu. (petunjuk: Makefile dan Make file berarti hal yang sama sekali berbeda.)
Mahesh

Jawaban:


19

Kami menggunakan cat /etc/lsb-releaseuntuk mengidentifikasi rilis 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"

Untuk rilis lain mungkin

ls /etc/*release

Gentoo, RedHat, Arch & SuSE semuanya memiliki file rilis: http://linuxmafia.com/faq/Admin/release-files.html Ini adalah skrip lengkap di tautan;)


Contoh kode untuk sistem operasi, arsitektur, dan versi untuk sistem tipe Ubuntu:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.