1 /*
2 Copyright Rene Rivera 2008-2015
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7 
8 #ifndef BOOST_PREDEF_COMPILER_SUNPRO_H
9 #define BOOST_PREDEF_COMPILER_SUNPRO_H
10 
11 #include <boost/predef/version_number.h>
12 #include <boost/predef/make.h>
13 
14 /*`
15 [heading `BOOST_COMP_SUNPRO`]
16 
17 [@http://en.wikipedia.org/wiki/Oracle_Solaris_Studio Oracle Solaris Studio] compiler.
18 Version number available as major, minor, and patch.
19 
20 [table
21     [[__predef_symbol__] [__predef_version__]]
22 
23     [[`__SUNPRO_CC`] [__predef_detection__]]
24     [[`__SUNPRO_C`] [__predef_detection__]]
25 
26     [[`__SUNPRO_CC`] [V.R.P]]
27     [[`__SUNPRO_C`] [V.R.P]]
28     [[`__SUNPRO_CC`] [VV.RR.P]]
29     [[`__SUNPRO_C`] [VV.RR.P]]
30     ]
31  */
32 
33 #define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_NOT_AVAILABLE
34 
35 #if defined(__SUNPRO_CC) || defined(__SUNPRO_C)
36 #   if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC)
37 #       if (__SUNPRO_CC < 0x5100)
38 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_CC)
39 #       else
40 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_CC)
41 #       endif
42 #   endif
43 #   if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C)
44 #       if (__SUNPRO_C < 0x5100)
45 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_C)
46 #       else
47 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_C)
48 #       endif
49 #   endif
50 #   if !defined(BOOST_COMP_SUNPRO_DETECTION)
51 #       define BOOST_COMP_SUNPRO_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
52 #   endif
53 #endif
54 
55 #ifdef BOOST_COMP_SUNPRO_DETECTION
56 #   if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
57 #       define BOOST_COMP_SUNPRO_EMULATED BOOST_COMP_SUNPRO_DETECTION
58 #   else
59 #       undef BOOST_COMP_SUNPRO
60 #       define BOOST_COMP_SUNPRO BOOST_COMP_SUNPRO_DETECTION
61 #   endif
62 #   define BOOST_COMP_SUNPRO_AVAILABLE
63 #   include <boost/predef/detail/comp_detected.h>
64 #endif
65 
66 #define BOOST_COMP_SUNPRO_NAME "Oracle Solaris Studio"
67 
68 #endif
69 
70 #include <boost/predef/detail/test.h>
71 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO,BOOST_COMP_SUNPRO_NAME)
72 
73 #ifdef BOOST_COMP_SUNPRO_EMULATED
74 #include <boost/predef/detail/test.h>
75 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO_EMULATED,BOOST_COMP_SUNPRO_NAME)
76 #endif
77