MakefileのUbuntu Linux OSを検出する


13

オブジェクトをコンパイルし、Linuxディストリビューション(Suse、RedHat、Ubuntuなど)に応じて名前を付けるメイクファイルを作成したい。OSがUbuntuかどうかを検出するにはどうすればよいですか?


動いた?(コメントを削除したため:D)
Rinzwind

はい、OS varを「shell lsb_release -si」に変更しましたが、今ではうまく動作します:)。ご回答ありがとうございます!
RRR

面白いタイトルの+1。(ヒント:MakefileとMake fileの意味はまったく異なります。)
Mahesh

回答:


19

cat /etc/lsb-releaseUbuntuのリリースを識別するために使用します。

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)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.