#******************************************************************************* # $Id: Makerules.env,v 2.30.208.4 2009/01/27 01:22:16 Exp $ # Top-level Makerules for defining environment variables # can be included by anyone doing software at Epigram #******************************************************************************* # HOSTOS is either unix or Windows_NT. # HOSTENV differentiates HOSTOS and is either freebsd, sun4, or Windows_NT. # This refers to the *BUILD* environment. All environments use "GNU C" # except Windows_NT which may use "GNU C" or "Microsoft C". ifndef HOSTENV # Figure what type of host we are in. UNAME = $(shell uname) ifneq ($(findstring "$(UNAME)", "FreeBSD" "NetBSD"), ) HOSTENV = freebsd HOSTOS = unix else ifneq ($(findstring "$(UNAME)", "sun4" "SunOS"), ) HOSTENV = sun4 HOSTOS = unix else ifeq ($(UNAME), Linux) HOSTENV = linux HOSTOS = unix else ifneq ($(findstring "$(UNAME)", "CYGWIN32_NT" "CYGWIN32/NT" "i386" "CYGWIN_NT-4.0" "CYGWIN_NT-5.0" "CYGWIN_NT-5.1" "CYGWIN_NT-5.2" "i586" "i686"), ) HOSTENV = Windows_NT HOSTOS = Windows_NT else ifeq ($(UNAME), Darwin) HOSTENV = macos HOSTOS = unix else HOSTENV = unknown HOSTOS = unknown endif endif endif endif endif endif # In case we just defined them, make sure they are known export HOSTENV export HOSTOS # TARGETENV is one of freebsd, sun4, linux, linuxarm, linuxmips, android, cygwin32, win32, or macos # TARGETENV defaults to HOSTENV unless HOSTENV is Windows_NT, in # which case it defaults to win32. ifndef TARGETENV ifeq ($(HOSTENV), Windows_NT) TARGETENV = win32 else TARGETENV = $(HOSTENV) endif endif export TARGETENV # TARGETOS defaults to HOSTOS in most cases ifneq ($(findstring "$(TARGETENV)", "freebsd" "linux" "linuxarm" "linuxarm_le" "android" "linuxmips" "sun4" "cygwin32" "win32" "macos"), ) TARGETOS = $(HOSTOS) endif ifeq ($(TARGETENV), bcmmips) TARGETOS = bcmmips endif ifeq ($(TARGETENV), klsi) TARGETOS = klsi endif ifeq ($(TARGETENV), nucleusarm) TARGETOS = nucleus endif ifndef TARGETOS TARGETOS = unknown endif export TARGETOS # TARGETARCH is the target processor architecture # Currently valid values are: x86, x86_mmx, sparc, unknown, or a list of any # of the valid values. # For the x86* family, a generic x86 is assuemd if not otherwise specified # Order is important since "linux" matches both linuxmips and linux. ifndef TARGETARCH ifneq ($(findstring "$(TARGETENV)", "android"), ) TARGETARCH = arm_android endif ifneq ($(findstring "$(TARGETENV)", "linuxarm_le"), ) TARGETARCH = arm_le endif ifneq ($(findstring "$(TARGETENV)", "linuxarm" "nucleusarm"), ) TARGETARCH = arm endif ifneq ($(findstring "$(TARGETENV)", "bcmmips" "linuxmips"), ) TARGETARCH = mips endif ifneq ($(findstring "$(TARGETENV)", "sun4"), ) TARGETARCH = sparc endif ifneq ($(findstring "$(TARGETENV)", "freebsd" "linux" "cygwin32" "win32"), ) TARGETCPU = $(shell uname -m) ifneq ($(findstring "$(TARGETCPU)", "sparc" "sparc64"), ) TARGETARCH = $(TARGETCPU) else TARGETARCH = x86_mmx endif endif ifeq ($(TARGETENV), macos) TARGETCPU = $(shell uname -p) ifneq ($(findstring "$(TARGETCPU)", "powerpc"), ) TARGETARCH = PPC else TARGETARCH = x86 endif endif ifeq ($(TARGETENV), klsi) TARGETARCH = klsi endif ifndef TARGETARCH TARGETARCH = unknown endif endif export TARGETARCH # TARGET_TYPE is either "all" or one or more of: float64, float32, int16 # default is int16. "all" will get expanded into a list of all possible types ifndef TARGET_TYPE TARGET_TYPE = int16 endif ifeq ($(TARGET_TYPE), all) TARGET_TYPE = int16 float32 float64 endif export TARGET_TYPE