Визначте, чи є її ОС Ubuntu Linux у Makefile


13

Я хочу створити makefile, який буде компілювати мої об'єкти і називати їх відповідно до дистрибутива Linux (наприклад, Suse, RedHat або Ubuntu). Як я можу виявити, чи ОС є Ubuntu чи ні?


це працює? (оскільки ви видалили свій коментар: D)
Rinzwind

так, я змінив var var на "shell lsb_release -si", і тепер він працює добре :). Дякую за вашу відповідь!
RRR

+1 для смішного заголовка. (підказка: Makefile та Make file означають зовсім інші речі.)
Mahesh

Відповіді:


19

Ми використовуємо cat /etc/lsb-releaseдля ідентифікації випуску 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"

Для інших випусків це може бути

ls /etc/*release

Gentoo, RedHat, Arch & SuSE мають файл випуску: http://linuxmafia.com/faq/Admin/release-files.html Це повний сценарій за посиланням;)


Приклад коду для операційної системи, архітектури та версії для систем типу Ubuntu:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.