]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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_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 | #else | |
93 | ||
94 | #include <boost/predef/os/bsd/bsdi.h> | |
95 | #include <boost/predef/os/bsd/dragonfly.h> | |
96 | #include <boost/predef/os/bsd/free.h> | |
97 | #include <boost/predef/os/bsd/open.h> | |
98 | #include <boost/predef/os/bsd/net.h> | |
99 | ||
100 | #endif | |
101 | ||
102 | #include <boost/predef/detail/test.h> | |
103 | BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) |