Merge branch 'makefile-detect-version' into 'master'
Detect GCC version in Makefile See merge request STJr/SRB2!1002
This commit is contained in:
commit
5cebf5c7bf
|
@ -1,3 +1,4 @@
|
||||||
|
# vim: ft=make
|
||||||
#
|
#
|
||||||
# Makefile.cfg for SRB2
|
# Makefile.cfg for SRB2
|
||||||
#
|
#
|
||||||
|
@ -7,6 +8,66 @@
|
||||||
# and other things
|
# and other things
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# See the following variable don't start with 'GCC'. This is
|
||||||
|
# to avoid a false positive with the version detection...
|
||||||
|
|
||||||
|
SUPPORTED_GCC_VERSIONS:=\
|
||||||
|
91\
|
||||||
|
81 82 83\
|
||||||
|
71 72\
|
||||||
|
61 62 63 64\
|
||||||
|
51 52 53 54\
|
||||||
|
40 41 42 43 44 45 46 47 48 49
|
||||||
|
|
||||||
|
LATEST_GCC_VERSION=9.1
|
||||||
|
|
||||||
|
# gcc or g++
|
||||||
|
ifdef PREFIX
|
||||||
|
CC=$(PREFIX)-gcc
|
||||||
|
CXX=$(PREFIX)-g++
|
||||||
|
OBJCOPY=$(PREFIX)-objcopy
|
||||||
|
OBJDUMP=$(PREFIX)-objdump
|
||||||
|
STRIP=$(PREFIX)-strip
|
||||||
|
WINDRES=$(PREFIX)-windres
|
||||||
|
else
|
||||||
|
OBJCOPY=objcopy
|
||||||
|
OBJDUMP=objdump
|
||||||
|
STRIP=strip
|
||||||
|
WINDRES=windres
|
||||||
|
endif
|
||||||
|
|
||||||
|
# because Apple screws with us on this
|
||||||
|
# need to get bintools from homebrew
|
||||||
|
ifdef MACOSX
|
||||||
|
CC=clang
|
||||||
|
CXX=clang
|
||||||
|
OBJCOPY=gobjcopy
|
||||||
|
OBJDUMP=gobjdump
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Automatically set version flag, but not if one was manually set
|
||||||
|
ifeq (,$(filter GCC%,$(.VARIABLES)))
|
||||||
|
ifneq (,$(findstring GCC,$(shell $(CC) --version))) # if it's GCC
|
||||||
|
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),$(SUPPORTED_GCC_VERSIONS)))
|
||||||
|
$(info\
|
||||||
|
Your compiler version, GCC $(version), is not supported by the Makefile.\
|
||||||
|
The Makefile will assume GCC $(LATEST_GCC_VERSION).)
|
||||||
|
GCC$(subst .,,$(LATEST_GCC_VERSION))=1
|
||||||
|
else
|
||||||
|
$(info Detected GCC $(version) (GCC$(v)))
|
||||||
|
GCC$(v)=1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef GCC91
|
ifdef GCC91
|
||||||
GCC83=1
|
GCC83=1
|
||||||
endif
|
endif
|
||||||
|
@ -358,30 +419,6 @@ ifdef ARCHNAME
|
||||||
BIN:=$(BIN)/$(ARCHNAME)
|
BIN:=$(BIN)/$(ARCHNAME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# gcc or g++
|
|
||||||
ifdef PREFIX
|
|
||||||
CC=$(PREFIX)-gcc
|
|
||||||
CXX=$(PREFIX)-g++
|
|
||||||
OBJCOPY=$(PREFIX)-objcopy
|
|
||||||
OBJDUMP=$(PREFIX)-objdump
|
|
||||||
STRIP=$(PREFIX)-strip
|
|
||||||
WINDRES=$(PREFIX)-windres
|
|
||||||
else
|
|
||||||
OBJCOPY=objcopy
|
|
||||||
OBJDUMP=objdump
|
|
||||||
STRIP=strip
|
|
||||||
WINDRES=windres
|
|
||||||
endif
|
|
||||||
|
|
||||||
# because Apple screws with us on this
|
|
||||||
# need to get bintools from homebrew
|
|
||||||
ifdef MACOSX
|
|
||||||
CC=clang
|
|
||||||
CXX=clang
|
|
||||||
OBJCOPY=gobjcopy
|
|
||||||
OBJDUMP=gobjdump
|
|
||||||
endif
|
|
||||||
|
|
||||||
OBJDUMP_OPTS?=--wide --source --line-numbers
|
OBJDUMP_OPTS?=--wide --source --line-numbers
|
||||||
LD=$(CC)
|
LD=$(CC)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue