1 /*
2 Copyright Rene Rivera 2012-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_OS_BSD_FREE_H
9 #define BOOST_PREDEF_OS_BSD_FREE_H
10 
11 #include <boost/predef/os/bsd.h>
12 
13 /* tag::reference[]
14 = `BOOST_OS_BSD_FREE`
15 
16 http://en.wikipedia.org/wiki/Freebsd[FreeBSD] operating system.
17 
18 [options="header"]
19 |===
20 | {predef_symbol} | {predef_version}
21 
22 | `+__FreeBSD__+` | {predef_detection}
23 
24 | `+__FreeBSD_version+` | V.R.P
25 |===
26 */ // end::reference[]
27 
28 #define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE
29 
30 #if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \
31     defined(__FreeBSD__) \
32     )
33 #   ifndef BOOST_OS_BSD_AVAILABLE
34 #       undef BOOST_OS_BSD
35 #       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
36 #       define BOOST_OS_BSD_AVAILABLE
37 #   endif
38 #   undef BOOST_OS_BSD_FREE
39 #   include <sys/param.h>
40 #   if defined(__FreeBSD_version)
41 #       if __FreeBSD_version == 491000
42 #           define BOOST_OS_BSD_FREE \
43                 BOOST_VERSION_NUMBER(4, 10, 0)
44 #       elif __FreeBSD_version == 492000
45 #           define BOOST_OS_BSD_FREE \
46                 BOOST_VERSION_NUMBER(4, 11, 0)
47 #       elif __FreeBSD_version < 500000
48 #           define BOOST_OS_BSD_FREE \
49                 BOOST_PREDEF_MAKE_10_VRPPPP(__FreeBSD_version)
50 #       else
51 #           define BOOST_OS_BSD_FREE \
52                 BOOST_PREDEF_MAKE_10_VVRRPPP(__FreeBSD_version)
53 #       endif
54 #   else
55 #       define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_AVAILABLE
56 #   endif
57 #endif
58 
59 #if BOOST_OS_BSD_FREE
60 #   define BOOST_OS_BSD_FREE_AVAILABLE
61 #   include <boost/predef/detail/os_detected.h>
62 #endif
63 
64 #define BOOST_OS_BSD_FREE_NAME "Free BSD"
65 
66 #endif
67 
68 #include <boost/predef/detail/test.h>
69 BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_FREE,BOOST_OS_BSD_FREE_NAME)
70