1 | /* |
2 | Copyright Rene Rivera 2008-2013 |
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_H |
9 | #define BOOST_PREDEF_OS_BSD_H |
10 | |
11 | /* Special case: OSX will define BSD predefs if the sys/param.h |
12 | * header is included. We can guard against that, but only if we |
13 | * detect OSX first. Hence we will force include OSX detection |
14 | * before doing any BSD detection. |
15 | */ |
16 | #include <boost/predef/os/macos.h> |
17 | |
18 | #include <boost/predef/version_number.h> |
19 | #include <boost/predef/make.h> |
20 | |
21 | /*` |
22 | [heading `BOOST_OS_BSD`] |
23 | |
24 | [@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. |
25 | |
26 | BSD has various branch operating systems possible and each detected |
27 | individually. This detects the following variations and sets a specific |
28 | version number macro to match: |
29 | |
30 | * `BOOST_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] |
31 | * `BOOST_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] |
32 | * `BOOST_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] |
33 | * `BOOST_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] |
34 | * `BOOST_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] |
35 | |
36 | [note The general `BOOST_OS_BSD` is set in all cases to indicate some form |
37 | of BSD. If the above variants is detected the corresponding macro is also set.] |
38 | |
39 | [table |
40 | [[__predef_symbol__] [__predef_version__]] |
41 | |
42 | [[`BSD`] [__predef_detection__]] |
43 | [[`_SYSTYPE_BSD`] [__predef_detection__]] |
44 | |
45 | [[`BSD4_2`] [4.2.0]] |
46 | [[`BSD4_3`] [4.3.0]] |
47 | [[`BSD4_4`] [4.4.0]] |
48 | [[`BSD`] [V.R.0]] |
49 | ] |
50 | */ |
51 | |
52 | #include <boost/predef/os/bsd/bsdi.h> |
53 | #include <boost/predef/os/bsd/dragonfly.h> |
54 | #include <boost/predef/os/bsd/free.h> |
55 | #include <boost/predef/os/bsd/open.h> |
56 | #include <boost/predef/os/bsd/net.h> |
57 | |
58 | #ifndef BOOST_OS_BSD |
59 | #define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE |
60 | #endif |
61 | |
62 | #if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ |
63 | defined(BSD) || \ |
64 | defined(_SYSTYPE_BSD) \ |
65 | ) |
66 | # undef BOOST_OS_BSD |
67 | # include <sys/param.h> |
68 | # if !defined(BOOST_OS_BSD) && defined(BSD4_4) |
69 | # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) |
70 | # endif |
71 | # if !defined(BOOST_OS_BSD) && defined(BSD4_3) |
72 | # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) |
73 | # endif |
74 | # if !defined(BOOST_OS_BSD) && defined(BSD4_2) |
75 | # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) |
76 | # endif |
77 | # if !defined(BOOST_OS_BSD) && defined(BSD) |
78 | # define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) |
79 | # endif |
80 | # if !defined(BOOST_OS_BSD) |
81 | # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE |
82 | # endif |
83 | #endif |
84 | |
85 | #if BOOST_OS_BSD |
86 | # define BOOST_OS_BSD_AVAILABLE |
87 | # include <boost/predef/detail/os_detected.h> |
88 | #endif |
89 | |
90 | #define BOOST_OS_BSD_NAME "BSD" |
91 | |
92 | #include <boost/predef/detail/test.h> |
93 | BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) |
94 | |
95 | #endif |
96 | |