1/*
2Copyright Rene Rivera 2008-2015
3Distributed under the Boost Software License, Version 1.0.
4(See accompanying file LICENSE_1_0.txt or copy at
5http://www.boost.org/LICENSE_1_0.txt)
6*/
7
8#ifndef BOOST_PREDEF_COMPILER_IBM_H
9#define BOOST_PREDEF_COMPILER_IBM_H
10
11#include <boost/predef/version_number.h>
12#include <boost/predef/make.h>
13
14/*`
15[heading `BOOST_COMP_IBM`]
16
17[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler.
18Version number available as major, minor, and patch.
19
20[table
21 [[__predef_symbol__] [__predef_version__]]
22
23 [[`__IBMCPP__`] [__predef_detection__]]
24 [[`__xlC__`] [__predef_detection__]]
25 [[`__xlc__`] [__predef_detection__]]
26
27 [[`__COMPILER_VER__`] [V.R.P]]
28 [[`__xlC__`] [V.R.P]]
29 [[`__xlc__`] [V.R.P]]
30 [[`__IBMCPP__`] [V.R.P]]
31 ]
32 */
33
34#define BOOST_COMP_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE
35
36#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__)
37# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__COMPILER_VER__)
38# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__)
39# endif
40# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__xlC__)
41# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VVRR(__xlC__)
42# endif
43# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__xlc__)
44# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VVRR(__xlc__)
45# endif
46# if !defined(BOOST_COMP_IBM_DETECTION)
47# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_10_VRP(__IBMCPP__)
48# endif
49#endif
50
51#ifdef BOOST_COMP_IBM_DETECTION
52# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
53# define BOOST_COMP_IBM_EMULATED BOOST_COMP_IBM_DETECTION
54# else
55# undef BOOST_COMP_IBM
56# define BOOST_COMP_IBM BOOST_COMP_IBM_DETECTION
57# endif
58# define BOOST_COMP_IBM_AVAILABLE
59# include <boost/predef/detail/comp_detected.h>
60#endif
61
62#define BOOST_COMP_IBM_NAME "IBM XL C/C++"
63
64#endif
65
66#include <boost/predef/detail/test.h>
67BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IBM,BOOST_COMP_IBM_NAME)
68
69#ifdef BOOST_COMP_IBM_EMULATED
70#include <boost/predef/detail/test.h>
71BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IBM_EMULATED,BOOST_COMP_IBM_NAME)
72#endif
73