Determining the OS
Navigation: Set Some Variables
We want to identify the OS efficiently and correctly, and there are probably a hundred different ways to do it. First, we’ll try to determine the OS by reading environment variables. If all else fails, we’ll run uname. Create os.mk in the nospb/mk directory.
os.mk
# Try to determine OS name without shelling out to uname if possible.
ifndef __uname
export __uname:=$(OSNAME)
endif
ifndef __uname
export __uname:=$(OSTYPE)
endif
ifndef __uname
# Assume we're running MinGW if not Cygwin.
export __uname:=$(if $(COMSPEC),mingw,)
endif
ifndef __uname
# Ran out of environment tricks, so just run uname.
export __uname:=$(shell uname)
endif
ifeq ($(__uname),cygwin)
PLATFORM_CYGWIN=1
ISWINDOWS=1
endif
ifeq ($(__uname),mingw)
PLATFORM_MINGW=1
ISWINDOWS=1
endif
ifeq ($(__uname),Darwin)
PLATFORM_DARWIN=1
ISBSD=1
ISUNIX=1
endif
ifeq ($(__uname),FreeBSD)
PLATFORM_FREEBSD=1
ISBSD=1
ISUNIX=1
endif
ifeq ($(__uname),Linux)
PLATFORM_LINUX=1
ISUNIX=1
endif
Update rules.mk
Now you need to add os.mk to your rules framework. After the line that defines __nospb_dir, include os.mk.
os.mk snippet
# Include OS identification module.
include $(__nospb_dir)os.mk
Navigation: Set Some Variables
Updated Sep 19, 2009
by Isaac Foraker
Tags:
This page hasn't been tagged yet.
Comments:
Have something to say? Login to post a comment.