From 2686d9339bc059c1637fb443307ad39b4d7b3a27 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Fri, 22 Jun 2007 13:58:05 +0000
Subject: [PATCH] fix __SUNCC__ definition; added wxCHECK_SUNCC_VERSION

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/cppconst.tex |  2 +-
 docs/latex/wx/function.tex | 10 ++++++++++
 include/wx/platform.h      | 24 +++++++++++++++++-------
 3 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/docs/latex/wx/cppconst.tex b/docs/latex/wx/cppconst.tex
index a2f2ab848a..cf8528f203 100644
--- a/docs/latex/wx/cppconst.tex
+++ b/docs/latex/wx/cppconst.tex
@@ -144,7 +144,7 @@ to the compiler version: $500$ is $5.0$.}
 \helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}}
 \twocolitem{\_\_MINGW32\_\_}{MinGW}
 \twocolitem{\_\_MWERKS\_\_}{CodeWarrior MetroWerks compiler}
-\twocolitem{\_\_SUNCC\_\_}{Sun CC}
+\twocolitem{\_\_SUNCC\_\_}{Sun CC, see also \helpref{wxCHECK\_SUNCC\_VERSION}{wxchecksunccversion}}
 \twocolitem{\_\_SYMANTECC\_\_}{Symantec C++}
 \twocolitem{\_\_VISAGECPP\_\_}{IBM Visual Age (OS/2)}
 \twocolitem{\_\_VISUALC\_\_}{Microsoft Visual C++. The value of this macro
diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index b8e866eb9f..1e8528186b 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -45,6 +45,7 @@ the corresponding topic.
 \helpref{wxCHECK\_GCC\_VERSION}{wxcheckgccversion}\\
 \helpref{wxCHECK\_MSG}{wxcheckmsg}\\
 \helpref{wxCHECK\_RET}{wxcheckret}\\
+\helpref{wxCHECK\_SUNCC\_VERSION}{wxchecksunccversion}\\
 \helpref{wxCHECK\_VERSION}{wxcheckversion}\\
 \helpref{wxCHECK\_VERSION\_FULL}{wxcheckversionfull}\\
 \helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}\\
@@ -317,6 +318,15 @@ compiler (g++) version major.minor or greater. Otherwise, and also if
 the compiler is not GNU C++ at all, returns $0$.
 
 
+\membersection{wxCHECK\_SUNCC\_VERSION}\label{wxchecksunccversion}
+
+\func{bool}{wxCHECK\_SUNCC\_VERSION}{\param{}{major, minor}}
+
+Returns $1$ if the compiler being used to compile the code is Sun CC Pro
+compiler and its version is at least \texttt{major.minor}. Otherwise returns
+$0$.
+
+
 \membersection{wxCHECK\_VERSION}\label{wxcheckversion}
 
 \func{bool}{wxCHECK\_VERSION}{\param{}{major, minor, release}}
diff --git a/include/wx/platform.h b/include/wx/platform.h
index faeaf6fd20..8de9c98979 100644
--- a/include/wx/platform.h
+++ b/include/wx/platform.h
@@ -357,13 +357,11 @@
 #       endif
 #    endif  /* SGI */
 
-#    if defined(sun) || defined(__SUN__)
-#        ifndef __GNUG__
-#            ifndef __SUNCC__
-#                define __SUNCC__
-#            endif /* Sun CC */
-#        endif
-#    endif /* Sun */
+#    if defined(__SUNPRO_CC)
+#       ifndef __SUNCC__
+#           define __SUNCC__ __SUNPRO_CC
+#       endif /* Sun CC */
+#    endif /* Sun CC */
 
 #    ifdef __EMX__
 #        define OS2EMX_PLAIN_CHAR
@@ -558,6 +556,18 @@
 #    define wxCHECK_W32API_VERSION(maj, min) (0)
 #endif
 
+/**
+    This is similar to wxCHECK_GCC_VERSION but for Sun CC compiler.
+ */
+#ifdef __SUNCC__
+    /*
+       __SUNCC__ is 0xVRP where V is major version, R release and P patch level
+     */
+    #define wxCHECK_SUNCC_VERSION(maj, min) (__SUNCC__ >= (((maj)<<8) | ((min)<<4)))
+#else
+    #define wxCHECK_SUNCC_VERSION(maj, min) (0)
+#endif
+
 #if defined (__WXMSW__)
 #    if !defined(__WATCOMC__)
 #        define wxHAVE_RAW_BITMAP
-- 
2.50.0

