From 9aa68f524ee04ddd05a7b906cc171a9d9bab6f4b Mon Sep 17 00:00:00 2001
From: GoldenTails <milestailsprower101n2@gmail.com>
Date: Sat, 6 Jun 2020 04:12:27 -0500
Subject: [PATCH 1/4] Adds the branch name into the version command printout
 when outside of DEVELOP mode.

Really just so I don't accidentally join netgames or record replays for vanilla SRB2 in the `next` branch...
---
 src/d_netcmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 84070135a..735fa4d1b 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -3472,7 +3472,7 @@ static void Command_Version_f(void)
 #ifdef DEVELOP
 	CONS_Printf("Sonic Robo Blast 2 %s-%s (%s %s) ", compbranch, comprevision, compdate, comptime);
 #else
-	CONS_Printf("Sonic Robo Blast 2 %s (%s %s %s) ", VERSIONSTRING, compdate, comptime, comprevision);
+	CONS_Printf("Sonic Robo Blast 2 %s (%s %s %s %s) ", VERSIONSTRING, compdate, comptime, comprevision, compbranch);
 #endif
 
 	// Base library

From bf90fbb91f28af30ff79523681e7f73e60121535 Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Wed, 17 Jun 2020 22:49:12 -0700
Subject: [PATCH 2/4] Detect the compiler version and set the correct GCC flag

If the version is not supported by the Makefile, the flag for the latest
version supported is set instead.
---
 src/Makefile.cfg | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/src/Makefile.cfg b/src/Makefile.cfg
index 409cc4f22..a2b79589a 100644
--- a/src/Makefile.cfg
+++ b/src/Makefile.cfg
@@ -1,3 +1,4 @@
+# vim: ft=make
 #
 # Makefile.cfg for SRB2
 #
@@ -7,6 +8,42 @@
 # 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
+
+# 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
 GCC83=1
 endif

From 489bb81d0065299ffea09b20cfa06dbbedcf247a Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Wed, 17 Jun 2020 22:52:19 -0700
Subject: [PATCH 3/4] Makefile: Move the PREFIX stuff up so version detection
 can take advantage of

---
 src/Makefile.cfg | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/src/Makefile.cfg b/src/Makefile.cfg
index a2b79589a..6b3769efc 100644
--- a/src/Makefile.cfg
+++ b/src/Makefile.cfg
@@ -21,6 +21,30 @@ SUPPORTED_GCC_VERSIONS:=\
 
 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
@@ -395,30 +419,6 @@ ifdef ARCHNAME
 	BIN:=$(BIN)/$(ARCHNAME)
 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
 LD=$(CC)
 

From 193c45aa2f555b56f548f70e7fa0d74a1ce4e412 Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Wed, 17 Jun 2020 22:58:11 -0700
Subject: [PATCH 4/4] Forgot a comma

---
 src/Makefile.cfg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile.cfg b/src/Makefile.cfg
index 6b3769efc..23e602798 100644
--- a/src/Makefile.cfg
+++ b/src/Makefile.cfg
@@ -58,7 +58,7 @@ ifeq   (,$(filter GCC%,$(.VARIABLES)))
   # 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.\
+		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