From 812ae15aaf2f9f88872676c7151d0e50c68d6651 Mon Sep 17 00:00:00 2001
From: Lance <moodles@users.sourceforge.net>
Date: Sun, 19 Apr 2009 05:01:55 +0000
Subject: [PATCH] "version" command I tried to make it be more helpful by
 identifying the compiler that was used to build it, and also identifying any
 optimizations (or lack of) that were used during the compile process.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3184 fc73d0e0-1445-4013-8a0c-d673dee63da5
---
 engine/common/common.c | 74 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/engine/common/common.c b/engine/common/common.c
index 453d8b5f0..3cffbbc4e 100644
--- a/engine/common/common.c
+++ b/engine/common/common.c
@@ -2713,12 +2713,86 @@ void COM_Version_f (void)
 
 	Con_TPrintf (TL_EXEDATETIME, __DATE__, __TIME__);
 
+#ifdef _DEBUG
+	Con_Printf("debug build\n");
+#endif
+
 #ifdef CLIENTONLY
 	Con_Printf("client-only build\n");
 #endif
 #ifdef SERVERONLY
 	Con_Printf("dedicated server build\n");
 #endif
+
+#ifdef __MINGW32__
+	Con_Printf("Compiled with MinGW version: %i.%i\n",__MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION);
+#endif
+
+#ifdef __CYGWIN__
+	Con_Printf("Compiled with Cygwin\n");
+#endif
+
+#ifdef __GNUC__
+	Con_Printf("Compiled with GCC version: %i.%i.%i (%i)\n",__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__, __VERSION__);
+
+	#ifdef __OPTIMIZE__
+		#ifdef __OPTIMIZE_SIZE__
+			Con_Printf("Optimized for size\n");
+		#else
+			Con_Printf("Optimized for speed\n");
+		#endif
+	#endif
+
+	#ifdef __NO_INLINE__
+		Con_Printf("GCC Optimization: Functions currently not inlined into their callers\n");
+	#else
+		Con_Printf("GCC Optimization: Functions currently inlined into their callers\n");
+	#endif
+#endif
+
+#ifdef _M_IX86
+	Con_Printf("x86 optimized for: ");
+
+	if (_M_IX86 == 600) { Con_Printf("Pentium Pro, Pentium II and Pentium III"); }
+	else if (_M_IX86 == 500) { Con_Printf("Pentium"); }
+	else if (_M_IX86 == 400) { Con_Printf("486"); }
+	else if (_M_IX86 == 300) { Con_Printf("386"); }
+	else
+	{
+		Con_Printf("Unknown (%i)\n",_M_IX86);
+	}
+
+	Con_Printf("\n");
+#endif
+
+#ifdef _M_IX86_FP
+	if (_M_IX86_FP == 0) { Con_Printf("SSE & SSE2 instructions disabled\n"); }
+	else if (_M_IX86_FP == 1) { Con_Printf("SSE instructions enabled\n"); }
+	else if (_M_IX86_FP == 2) { Con_Printf("SSE2 instructions enabled\n"); }
+	else
+	{
+		Con_Printf("Unknown Arch specified: %i\n",_M_IX86_FP);
+	}
+#endif
+
+#ifdef _MSC_VER
+	if (_MSC_VER == 600) { Con_Printf("C Compiler version 6.0\n"); }
+	else if (_MSC_VER == 700) { Con_Printf("C/C++ compiler version 7.0\n"); }
+	else if (_MSC_VER == 800) { Con_Printf("Visual C++, Windows, version 1.0 or Visual C++, 32-bit, version 1.0\n"); }
+	else if (_MSC_VER == 900) { Con_Printf("Visual C++, Windows, version 2.0 or Visual C++, 32-bit, version 2.x\n"); }
+	else if (_MSC_VER == 1000) { Con_Printf("Visual C++, 32-bit, version 4.0\n"); }
+	else if (_MSC_VER == 1020) { Con_Printf("Visual C++, 32-bit, version 4.2\n"); }
+	else if (_MSC_VER == 1100) { Con_Printf("Visual C++, 32-bit, version 5.0\n"); }
+	else if (_MSC_VER == 1200) { Con_Printf("Visual C++, 32-bit, version 6.0\n"); }
+	else if (_MSC_VER == 1300) { Con_Printf("Visual C++, version 7.0\n"); }
+	else if (_MSC_VER == 1310) { Con_Printf("Visual C++ 2003, version 7.1\n"); }
+	else if (_MSC_VER == 1400) { Con_Printf("Visual C++ 2005, version 8.0\n"); }
+	else if (_MSC_VER == 1500) { Con_Printf("Visual C++ 2008, version 9.0\n"); }
+	else
+	{
+		Con_Printf("Unknown Microsoft C++ compiler: %i %i %i \n",_MSC_VER, _MSC_FULL_VER, _MSC_BUILD);
+	}
+#endif
 }
 
 /*