105 lines
1.9 KiB
Makefile
105 lines
1.9 KiB
Makefile
#
|
|
# Detect the host system and compiler version.
|
|
#
|
|
|
|
# Previously featured:\
|
|
PANDORA\
|
|
HAIKU\
|
|
DUMMY\
|
|
DJGPPDOS\
|
|
SOLARIS\
|
|
MACOSX\
|
|
|
|
all_systems:=\
|
|
LINUX64\
|
|
MINGW64\
|
|
MINGW\
|
|
UNIX\
|
|
LINUX\
|
|
FREEBSD\
|
|
SDL\
|
|
|
|
# check for user specified system
|
|
ifeq (,$(filter $(all_systems),$(.VARIABLES)))
|
|
ifeq ($(OS),Windows_NT) # all windows are Windows_NT...
|
|
|
|
_m=Detected a Windows system,\
|
|
compiling for 32-bit MinGW SDL...)
|
|
$(call Print,$(_m))
|
|
|
|
# go for a 32-bit sdl mingw exe by default
|
|
MINGW:=1
|
|
WINDOWSHELL:=1
|
|
|
|
else # if you on the *nix
|
|
|
|
system:=$(shell uname -s)
|
|
|
|
ifeq ($(system),Linux)
|
|
new_system:=LINUX
|
|
else
|
|
|
|
$(error \
|
|
Could not automatically detect your system,\
|
|
try specifying a system manually)
|
|
|
|
endif
|
|
|
|
ifeq ($(shell getconf LONG_BIT),64)
|
|
system+=64-bit
|
|
new_system:=$(new_system)64
|
|
endif
|
|
|
|
$(call Print,Detected $(system) ($(new_system))...)
|
|
$(new_system):=1
|
|
|
|
endif
|
|
endif
|
|
|
|
# This must have high to low order.
|
|
gcc_versions:=\
|
|
102 101\
|
|
93 92 91\
|
|
84 83 82 81\
|
|
75 74 73 72 71\
|
|
64 63 62 61\
|
|
55 54 53 52 51\
|
|
49 48 47 46 45 44 43 42 41 40
|
|
|
|
latest_gcc_version:=10.2
|
|
|
|
# Automatically set version flag, but not if one was
|
|
# manually set. And don't bother if this is a clean only
|
|
# run.
|
|
ifeq (,$(call Wildvar,GCC% destructive))
|
|
version:=$(shell $(CC) --version)
|
|
|
|
# check if this is in fact GCC
|
|
ifneq (,$(or $(findstring gcc,$(version)),\
|
|
$(findstring GCC,$(version))))
|
|
|
|
version:=$(shell $(CC) -dumpversion)
|
|
|
|
# Turn version into words of major, minor
|
|
v:=$(subst ., ,$(version))
|
|
# concat. major minor
|
|
v:=$(word 1,$(v))$(word 2,$(v))
|
|
|
|
# If this version is not in the list,
|
|
# default to the latest supported
|
|
ifeq (,$(filter $(v),$(gcc_versions)))
|
|
define line =
|
|
Your compiler version, GCC $(version), \
|
|
is not supported by the Makefile.
|
|
The Makefile will assume GCC $(latest_gcc_version).))
|
|
endef
|
|
$(call Print,$(line))
|
|
GCC$(subst .,,$(latest_gcc_version)):=1
|
|
else
|
|
$(call Print,Detected GCC $(version) (GCC$(v)))
|
|
GCC$(v):=1
|
|
endif
|
|
|
|
endif
|
|
endif
|