diff --git a/doc/html/boostbook.css b/doc/html/boostbook.css index 2e15c01..d42b3c0 100644 --- a/doc/html/boostbook.css +++ b/doc/html/boostbook.css @@ -1,13 +1,17 @@ -/*============================================================================= - Copyright (c) 2004 Joel de Guzman - http://spirit.sourceforge.net/ - Distributed under the Boost Software License, Version 1.0. (See accompany- - ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +/*============================================================================= +Copyright (c) 2004 Joel de Guzman +http://spirit.sourceforge.net/ + +Copyright 2013 Niall Douglas additions for colors and alignment. +Copyright 2013 Paul A. Bristow additions for more colors and alignments. + +Distributed under the Boost Software License, Version 1.0. (See accompany- +ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ /*============================================================================= - Body defaults +Body defaults =============================================================================*/ body @@ -17,7 +21,7 @@ } /*============================================================================= - Paragraphs +Paragraphs =============================================================================*/ p @@ -28,7 +32,7 @@ } /*============================================================================= - Program listings +Program listings =============================================================================*/ /* Code on paragraphs */ @@ -58,11 +62,11 @@ td .screen { margin: 0pc 0pc 0pc 0pc; - padding: 0pc 0pc 0pc 0pc; + padding: 0pc 0pc 0pc 0pc; } /*============================================================================= - Headings +Headings =============================================================================*/ h1, h2, h3, h4, h5, h6 @@ -116,13 +120,13 @@ h1 tt.computeroutput { font-size: 140% } h2 tt.computeroutput { font-size: 140% } h3 tt.computeroutput { font-size: 130% } - h4 tt.computeroutput { font-size: 130% } + h4 tt.computeroutput { font-size: 130% } h5 tt.computeroutput { font-size: 130% } h6 tt.computeroutput { font-size: 130% } /*============================================================================= - Author +Author =============================================================================*/ h3.author @@ -131,7 +135,7 @@ } /*============================================================================= - Lists +Lists =============================================================================*/ li @@ -153,7 +157,7 @@ } /*============================================================================= - Links +Links =============================================================================*/ a @@ -167,7 +171,7 @@ } /*============================================================================= - Spirit style navigation +Spirit style navigation =============================================================================*/ .spirit-nav @@ -187,7 +191,7 @@ } /*============================================================================= - Copyright footer +Copyright footer =============================================================================*/ .copyright-footer { @@ -202,7 +206,7 @@ } /*============================================================================= - Table of contents +Table of contents =============================================================================*/ div.toc @@ -218,7 +222,7 @@ float: right; padding: 0.5pc; } - + /* Code on toc */ .toc .computeroutput { font-size: 120% } @@ -227,7 +231,7 @@ .toc dl dl { margin: 0; } /*============================================================================= - Tables +Tables =============================================================================*/ .table-title, @@ -286,7 +290,7 @@ } /*============================================================================= - Blurbs +Blurbs =============================================================================*/ div.note, @@ -309,7 +313,7 @@ } /*============================================================================= - Variable Lists +Variable Lists =============================================================================*/ div.variablelist @@ -354,7 +358,7 @@ } /*============================================================================= - Misc +Misc =============================================================================*/ /* Title of books and articles in bibliographies */ @@ -380,7 +384,7 @@ } /*============================================================================= - Colors +Colors =============================================================================*/ @media screen @@ -391,16 +395,16 @@ } /* Syntax Highlighting */ - .keyword { color: #0000AA; } - .identifier { color: #000000; } - .special { color: #707070; } - .preprocessor { color: #402080; } - .char { color: teal; } - .comment { color: #800000; } - .string { color: teal; } - .number { color: teal; } - .white_bkd { background-color: #FFFFFF; } - .dk_grey_bkd { background-color: #999999; } + .keyword { color: #0000AA; } + .identifier { color: #000000; } + .special { color: #707070; } + .preprocessor { color: #402080; } + .char { color: teal; } + .comment { color: #800000; } + .string { color: teal; } + .number { color: teal; } + .white_bkd { background-color: #FFFFFF; } + .dk_grey_bkd { background-color: #999999; } /* Links */ a, a .keyword, a .identifier, a .special, a .preprocessor @@ -572,7 +576,7 @@ } /*============================================================================= - Images +Images =============================================================================*/ span.inlinemediaobject img @@ -581,36 +585,36 @@ } /*============================================================================== - Super and Subscript: style so that line spacing isn't effected, see - http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341 +Super and Subscript: style so that line spacing isn't effected, see +http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341 ==============================================================================*/ sup, sub { - height: 0; - line-height: 1; - vertical-align: baseline; - position: relative; - +height: 0; +line-height: 1; +vertical-align: baseline; +position: relative; + } /* For internet explorer: */ * html sup, * html sub { - vertical-align: bottom; +vertical-align: bottom; } sup { - bottom: 1ex; +bottom: 1ex; } sub { - top: .5ex; +top: .5ex; } /*============================================================================== - Indexes: pretty much the same as the TOC. +Indexes: pretty much the same as the TOC. ==============================================================================*/ .index @@ -644,3 +648,53 @@ sub { font-weight: bold; } + +/*============================================================================== +Alignment and coloring use 'role' feature, available from Quickbook 1.6 up. +Added from Niall Douglas for role color and alignment. +http://article.gmane.org/gmane.comp.lib.boost.devel/243318 +*/ + +/* Add text alignment (see http://www.w3schools.com/cssref/pr_text_text-align.asp) */ +span.aligncenter +{ + display: inline-block; width: 100%; text-align: center; +} +span.alignright +{ + display: inline-block; width: 100%; text-align: right; +} +/* alignleft is the default. */ +span.alignleft +{ + display: inline-block; width: 100%; text-align: left; +} + +/* alignjustify stretches the word spacing so that each line has equal width +within a chosen fraction of page width (here arbitrarily 20%). +*Not* useful inside table items as the column width remains the total string width. +Nor very useful, except to temporarily restrict the width. +*/ +span.alignjustify +{ + display: inline-block; width: 20%; text-align: justify; +} + +/* Text colors. +Names at http://www.w3.org/TR/2002/WD-css3-color-20020219/ 4.3. X11 color keywords. +Quickbook Usage: [role red Some red text] + +*/ +span.red { inline-block; color: red; } +span.green { color: green; } +span.lime { color: #00FF00; } +span.blue { color: blue; } +span.navy { color: navy; } +span.yellow { color: yellow; } +span.magenta { color: magenta; } +span.indigo { color: #4B0082; } +span.cyan { color: cyan; } +span.purple { color: purple; } +span.gold { color: gold; } +span.silver { color: silver; } /* lighter gray */ +span.gray { color: #808080; } /* light gray */ diff --git a/doc/html/index.html b/doc/html/index.html index 4c1a70c..4bf72b6 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -50,7 +50,7 @@ - +

Last revised: July 28, 2013 at 17:05:40 GMT

Last revised: October 15, 2013 at 04:40:06 GMT


diff --git a/doc/html/predef/acknoledgements.html b/doc/html/predef/acknoledgements.html index 7caa7b0..e776864 100644 --- a/doc/html/predef/acknoledgements.html +++ b/doc/html/predef/acknoledgements.html @@ -17,8 +17,8 @@ Acknoledgements

- The comprehensiveness of this library would not be possible without the existance - of the indispensible resource that is the Pre-defined + The comprehensiveness of this library would not be possible without the existence + of the indispensable resource that is the Pre-defined C/C++ Compiler Macros Project. It was, and continues to be, the primary source of the definitions that make up this library. Thanks to Bjorn Reese and all the volunteers that make that resource possible. diff --git a/doc/html/predef/adding_new_predefs.html b/doc/html/predef/adding_new_predefs.html index eacc618..de2a4bd 100644 --- a/doc/html/predef/adding_new_predefs.html +++ b/doc/html/predef/adding_new_predefs.html @@ -177,9 +177,9 @@ Documentation about what is detected.

#include <boost/predef/make.h>
 

- One will get a set of utlity macros to decompose common version macros as defined - by compilers. For example the EDG compiler uses a simple 3-digit version macro - (M,N,P). It can be decomesed and defined as: + One will get a set of utility macros to decompose common version macros as + defined by compilers. For example the EDG compiler uses a simple 3-digit version + macro (M,N,P). It can be decomposed and defined as:

#define BOOST_CCOMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
 
diff --git a/doc/predef.qbk b/doc/predef.qbk index bc2ac28..5e39065 100644 --- a/doc/predef.qbk +++ b/doc/predef.qbk @@ -398,9 +398,9 @@ By including: #include `` -One will get a set of utlity macros to decompose common version +One will get a set of utility macros to decompose common version macros as defined by compilers. For example the EDG compiler -uses a simple 3-digit version macro (M,N,P). It can be decomesed +uses a simple 3-digit version macro (M,N,P). It can be decomposed and defined as: `` @@ -457,7 +457,7 @@ and "Y", "M", "D" for dates. [section Acknoledgements] The comprehensiveness of this library would not be -possible without the existance of the indispensible +possible without the existence of the indispensable resource that is the [@http://sourceforge.net/p/predef/ Pre-defined C/C++ Compiler Macros] Project. It was, and continues to be, the primary source diff --git a/include/boost/predef/detail/os_detected.h b/include/boost/predef/detail/os_detected.h new file mode 100644 index 0000000..7d70c1e --- /dev/null +++ b/include/boost/predef/detail/os_detected.h @@ -0,0 +1,10 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL_OS_DETECTED +#define BOOST_PREDEF_DETAIL_OS_DETECTED 1 +#endif diff --git a/include/boost/predef/os/aix.h b/include/boost/predef/os/aix.h index bc29c1d..3c155c1 100644 --- a/include/boost/predef/os/aix.h +++ b/include/boost/predef/os/aix.h @@ -32,7 +32,9 @@ Version number available as major, minor, and patch. #define BOOST_OS_AIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(_AIX) || defined(__TOS_AIX__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(_AIX) || defined(__TOS_AIX__) \ + ) # undef BOOST_OS_AIX # if !defined(BOOST_OS_AIX) && defined(_AIX43) # define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,3,0) @@ -53,6 +55,7 @@ Version number available as major, minor, and patch. #if BOOST_OS_AIX # define BOOST_OS_AIX_AVAILABLE +# include #endif #define BOOST_OS_AIX_NAME "IBM AIX" diff --git a/include/boost/predef/os/amigaos.h b/include/boost/predef/os/amigaos.h index 41a29f9..0f665d4 100644 --- a/include/boost/predef/os/amigaos.h +++ b/include/boost/predef/os/amigaos.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(AMIGA) || defined(__amigaos__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(AMIGA) || defined(__amigaos__) \ + ) # undef BOOST_OS_AMIGAOS # define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_AMIGAOS # define BOOST_OS_AMIGAOS_AVAILABLE +# include #endif #define BOOST_OS_AMIGAOS_NAME "AmigaOS" diff --git a/include/boost/predef/os/android.h b/include/boost/predef/os/android.h index b026abc..09b74d7 100644 --- a/include/boost/predef/os/android.h +++ b/include/boost/predef/os/android.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__ANDROID__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__ANDROID__) \ + ) # undef BOOST_OS_ANDROID # define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_ANDROID # define BOOST_OS_ANDROID_AVAILABLE +# include #endif #define BOOST_OS_ANDROID_NAME "Android" diff --git a/include/boost/predef/os/beos.h b/include/boost/predef/os/beos.h index a0a82ff..90b7d62 100644 --- a/include/boost/predef/os/beos.h +++ b/include/boost/predef/os/beos.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BEOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__BEOS__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__BEOS__) \ + ) # undef BOOST_OS_BEOS # define BOOST_OS_BEOS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_BEOS # define BOOST_OS_BEOS_AVAILABLE +# include #endif #define BOOST_OS_BEOS_NAME "BeOS" diff --git a/include/boost/predef/os/bsd.h b/include/boost/predef/os/bsd.h index 28a187e..0adc435 100644 --- a/include/boost/predef/os/bsd.h +++ b/include/boost/predef/os/bsd.h @@ -8,6 +8,13 @@ http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PREDEF_OS_BSD_H #define BOOST_PREDEF_OS_BSD_H +/* Special case: OSX will define BSD predefs if the sys/param.h + * header is included. We can guard against that, but only if we + * detect OSX first. Hence we will force include OSX detection + * before doing any BSD detection. + */ +#include + #include #include @@ -42,20 +49,30 @@ of BSD. If the above variants is detected the corresponding macro is also set.] ] */ -#define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE +#include +#include +#include +#include +#include -#if defined(BSD) || \ - defined(_SYSTYPE_BSD) +#ifndef BOOST_OS_BSD +#define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE +#endif + +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(BSD) || \ + defined(_SYSTYPE_BSD) \ + ) # undef BOOST_OS_BSD # include -# if !defined(BOOST_OS_BSD) && defined(BSD4_2) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) +# if !defined(BOOST_OS_BSD) && defined(BSD4_4) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) # endif # if !defined(BOOST_OS_BSD) && defined(BSD4_3) # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) # endif -# if !defined(BOOST_OS_BSD) && defined(BSD4_4) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) +# if !defined(BOOST_OS_BSD) && defined(BSD4_2) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) # endif # if !defined(BOOST_OS_BSD) && defined(BSD) # define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) @@ -67,6 +84,7 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #if BOOST_OS_BSD # define BOOST_OS_BSD_AVAILABLE +# include #endif #define BOOST_OS_BSD_NAME "BSD" @@ -74,10 +92,4 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #include BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) -#include -#include -#include -#include -#include - #endif diff --git a/include/boost/predef/os/bsd/bsdi.h b/include/boost/predef/os/bsd/bsdi.h index 3d53ca6..71ea87a 100644 --- a/include/boost/predef/os/bsd/bsdi.h +++ b/include/boost/predef/os/bsd/bsdi.h @@ -24,9 +24,12 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__bsdi__) -# ifndef BOOST_OS_BSD +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__bsdi__) \ + ) +# ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# define BOOST_OS_BSD_AVAILABLE # endif # undef BOOST_OS_BSD_BSDI # define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_AVAILABLE @@ -34,6 +37,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_BSDI # define BOOST_OS_BSD_BSDI_AVAILABLE +# include #endif #define BOOST_OS_BSD_BSDI_NAME "BSDi BSD/OS" diff --git a/include/boost/predef/os/bsd/dragonfly.h b/include/boost/predef/os/bsd/dragonfly.h index dfa0b28..9d37439 100644 --- a/include/boost/predef/os/bsd/dragonfly.h +++ b/include/boost/predef/os/bsd/dragonfly.h @@ -24,9 +24,12 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__DragonFly__) -# ifndef BOOST_OS_BSD +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__DragonFly__) \ + ) +# ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# define BOOST_OS_BSD_AVAILABLE # endif # undef BOOST_OS_BSD_DRAGONFLY # if defined(__DragonFly__) @@ -36,6 +39,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_DRAGONFLY # define BOOST_OS_BSD_DRAGONFLY_AVAILABLE +# include #endif #define BOOST_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" diff --git a/include/boost/predef/os/bsd/free.h b/include/boost/predef/os/bsd/free.h index 085c6cd..321d3a3 100644 --- a/include/boost/predef/os/bsd/free.h +++ b/include/boost/predef/os/bsd/free.h @@ -26,9 +26,12 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__FreeBSD__) -# ifndef BOOST_OS_BSD +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__FreeBSD__) \ + ) +# ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# define BOOST_OS_BSD_AVAILABLE # endif # undef BOOST_OS_BSD_FREE # if defined(__FreeBSD_version) @@ -46,6 +49,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_FREE # define BOOST_OS_BSD_FREE_AVAILABLE +# include #endif #define BOOST_OS_BSD_FREE_NAME "Free BSD" diff --git a/include/boost/predef/os/bsd/net.h b/include/boost/predef/os/bsd/net.h index ffbba00..2a34538 100644 --- a/include/boost/predef/os/bsd/net.h +++ b/include/boost/predef/os/bsd/net.h @@ -31,9 +31,12 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__NETBSD__) || defined(__NetBSD__) -# ifndef BOOST_OS_BSD +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__NETBSD__) || defined(__NetBSD__) \ + ) +# ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# define BOOST_OS_BSD_AVAILABLE # endif # undef BOOST_OS_BSD_NET # if defined(__NETBSD__) @@ -70,6 +73,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_NET # define BOOST_OS_BSD_NET_AVAILABLE +# include #endif #define BOOST_OS_BSD_NET_NAME "DragonFly BSD" diff --git a/include/boost/predef/os/bsd/open.h b/include/boost/predef/os/bsd/open.h index 953f3a9..2f51644 100644 --- a/include/boost/predef/os/bsd/open.h +++ b/include/boost/predef/os/bsd/open.h @@ -55,9 +55,12 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__OpenBSD__) -# ifndef BOOST_OS_BSD +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__OpenBSD__) \ + ) +# ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# define BOOST_OS_BSD_AVAILABLE # endif # undef BOOST_OS_BSD_OPEN # if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_0) @@ -157,6 +160,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_OPEN # define BOOST_OS_BSD_OPEN_AVAILABLE +# include #endif #define BOOST_OS_BSD_OPEN_NAME "OpenBSD" diff --git a/include/boost/predef/os/cygwin.h b/include/boost/predef/os/cygwin.h index 999957a..8de0ee6 100644 --- a/include/boost/predef/os/cygwin.h +++ b/include/boost/predef/os/cygwin.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__CYGWIN__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__CYGWIN__) \ + ) # undef BOOST_OS_CYGWIN # define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_CYGWIN # define BOOST_OS_CYGWIN_AVAILABLE +# include #endif #define BOOST_OS_CYGWIN_NAME "Cygwin" diff --git a/include/boost/predef/os/hpux.h b/include/boost/predef/os/hpux.h index 38bc8ac..a6a117e 100644 --- a/include/boost/predef/os/hpux.h +++ b/include/boost/predef/os/hpux.h @@ -27,13 +27,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_HPUX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(hpux) || defined(_hpux) || defined(__hpux) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(hpux) || defined(_hpux) || defined(__hpux) \ + ) # undef BOOST_OS_HPUX # define BOOST_OS_HPUX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_HPUX # define BOOST_OS_HPUX_AVAILABLE +# include #endif #define BOOST_OS_HPUX_NAME "HP-UX" diff --git a/include/boost/predef/os/irix.h b/include/boost/predef/os/irix.h index 6745fb7..d719510 100644 --- a/include/boost/predef/os/irix.h +++ b/include/boost/predef/os/irix.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_IRIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(sgi) || defined(__sgi) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(sgi) || defined(__sgi) \ + ) # undef BOOST_OS_IRIX # define BOOST_OS_IRIX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_IRIX # define BOOST_OS_IRIX_AVAILABLE +# include #endif #define BOOST_OS_IRIX_NAME "IRIX" diff --git a/include/boost/predef/os/linux.h b/include/boost/predef/os/linux.h index 1762b38..315bc3e 100644 --- a/include/boost/predef/os/linux.h +++ b/include/boost/predef/os/linux.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_LINUX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(linux) || defined(__linux) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(linux) || defined(__linux) \ + ) # undef BOOST_OS_LINUX # define BOOST_OS_LINUX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_LINUX # define BOOST_OS_LINUX_AVAILABLE +# include #endif #define BOOST_OS_LINUX_NAME "Linux" diff --git a/include/boost/predef/os/macos.h b/include/boost/predef/os/macos.h index db9ac25..e625a6c 100644 --- a/include/boost/predef/os/macos.h +++ b/include/boost/predef/os/macos.h @@ -31,8 +31,10 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(macintosh) || defined(Macintosh) || \ - (defined(__APPLE__) && defined(__MACH__)) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(macintosh) || defined(Macintosh) || \ + (defined(__APPLE__) && defined(__MACH__)) \ + ) # undef BOOST_OS_MACOS # if !defined(BOOST_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) # define BOOST_OS_MACOS BOOST_VERSION_NUMBER(10,0,0) @@ -44,6 +46,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_MACOS # define BOOST_OS_MACOS_AVAILABLE +# include #endif #define BOOST_OS_MACOS_NAME "Mac OS" diff --git a/include/boost/predef/os/os400.h b/include/boost/predef/os/os400.h index 0d724cb..62524bc 100644 --- a/include/boost/predef/os/os400.h +++ b/include/boost/predef/os/os400.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_OS400 BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__OS400__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__OS400__) \ + ) # undef BOOST_OS_OS400 # define BOOST_OS_OS400 BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_OS400 # define BOOST_OS_OS400_AVAILABLE +# include #endif #define BOOST_OS_OS400_NAME "IBM OS/400" diff --git a/include/boost/predef/os/qnxnto.h b/include/boost/predef/os/qnxnto.h index b34a8d6..a221923 100644 --- a/include/boost/predef/os/qnxnto.h +++ b/include/boost/predef/os/qnxnto.h @@ -31,7 +31,9 @@ version 4 is specifically detected. #define BOOST_OS_QNX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__QNX__) || defined(__QNXNTO__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__QNX__) || defined(__QNXNTO__) \ + ) # undef BOOST_OS_QNX # if !defined(BOOST_OS_QNX) && defined(_NTO_VERSION) # define BOOST_OS_QNX BOOST_PREDEF_MAKE_10_VVRR(_NTO_VERSION) @@ -46,6 +48,7 @@ version 4 is specifically detected. #if BOOST_OS_QNX # define BOOST_OS_QNX_AVAILABLE +# include #endif #define BOOST_OS_QNX_NAME "QNX" diff --git a/include/boost/predef/os/solaris.h b/include/boost/predef/os/solaris.h index 923deca..3de77ad 100644 --- a/include/boost/predef/os/solaris.h +++ b/include/boost/predef/os/solaris.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(sun) || defined(__sun) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(sun) || defined(__sun) \ + ) # undef BOOST_OS_SOLARIS # define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_SOLARIS # define BOOST_OS_SOLARIS_AVAILABLE +# include #endif #define BOOST_OS_SOLARIS_NAME "Solaris" diff --git a/include/boost/predef/os/unix.h b/include/boost/predef/os/unix.h index 04d1cd1..23afa4f 100644 --- a/include/boost/predef/os/unix.h +++ b/include/boost/predef/os/unix.h @@ -28,14 +28,17 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_UNIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(unix) || defined(__unix) || \ - defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(unix) || defined(__unix) || \ + defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) \ + ) # undef BOOST_OS_UNIX # define BOOST_OS_UNIX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_UNIX # define BOOST_OS_UNIX_AVAILABLE +# include #endif #define BOOST_OS_UNIX_NAME "Unix Environment" diff --git a/include/boost/predef/os/vms.h b/include/boost/predef/os/vms.h index e3641c0..c63ede2 100644 --- a/include/boost/predef/os/vms.h +++ b/include/boost/predef/os/vms.h @@ -28,7 +28,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(VMS) || defined(__VMS) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(VMS) || defined(__VMS) \ + ) # undef BOOST_OS_VMS # if defined(__VMS_VER) # define BOOST_OS_VMS BOOST_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) @@ -39,6 +41,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_VMS # define BOOST_OS_VMS_AVAILABLE +# include #endif #define BOOST_OS_VMS_NAME "VMS" diff --git a/include/boost/predef/os/windows.h b/include/boost/predef/os/windows.h index c82a752..1316963 100644 --- a/include/boost/predef/os/windows.h +++ b/include/boost/predef/os/windows.h @@ -29,15 +29,18 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(_WIN32) || defined(_WIN64) || \ +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(_WIN32) || defined(_WIN64) || \ defined(__WIN32__) || defined(__TOS_WIN__) || \ - defined(__WINDOWS__) + defined(__WINDOWS__) \ + ) # undef BOOST_OS_WINDOWS # define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_WINDOWS # define BOOST_OS_WINDOWS_AVAILABLE +# include #endif #define BOOST_OS_WINDOWS_NAME "Microsoft Windows" diff --git a/include/boost/predef/other/endian.h b/include/boost/predef/other/endian.h index deb2381..9d2a8bc 100644 --- a/include/boost/predef/other/endian.h +++ b/include/boost/predef/other/endian.h @@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include #include +#include #include /*` @@ -48,17 +49,22 @@ information and acquired knowledge: #define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. + * And some OSs provide some for of endian header also. */ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD # if BOOST_LIB_C_GNU # include # else -# if BOOST_OS_BSD -# if BOOST_OS_BSD_OPEN -# include -# else -# include +# if BOOST_OS_MACOS +# include +# else +# if BOOST_OS_BSD +# if BOOST_OS_BSD_OPEN +# include +# else +# include +# endif # endif # endif # endif diff --git a/test/build.jam b/test/build.jam index ee5adb8..27587fc 100755 --- a/test/build.jam +++ b/test/build.jam @@ -4,19 +4,34 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +local predef-include-root ; +local predef-dependency ; + +# When using modular layout, header files are not present in $root/boost +# unlink links are created, therefore instead of direct dependency on +# a header, we need to use dependency on metatarget. if $(BOOST_PREDEF_ROOT) { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ; + predef-include-root = $(BOOST_PREDEF_ROOT)/include ; + predef-dependency = $(predef-include-root)/boost/predef.h ; +} +else if $(BOOST_MODULARLAYOUT) +{ + predef-include-root = $(BOOST_ROOT)/include ; + predef-dependency = /boost//predef-headers ; } else { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ; + predef-include-root = $(BOOST_ROOT) ; + predef-dependency = $(predef-include-root)/boost/predef.h ; } project test : requirements - $(BOOST_PREDEF_INCLUDE_ROOT) - $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h + $(predef-include-root) + # Add explicit dependency since we don't have header scanner for + # .m and .mm files. + $(predef-dependency) ; using testing ; @@ -28,4 +43,6 @@ test-suite predef : [ run info_as_objc.m : : : always_show_run_output ] [ run version.cpp ] [ run make.cpp ] + [ compile macos_endian.c ] + [ compile macos_vs_bsd.c ] ; diff --git a/test/macos_endian.c b/test/macos_endian.c new file mode 100644 index 0000000..9a9b5a6 --- /dev/null +++ b/test/macos_endian.c @@ -0,0 +1,21 @@ +/* +Copyright Redshift Software Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +/* + * OSX can define the BSD symbols if sys/param.h is included + * before detection. This causes the endian detection to misfire + * as both MACOS and BSD are "detected" (currently). This just + * tests that the sys/param.h include can be included before + * endian detection and still have it work correctly. + */ + +#if defined(__APPLE__) +# include +# include +# include +# include +#endif diff --git a/test/macos_vs_bsd.c b/test/macos_vs_bsd.c new file mode 100644 index 0000000..b22cb44 --- /dev/null +++ b/test/macos_vs_bsd.c @@ -0,0 +1,19 @@ +/* +Copyright Redshift Software Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +/* + * OSX can masquerade as BSD when sys/param.h is previously included. + * So we test that we only detect OSX in this combination. + */ +#if defined(__APPLE__) +# include +# include +# include +# if !BOOST_OS_MACOS || BOOST_OS_BSD +# error "BOOST_OS_MACOS not detected and/or BOOST_OS_BSD mis-detected." +# endif +#endif diff --git a/test/make.cpp b/test/make.cpp index 9665020..8f55932 100644 --- a/test/make.cpp +++ b/test/make.cpp @@ -45,8 +45,8 @@ void test_BOOST_VERSION_NUMBER() PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRRPP(99999) == BOOST_VERSION_NUMBER(9,99,99)); PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRP000(999000) == BOOST_VERSION_NUMBER(9,9,9)); PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRR000(999000) == BOOST_VERSION_NUMBER(9,99,0)); - PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(2199009900) == BOOST_VERSION_NUMBER(21,99,99)); - PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(9999009900L) == BOOST_VERSION_NUMBER(99,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(2199009900u) == BOOST_VERSION_NUMBER(21,99,99)); + /* PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(9999009900ull) == BOOST_VERSION_NUMBER(99,99,99)); */ PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR0PP00(999909900) == BOOST_VERSION_NUMBER(99,99,99)); PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VV00(9900) == BOOST_VERSION_NUMBER(99,00,00)); PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR0PPPP(999909999) == BOOST_VERSION_NUMBER(99,99,9999));