Files
libsst/BuildConfig/DetectPlatform.rules
2026-04-03 00:22:39 -05:00

85 lines
2.0 KiB
Plaintext

# BuildConfig/DetectPlatform.rules
# Author: Patrick Baggett <ptbaggett@762studios.com>
# Created: 11/15/2011
#
# Purpose:
#
# OS/architecture detection rules. Requires GNU Make
#
# License:
#
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
# Allow user overrides of $OS and $ARCH
#==============================
# Detect operating system
#==============================
ifeq ($(OS),)
OS := $(shell uname)
ifeq ($(OS),SunOS)
OS := Solaris
endif
ifeq ($(findstring Windows,$(OS)),Windows) # *Windows* -> Windows
OS := Windows
endif
ifeq ($(findstring MINGW,$(OS)),MINGW) # *MINGW* -> Windows
OS := Windows
endif
endif
# Detect when the Win32 environment variable "Windows_NT" is set and normalize it
ifeq ($(OS),Windows_NT)
OS := Windows
endif
#==============================
# Detect processor arch
# =============================
ifeq ($(ARCH),)
ifeq ($(OS),Solaris) #Solaris likes "-p" instead of "-m"
ARCH := $(shell uname -p)
else
ARCH := $(shell uname -m)
endif
#Replace "i<x>86" with "x86", where <x> can be [x, digit]
ARCH := $(shell echo $(ARCH) | sed s/i[x0-9]86/x86/)
#Replace "powerpc" with "ppc"
ARCH := $(shell echo $(ARCH) | sed s/powerpc/ppc/)
ifeq ($(ARCH),sparc64) #Linux on UltraSPARC gives sparc64 when running 64-bit kernel
ARCH := sparc
endif
ifeq ($(ARCH),mips64) #Linux/mips64 kernel, but probably don't want 64-bit app
ARCH := mips
endif
ifeq ($(ARCH),amd64) # "amd64" -> "x86-64"
ARCH := x86-64
endif
ifeq ($(ARCH),x86_64) # "x86_64" -> "x86-64"
ARCH := x86-64
endif
ifeq ($(ARCH),armv6l) # "armv6l" -> "arm"
ARCH := arm
SUBARCH := armv6
endif
ifeq ($(ARCH),armv7l) # "armv7l" -> "arm
ARCH := arm
SUBARCH := armv7
endif
endif