Chris@16: /* Chris@101: Copyright Rene Rivera 2008-2013 Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENSE_1_0.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt) Chris@16: */ Chris@16: Chris@16: #ifndef BOOST_PREDEF_OS_BSD_H Chris@16: #define BOOST_PREDEF_OS_BSD_H Chris@16: Chris@16: /* Special case: OSX will define BSD predefs if the sys/param.h Chris@16: * header is included. We can guard against that, but only if we Chris@16: * detect OSX first. Hence we will force include OSX detection Chris@16: * before doing any BSD detection. Chris@16: */ Chris@16: #include Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: /*` Chris@16: [heading `BOOST_OS_BSD`] Chris@16: Chris@16: [@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. Chris@16: Chris@16: BSD has various branch operating systems possible and each detected Chris@16: individually. This detects the following variations and sets a specific Chris@16: version number macro to match: Chris@16: Chris@16: * `BOOST_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] Chris@16: * `BOOST_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] Chris@16: * `BOOST_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] Chris@16: * `BOOST_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] Chris@16: * `BOOST_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] Chris@16: Chris@16: [note The general `BOOST_OS_BSD` is set in all cases to indicate some form Chris@16: of BSD. If the above variants is detected the corresponding macro is also set.] Chris@16: Chris@16: [table Chris@16: [[__predef_symbol__] [__predef_version__]] Chris@16: Chris@16: [[`BSD`] [__predef_detection__]] Chris@16: [[`_SYSTYPE_BSD`] [__predef_detection__]] Chris@16: Chris@16: [[`BSD4_2`] [4.2.0]] Chris@16: [[`BSD4_3`] [4.3.0]] Chris@16: [[`BSD4_4`] [4.4.0]] Chris@16: [[`BSD`] [V.R.0]] Chris@16: ] Chris@16: */ Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #ifndef BOOST_OS_BSD Chris@16: #define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE Chris@16: #endif Chris@16: Chris@101: #if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ Chris@16: defined(BSD) || \ Chris@16: defined(_SYSTYPE_BSD) \ Chris@16: ) Chris@16: # undef BOOST_OS_BSD Chris@16: # include Chris@16: # if !defined(BOOST_OS_BSD) && defined(BSD4_4) Chris@16: # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) Chris@16: # endif Chris@16: # if !defined(BOOST_OS_BSD) && defined(BSD4_3) Chris@16: # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) Chris@16: # endif Chris@16: # if !defined(BOOST_OS_BSD) && defined(BSD4_2) Chris@16: # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) Chris@16: # endif Chris@16: # if !defined(BOOST_OS_BSD) && defined(BSD) Chris@16: # define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) Chris@16: # endif Chris@16: # if !defined(BOOST_OS_BSD) Chris@16: # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE Chris@16: # endif Chris@16: #endif Chris@16: Chris@16: #if BOOST_OS_BSD Chris@16: # define BOOST_OS_BSD_AVAILABLE Chris@16: # include Chris@16: #endif Chris@16: Chris@16: #define BOOST_OS_BSD_NAME "BSD" Chris@16: Chris@16: #include Chris@16: BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) Chris@16: Chris@16: #endif