Makefile에서 Ubuntu Linux OS 감지


13

객체를 컴파일하고 Linux 배포판 (예 : Suse, RedHat 또는 Ubuntu)에 따라 객체를 컴파일하는 makefile을 만들고 싶습니다. OS가 우분투인지 아닌지 어떻게 알 수 있습니까?


작동합니까? (댓글을 삭제했기 때문에 : D)
Rinzwind

예, OS var를 "shell lsb_release -si"로 변경했으며 이제는 잘 작동합니다. :) 답변 주셔서 감사합니다!
RRR

재미있는 제목 +1 (힌트 : Makefile과 Make 파일은 완전히 다른 것을 의미합니다.)
Mahesh

답변:


19

cat /etc/lsb-release우분투 릴리스를 식별하는 데 사용 합니다.

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.