Files
date_time/doc/BuildInfo.html

131 lines
5.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Boost Date-Time Build-Compiler Information</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
<a href="../../../index.htm">
<img align="left" src="../../../c++boost.gif" alt="C++ Boost">
</a>
<h1>Date-Time Build-Compiler Information</h1>
<p>&nbsp;</p>
<hr>
<a href="index.html">Overall Index</a> --
<a href="gregorian.html">Gregorian Index</a> --
<a href="posix_time.html">Posix Time Index</a>
<p>
<a href="#overview">Overview</a> --
<a href="#options">Compilation Options</a> --
<a href="#portability">Compiler/Portability Notes</a> --
<a href="#directory">Directory Structure</a> --
<a href="#required">Required Boost Libraries</a>
<p>
<H2><a name="overview">Overview</a></H2>
<p>
The library has several functions that require the creation of a library file.
The Jamfile in the build directory (BOOST_ROOT/libs/date_time/build) will
produce the <font class="bold">libboost_date_time</font> library
that contains these functions. The library is compiled into both
static and dynamic (dll) forms. Note that the static library is the
prefered form as some compilers have spurious regression test
errors using the dynamic library. See the
<a href="http://boost.sourceforge.net/regression-logs/">regression test logs at sourceforge </a> for more details.
<p>
<H2><a name="options">Compilation Options</a></H2>
<p>
By default the posix_time system uses a 64 bit integer and a 32 bit
integer internally to provide nano-second level resolutions -- 96
bits for each time value. As an alternative, a single 64 bit integer
can be used to provide a microsecond level resolution. This alternative
implementation may provide better performance and more compact memory usage
for many applications that do not require nano-second resolutions.
<p>
The variable <b>BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG</b>, as defined in
build/Jamfile, selects between these options. To select the 64 bit
integer implementation simply remove this define from the Jamfile.
<p>
<H2><a name="portability">Compiler/Portability Notes</a></H2>
<p>
The Boost Date-Time library has been built and tested with many compilers
on many platforms. In general, the more standard compliant the compiler
and library combination the more likely the library will be fully supported.
However, some compilers and standard libraries have issues. While some
of these issues can be worked around, others are difficult to work
around. The following compilers <b>fully support</b> all aspects of the library:
<ul>
<li>GCC 3.x on Linux
<li>GCC 3.1 (cygwin) for Windows
<li>GCC 3.3 on Mac
<li>Borland 5.6.4 for Windows
<li>MSVC 7.1 on Windows
<li>MIPSpro 7.4 on SGI
<li>VisualAge 6.0 on IBM AIX
</ul>
<p>
In particular, a lack of support for standard locales limits the ability
of the library to support iostream based input and output. For these
compilers a set of more limited string based input-output is provided.
In addition, some compilers have regression test failures with the dll form
of the library or other issues that may prevent using some aspects of the
library. Finally, wide-string and wide-stream output are problematic for
several compilers.
Some compilers/standard libraries with known <b>limitations</b> include:
<p>
<ul>
<li>GCC 2.9x on Linux
<li>Borland 5.1.1 on Windows
<li>Intel 8.00 on Windows
<li>Metrowerks 8.3 on Windows
<li>MSVC 6 SP5 on Windows
<li>MSVC 7 on Windows
</ul>
A great resource for the details on this subject are
the boost <a href="http://boost.sourceforge.net/regression-logs/">regression test logs at sourceforge </a>.
<p>
<H2><a name="directory">Directory Structure</a></H2>
<p>
The date_time directory structure has been changed for boost submission.
<p>
The directory tree has the following structure:
<pre>
/boost/date_time -- common headers and template code
/boost/date_time/gregoran -- gregorian calendar system header files
/boost/date_time/posix_time -- posix time system headers
/libs/date_time/build -- build files and output directory
/libs/date_time/test -- test battery for generic code
/libs/date_time/test/gregorian -- test battery for the gregorian system
/libs/date_time/test/posix_time -- test battery for the posix_time system
/libs/date_time/examples/posix_time -- time example programs
/libs/date_time/examples/gregorian -- nifty example programs
/libs/date_time/src/gregorian -- cpp files for libboost_date_time
/libs/date_time/src/posix_time -- empty (one file, but no source code...)
</pre>
<p>
<H2><a name="required">Required Boost Libraries</a></H2>
<p>
The library depends on the following boost libraries:
<ul>
<li><a href="../../config/config.htm">config</a>
<li><a href="../../integer/cstdint.htm">integer(cstdint)</a>
<li><a href="../../utility/operators.htm">operators</a>
<li><a href="../../conversion/lexical_cast.htm">lexical_cast</a>
<li><a href="../../tokenizer/index.html">tokenizer</a>
</ul>
<hr>
<address><small>
<!-- hhmts start -->
Last modified: Sun Feb 1 16:32:44 MST 2004
<!-- hhmts end -->
by <a href="mailto:jeff&#64;crystalclearsoftware.com">Jeff Garland</a> &copy; 2000-2004
</small></address>
</body>
</html>