123
This commit is contained in:
142
STLPORT/INSTALL
Normal file
142
STLPORT/INSTALL
Normal file
@@ -0,0 +1,142 @@
|
||||
**********************************************************************
|
||||
* INSTALL file for STLport 4.6.0 *
|
||||
* *
|
||||
**********************************************************************
|
||||
|
||||
STLport-4.6 is a full ANSI C++ Standard library.
|
||||
|
||||
This distribution contains STLport sources only, no binaries.
|
||||
To use STLport iostreams, you have to build STLport library from sources in "src"
|
||||
directory and link your programs with it.
|
||||
|
||||
This is major change since pre-4.0 releases, please read the instructions carefully.
|
||||
|
||||
==== Unpacking and installing STLport ==========
|
||||
|
||||
1) Unpack STLport archive to a directory accessible during compilation.
|
||||
NOTE : DO NOT overwrite header files coming with the compiler, even if you made
|
||||
a backup - this won't work ! Most probably, you've already unpacked the archive before
|
||||
reading this file though ;)
|
||||
|
||||
2) Make sure "stlport" directory of this distribution comes before compiler's one
|
||||
in your search path when you compile the project;
|
||||
|
||||
Note: for SunPro CC 5.0 and higher, there used to be special directory "stlport/SC5"
|
||||
this is now obsolete, please make sure you do not use it anymore.
|
||||
|
||||
3) Make sure you do not rename this "stlport" subdirectory -
|
||||
that may result in compilation errors.
|
||||
|
||||
NOTE : Do NOT attempt to run "configure" ! It is deprecated, moved to safe standalone folder
|
||||
and should be used as a helper to create initial config for a new compiler only.
|
||||
Your compiler should be recognized by STLport source code with no configuring.
|
||||
Please edit appropriate configuration header for your compiler
|
||||
directly if you have to make compiler-specific configuration changes.
|
||||
|
||||
|
||||
4) Go to "src" subdirectory. It contains various makefiles for different
|
||||
compilers. If you are not able to find makefile for your particular
|
||||
compiler, please use one that looks most similar to your make engine to
|
||||
create your own.
|
||||
|
||||
Verify you can do command line compiles. IDE users may have to do something
|
||||
special, like add environment variables (for Microsoft) or install
|
||||
additional compiler components (for Metrowerks), before they can use their
|
||||
command line compilers.
|
||||
|
||||
IMPORTANT :
|
||||
|
||||
If you DO NOT plan to use STLport iostreams implementation, you do not have to build the library.
|
||||
Please do this instead :
|
||||
|
||||
4-1) Using appropriate makefile, do "make -f <your compiler name>.mak prepare".
|
||||
Please do not skip this! On some platforms, it creates necessary symbolic links.
|
||||
If you do build STLport iostream, this step is performed automatically when you do "make all".
|
||||
|
||||
4-2) uncomment _STLP_NO_OWN_IOSTREAMS setting in "stlport/stl_user_config.h" to disable use
|
||||
of STLport iostreams and to use wrappers around your existing iostreams.
|
||||
After disabling STLport iostreams, you will use wrappers around your compiler's iostreams
|
||||
libabry, as in previous STLport releases.
|
||||
No binary library for STLport needs to be built in this case.
|
||||
Note though :
|
||||
- new-style ANSI iostreams may not be available on your system;
|
||||
- compiler's iostreams are most likely slower than STLport version.
|
||||
|
||||
|
||||
If you have decided to disable STLport iostreams, you may stop reading here.
|
||||
|
||||
|
||||
==== Building STLport iostreams library ==========
|
||||
|
||||
Below are step-by-step instructions to build STLport streams library:
|
||||
|
||||
5) Using appropriate makefile, do "make clean all" to build the STLport libraries
|
||||
(makefiles are set up to build several different flavors - debug/nondebug,
|
||||
static/dynamic versions).
|
||||
Optionally, do "make install" to copy STLport headers and libraries to shared location.
|
||||
|
||||
Note : your "make" program may have different name, like "nmake" for Visual C++.
|
||||
|
||||
Examples :
|
||||
1. If you are building STLport for just one compiler, you may do something like that
|
||||
(DOS syntax for Visual C++ below):
|
||||
copy vc6.mak makefile
|
||||
nmake clean all
|
||||
nmake install
|
||||
|
||||
2. If you plan to build STLport with multiple compilers, use "make -f" :
|
||||
make -f gcc.mak clean install
|
||||
make -f sunpro.mak clean install
|
||||
|
||||
This will build and install STLport for gcc & SUN CC.
|
||||
|
||||
"install" target works on most platforms.
|
||||
|
||||
On Win32, it does the following :
|
||||
- copies STLport headers in "stlport" subdirectory of your compiler's INCLUDE directory;
|
||||
- copies STLport .lib files in your compiler's LIB directory;
|
||||
- copies STLport DLLs to Windows system directory so they can be found at runtime.
|
||||
|
||||
On UNIX, it does the following :
|
||||
- copies STLport headers in "stlport" subdirectory of system's local include directory (default is /usr/local/include);
|
||||
- copies STLport .a and .so files to system local library directory (default is /usr/local/lib);
|
||||
|
||||
6) If build fails, you may choose to :
|
||||
- try fixing the build ;
|
||||
- wait until somebody else will submit corresponding changes to be incorporated in next STLport
|
||||
release/snapshot. To use STLport w/o its own iostreams, please do step 3a).
|
||||
|
||||
In case you do patch STLport, please submit your patches to support@stlport.com or (better)
|
||||
to STLport Forum (http://www.stlport.com/cgi-bin/forum/dcboard.cgi)
|
||||
|
||||
7) Do "make install" to install resulting libraries into "./lib" subdirectory.
|
||||
|
||||
==== Linking your application with STLport library ==========
|
||||
|
||||
8) Supply the "lib" subdirectory to the library search path and add desired
|
||||
library to the list of libraries to link with.
|
||||
Examples (imagine you have mytest.cpp in the same directory as this file is):
|
||||
With gcc : gcc -I./stlport mytest.cpp -L./lib/ -lstlport_gcc
|
||||
With DEC CC : cxx -I./stlport mytest.cpp -L./lib/ -lstlport_deccxx
|
||||
With SUN CC : CC -I./stlport mytest.cpp -L./lib/ -lstlport_sunpro
|
||||
.....
|
||||
[ Visual C++ specific ] For VC++, you do not have to specify "stlport-msvc-XXX.lib" explicitly,
|
||||
as it is being choosen and forced to link automatically by "#pragma"'s in stlport/config/stl_select_lib.h.
|
||||
Appropriate version is being selected based on /MD[d] vs /MT[d] options and __STL_DEBUG setting.
|
||||
All you have to do is to set library search path for the linker.
|
||||
Example :
|
||||
cl.exe /I.\stlport mytest.cpp /link /libpath:.\lib /MD
|
||||
|
||||
9) If you linked your application with shared STLport library (.so or .dll), please make your .so or
|
||||
.dll's to be found in PATH at runtime. On Windows, the simplest way to do it
|
||||
is to copy all .dll's to Windows system directory. Or, you might choose to add directory
|
||||
containing STLport to the PATH environment string.
|
||||
|
||||
10) Have fun !
|
||||
|
||||
10/31/03, Boris Fomitchev.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
53
STLPORT/README
Normal file
53
STLPORT/README
Normal file
@@ -0,0 +1,53 @@
|
||||
**********************************************************************
|
||||
* README file for STLport 4.6 *
|
||||
* *
|
||||
**********************************************************************
|
||||
|
||||
This directory contains STLport-4.6 release.
|
||||
|
||||
What's inside :
|
||||
|
||||
README - this file
|
||||
INSTALL - installation instructions
|
||||
|
||||
stlport - main STLport include directory
|
||||
src - source and makefiles for iostreams implementation
|
||||
lib - installation directory for STLport library (if you use STLport iostreams only)
|
||||
test/regression - regression test, using wrapper iostreams
|
||||
test/eh - exception handling test using STLport iostreams
|
||||
etc - miscellanous files (ChangeLog, TODO, scripts, etc.)
|
||||
|
||||
GETTING STLPORT
|
||||
|
||||
To download the latest version of STLport, please be sure to visit
|
||||
http://www.stlport.com/download.html
|
||||
|
||||
LEGALESE
|
||||
|
||||
This software is being distributed under the following terms :
|
||||
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Copyright (c) 1996-1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1997
|
||||
* Moscow Center for SPARC Technology
|
||||
*
|
||||
* Copyright (c) 1999, 2000, 2001, 2002
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
|
||||
**********************************************************************
|
||||
40
STLPORT/doc/README.BC.html
Normal file
40
STLPORT/doc/README.BC.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: STLport - Note For Borland C++ Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note For Borland C++ / C++ Builder Users</span>
|
||||
<p> </p>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>This release is known to have problems with BC 5.0x.
|
||||
Directory <b>STLport/BC50/</b> contains some extra files Borland C++ 5.x
|
||||
expects to see on the path. Make sure you put <b>STLport/BC50 </b>in<br>
|
||||
your search path before <b>STLport </b>main directory. The problems still persist
|
||||
with <string>, so BC50 is configured to use native one. You may face other problems with
|
||||
5.0. Please direct your bug reports and workarounds to the Forum.</li>
|
||||
<li>This release should work out-of-the box for Borland C++ Builder 4. Builder 3 may require
|
||||
some configuration adjustments to enable features added in BCB 3. You may also utilize <iostream.h>
|
||||
wrapper in stlport/BCB directory to compile programs using old-style header.</li>
|
||||
<li>With 5.0, you may also encounter problems with too long symbols when compiling
|
||||
with debug information. To handle this, try defining <b><tt>_STLP_USE_ABBREVS</tt></b>
|
||||
in <tt>stlcomp.h</tt>.</li>
|
||||
<li>If your program is multi-threaded, be sure to define macro <b><tt>_REENTRANT
|
||||
</tt></b>for proper synchronization (if you are <i>using SGI node
|
||||
allocator. If you are using new_alloc or malloc_alloc, you won't
|
||||
need that)</i>.</li>
|
||||
<li>You may encounter problems using new-style BC++ 5.0 <b><tt><iostream>
|
||||
</tt></b>in mix with SGI STL <b><tt><string>, <stdexcept>
|
||||
</tt></b>without defining <b>_STLP_USE_OWN_NAMESPACE.</b></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from BC++ STL to SGI
|
||||
STL. <br>
|
||||
Default <b><tt>allocator<T></tt></b> in this adaptation should be
|
||||
fully functional.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.52</h4>
|
||||
Borland C++ versions older than 4.52 have not been tested. Probably it
|
||||
would work with 4.50-4.51.
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
28
STLPORT/doc/README.CW.html
Normal file
28
STLPORT/doc/README.CW.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note For Metrowerks CodeWarrior Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note For Metrowerks CodeWarrior Users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>You may have to edit relative/full path to CodeWarrior native
|
||||
headers .</li>
|
||||
<li>To avoid editing the headers mentioned above, Metrowerks users
|
||||
should put the "STLport" directory in the "Metrowerks
|
||||
Standard Library" directory, and add the "STLport"
|
||||
directory as the first item in the system search paths of the
|
||||
projects that wish to use it.</li>
|
||||
<li>If you want your code to be portable, you should avoid explicit
|
||||
usage of <tt>reverse_iterator<Iterator,T,T&,T*,Distance></tt>.</li>
|
||||
<li>It's better to use coherent set of headers in the project: <b>all
|
||||
new-style</b>, including STL ones;</li>
|
||||
<li><b>IMPORTANT</b> : You should either have _STLP_USE_OWN_NAMESPACE
|
||||
defined, or you should recompile CodeWarrior runtime libraries after
|
||||
you installed STLport.</li>
|
||||
<li>For earlier versions, you have to copy <tt><functional></tt>
|
||||
to <tt><functional.h></tt>. <tt><functional.h></tt> is
|
||||
not provided in distribution since it clobbers <tt><function.h></tt>
|
||||
on 8.3 systems</li>
|
||||
</ul>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
37
STLPORT/doc/README.DEC.html
Normal file
37
STLPORT/doc/README.DEC.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Notes for DEC CXX Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for DEC CXX users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
DEC CXX require explicit template notation such as <tt>template_class<Param></tt>
|
||||
where most others (conformant) accept just <tt>template_class</tt>
|
||||
(inside template method bodies, etc):
|
||||
<p><tt>template <class Param> class template_class {</tt> <br>
|
||||
<tt>template_class foo() ; // error for DEC</tt> <br>
|
||||
<tt>template_class<Param> foo() // OK</tt> <br>
|
||||
<tt>.....</tt> <br>
|
||||
<tt>}</tt></p>
|
||||
<p>That is being worked around in this adaptation, but may cause
|
||||
problems when porting template code from other platforms. Use the same
|
||||
name of formal parameter : <tt>Param </tt>in all method's outside
|
||||
definitions.</p>
|
||||
<h4>Linking</h4>
|
||||
Repository handling of this compiler is imperfect, so you may experience
|
||||
various problems on link stage. Linker problems problems are generally
|
||||
of two kinds : unresolved symbols and duplicate symbols. The latter
|
||||
problem was never reported to occur with DEC CXX. The problem with
|
||||
undefined symbols is also may require manual intervention. General rule
|
||||
is : if you get "unresolved symbol" errors, explicit
|
||||
instantiation will most likely help, for example:
|
||||
<p><tt>Unresolved:</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::allocate(unsigned long)</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::deallocate(void*, unsigned
|
||||
long) ></tt></p>
|
||||
<p>To work around this problem, just instantiate <tt>__alloc<0,0></tt>
|
||||
explicitly in some module:</p>
|
||||
<p><tt>template class __default_alloc_template<0,0>;</tt></p>
|
||||
<p>Another way to solve this problem may be use of <tt>-pts </tt>compiler
|
||||
option, but I'm not sure it works in all cases.</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
35
STLPORT/doc/README.MPW.html
Normal file
35
STLPORT/doc/README.MPW.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for Apple MPW users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for Apple MPW users</span>
|
||||
|
||||
<p align="right">
|
||||
03/22/2001<br>
|
||||
Tsutomu Yoshida<br>
|
||||
Minokamo, Japan
|
||||
</p>
|
||||
|
||||
<h2>Installation</h2>
|
||||
For the installation of STLport package, please follow the instruction contained in <b>"ReadMe.MPW"</b> located in <b>"test:regression:"</b> folder.
|
||||
The MPW shell scripts embedded in this document will set up the shell variable <b>"{STL}"</b> which points to the main STLport package folder "stlport:".
|
||||
A small MPW shell script named <b>"!STL_Folder_SetUp"</b> will be placed in "{MPW}StartUp Items:" so that this "{STL}" will be automatically reestablished
|
||||
at the subsequent MPW startups.
|
||||
The script also set up <b>an alias to MPW's "{CIncludes}"</b> at the same level as "stlport:" which is used to look up the native C headers refered from STLport.
|
||||
|
||||
<p>The installation script will build and install stlport library binary which contains iostreams code and other commonly used class binaries.
|
||||
The library binaries are stored in <b>"{STL}:lib:"</b> folder with the names:<br>
|
||||
<ul>
|
||||
<li><b>"STLportLib.68K.DBG.o"</b> : 68K (SCpp) with debugging code</li>
|
||||
<li><b>"STLportLib.68K.o"</b> : 68K (SCpp) without debugging code</li>
|
||||
<li><b>"STLportLib.PPC.DBG.o"</b> : PPC (MrCpp) with debugging code</li>
|
||||
<li><b>"STLportLib.PPC.o"</b> : PPC (MrCpp) without debugging code</li>
|
||||
</ul>
|
||||
<br>
|
||||
For the sample setup of makefile utilizing STLport and accompanying library binary, please refer to:<br>
|
||||
<ul>
|
||||
<li>"{STL}:src:MrCpp.mak" </li>
|
||||
<li>"{STL}:test:regression:MrCpp.mak"</li>
|
||||
<li>"{STL}:src:SCpp.mak"</li>
|
||||
<li>"{STL}:test:regression:SCpp.mak"</li>
|
||||
</ul>
|
||||
</p>
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
75
STLPORT/doc/README.VC++.html
Normal file
75
STLPORT/doc/README.VC++.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note For Visual C++ Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note For Visual C++ Users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization (if you are <i>using SGI
|
||||
node allocator. If you are using new_alloc or malloc_alloc, you
|
||||
won't need that)</i>.</li>
|
||||
<li>You may encounter problems using <b><tt><iostream> </tt></b>in
|
||||
mix with SGI STL <b><tt><string>, <stdexcept> </tt></b>without
|
||||
defining <b>_STLP_USE_OWN_NAMESPACE.</b> Using <b>_STLP_USE_OWN_NAMESPACE
|
||||
</b>is the most safe way to cooperate with new I/O<br>
|
||||
library and is definitely recommended unless you recompile the whole
|
||||
C++ std library with STLport installed.</li>
|
||||
<li><b><tt>_STLP_USE_EXCEPTIONS</tt></b> is being defined
|
||||
automatically if the compiler defined <b><tt>_CPPUNWIND</tt></b>
|
||||
macro ("<b><tt>/GX</tt></b>" option). So you should not
|
||||
worry about it.</li>
|
||||
<li>There were reports that Visual C++ 4.0 have problems with
|
||||
namespaces in certain cases. Due to that, <b><tt>_STLP_NO_NAMESPACES</tt></b>
|
||||
defined for it in <b><stlcomp.h></b>.</li>
|
||||
<li>You may encounter problems with too long symbols when compiling
|
||||
with debug information. To handle this, try defining <b><tt>_STLP_USE_ABBREVS</tt></b>
|
||||
in <tt>stlcomp.h</tt>.</li>
|
||||
<li>You may experience problems with default SGI node allocator. I had
|
||||
no such problems, though. Default node allocator is quite fast, so I
|
||||
wouldn't recommend disabling it without serious reason. However, if
|
||||
it causes problems, define <b><tt>_STLP_USE_MALLOC</tt></b> or <b><tt>_STLP_USE_NEWALLOC</tt></b>
|
||||
to get bare malloc()-based or new()-based default allocator.</li>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization.</li>
|
||||
<li><b>[ VC++ 4.2 and higher] </b>This version allows use of new-style
|
||||
<b><iostream>, <string></b> with STLport , as well as
|
||||
the old-style <iostream.h> . The default is new <iostream>
|
||||
usage.</li>
|
||||
<br>
|
||||
If you want to use old-style <b><iostream.h></b> in your
|
||||
project:
|
||||
<ul>
|
||||
<li>define macro <b>_STLP_NO_NEW_IOSTREAMS</b> in <b><stl_user_config.h></b>
|
||||
or at the command line.</li>
|
||||
</ul>
|
||||
If you are going to use new-style <b><iostream></b> without
|
||||
defining _STLP_USE_OWN_NAMESPACE:
|
||||
<ul>
|
||||
<li>You may have to edit relative (or set full) path to VC++
|
||||
native headers<b><tt> </tt></b>in <stl_user_config.h>. Using
|
||||
native versions is necessary to avoid clashes with compiled code
|
||||
in C++ runtime library.</li>
|
||||
<li>In the whole project, use coherent set of headers : <b>all
|
||||
new-style.</b></li>
|
||||
<br>
|
||||
<b> </b>
|
||||
</ul>
|
||||
<li>You may also try <a href="http://www.sirius.com/~ouchida">SGI STL
|
||||
adapted for MSVC++ 5.0 only,</a> by Wayne Ouchida. (Note : looks
|
||||
like it's out of date and discontinued. It doesn't provide
|
||||
debug support and other extensions of this adaptation).</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from VC++ STL to SGI
|
||||
STL. Default <b><tt>allocator<T></tt></b> in this adaptation is
|
||||
fully functional.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.0</h4>
|
||||
Visual C++ older than 4.0 won't compile STL. You have to upgrade.
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
22
STLPORT/doc/README.aCC.html
Normal file
22
STLPORT/doc/README.aCC.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for HP ANSI C++ Compiler users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for HP ANSI C++ Compiler users</span>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Configuring</h4>
|
||||
<tt>stlcomp.h</tt> provides recognition section usable with <tt>aCC 1.06</tt>.
|
||||
You should be able to use unconfigured STL distribution with it. If you
|
||||
are using more recent version, you might want to enable more features
|
||||
(see comments in <tt>stlcomp.h</tt>). Basically, <tt>"configure"</tt>
|
||||
script was reported to work with aCC. However, your aCC version might
|
||||
contain bugs (not showing in simple example) that could prevent your
|
||||
code from compiling. In this case, refer to <tt>stlcomp.h</tt> to figure
|
||||
out more reliable set of configuration switches.
|
||||
<h4>Compiling</h4>
|
||||
aCC enforces stricter name lookup checking than many other compilers.
|
||||
Also it uses initial template name lookup scheme different from many
|
||||
compilers. This scheme prevents any use of inherited typenames without
|
||||
explicit "using" directive, etc.
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
91
STLPORT/doc/README.gcc.html
Normal file
91
STLPORT/doc/README.gcc.html
Normal file
@@ -0,0 +1,91 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for GCC users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for GCC users</span>
|
||||
<hr>
|
||||
<h3>GCC versions</h3>
|
||||
STLport works with the following GCC flavours:
|
||||
<p>gcc-3.0 Note : "wrapper mode" w/o STLport iostreams doesn't work with 3.0, as gcc 3.0 implements Koenig lookup properly, which leads to ambiguity errors when trying to wrap new-style gcc iostreams into STLport namespace.</p>
|
||||
<p>gcc-2.95.x Note: on some platforms (HP, AIX) gcc-2.95 does not implement automatic instantiation of static template data members. Please refer to gcc-2.7 section below for workaround. </p>
|
||||
<p><a href="http://www.cygnus.com/egcs">Cygnus "egcs":</a>
|
||||
Based on gcc-2.8 development tree, it provides <b>better </b>template
|
||||
support than in FSF gcc-2.8.1, and many modern commercial compilers. It
|
||||
features full-blown default template parameters, namespaces, partial
|
||||
template specialization and member template methods. EGCS also offers
|
||||
greatly improved EH support. STLport works with egcs just fine.
|
||||
Though it comes with SGI STL, <br>
|
||||
you may still want to use STLport because of debug mode.</p>
|
||||
<p>gcc-2.8.1: About the same as egcs. <br>
|
||||
<i>( Note : you may encounter problems compiling with 2.8.1 due to bugs
|
||||
in partial template specialization. Just #define _STLP_PARTIAL_SPECIALIZATION_BUG
|
||||
then ) </i>.</p>
|
||||
<p>If you use egcs or 2.8.1 or higher, you may stop reading here.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<h3>GCC 2.7.x :</h3>
|
||||
Althought it does work with STLport, it has poor template support
|
||||
compared to other modern compilers. <br>
|
||||
If you do generic programming, it's definitely time to upgrade.
|
||||
<h3>Workaround strategy</h3>
|
||||
To address GCC inability to auto-instantiate static template data
|
||||
members, the following workaround introduced:
|
||||
<p>Instantiations of required static data members provided in
|
||||
corresponing headers under <i>#ifdef </i><tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt>
|
||||
( luckily, in this version of STL their amount doesn't depend on how
|
||||
many different instantiations you have ). You should <tt>#define __PUT_STATIC_DATA_MEMBERS_HERE</tt><i>
|
||||
</i>in <b>one</b> of your compilation unit ( or specify it in <i>CFLAGS </i>for
|
||||
it ) <b>before </b>including any STL header. That should not affect
|
||||
'good' compilers in any way.</p>
|
||||
<p><b>Moreover,</b> <b>gcc on platforms that use ELF object file format
|
||||
or GNU linker, will work without this hack</b>. gcc's <b><i>__attribute__((weak))__</i></b>
|
||||
used instead as workaround. That makes gcc usable in portable way with
|
||||
STL on many platforms ( Linux/Solaris/etc. ).</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
See <a href="#Migration%20notes">Migration notes</a>.
|
||||
<h4>Linking</h4>
|
||||
When using <i>__attribute__((weak))__<b> </b></i>, you may run into
|
||||
linker errors like : <b>'multiple definition of `global constructors
|
||||
keyed to __malloc_alloc_template<0>::oom_handler'</b>. <br>
|
||||
That indicates that you have defined some global objects in your source.
|
||||
gcc then produce a bug treating weak symbol declared in header as real
|
||||
global. <br>
|
||||
The workaround is simple : just put some dummy global variable <b>before
|
||||
</b>including STL headers. That worked for me. <br>
|
||||
Another way is to <tt>#define _STLP_WEAK_ATTRIBUTE 0 </tt>in <b><i>stlconf.h</i></b>
|
||||
and use <tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt> scheme described above.
|
||||
<p>On some non-ELF systems (<b>SunOS 4.x</b>) "configure" sets
|
||||
<tt>_STLP_WEAK_ATTRIBUTE. </tt>Unfortunately, this won't work unless you
|
||||
are using GNU linker. To justify this, <tt>#define _STLP_WEAK_ATTRIBUTE
|
||||
0 </tt>in <b><i>stlconf.h</i></b> and use <tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt>
|
||||
scheme described above.</p>
|
||||
<p>You may have troubles getting _linker_ errors compiling complex cases
|
||||
without <i>-frepo</i>. If that problem occurs, try <i>-frepo</i> flag.
|
||||
This flag is generally preferred unless you are compiling really short
|
||||
examples. Be sure to supply -frepo switch on the link stage, too.</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2><a name="Migration%20notes"></a>Migration notes</h2>
|
||||
You may have to define operators ==() and <() on all classes you are
|
||||
using with most containers, even if they are not really used. That is
|
||||
the gcc bug. Another bug is that gcc won't find this operators defined
|
||||
in base class, you have to redefine them. Don't define any of
|
||||
!=(),>(),<=(),>=;() operators for your classes - gcc have bugs
|
||||
in resolution and report that as ambiguity with templates in <i>function.h.</i>
|
||||
<p>If you use <tt><string></tt> from <tt>libg++</tt> the described
|
||||
problem of the definition of <tt>!=, >, <=</tt> and <tt>>=</tt>
|
||||
occurs: something like: "<tt>ambiguous template instantiation in
|
||||
sinst.h</tt>" The concrete solution is to disable the definitions
|
||||
of those operators in <tt>g++-include/std/sinst.h (line 59):</tt></p>
|
||||
<p><tt>__DOB (==)</tt> <br>
|
||||
<tt>//__DOB (!=)</tt> <br>
|
||||
<tt>__DOB (>)</tt> <br>
|
||||
<tt>//__DOB (>)</tt> <br>
|
||||
<tt>//__DOB (<=)</tt> <br>
|
||||
<tt>//__DOB (<=)</tt> <br>
|
||||
<tt>//__DOB (>=)</tt></p>
|
||||
<p>This would be a general fix due to gcc problems. The other possible
|
||||
solution is to <tt>#include <string></tt> after STL headers.</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
132
STLPORT/doc/README.os390.html
Normal file
132
STLPORT/doc/README.os390.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for IBM OS/390 C/C++ Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for IBM OS/390 C/C++ Users</span>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<br>
|
||||
<b><i><font face="Arial,Helvetica,Geneva"><font size="+1">Known Problems</font></font></i></b>
|
||||
<p><b>Compiling:</b></p>
|
||||
<ol>
|
||||
<li>OS/390 C/C++ requires explicit template notation such as
|
||||
template_class<Param> where most other conformant compilers
|
||||
only accept template_class (inside template method bodies, etc.):</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class Param> class
|
||||
template_class {<br>
|
||||
<br>
|
||||
template_class foo();
|
||||
// error for OS390 C/C++<br>
|
||||
<br>
|
||||
template_class<Param> foo();
|
||||
// OK<br>
|
||||
<br>
|
||||
...<br>
|
||||
<br>
|
||||
};</font></p>
|
||||
This adaptation works around the above OS/390 C/C++ requirement, but
|
||||
may cause compatibility problems when porting template code from other
|
||||
platforms.
|
||||
<li>OS/390 C++, does not allow passing an extern "C"
|
||||
function pointer as an argument to a C++ function. For example:</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class Result> <br>
|
||||
<br>
|
||||
pointer_to_void_function<Result>
|
||||
ptr_gen(Result (*x)());<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
p = ptr_gen(rand); // error for OS/390 C/C++</font></p>
|
||||
In the above template, <i>ptr_gen</i> takes a function pointer as its
|
||||
argument and returns a function pointer adaptor (a type of function
|
||||
object), and <i>rand</i> is an extern "C" library pointer.
|
||||
This is not allowed because C and C++ linkage is different on OS/390
|
||||
C/C++.
|
||||
<p>To work around this problem, provide a C++ wrapper around the
|
||||
extern "C" function and pass the C++ wrapper instead:</p>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> int cxxrand(void) { return rand();}<br>
|
||||
<br>
|
||||
p = ptr_gen(cxxrand);
|
||||
// OK</font></p>
|
||||
<li>OS/390 C++ does not allow functions to be declared with a function
|
||||
or an array as its return type:</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class InputIterator, class
|
||||
OutputIterator,class result)<br>
|
||||
<br>
|
||||
OutputIterator
|
||||
adjacent_difference(InputIterator first, <br>
|
||||
<br>
|
||||
InputIterator
|
||||
last, <br>
|
||||
<br>
|
||||
OutputIterator
|
||||
result);<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
main() {<br>
|
||||
<br>
|
||||
int number[10];<br>
|
||||
<br>
|
||||
int different[5];<br>
|
||||
<br>
|
||||
adjacent_difference(number,<br>
|
||||
<br>
|
||||
number
|
||||
+ 5,<br>
|
||||
<br>
|
||||
different);
|
||||
// error for OS/390 C/C++<br>
|
||||
<br>
|
||||
}</font></p>
|
||||
In the above example, the compiler attempts to create an instantiation
|
||||
that returns an array <i>int[]</i>, which is not allowed in OS/390
|
||||
C/C++:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> int[] adjacent_difference(int*, int*, int*)</font></p>
|
||||
To work around this problem, cast the <i>int</i> array to pointer to <i>int</i>:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> adjacent_difference(number,number + 5, (int *)
|
||||
different); // OK</font></p>
|
||||
</ol>
|
||||
<b>Linking:</b>
|
||||
<p>Repository handling in the compiler is imperfect, so you may
|
||||
experience various problems during the link step. The problems are
|
||||
generally of two kinds: duplicate symbols or unresolved symbols. The
|
||||
duplicate symbol problem is not fatal, since the symbols are weak
|
||||
(compiler generated) in that case. When it comes to large projects,
|
||||
however, it may cause unacceptable code bloat (extra code generated by
|
||||
the compiler when it separates the template instantiation files into the
|
||||
TEMPINC directory). To overcome this problem, this adaptation simulates <i>separate
|
||||
template implementation</i>. Compiling templates using the tempinc
|
||||
compile option, minimizes code bloat as there are less duplicate
|
||||
symbols. The problem with undefined symbols is also caused by imperfect
|
||||
repository handling, but may require manual intervention. The general
|
||||
rule is: <b>if you get <i>unresolved symbol</i> errors, explicit
|
||||
instantiation will most likely help</b>. For example:</p>
|
||||
<p><i>Unresolved:</i></p>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> __default_alloc_template<0,0>::allocate(unsigned
|
||||
long)<br>
|
||||
<br>
|
||||
__default_alloc_template<0,0>::deallocate(void *, unsigned
|
||||
long)</font></p>
|
||||
To work around this problem, just instantiate __default_alloc_template<0,0>
|
||||
explicitly in a module:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template class __default_alloc_template<0,0>;</font></p>
|
||||
<h2><font size="+0">Useful Links</font></h2>
|
||||
<p><font size="+0">Check out :</font></p>
|
||||
<p><a href="http://www.software.ibm.com/ad/c390/cmvsstlp.htm">http://www.software.ibm.com/ad/c390/cmvsstlp.htm</a></p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
76
STLPORT/doc/README.pow.html
Normal file
76
STLPORT/doc/README.pow.html
Normal file
@@ -0,0 +1,76 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for PowerSoft's Power++ Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for PowerSoft's Power++ Users</span>
|
||||
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<p><tt>Subject: Re: SGI STL Adaptation Page updated (STLport 2.031
|
||||
release) <br>
|
||||
Date: Wed, 1 Oct 1997 16:30:48 -0400 <br>
|
||||
From: Doni_Grande@ethyl.com (Doni Grande) </tt><br>
|
||||
</p>
|
||||
<p><tt>This version (2.031) seems to work with Powersoft's Power++ 2.0
|
||||
compiler, which is based on the Watcom C/C++ 11.0 compiler. The STL
|
||||
debug mode still won't compile, but everything else seems to work.
|
||||
Power++ does some memory management in debug mode that needs to be
|
||||
worked around, and there is a nuisance warning message that needs to be
|
||||
suppressed. I generally load all the STL headers I use in a single
|
||||
header file, and do the workarounds needed there. The STL.HPP file I use
|
||||
is below. </tt></p>
|
||||
<p><tt>// Power++ 2.0 include file <br>
|
||||
// <br>
|
||||
// stl.hpp -- Include all the files in the standard SGI STL distribution
|
||||
<br>
|
||||
// </tt></p>
|
||||
<p><tt>#ifndef _STL_HPP_INCLUDED <br>
|
||||
#define _STL_HPP_INCLUDED</tt></p>
|
||||
<p><tt>// Define symbol to indicate SGI STL <br>
|
||||
#ifndef __SGISTL <br>
|
||||
#define __SGISTL <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>// The following turns off warning 549: <br>
|
||||
// 'sizeof' operand contains compiler generated information // This
|
||||
warning remains disabled after loading this file.</tt></p>
|
||||
<p><tt>#pragma warning 549 9;</tt></p>
|
||||
<p><tt>/* Redefine the C++ "new" and "delete"
|
||||
operators to not go through the component library's memory checker. */ <br>
|
||||
#if defined( _DEBUG ) && defined( new ) <br>
|
||||
# undef new <br>
|
||||
# undef delete <br>
|
||||
# define _REDEFINE_WNEW <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>// If can get STL debug working, use the following <br>
|
||||
// #if defined( _DEBUG ) <br>
|
||||
// # define _STLP_DEBUG 1 // #endif</tt></p>
|
||||
<p><tt>// Get rid of Watcom's min and max macros <br>
|
||||
#undef min <br>
|
||||
#undef max</tt></p>
|
||||
<p><tt>// Get configuration defines #include "stlcomp.h"</tt></p>
|
||||
<p><tt>#include "algo.h" <br>
|
||||
#include "bvector.h" <br>
|
||||
#include "deque.h" <br>
|
||||
#include "heap.h" <br>
|
||||
#include "list.h" <br>
|
||||
#include "map.h" <br>
|
||||
#include "multimap.h" <br>
|
||||
#include "multiset.h" <br>
|
||||
#include "pair.h" <br>
|
||||
#include "set.h" <br>
|
||||
#include "stack.h" <br>
|
||||
#include "tempbuf.h" <br>
|
||||
#include "vector.h"</tt></p>
|
||||
<p><tt>// SGI-specific additions <br>
|
||||
#include "rope.h" <br>
|
||||
#include "slist.h" <br>
|
||||
#include "function.h" <br>
|
||||
#include "hash_map.h" <br>
|
||||
#include "hash_set.h"</tt></p>
|
||||
<p><tt>#ifdef _REDEFINE_WNEW <br>
|
||||
# include "wnew.hpp" <br>
|
||||
# undef _REDEFINE_WNEW <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>#endif</tt></p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
15
STLPORT/doc/README.sgi40.html
Normal file
15
STLPORT/doc/README.sgi40.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for SGI's CC v4 Compiler users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for SGI's CC v4 Compiler users</span>
|
||||
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Patches required</h4>
|
||||
- You have to make sure that you have installed the C++_non_shared_libs
|
||||
package (from the "C++ translator" CD).
|
||||
<p>- You must then install CC patch 1599 (you may also installed patches
|
||||
1260,1600, and 1628 though they should not be necessary).</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
191
STLPORT/doc/README.sunpro.html
Normal file
191
STLPORT/doc/README.sunpro.html
Normal file
@@ -0,0 +1,191 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Notes for SUNPro C++ Users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Notes for SUNPro C++ Users</span>
|
||||
<p> </p>
|
||||
<h2>Common Notes</h2>
|
||||
For all SUN compilers, STLport nables separate compilation with
|
||||
non-inline template members defined in .c file. That is supposed to
|
||||
help with code bloat, but does not make a big difference for SUN compilers.
|
||||
So, if having any problems with this mode, just turn off _STLP_LINK_TIME_INSTANTIATION switch.
|
||||
Installation: please note that even if you do not use STLport iostreams, you still have to go to "src" subdirectory and do "make" or at least "make prepare" to produce additional .SUNWCCh files necessary for compilation)
|
||||
|
||||
<h2>Notes for SUNPro C++ users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Bugs (Note for SUNPro C++ 4.2 or before)</h4>
|
||||
<br><b>Note: proposed workaround is implemented for this bug for all relevant STLport code.
|
||||
However, please be aware of this bug because it might affect your own code.</b>
|
||||
<br>Perry R. Ross 3/12/99<br>
|
||||
pross@platinum.com<br>
|
||||
<p>
|
||||
The SunPro 4.2 compiler has a serious problem handling string literals<br>
|
||||
passed as arguments to inline functions. Each time the dummy argument
|
||||
representing the string literal appears in the function, it receives a
|
||||
new address, just as if you'd typed the literal at that spot in the
|
||||
function. Normally this is harmless except for wasting a bit of<br>
|
||||
memory, but if the function attempts to do any pointer arithmetic, it
|
||||
fails horribly. Here is a small program that duplicates the problem:<br>
|
||||
<br>
|
||||
#include <iostream.h><br>
|
||||
<br>
|
||||
inline void func(char *s) {<br>
|
||||
// Each of these will print a different address for s<br>
|
||||
// if the arg was a string literal.<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
<br>
|
||||
// This will print a negative number if the arg is a literal.<br>
|
||||
cout << "the difference between (s+1) and s is "
|
||||
<< ( (s+1) - s) << endl;<br>
|
||||
}</p>
|
||||
<p>int<br>
|
||||
main(int argc, char *argv[]) {<br>
|
||||
func("hello");<br>
|
||||
char *bye = "goodbye";<br>
|
||||
func(bye);<br>
|
||||
return 0;<br>
|
||||
}<br>
|
||||
<br>
|
||||
Here is a demo program that shows how this impacts STL:<br>
|
||||
<br>
|
||||
#include <iostream.h><br>
|
||||
#include <string><br>
|
||||
<br>
|
||||
string str("hello");<br>
|
||||
<br>
|
||||
int main(int argc, char *argv[]) {<br>
|
||||
cout << str << endl;<br>
|
||||
return 0;<br>
|
||||
}<br>
|
||||
<br>
|
||||
This will print "hellohello" on a broken compiler version.<br>
|
||||
<br>
|
||||
The fix for this is to add this line to the beginning of func():<br>
|
||||
<br>
|
||||
s = s;<br>
|
||||
<br>
|
||||
This somehow makes the compiler stop creating new copies of the string,<br>
|
||||
and if you compile with -O, it seems to completely optimize away,<br>
|
||||
so there is no runtime penalty. There is a substantial ugliness<br>
|
||||
penalty, though, as this line has to be in every inline function that <br>
|
||||
can be called with a string constant.<br>
|
||||
The fix could be done with the preprocessor macro
|
||||
__SUN_INLINE_STRING_LITERAL_BUG, which should be empty on all platforms
|
||||
but SUNPRO version 4.2 or before (/<b>fbp</b>/this change is not in 3.12
|
||||
yet, as I still hope to find less ugly solution, maybe with compiler
|
||||
flags /<b>fbp</b>/):</p>
|
||||
<ul>
|
||||
<li><b>#define __SUN_INLINE_STRING_LITERAL_BUG(x) x=x;</b> (for
|
||||
Sun CC)</li>
|
||||
<li><b>#define __SUN_INLINE_STRING_LITERAL_BUG(x) ( </b>for other
|
||||
compilers)</li>
|
||||
</ul>
|
||||
<p>.<br>
|
||||
You should be careful passing string literals with SunPro CC (frankly -
|
||||
NEVER do that), as the above bug appear in any inline function (not only
|
||||
template ones).</p>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization . That will enable
|
||||
use of Solaris threads synchronization support. If you are usizg
|
||||
Pthreads in your program, define <b>_PTHREADS</b> for STLport.</li>
|
||||
<li>If your project has multiple directories structure, it is better
|
||||
to use <b>-ptr</b> option to keep all template databese in one
|
||||
place.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Note for SUNPro C++ 4.1 users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
C++ 4.1 have problems recognizing types nested in template classes when
|
||||
parsing declarations. For example , the following construct fails
|
||||
(suppose STL vector is a base type for derived_vector ):
|
||||
<p><tt>derived_vector<int> years;</tt> <br>
|
||||
<tt>derived_vector<int>::iterator i;</tt></p>
|
||||
<p>To work around this problem completely, you should repeat those
|
||||
typedefs from base class that you are going to use in any way:</p>
|
||||
<p><tt>template <class T> class derived_vector : public
|
||||
vector<T> {</tt> <br>
|
||||
<tt>typedef vector<T>::iterator iterator;</tt> <br>
|
||||
<tt>...</tt></p>
|
||||
<p>STL code itself is now free of this problem.</p>
|
||||
<p>C++ 4.1 may also suffer from optimization bugs when using exception
|
||||
handling. If your application doesn't use exceptions, you'd better use <tt>-noex</tt>
|
||||
option along with <tt>_STLP_NO_EXCEPTIONS</tt> flag.</p>
|
||||
<h4>Linking</h4>
|
||||
You may have troubles getting linker errors compiling multiple targets
|
||||
in one directory ( for example, running cygnus testsuite). That is a bug
|
||||
in handling Templates.DB dependencies. Known solutions are :
|
||||
<p>a) for one-file tests, specify option <b>-pto</b> <i>(one-file-mode)</i>
|
||||
option to turn off database completely. Option <b>-pts</b><i>(single-file-mode)</i>
|
||||
doesn't fix all problems.</p>
|
||||
<p>b) for complex projects, use separate Templates.DB directories for
|
||||
different targets.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<h2>Notes for SUNPro C++ 4.0.1 users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Version problems</h4>
|
||||
If your CC 4.0.1 cannot compile <a href="testsuite.html">testsuite</a>,
|
||||
most likely you are using out-of date version. You should download
|
||||
patches for 4.0.1 (SparcCompilers WorkShop 3.0.1) from SunPro site :
|
||||
<p><b>Solaris 2.x :</b></p>
|
||||
<p><a href="http://www.sun.com/workshop/tnb/sparc2x/patch.html">http://www.sun.com/workshop/tnb/sparc2x/patch.html</a>
|
||||
(SPARC/Solaris 2.x) . You should look for patches 101242-12 &
|
||||
101242-14 ( 101242-12 is required to work with 101242-12).</p>
|
||||
<p><b>Sunos 4.1.x:</b></p>
|
||||
<p><a href="http://www.sun.com/smcc/solaris-migration/cmc.products.970709/XCM/101914-14.tar.Z">http://www.sun.com/smcc/solaris-migration/cmc.products.970709/XCM/101914-14.tar.Z</a><a href="http://www.sun.com/workshop/tnb/sparc1x/patch.html">
|
||||
(SPARC/SunOS 4.1.x)</a></p>
|
||||
<p><a href="http://www.sun.com/workshop/tnb/sparc1x/patch.html">http://www.sun.com/workshop/tnb/sparc1x/patch.html</a>
|
||||
(SPARC/SunOS 4.1.x). Look for 101914-20.</p>
|
||||
<h4>Compiling</h4>
|
||||
C++ 4.0.1 have problems recognizing types nested in template classes
|
||||
when parsing declarations. For example , the following construct fails
|
||||
(suppose STL vector is a base type for derived_vector ):
|
||||
<p><tt><font size="-1">derived_vector<int> years;</font></tt> <br>
|
||||
<tt><font size="-1">derived_vector<int>::iterator i;</font></tt></p>
|
||||
<p>To work around this problem completely, you should repeat those
|
||||
typedefs from base class that you are going to use in any way:</p>
|
||||
<p><tt><font size="-1">template <class T> class derived_vector :
|
||||
public vector<T> {</font></tt> <br>
|
||||
<tt><font size="-1">typedef vector<T>::iterator iterator;</font></tt>
|
||||
<br>
|
||||
<tt><font size="-1">...</font></tt></p>
|
||||
<p>More severe problems arise when given template argument's typedefs
|
||||
are used as template arguments for base class. The example is function
|
||||
adaptors from <b>function.h</b> . Refer to workarounds for binders &
|
||||
composers to see how it can be hanled ( proposed by "Martin
|
||||
Abernethy" <gma@paston.co.uk> ).</p>
|
||||
<p>C++ 4.01 may also suffer from optimization bugs when using exception
|
||||
handling. If your application doesn't use exceptions, you'd better use <tt>-noex</tt>
|
||||
option along with <tt>_STLP_NO_EXCEPTIONS</tt> flag.</p>
|
||||
<h4>Linking</h4>
|
||||
You may still have to use explicit instantiations and/or specific
|
||||
template database controls for complex cases to avoid "<i>unresolved
|
||||
symbol</i>" linker errors.
|
||||
<p>You may have troubles getting linker errors compiling multiple
|
||||
targets in one directory ( for example, running cygnus testsuite). That
|
||||
is a bug in handling Templates.DB dependencies. Known solutions are :</p>
|
||||
<p>a) for one-file tests, specify option <b>-pto</b> <i>(one-file-mode)</i>
|
||||
option to turn off database completely. Option <b>-pts</b><i>(single-file-mode)</i>
|
||||
doesn't fix all problems.</p>
|
||||
<p>b) for complex projects, use separate Templates.DB directories for
|
||||
different targets.</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from HP STL to SGI
|
||||
STL.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.1</h4>
|
||||
For info on SUNPro C++ 4.0.1, see README.sunpro401. SUNPro C++ older
|
||||
than 4.0.1 won't compile STL. You have to upgrade.
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
41
STLPORT/doc/README.xlC.html
Normal file
41
STLPORT/doc/README.xlC.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for xlC & Visual Age C++ users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Note for xlC & Visual Age C++ users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
xlC & VAC++ require explicit template notation such as <tt>template_class<Param></tt>
|
||||
where most others (conformant) accept just <tt>template_class</tt>
|
||||
(inside template method bodies, etc):
|
||||
<p><tt>template <class Param> class template_class {</tt> <br>
|
||||
<tt>template_class foo() ; // error for xlC</tt> <br>
|
||||
<tt>template_class<Param> foo() // OK</tt> <br>
|
||||
<tt>.....</tt> <br>
|
||||
<tt>}</tt></p>
|
||||
<p>That is being worked around in this adaptation, but may cause
|
||||
problems when porting template code from other platforms.</p>
|
||||
<h4>Linking</h4>
|
||||
Repository handling in this compilers is imperfect, so you may
|
||||
experience various problems on link stage. The problems are generally of
|
||||
two kinds : unresolved symbols and duplicate symbols. The latter problem
|
||||
is not fatal, since the symbols are weak in that case. It may cause
|
||||
unacceptable code bloat when it comes to large projects, however. To
|
||||
overcome this problem, for all IBM compilers, STLport 3.2 enables separate
|
||||
compilation with non-inline template members defined in .c file. <b>Note : you should enable corresponding
|
||||
option in the compiler (/Ft+ or equivalent) to get use of this mode, as it is being enabled conditionally
|
||||
based on the presence of builin macro ___TEMPINC__.</b><br>When compiling templates splitted to *.h/*.c
|
||||
scheme, these compilers produce better results (around 50% code size reduction, less duplicate symbols).
|
||||
The problem with undefined symbols is also caused by imperfect
|
||||
repository handling, but it may require manual intervention. General
|
||||
rule is : if you get "unresolved symbol" errors, explicit
|
||||
instantiation will most likely help, for example:
|
||||
<p><tt>Unresolved:</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::allocate(unsigned long)</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::deallocate(void*, unsigned
|
||||
long) ></tt></p>
|
||||
<p>To work around this problem, just instantiate <tt>__default_alloc_template<0,0></tt>
|
||||
explicitly in some module:</p>
|
||||
<p><tt>template class __default_alloc_template<0,0>;</tt></p>
|
||||
<p> </p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
88
STLPORT/doc/auto_configure.html
Normal file
88
STLPORT/doc/auto_configure.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Running configure</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Running "configure"</span>
|
||||
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
|
||||
<h3>Configuring STLport for new compiler with UNIX shell</h3>
|
||||
|
||||
<p><i>Note: this document describes the procedure ot tuning STLport for
|
||||
new compiler, not the one that is already supported. If your compiler is listed
|
||||
as supported, this is absolutely unnecessary.</i></p>
|
||||
|
||||
<p>STLport comes with "configure" shell script to help in the
|
||||
initial step to tune the library for a new compiler.
|
||||
It sets up stlconf.h configuration header
|
||||
with proper flags depending on features of the compiler and user-defined
|
||||
options.
|
||||
Recommended way to create new configuration is to run "configure"
|
||||
in "config/new_compiler" directory and create <b>stl_yourcompiler.h</b> in "config"
|
||||
directory based on switches defined by "configure" in stlconf.h.
|
||||
<b>Do not</b> expect STLport to be configured just by running "configure".
|
||||
</p>
|
||||
|
||||
<p>Here is an example how to specify the parameters to "configure" (for Bourne-like
|
||||
shells): <b><br>
|
||||
host> cd STLport/config<br>
|
||||
host> CXX=CC CXXFLAGS="-xwe -noex" ./configure --enable-malloc</b></p>
|
||||
<p>This will set up workarounds necessary for "<b>CC</b>"
|
||||
compiler as well as specify malloc-based allocator as the default one. <br>
|
||||
|
||||
|
||||
Run "<b>configure --help</b>" to see list of options
|
||||
available. For most reliable results, you should specify <b>CXXFLAGS</b>
|
||||
to contain the option turning warnings into errors.
|
||||
"configure" tries to scan warnings, but that not always works.
|
||||
After testing your compiler features and setting options specified,
|
||||
"configure" creates <b>stlconf.h</b> file using <b>config/stlconf.h</b>
|
||||
as input. Macro <b>__AUTO_CONFIGURED</b> indicates that the package has
|
||||
been configured. If it is not set (before you run configure), <b>stlconf.h</b>
|
||||
includes <b>stlcomp.h</b> header to set up conservative configuration
|
||||
and recognize the compiler version. <b>config/stlconf.h</b> can be
|
||||
safely copied to stlconf.h to restore unconfigured status-quo.</p>
|
||||
|
||||
<h3>Configuring STLport on other platforms</h3>
|
||||
|
||||
The above may also work on other systems with UNIX-like toolsets on
|
||||
them. <br>
|
||||
|
||||
For example, the <a href="http://www.cygnus.com">cygwin32</a>
|
||||
suite for Windows 95/NT runs "configure" just fine.
|
||||
<br>
|
||||
|
||||
You can also change <stlcomp.h> for your system manually.<br>
|
||||
Please consider contributing your changes back to the STLport
|
||||
project!
|
||||
|
||||
<h3>"configure" synopsys (Bourne shells):</h3>
|
||||
|
||||
<p>> [environment] <b>./configure</b> [user-defined options]</p>
|
||||
|
||||
<h3>"configure" synopsys (C-shells):</h3>
|
||||
<p>> <b>env </b>[environment] <b>./configure</b> [user-defined
|
||||
options]</p>
|
||||
|
||||
<p><b>"configure" script runs series of tests to determine
|
||||
detailed characteristics of your compiler.</b></p>
|
||||
<p>In [environment] , you may specify the following parameters</p>
|
||||
<p><b>CXX=<compiler_name>, </b>default is <b>c++</b></p>
|
||||
<p><b>CXXFLAGS=<<i>cxx compiler flags you will most likely use</i>>
|
||||
. <br>
|
||||
</b>That may be needed to set up some features correctly. That is, if
|
||||
you plan to use exception handling, and your compiler doesn't enable
|
||||
them by default, specify the option enabling EH there. <br>
|
||||
It is also helpful to specify an option turning warnings into errors
|
||||
here to get most reliable configuration ( For example, warnings could be
|
||||
like that : <i>"Warning: namespaces are mostly broken in this
|
||||
release"</i>, and they're indeed broken. ).</p>
|
||||
|
||||
<p>In case you are not able to run configure, you might have to know
|
||||
internal STLport macros describing compiler features/bugs
|
||||
Please refer to the <a href="configure.html">Configuration Manual</a> for the values.
|
||||
</p>
|
||||
|
||||
<h3>Modifying the configuration engine</h3>
|
||||
<p>Don't edit the "configure" script directly, use <b>config/configure.in</b>
|
||||
source + <b>GNU autoconf</b> instead.</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
25
STLPORT/doc/bug_report.html
Normal file
25
STLPORT/doc/bug_report.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Bug Reports</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Bug Reports and Questions</span>
|
||||
<p><font size="3"><br>
|
||||
</font>Bug reports and questions are welcome. Please supply a source
|
||||
code fragment and compiler/OS information along with bug reports.</p>
|
||||
<p>Before sending a bug report, please check <a href="FAQ.html">FAQ</a>
|
||||
and <a href="buglist.html">Known Bugs</a> to see if your bug has been
|
||||
reported already. Refer also to <a href="compiler_readmes.html">READMEs</a>
|
||||
to see if it's common problem with your compiler.</p>
|
||||
<p>Please direct your bug reports and questions to <a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">STLport
|
||||
Forum</a> to get better feedback. Answers are being normally posted
|
||||
there, too. Please keep in mind the support is done on a pure volunteer
|
||||
basis.</p>
|
||||
<p>If you make a port for your compiler and would like to make it
|
||||
available to the public, <a href="mailto:consulting@stlport.com">contact us</a>
|
||||
and we'll be happy to include it with this package, provided that your
|
||||
modifications are freely distributable.</p>
|
||||
<p>If you wish to be notified about STLport updates automatically : please
|
||||
indicate it in download form. You may alter your mail list option
|
||||
anytime via the same form.</p>
|
||||
<p><a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">Report your
|
||||
bug</a></p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
18
STLPORT/doc/buglist.html
Normal file
18
STLPORT/doc/buglist.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Current buglist</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Known bugs</span>
|
||||
<hr noshade="" color="#000080">
|
||||
<p><b>Borland C++ 5.0</b><br>
|
||||
This release is known to still have problems with BC 5.0x.
|
||||
Directory <b>STLport/BC50/</b> contains some extra files Borland C++ 5.x
|
||||
expects to see on the path. Make sure you put <b>STLport/BC50 </b>in<br>
|
||||
your search path before <b>STLport </b>main directory. The problems still persist
|
||||
with <string>, so BC50 is configured to use native one. You may face other problems with
|
||||
5.0. Please direct your bug reports and workarounds to the Forum.</p>
|
||||
|
||||
<p><b>Visual C++ 6.0 : <br>
|
||||
</b>To fix internal compiler errors on large compilations, please refer to VC knowledge base to see what extra options may be supplied.</p>
|
||||
<hr noshade="" color="#000080">
|
||||
<p><a href="bug_report.html">Report a bug</a></p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
27
STLPORT/doc/compiler_readmes.html
Normal file
27
STLPORT/doc/compiler_readmes.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: README Files for Particular Compilers</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
|
||||
<span class="heading">README Files for Particular Compilers</span>
|
||||
<p> </p>
|
||||
<p>Some compilers have bugs that require specific workarounds in your
|
||||
source code. They compile STLport headers OK but crash on using certain
|
||||
STL constructs in your code, or require specific tuning in some cases.
|
||||
Refer to appropriate README file if running into problems:</p>
|
||||
<dir>
|
||||
<li><a href="README.gcc.html">GCC README </a></li>
|
||||
<li><a href="README.sunpro.html">SunPro C++ README</a></li>
|
||||
<li><a href="README.VC++.html">Visual C++ README</a></li>
|
||||
<li><a href="README.BC.html">Borland C++ 5.x README</a></li>
|
||||
<li><a href="README.xlC.html">AIX xlC README</a></li>
|
||||
<li><a href="README.xlC.html">IBM Visual Age C++ README</a></li>
|
||||
<li><a href="README.DEC.html">DEC CXX README</a></li>
|
||||
<li><a href="README.CW.html">Metrowerks CodeWarrior README</a></li>
|
||||
<li><a href="README.aCC.html">HP ANSI C++ Compiler (aCC) README</a></li>
|
||||
<li><a href="README.pow.html">PowerSoft's Power++ 2.0 README</a></li>
|
||||
<li><a href="README.os390.html">IBM OS/390 C/C++ 1.x - 2.x
|
||||
README </a></li>
|
||||
<li><a href="README.sgi40.html">SGI MIPSpro C++ 4.0 README</a></li>
|
||||
<li><a href="README.MPW.html">Apple MPW MrCpp and SCpp README</a></li>
|
||||
</dir>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
793
STLPORT/doc/configure.html
Normal file
793
STLPORT/doc/configure.html
Normal file
@@ -0,0 +1,793 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Configuration Manual</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport Configuration Manual</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h3>Parameters</h3>
|
||||
<p>There are two major categories of STLport configuration parameters:</p>
|
||||
<ul>
|
||||
<li>User-definable preferences</li>
|
||||
<li>Parameters describing compiler bugs and misfeatures</li>
|
||||
</ul>
|
||||
<p>The former class lets you set some specific preferences. Switches
|
||||
controlling these preferences are located in <stl_use_config.h>
|
||||
header, which is self-documented. This manual provide some additional
|
||||
info on them.</p>
|
||||
<p>For the latter, STLport comes preconfigured for a wide
|
||||
variety of compilers. <br>
|
||||
See list for a complete list of compilers that STLport automatically
|
||||
recognizes.<br>
|
||||
If your compiler is not being recognized properly, this document will
|
||||
help you to fix the problem.</p>
|
||||
<p> </p>
|
||||
<h3>User-defined preferences</h3>
|
||||
<p>You may specify some user-defined preferences for STLport. There are
|
||||
two ways to set the options up :</p>
|
||||
<ol>
|
||||
<li>Setting corresponding #define in <stl_user_config.h> . This
|
||||
is the preferred method. You can also use different <stl_user_config.h>
|
||||
headers for different projects.</li>
|
||||
<li>Specifying corresponding flag on compiler command-line. Some
|
||||
options also may be suppressed. For example, you may configure the
|
||||
distribution to exploit exception handling with setting <b>_STLP_USE_EXCEPTIONS</b>
|
||||
macro to 1, then turning exception handling off with <b>-D_STLP_NO_EXCEPTIONS</b>
|
||||
command-line option for particular project</li>
|
||||
</ol>
|
||||
<p>Below is a stable set of of user-defined options with description. If
|
||||
not indicated otherwise, default for these options is that they are
|
||||
undefined.<br>
|
||||
</p>
|
||||
<table border="1" cellspacing="0" cellpadding="4">
|
||||
<caption>
|
||||
<h4>User-defined options for STLport</h4>
|
||||
</caption>
|
||||
<tr>
|
||||
<td><b>Controlling Macro</b></td>
|
||||
<td><b>Description</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_OWN_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is used to select
|
||||
one from two major STLport iostream modes. Please visit <a href="select_io.html">"Getting Started"</a> section for details.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Suppress using new-style
|
||||
iostreams even if they are available. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is experimental and
|
||||
is intended to be used in embedded environments. It makes STLport assume that
|
||||
no iostreams are available at all. </font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_CUSTOM_IO
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is experimental. Define this if you do not instantiate basic_xxx iostream classes with custom types (which is most likely the case). "Custom" means types other than char, wchar and char_traits<>, like basic_ostream<my_char_type, my_traits<my_char_type> >. When this option is on, most non-inline template functions definitions for iostreams are not seen by the client. Default is off, just not to break compilation for those who do use those types. When on, it saves a lot of compile time for most compilers, also object and executable size for some. That also guarantees that you still use optimized standard i/o when you compile your program without optimization and link with optimized library. Option does not affect STLport library build; you may use the same binary library with and without this option, on per-project basis.</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_DEBUG_LIB </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">(Windows compilers only)
|
||||
Normally, optimized STLport library is being automatically linked in even when you compile your project with _DEBUG set (Debug build). If you wish to use debug build of STLport library for your debug builds, define this option (you will also have to build STLport library with debug flags, via additional "make debug_static debug_dynamic" command, as "make all" only builds "release" and "stldebug" versions of the libraries).
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_STATIC_LIB, _STLP_USE_STATICX_LIB, _STLP_USE_DYNAMIC_LIB </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">(Windows compilers only)
|
||||
Normally, a version of STLport library iwhich corresponds to your RTL library setting is being automatically linked in (if you use dynamic RTL DLL, dynamic STLport DLL is being used, and vice versa).
|
||||
If you wish to force use of particular (static, dynamic, or "staticx" which is static STLport lib built with dynamic RTL) STLport lib, please make use one of those options.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_OWN_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Suppresses STLport use of
|
||||
namespace <b>_STL</b>:: even if it is recommended, forces
|
||||
STLport to use <b>std</b>::. Normally, STLport uses <b>_STL</b>::
|
||||
namespace instead of <b>std</b>::, to prevent clashes with iostreams/string stuff that comes
|
||||
with the compiler. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_OWN_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Forces STLport to use <b>_STL</b>::
|
||||
namespace instead of <b>std</b>:: STLport sets this flag
|
||||
automatically if _STLP_USE_NAMESPACES is set.</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_RENAME_STD
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Precludes STLport from redefining <b>std</b>::
|
||||
to <b>_STL</b>::. Define it only if renaming scheme does not work for you for some reason.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Turns the <a href="debug_mode.html">Debug
|
||||
Mode</a> on. That gets you checked iterators and ranges.
|
||||
Thread-safe. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_SYSTEM_ASSERT
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">use the system-defined
|
||||
assert instead of fprintf to stderr </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_MESSAGE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Uncomment this to force
|
||||
all failed assertions to be directed through a user-defined global
|
||||
function: void __stl_debug_message(const char * format_str, ...).
|
||||
This allows you to take control of assertions for debugging
|
||||
purposes. Note : If you set this macro, you must supply <b>__stl_debug_message</b> function definition somewhere. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_TERMINATE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Uncomment this to force
|
||||
all failed assertions to be executed through user-defined global function: void __stl_debug_terminate(void). This allows you to take control of assertion behaviour for debugging purposes. Default routine throws unique exception if _STLP_NO_DEBUG_EXCEPTIONS is not set, calls abort() otherwise. <br>Note : If you set this macro, you must supply __stl_debug_terminate function definition somewhere.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_DEBUG_EXCEPTIONS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"> Comment this out to enable throwing unique exceptions from default __stl_debug_terminate() instead of calling abort(). </font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXCEPTIONS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Disables exception
|
||||
handling code. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NAMESPACES </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Puts STLport into global
|
||||
namespace, even if the compiler supports namespaces. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_RELOPS_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">if defined, don't put the
|
||||
relational operators in namespace <b>std::rel_ops</b>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_REENTRANT </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Define this if your
|
||||
project is multithreaded. STLport uses MT-safe allocator support
|
||||
then. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_NOTHREADS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">If defined, STLport don't
|
||||
use any multithreading support. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_C_HEADERS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">If defined, STLport don't
|
||||
use native new-style C headers even if they are available. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_RAW_SGI_ALLOCATORS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Force STLport to use
|
||||
older SGI-style allocators as default ones for containers, instead
|
||||
of standard-conforming <b>allocator</b><>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_MALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to do plain <b>malloc()</b> calls instead of using SGI optimized
|
||||
node allocator engine. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_NEWALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to do plain <b>new()</b> calls instead of using SGI optimized node
|
||||
allocator engine. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_ALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to perform memory debugging, such as padding/checking for memory
|
||||
consistency. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_UNINITIALIZED </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
Use this option to catch uninitialized members in your classes.
|
||||
When it is set, construct() and destroy() fill the class storage
|
||||
with _STLP_SHRED_BYTE (see below).
|
||||
Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_SHRED_BYTE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Provides a definition for
|
||||
the byte with which raw memory will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED
|
||||
is defined. Choose a value which is likely to cause a noticeable
|
||||
problem if dereferenced or otherwise abused. A good value may
|
||||
already be defined for your platform; see <b>stldebug.h</b> </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_THROW_RANGE_ERRORS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
This macro prevents instantiation of at() member function
|
||||
for containers (vector and deque).
|
||||
We do not instantiate at() that does not throw range errors -
|
||||
if this macro is defined, at() method is not defined.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MSVC50_COMPATIBILITY
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This definition makes SGI
|
||||
<b>reverse_iterator</b> to be compatible with other parts of MSVC
|
||||
library. (With partial specialization, it just has no effect). Its
|
||||
use is strongly discouraged - for MSVC5.0 configuration, it is
|
||||
being set automatically. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_MFC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
You should define this macro if compiling with MFC - STLport <stl/_config.h>
|
||||
then include <afx.h> instead of <windows.h> to get synchronisation primitives
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
Use minimum set of default arguments on template classes that have more
|
||||
than one - for example map<>, set<>.
|
||||
This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_PROXY_ARROW_OPERATOR</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
By default, STLport uses proxy technique to enable operator -> for
|
||||
iterators even for those compilers that check the return type of
|
||||
unused instantiations. If this causes problems for your project, turn this
|
||||
switch on to disable proxy ->() operators.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_ABBREVS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Use abbreviated class
|
||||
names internally for linker benefit (don't affect interface). This
|
||||
option is obsolete, but should work in this release.</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_USE_DECLSPEC
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
(Obsolete, Windows only) This switch makes STLport symbols exported from DLL.
|
||||
To use export feature, you should define this macro for all compilation units and
|
||||
also define _STLP_DESIGNATED_DLL macro for one of your DLL's which is supposed to export
|
||||
all STLport symbols. You must use this feature if you use default node allocator and pass
|
||||
objects across DLL boundaries, and do not use STLport iostreams.
|
||||
Defined automatically if you use STLport iostreams and
|
||||
compile with /MD flag.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_DESIGNATED_DLL
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
(Obsolete, Windows only) Designed to be used together with _STLP_USE_DECLSPEC switch to
|
||||
make one of your DLL's to export STLport symbols for other modules.
|
||||
The library which is designated to export DLL symbols, must have both of
|
||||
those switches defined for compilation and it should include at least <string>
|
||||
header from at least one source file. Normally you should not be using this, it is used by STLport internally to build STLport DLL.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<p><b>Notes:</b></p>
|
||||
<ul>
|
||||
<li>When using tools like Purify (c), Codeguard (c) or BoundsChecker
|
||||
(c), it is advised to <tt>#define _STLP_USE_MALLOC</tt> or <tt>_STLP_USE_NEWALLOC</tt>,
|
||||
otherwise pointer checking will generally not be available on most
|
||||
STL internal structures, thus defeating the purpose of those tools.</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
|
||||
<a name="compiler_switches"></a>
|
||||
<h3>Compiler-specific switches</h3>
|
||||
|
||||
<p>Compiler-specific switches are STLport macros describing compiler (mis)features/bugs.Below is the
|
||||
table describing them. They are designed in such a way that the compiler
|
||||
that implements complete set of ANSI C++ features and has no bugs ;) would
|
||||
have empty configuration file.</p>
|
||||
|
||||
STLport also provides a script that is designed to help you setting those numerous switches.
|
||||
Please read <a href="auto_configure.html">Running configure</a> chapter to learn more about this tool.
|
||||
<br><i>Note : <b>do not</b> expect STLport to be configured just by running "configure".
|
||||
It is provided only as a tool to help in the initial configuration phase.</i>
|
||||
|
||||
<table border="1" cellspacing="0" cellpadding="4">
|
||||
<caption>
|
||||
<h4>STLport macros describing compiler features</h4>
|
||||
</caption>
|
||||
<tr>
|
||||
<td><b>Controlling macro name</b></td>
|
||||
<td><b>Description</b></td>
|
||||
<td><b>Default</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NATIVE_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">The path where native
|
||||
compiler headers are located. STLport uses this information to
|
||||
import <b>std</b>:: names into <b>_STL</b>:: namespace. Default
|
||||
is <b>../include</b>. Hint : never install STLport headers in the
|
||||
directory that ends with <b>include</b>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_UINT32_T</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Unsigned 32-bit integral
|
||||
type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">unsigned long</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_LONG_LONG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
supports non-standard <b>long long</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_WCHAR_T</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support <b>wchar_t</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_WCHAR_T_IS_USHORT
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">wchar_t is not a unique
|
||||
type, and is actually a typedef to unsigned short </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_LONG_DOUBLE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support <b>long double</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_TYPENAME</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>typename </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXPLICIT</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>explicit </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MUTABLE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>mutable </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_STYLE_CASTS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support new-style <b>const_cast<></b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_BOOL</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
does not support <b>bool</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_USE_BOOL_TYPEDEF</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Bool not supported, but
|
||||
keyword is reserved for future use</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_YVALS_H</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>true/false</b> defined
|
||||
in <b><yvals.h></b> header ( Visual C++ 4.2)</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_TEMPLATE_PARAM</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support default template parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_TYPE_PARAM</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
support only complete types as default parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_LIMITED_DEFAULT_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
cannot handle default non-type template parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NON_TYPE_TMPL_PARAM_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler has
|
||||
trouble with functions getting non-type-parameterized classes as
|
||||
parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_STATIC_TEMPLATE_DATA</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler does
|
||||
not support static class data template definition</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_STATIC_CONST_INIT_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler does
|
||||
not support initialization of const static class data template members within class.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_WEAK_ATTRIBUTE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
provides <b>__attribute((weak))__</b> construct as extension. Only needed if
|
||||
the compiler can't handle static template data members (gcc 2.7.2)</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_HAS_NO_NAMESPACES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support namespaces</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_BROKEN_USING_DIRECTIVE
|
||||
</b></font></td>
|
||||
<td><font size="2" face="Arial, Helvetica">"<b>using</b>"
|
||||
keyword does not work with template types </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_HAS_NO_EXCEPTIONS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support exception-handling</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXCEPTION_SPEC</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support exception specifications</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_THROW_RETURN_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler requires <b>return</b>
|
||||
statement after <b>throw</b>() </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_BAD_ALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Header <<b>new</b>>
|
||||
that comes with the compiler does not define <b>bad_alloc</b>
|
||||
exception </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MEMBER_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support member templates</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MEMBER_TEMPLATE_CLASSES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support member template classes</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_FRIEND_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support friend templates</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_QUALIFIED_FRIENDS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler does not accept
|
||||
friend declaration qualified with namespace name. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_CLASS_PARTIAL_SPECIALIZATION</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support partial template class specialization</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
|
||||
</b></font></td>
|
||||
<td><font size="2" face="Arial, Helvetica">Class being partially
|
||||
specialized require full name (template parameters) of itself for
|
||||
method declarations </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_PARTIAL_SPECIALIZATION_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Partial specialization
|
||||
has bugs that prevent you from using new-style <b>reverse_iterator</b>
|
||||
</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MEMBER_SPECIALIZATION_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler has problems
|
||||
specializing members of partially specialized class </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_METHOD_SPECIALIZATION</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
does not support specializations of single template method.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_FUNC_PARTIAL_ORDERING</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support partial template functions ordering</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support full template specialization syntax</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler does not support
|
||||
explicit template arguments for functions </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_AUTOMATIC_TYPE_TRAITS</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
specializes predefined class <b>type_traits<T></b> for every
|
||||
type. This is an extension</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_LOOP_INLINE_PROBLEMS</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
can't inline <b>while(), for()</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_BASE_MATCH_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
fails to match a template function argument of base type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_NONTEMPL_BASE_MATCH_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
fails to match a template function argument of base
|
||||
(non-template) type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_NESTED_TYPE_PARAM_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
rejects outline method definition explicitly taking nested types/typedefs</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_TYPENAME_ON_RETURN_TYPE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler requires
|
||||
typename keyword on outline method definition explicitly taking
|
||||
nested types/typedefs </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_BASE_TYPEDEF_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
have serious problems with typedefs</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_BASE_TYPEDEF_OUTSIDE_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the baseclass
|
||||
typedefs not visible from outside</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MEMBER_POINTER_PARAM_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
can't handle pointer-to-member type as function parameter</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_UNINITIALIZABLE_PRIVATE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has problems with static private data members initialization</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_STATIC_ARRAY_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble instantiating static array members with dimension
|
||||
defined as enum.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if default
|
||||
constructor for builtin integer type fails to initialize it to 0 </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_CONST_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if constructor
|
||||
required to explicitly call member's default constructors for
|
||||
const objects</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_TRIVIAL_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble calling <b>POD</b>-types constructors</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_TRIVIAL_DESTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble calling <b>POD</b>-types destructors</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MULTI_CONST_TEMPLATE_ARG_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">problems specializing
|
||||
maps/sets with key type being const </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>__SGI_STL_NO_ARROW_OPERATOR
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler has deficiencie compiling
|
||||
-> operators for iterators. STLport provides proxy workaround for those. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_AT_MEMBER_FUNCTION
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Disables <b>at</b>()
|
||||
member functions for containers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_HAS_NO_NEW_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native C++ library does not provide
|
||||
new-style templatized <b>iostreams</b> </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_EXCEPTION_HEADER
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler lacks <<b>exception</b>>
|
||||
header </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_HAS_NO_NEW_C_HEADERS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native library does not provide new-style headers
|
||||
like <<b>cstddef</b>>, only old-style like: <stddef.h> </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_NEW_NEW_HEADER
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native library does not provide new-style
|
||||
like <<b>new</b>> header. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_VENDOR_GLOBAL_STD </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler-supplied standard library
|
||||
resides in global namespace, not <b>std</b>:: </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">std::</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_VENDOR_GLOBAL_CSTD </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler-supplied <<b>cstdio</b>>
|
||||
and the like put stuff in global namespace, not <b>std</b>:: </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_RAND48</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if C library has <b>lrand48()</b>
|
||||
function</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler headers included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_C_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler's old-style C headers (like <b>stdio.h</b>) included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_CPP_C_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler new-style C headers (like <b>cstdio</b>) included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MAKE_HEADER </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This macro constructs
|
||||
header path from directory and name. You may change it if your
|
||||
compiler does not understand "/". </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><<b>path/header</b>></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This macro constructs
|
||||
native include header path from include path and name. You may
|
||||
have do define it if experiencing problems with preprocessor </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_C_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Same for old-style C headers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_CPP_C_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Same for new-style C headers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_LINK_TIME_INSTANTIATION
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
This switch should be set on if the compiler supports separate template compilation model,
|
||||
with non-inlined functions and methods being defined in implementation .c file.
|
||||
</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>Off</b></font></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<h4> </h4>
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
56
STLPORT/doc/copyrights.html
Normal file
56
STLPORT/doc/copyrights.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Copyrights and Permissions</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Copyrights and Permissions</span>
|
||||
<p> </p>
|
||||
<p>STLport library is</p>
|
||||
<p><b><i>Copyright (c) 1999, 2000 Boris Fomitchev </i></b></p>
|
||||
<p>See<a href="license.html"> license agreement</a> for details.</p>
|
||||
<p>STLport is build upon the <a href="http://www.sgi.com/tech/stl/">SGI
|
||||
STL distribution</a>, which is:</p>
|
||||
<p><b><i>Copyright (c) 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright (c) 1996,97,98,99 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p>The STLport adaptation is historically</p>
|
||||
<p><b><i>Copyright (c) 1997 Moscow Center for SPARC Technology.</i></b></p>
|
||||
<p>STLport is provided pursuant to the following permission notices:</p>
|
||||
<blockquote>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Hewlett-Packard Company
|
||||
makes no representations about the suitability of this software for
|
||||
any purpose. It is provided "as is" without express or
|
||||
implied warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Silicon Graphics makes no
|
||||
representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty.</font></i></p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<i><font size="2">Permission to use, copy, modify, distribute and sell
|
||||
this software and its documentation for any purpose is hereby granted
|
||||
without fee, provided that the above copyright notice appear in all
|
||||
copies and that both that copyright notice and this permission notice
|
||||
appear in supporting documentation. Moscow Center for SPARC Technology
|
||||
makes no representations about the suitability of this software for
|
||||
any purpose. It is provided "as is" without express or
|
||||
implied warranty.</font></i>
|
||||
</blockquote>
|
||||
<p>The Exception Handling Test Suite is</p>
|
||||
<blockquote>
|
||||
<i>Copyright (c) 1997 Mark of the Unicorn, Inc. </i>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Mark of the Unicorn makes
|
||||
no representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty. </font></i></p>
|
||||
</blockquote>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
38
STLPORT/doc/cvs.html
Normal file
38
STLPORT/doc/cvs.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Early Access</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Early access</span>
|
||||
|
||||
<table valign="top" border="0" cellpadding="8" cellspacing="0" width="776">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
<h3>Setting up CVS</h3>
|
||||
Please download 'scvs' script from "http://www.stlport.com/beta/cvsaccess" directory.
|
||||
To use it, you need three programs : perl, cvs and ssh installed on your system.
|
||||
The script is already modified to work with stlpor.com under cygwin.
|
||||
You might have to edit location for your perl installation and cvs program.
|
||||
|
||||
Use this script like that :
|
||||
<p><b>
|
||||
scvs -d pserver:cvs@www.stlport.com/stlport <cvs command>
|
||||
</b>
|
||||
</p>
|
||||
|
||||
<h3>CVS Accounts</h3>
|
||||
Note : example above use "cvs" account -- this allows anonymous readonly access.
|
||||
If you have been given individual account with write permissions, use your account name instead.
|
||||
If you do not have individual account but wish to have one, please submit the patches that you made
|
||||
(using read-only access and cvs diff) along with your request to <a href="mailto:boris@stlport.com">boris@stlport.com</a>.
|
||||
|
||||
More detailed instructions on using scvs script can be found at :
|
||||
|
||||
<a href="http://www.prima.eu.org/tobez/cvs-howto.html">http://www.prima.eu.org/tobez/cvs-howto.html</a>
|
||||
|
||||
<h3>Tags and Branches</h3>
|
||||
STLport CVS repository provides static tags and branches. Branches are provided for bugfixes maintenance.
|
||||
Please use static tags to retrieve particular snapshots.
|
||||
Tags have the form : STLPORT<VERSION_MAJOR><VERSION_MINOR><YYMMDD>, where YYMMDD is the time stamp when the tag was created.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
125
STLPORT/doc/debug_mode.html
Normal file
125
STLPORT/doc/debug_mode.html
Normal file
@@ -0,0 +1,125 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Debug Mode</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport : Debug Mode</span>
|
||||
|
||||
<p><i><font size="2">by Boris Fomitchev</font></i></p>
|
||||
<h3>Abstract</h3>
|
||||
<p>Debug mode lets you find very obscure bugs in application code which uses STL iterators and algorithms. <br>
|
||||
It performs runtime checking of iterator <i>validity and ownership</i> and <i>algorithm
|
||||
preconditions</i>. <br>
|
||||
When debug check reveals the bug, it terminates the program
|
||||
with detailed diagnostics.</p>
|
||||
<p>STLport in debug mode is as much <i>exception-safe</i> and<i>
|
||||
thread-safe</i> as in release mode.</p>
|
||||
<h3>Debugging facilities provided</h3>
|
||||
<ul>
|
||||
<li><b>"Safe iterators" for all STL containers</b>. <br>
|
||||
They report detailed diagnostics when being used in invalid ways.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Checking of preconditions for algorithms and container methods</b>.
|
||||
STLport checks the following reasonable set of preconditions:</li>
|
||||
<ul>
|
||||
<li>Range preconditions for random-access iterators</li>
|
||||
<li>Iterator's ownership, validity and deferenceability</li>
|
||||
<li>Container-specific preconditions for methods</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<h3>Implementation</h3>
|
||||
<p>Checked iterators keep track of their container while the container
|
||||
keeps track of them. The idea was introduced in <b><a href="http://www.horstmann.com/safestl.html">Cay
|
||||
Horstmann's "Safe STL"</a></b>.</p>
|
||||
<ul>
|
||||
<li>If the container goes out of scope, its iterators are being
|
||||
invalidated;</li>
|
||||
<li>If certain iterators are being invalidated because of mutating
|
||||
operation, all instances of this iterator are invalidated.</li>
|
||||
</ul>
|
||||
<h3>Usage</h3>
|
||||
<p>To turn on the debug mode, you should somehow <b><tt>#define _STLP_DEBUG</tt></b>
|
||||
macro before including any STL header. You can either supply the
|
||||
definition via compiler command-line or within CXXFLAGS in your makefile:</p>
|
||||
<p><b><tt>$> CC -g -D_STLP_DEBUG foo.cpp</tt></b></p>
|
||||
<p>Naturally, you may also wrap it into your project configuration
|
||||
header :</p>
|
||||
<p><b><tt># ifdef _NDEBUG<br>
|
||||
# undef _STLP_DEBUG<br>
|
||||
# else<br>
|
||||
# define _STLP_DEBUG 1<br>
|
||||
# endif</tt></b></p>
|
||||
<p><b>Important</b> : you must recompile your project after changing <b><tt>_STLP_DEBUG</tt></b>
|
||||
definition.</p>
|
||||
<h3>Examples</h3>
|
||||
<p>Here are some error examples with corresponding runtime output:</p>
|
||||
<p><tt>char string[23] = "A string to be copied.";<br>
|
||||
char result[23]; <br>
|
||||
copy(string+<u>20</u>, string+<u>10</u>, result);</tt> <br>
|
||||
<b>_debug.h:168 STL error : Range [first,last) is invalid <br>
|
||||
algobase.h:369 STL assertion failure: __check_range(first, last)</b></p>
|
||||
<p><tt>vector<char>::iterator i; <br>
|
||||
char ii = *i; <br>
|
||||
</tt>s<b>tldebug.h:152 STL error : Uninitialized or invalidated (by
|
||||
mutating operation) iterator used<br>
|
||||
vector.h:158 STL assertion failure: __check_dereferenceable(*this)</b></p>
|
||||
<p><tt>vector<char>::iterator i=v2.begin(); <br>
|
||||
v2.insert(v2.begin(),'!'); <br>
|
||||
char ii = *i; <br>
|
||||
</tt><b>_debug.h:152 STL error : Uninitialized or invalidated (by
|
||||
mutating operation) iterator used<br>
|
||||
vector.h:158 STL assertion failure: __check_dereferenceable(*this)</b></p>
|
||||
<p><tt>vector<int> v; v.pop_back();<br>
|
||||
</tt><b>vector.h:482 STL error : Trying to extract an object out from
|
||||
empty container <br>
|
||||
vector.h:482 STL assertion failure: !empty()</b></p>
|
||||
<p><tt>vector <int> v1(10);<br>
|
||||
for(int i = 0; i < v1.size(); i++) <br>
|
||||
v1[i] = i; vector <int> v2(10); <br>
|
||||
copy(v1.begin(), <u><blink>v2</blink></u>.end(), v2.begin());<br>
|
||||
</tt><b>_debug.h:61 STL error : Iterators used in expression are from
|
||||
different owners<br>
|
||||
vector.h:182 STL assertion failure: __check_same_owner(*this,y)</b></p>
|
||||
<p><tt>list<int> l1(array1, array1 + 3); <br>
|
||||
l1.erase(l1.<u>end()</u>);</tt><b> <br>
|
||||
list.h:398 STL error : Past-the-end iterator could not be erased <br>
|
||||
list.h:398 STL assertion failure: position.node!=node </b></p>
|
||||
<p><tt>list<int> l1(array1, array1 + 3); <br>
|
||||
list<int> l2(array2, array2 + 2); <br>
|
||||
l1.erase(<u>l2</u>.begin());</tt><b> <br>
|
||||
_debug.h:70 STL error : Container doesn't own the iterator <br>
|
||||
list.h:397 STL assertion failure: __check_if_owner(node,position) </b></p>
|
||||
<h3>Notes</h3>
|
||||
<ul>
|
||||
<li>Application code using <tt>T*</tt> to store <tt>vector::iterator</tt>
|
||||
would not compile in debug mode. Such code should be fixed - the
|
||||
standard does not specify <tt>vector::iterator</tt>, so different implementations
|
||||
can use different types for it.</li>
|
||||
<li>Miscellanous stuff used by debug engine (<tt>_debug.h</tt>) is
|
||||
not documented on purpose. Never explicitly include or otherwise use
|
||||
it in your code - it's non-standard and is subject to change.</li>
|
||||
|
||||
<li>The ability to throw exceptions instead of calling <tt>abort()</tt>
|
||||
is provided since 3.2. Please comment out _STLP_NO_DEBUG_EXCEPTIONS switch which
|
||||
disables it as default.</li>
|
||||
|
||||
<li> If those two defaults do not match your debugging needs,
|
||||
you may force all failed assertions to be executed through user-defined global function:<br> void __stl_debug_terminate(void). This allows you to take control of assertion behavior for debugging purposes.</li>
|
||||
|
||||
<li>You can control the way the debug checking messages are being printed out by defining
|
||||
your own debug output function. To do so, you should define _STLP_DEBUG_MESSAGE switch in stl_user_config.h and
|
||||
provide your function with the following signature :<br>
|
||||
void __stl_debug_message(const char * format_str, ...). The parameters are printf()-like.
|
||||
STLport will then use it to format debug message output.</li>
|
||||
|
||||
<li>Some preconditions that cannot be checked without partial class
|
||||
template specialization still left alone. (<i>example : for
|
||||
copy(InputIterator first, InputIterator last, OutputIterator result)
|
||||
algorithm, result should not be in range [first,last).</i> )</li>
|
||||
|
||||
<li>Unfortunately, the file/line pairs reported by debug engine always
|
||||
point to STL code, not to application code. I see no way to fix that
|
||||
( although the diagnostic certainly may be refined ). There's
|
||||
no substitute for good debugger to walk up the stack and locate the
|
||||
error.</li>
|
||||
</ul>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
12
STLPORT/doc/doc.css
Normal file
12
STLPORT/doc/doc.css
Normal file
@@ -0,0 +1,12 @@
|
||||
BODY { margin: 0 0; background: #FFFFFF; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; }
|
||||
|
||||
A:link {font-size: 14px; text-decoration:none; color: #0c70b6;}
|
||||
|
||||
A:visited {font-size: 14px; text-decoration:none; color: #0c70b6;}
|
||||
|
||||
.copyright { font-size: 10px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; line-height: 12px; color: #999999; }
|
||||
|
||||
.bottomNav { font-size: 11px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; text-decoration: none; font-weight: bold; color: #325A30; }
|
||||
|
||||
.heading { font-size: 18px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; line-height: 14px; color: #e35a23; }
|
||||
|
||||
85
STLPORT/doc/eh_testsuite.html
Normal file
85
STLPORT/doc/eh_testsuite.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Exception Handling Testsuite</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
<span class="heading">Exception Handling Test Suite for STLport</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Dave Abrahams, Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h2>Synopsis</h2>
|
||||
<p><b><tt>eh_test [-n <iterations>] [-s <size>] [-l] [-e]
|
||||
[-q]/[-v] [-t]</tt></b></p>
|
||||
<h4>Options:</h4>
|
||||
<ul>
|
||||
<li><tt>[<b>-n <iterations></b>] </tt>: number of test
|
||||
iterations, default==100;</li>
|
||||
<li><tt>[<b>-s <size></b>]</tt> : base value for random
|
||||
container sizes, default==1000;</li>
|
||||
<li><tt>[<b>-e</b>]</tt> : don't throw exceptions, test for leak in
|
||||
normal conditions;</li>
|
||||
<li><tt>[<b>-q</b>]</tt> : quiet mode;</li>
|
||||
<li><tt>[<b>-v</b>]</tt> : verbose mode (default);</li>
|
||||
<li><tt>[<b>-t</b>]</tt> : track each allocation;</li>
|
||||
<li><tt>[<b>test_name</b> [<b>test_name</b>...]]</tt> : run <b>test_name</b>
|
||||
tests (<b>default</b>==all). <br>
|
||||
Names are : <b>algo, vector, bit_vector, list, slist, deque, set,
|
||||
map, hash_set, hash_map, rope, string, bitset</b>.</li>
|
||||
</ul>
|
||||
<h2>The Story</h2>
|
||||
<p>The testsuite was written by Dave Abrahams for testing of proposed EH
|
||||
for SGI STL . Shortly, EH was merged into STLport v1.0. That wasn't
|
||||
long until EH was introduced in SGI STL distribution,
|
||||
too (a bit different approach was used). This test helped to locate and
|
||||
fix some EH bugs in 2.0-2.02 releases of SGI STL. As a side effect,
|
||||
it reveals problems in some compiler's EH implementation (typically
|
||||
they show up when you are trying turning on some optimizations).</p>
|
||||
<h2>Portability</h2>
|
||||
<p>EH testsuite can be compiled and run with the following
|
||||
compilers :</p>
|
||||
<ul>
|
||||
<li>SunPro CC 4.1-4.2 (passed OK)</li>
|
||||
<li>Metrowerks CodeWarrior Pro 1 (passed OK)</li>
|
||||
<li>Visual C++ 4.1 (hashed container tests won't compile, compiler bug
|
||||
produce false alarms for list test, other passed.)</li>
|
||||
<li>Visual C++ 5.0 (passed OK).</li>
|
||||
<li>Borland C++ 5.0 (passed OK).</li>
|
||||
<li>gcc-2.7.2 (without EH, actually ;))</li>
|
||||
<li>egcs-970922 (fails to run, dumps core in __throw implemetation).</li>
|
||||
</ul>
|
||||
<p>Makefiles for <b>gcc</b>, <b>SUNPro</b>, <b>Visual C++</b> compilers
|
||||
are provided with the suite. Look for <i>.mak</i> files in the
|
||||
distribution. It should be not difficult to adjust one of them to your
|
||||
compiler.</p>
|
||||
<h2>How To</h2>
|
||||
<p>EH testsuite comes in directory <b>test/eh</b> with your STLport
|
||||
distribution. Edit appropriate makefile to fit your compiler and include
|
||||
directories . After you've done, try "<i>make check</i>". That
|
||||
should build test executable and run it with default options (see
|
||||
Synopsis). If writing your own makefile or working from within some IDE,
|
||||
you should specify the following switches to get proper testing :</p>
|
||||
<p><tt>_STLP_USE_NEWALLOC</tt> - use new-based allocator (that will
|
||||
promptly throw on common test scheme). Otherwise, only
|
||||
assignment/comparison will throw,</p>
|
||||
<p><tt>_STLP_USE_DEBUG_ALLOC</tt> - to catch other potential memory
|
||||
problems.</p>
|
||||
<p><tt>EH_NEW_HEADERS - </tt>if you wish to use new-style C++ headers.
|
||||
This option may be useful to test some other STL implementation.</p>
|
||||
<p>For Borland C++ 5.x , you have to <tt>#define _STLP_NO_NAMESPACES</tt>
|
||||
to compile.</p>
|
||||
<p>For 16-bit platforms, you have to #define NO_FAST_ALLOCATOR to
|
||||
compile.</p>
|
||||
<p>The testsuite may be used to test not only STLport adaptation against
|
||||
particular compiler. It does not contain any adaptation-specific code,
|
||||
so it may be used with regular SGI release (note <tt>_STLP_USE_NEWALLOC </tt>has
|
||||
no effect<tt> </tt>then) or with other STL implementation (hash
|
||||
containers and rope may not work).</p>
|
||||
<h3>Copyright</h3>
|
||||
<p>This software is<br>
|
||||
<i>Copyright (c) 1997 Mark of the Unicorn, Inc. </i></p>
|
||||
<p><i><font size="1">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Mark of the Unicorn makes no
|
||||
representations about the suitability of this software for any purpose.
|
||||
It is provided "as is" without express or implied warranty. </font></i>
|
||||
</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
471
STLPORT/doc/exception_safety.html
Normal file
471
STLPORT/doc/exception_safety.html
Normal file
@@ -0,0 +1,471 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Exception Handling</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Exception Safety in STLport</span>
|
||||
<p>
|
||||
<font size="2"><em><strong>by Dave Abrahams</strong></em></font>
|
||||
</p>
|
||||
<h2><a name="guarantees"></a>Basic Library Guarantees</h2>
|
||||
<p><b>STLport makes the guarantee that</b> <b>no resources are leaked in
|
||||
the face of exceptions</b>.</p>
|
||||
<p><b>This means:</b></p>
|
||||
<ul>
|
||||
<li>By the time a container's destructor completes:</li>
|
||||
<ul>
|
||||
<li>It has returned all memory it has allocated to the appropriate
|
||||
deallocation function.</li>
|
||||
<li>The destructor has been called for all objects constructed by
|
||||
the container.</li>
|
||||
</ul>
|
||||
<li>Algorithms destroy all temporary objects and deallocate all
|
||||
temporary memory even if the algorithm does not complete due to an
|
||||
exception.</li>
|
||||
<li>Algorithms which construct objects (e.g. <tt>uninitialized_fill</tt>)
|
||||
either complete successfully or destroy any objects they have
|
||||
constructed at the time of the exception.</li>
|
||||
<li>Algorithms which destroy objects always succeed.</li>
|
||||
</ul>
|
||||
<h4>Additionally:</h4>
|
||||
<ul>
|
||||
<li>Algorithms which operate on ranges of objects leave only
|
||||
fully-constructed objects in those ranges if they terminate due to
|
||||
an exception.</li>
|
||||
<li>Containers continue to fulfill all of their requirements, even
|
||||
after an exception occurs during a mutating function. For example, a
|
||||
map will never give an inaccurate report of its size, or fail to
|
||||
meet its performance requirements because the tree that implements
|
||||
it has become unbalanced.</li>
|
||||
<li>A stronger guarantee is available for some operations: that <i>if
|
||||
the operation terminates due to an exception, program state will
|
||||
remain unchanged</i>. For example, <tt>vector<T,A>::push_back()</tt>
|
||||
leaves the vector unchanged if an exception is thrown, provided the
|
||||
library client fulfills the <a href="#basic_requirements">basic
|
||||
requirements</a> below. For some operations, the "<a href="#Strong%20Guarantee">strong
|
||||
guarantee</a>" is available if additional requirements are
|
||||
filled.</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<p><a name="basic_requirements"></a><b><font size="+2">Basic Client
|
||||
Requirements</font></b></p>
|
||||
<p><b>The <a href="#guarantees">library guarantees</a> above are
|
||||
conditional on some requirements that library clients must fulfill.</b></p>
|
||||
<p><b>The following operations must return normally - they are forbidden
|
||||
to terminate due to an exception:</b></p>
|
||||
<ul>
|
||||
<li>Destructors of any classes used by the library. This includes all
|
||||
classes used as library template parameters. It also includes all
|
||||
classes which fulfill "type requirements" of classes used
|
||||
as library templates- an allocator's <tt>size_type</tt>, for
|
||||
example.</li>
|
||||
<li>Valid uses of any of the required functionality of the following
|
||||
types. Note that invalid uses (e.g. comparison of two iterators from
|
||||
different containers) are not prohibited from throwing an exception.
|
||||
Presumably, invalid uses would cause worse problems than resource
|
||||
leaks:</li>
|
||||
<ul>
|
||||
<li>The ForwardIterator arguments to the following:</li>
|
||||
<ul>
|
||||
<li><tt>uninitialized_copy(InputIterator first, InputIterator
|
||||
last, ForwardIterator result)</tt></li>
|
||||
<li><tt>uninitialized_fill(ForwardIterator first, ForwardIterator
|
||||
last, const T& x)</tt></li>
|
||||
<li><tt>uninitialized_fill_n(ForwardIterator first, Size n, const
|
||||
T& x)</tt></li>
|
||||
<li><tt>destroy(ForwardIterator first, ForwardIterator last)</tt></li>
|
||||
</ul>
|
||||
<li>An allocator's <tt>deallocate()</tt> function</li>
|
||||
<li>Any of the required allocator types:</li>
|
||||
<ul>
|
||||
<li><tt>pointer</tt></li>
|
||||
<li><tt>const_pointer</tt></li>
|
||||
<li><tt>reference</tt></li>
|
||||
<li><tt>const_reference</tt></li>
|
||||
<li><tt>size_type</tt></li>
|
||||
<li><tt>difference_type</tt></li>
|
||||
</ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<p>Note: Algorithms like <tt>copy()</tt> expect that they are copying
|
||||
into real objects. The use of <tt>raw_storage_iterator</tt> with most
|
||||
algorithms is inherently exception-unsafe:</p>
|
||||
<ul>
|
||||
<p><tt>// objects of the same type as *iterator1 may be leaked if a
|
||||
failure occurs.<br>
|
||||
copy( iterator1, iterator2, raw_storage_iterator( ptr ) ); </tt></p>
|
||||
</ul>
|
||||
<p>Furthermore, there is no way to properly recover from this using an
|
||||
enclosing <tt>try</tt>/<tt>catch </tt>block, because <tt>raw_storage_iterator</tt>
|
||||
has no function in its public interface to tell you how far it has been
|
||||
advanced.</p>
|
||||
<p> </p>
|
||||
<h2><a name="Strong%20Guarantee"></a>The "Strong Guarantee"</h2>
|
||||
<p>In many programs, some objects will be destroyed automatically during
|
||||
exception-unwinding. For these, the basic guarantee that resources won't
|
||||
be leaked is good enough. If a program hopes to survive an exception and
|
||||
continue running, though, it probably also uses long-lived containers
|
||||
which are expected to survive past exception-recovery in a known state.
|
||||
For example, a program could maintain a list of objects representing
|
||||
tasks it is working on. If adding a task to that list fails, the program
|
||||
may still need to rely on the list. If the list must survive an
|
||||
exception intact, we need the strong guarantee:</p>
|
||||
<ul>
|
||||
<p><i>If an exception is thrown, the operation has no effects.</i></p>
|
||||
</ul>
|
||||
<p>You can get the strong guarantee by "brute force" for any
|
||||
container operation as follows, provided the container's <tt>swap()</tt>
|
||||
member function can't fail (this is true for most real-world
|
||||
containers):</p>
|
||||
<p><tt>container_type container_copy( original_container ); <br>
|
||||
container_copy.mutating_operation(...); <br>
|
||||
original_container.swap( container_copy );</tt></p>
|
||||
<p>Fortunately, many mutating operations give the strong guarantee with
|
||||
no additional requirements on the client. To get the strong guarantee
|
||||
for others, you can either use the above technique or conform to some <a href="#additional_requirements">additional
|
||||
requirements</a>.</p>
|
||||
<p> </p>
|
||||
<h3>Operations that give the "strong guarantee" with no
|
||||
additional requirements</h3>
|
||||
<p><a name="1"></a><i>( Operations labelled with * are guaranteed to
|
||||
return normally if all <a href="#basic_requirements">basic requirements</a>
|
||||
have been met) </i></p>
|
||||
<ul>
|
||||
<li><tt>uninitialized_fill()</tt></li>
|
||||
<li><tt>uninitialized_copy()</tt></li>
|
||||
<li><tt>uninitialized_fill_n()</tt></li>
|
||||
<li><tt>deque<T,A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>swap(deque<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&)</tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_front(const T&)</tt></li>
|
||||
<li><tt>pop_front()</tt> <a href="#1">*</a></li>
|
||||
</ul>
|
||||
<li><tt>list<T,A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const T& x = T())</tt></li>
|
||||
<li><tt>insert(iterator position)</tt></li>
|
||||
<li><tt>push_back(const T&)</tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_front(const T&)</tt></li>
|
||||
<li><tt>pop_front()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x)</tt>
|
||||
<a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x,
|
||||
iterator i)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x,
|
||||
iterator first, iterator last)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>swap(list<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>reverse()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>vector<T, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>reserve(size_type n)</tt></li>
|
||||
<li><tt>swap(vector<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&) </tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
</ul>
|
||||
<li><tt>bit_vector<A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>reserve(size_type n)</tt></li>
|
||||
<li><tt>swap(bit_vector&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&) </tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>insert(iterator position, bool x = bool())</tt></li>
|
||||
<li><tt>insert(iterator position)</tt></li>
|
||||
<li>insert(iterator position, const_iterator first, const_iterator
|
||||
last)</li>
|
||||
<li>insert(iterator position, const bool* first, const bool* last)</li>
|
||||
<li>insert(iterator position, size_type n, bool x)</li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>map<K, T, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>operator[](const key_type& k)</tt></li>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x) </tt></li>
|
||||
<li><tt>erase(const key_type& x) <a href="#1">*</a> </tt></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>set<K, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>multimap<K, T, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>multiset<K, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_map<K, T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_multimap<K, T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_set<T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_multiset<T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>clear()</tt> for all containers <a href="#1">* </a></li>
|
||||
<li>all container const member functions <a href="#1">*</a></li>
|
||||
<li>all constructors, by language definition (included for
|
||||
completeness)</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<h3><a name="additional_requirements"></a><b><font size="+2">Strong
|
||||
guarantee requirements for other mutating container operations</font></b></h3>
|
||||
<p><a name="2"></a><i>Operations labelled with * are guaranteed to
|
||||
return normally if all additional requirements have been met) </i></p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="80%">
|
||||
<caption><b>Definition of terms</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Term</i></b></td>
|
||||
<td><b><i>Meaning, when applied to a type <tt>T<br>
|
||||
</tt></i></b><i>(<tt>x</tt> and <tt>y</tt>of type <tt>T</tt>)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP">"guaranteed copyable"</td>
|
||||
<td valign="TOP"><tt>T z(x)</tt> and <tt>x = y</tt> may not exit via
|
||||
exception.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"guaranteed equality-comparable"</td>
|
||||
<td valign="TOP"><tt>x == y</tt> may not exit via exception.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"guaranteed comparable"</td>
|
||||
<td><tt>x < y</tt> may not exit via exception.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>deque<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>insert(iterator position, const T& x)<br>
|
||||
insert(iterator position)</tt></td>
|
||||
<td valign="TOP"><tt>position == begin() || position == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator position)</tt></td>
|
||||
<td><tt>position == begin() || position == end() - 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator first, iterator last)</tt></td>
|
||||
<td><tt>first == begin() || last == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>resize(size_type new_size, const T& x)<br>
|
||||
resize(size_type new_size)</tt></td>
|
||||
<td valign="TOP"><tt>new_size == size() + 1<br>
|
||||
</tt><b>OR </b><tt>new_size <= size()</tt> <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>list<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>remove(const T& value)</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed equality-comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>unique()</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed equality-comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>merge(list<T, Alloc>& x)</tt></td>
|
||||
<td><tt>T</tt> guaranteed comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>sort()</tt></td>
|
||||
<td><tt>T</tt> guaranteed comparable</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>vector<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>insert(iterator position, const T& x)<br>
|
||||
insert(iterator position)</tt></td>
|
||||
<td valign="TOP"><tt>position == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert (iterator position, const_iterator first,
|
||||
const_iterator last);</tt>
|
||||
<br><tt>void insert (iterator position, size_type n, const T&
|
||||
x);</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator position)</tt></td>
|
||||
<td><tt>position == end() - 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator first, iterator last)</tt></td>
|
||||
<td><tt>last == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>resize(size_type new_size, const T& x)<br>
|
||||
resize(size_type new_size)</tt></td>
|
||||
<td><tt>new_size == size() + 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable<br>
|
||||
<b>OR </b><tt>new_size <= size()</tt> <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>Basic Associative Container member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>map<Key,T,Compare,A>::swap(map<Key,T,Compare,A>&
|
||||
amp; amp;)</tt></td>
|
||||
<td valign="TOP"><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>multimap<Key,T,Compare,A>::swap(multimap<Key,T,Compare,A&a
|
||||
mp;g t;&)</tt></td>
|
||||
<td valign="TOP"><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>set<T,Compare,A>::swap(set<T,Compare,A>&)</tt></td>
|
||||
<td><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>multiset<T,Compare,A>::swap(multiset<T,Compare,A>&)
|
||||
</tt></td>
|
||||
<td><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_map<K, T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_map<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>operator[](const key_type& k)</tt></td>
|
||||
<td><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_multimap<K, T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_multimap<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_set<T, HashFcn, EqualKey, A> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_set<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_multiset<T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_multiset<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
BIN
STLPORT/doc/images/black.gif
Normal file
BIN
STLPORT/doc/images/black.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 B |
BIN
STLPORT/doc/images/stl_logo_doc.gif
Normal file
BIN
STLPORT/doc/images/stl_logo_doc.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
STLPORT/doc/images/t_doc2.gif
Normal file
BIN
STLPORT/doc/images/t_doc2.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
STLPORT/doc/images/trans.gif
Normal file
BIN
STLPORT/doc/images/trans.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 B |
56
STLPORT/doc/index.html
Normal file
56
STLPORT/doc/index.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: STLport Documentation Index</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport Documentation Index</span>
|
||||
<br><br>
|
||||
|
||||
<table border="0" cellpadding="8" cellspacing="0">
|
||||
<tr>
|
||||
<td valign="top" align="left" nowrap="">
|
||||
<b>Introduction</b><br>
|
||||
|
||||
<a href="index.html">Documentation Index</a><br>
|
||||
<a href="sgi_stl.html">SGI STL Base</a><br>
|
||||
<a href="story.html">STLport Story</a><br>
|
||||
<!--   <a href="projects.html">Portofolio</a> -->
|
||||
|
||||
<p><b>STLport Features</b><br>
|
||||
<a href="platforms.html">Portability</a><br>
|
||||
<a href="debug_mode.html">Debug Mode</a><br>
|
||||
<a href="sgi_stl.html#thread_safety">Thread Safety</a><br>
|
||||
<a href="exception_safety.html">Exception Safety</a>
|
||||
</p>
|
||||
|
||||
<p><b>Getting Started</b><br>
|
||||
|
||||
<a href="install.html">Download and Install</a><br>
|
||||
<a href="select_io.html">Select Streams Mode</a><br>
|
||||
<a href="use_stlport.html">Compiling with STLport</a>
|
||||
</p>
|
||||
</td>
|
||||
|
||||
<td valign="top" align="left" nowrap="">
|
||||
<p><b>White Papers</b><br>
|
||||
<a href="release_notes.html">Release Notes</a><br>
|
||||
<!--   <a href="FAQ.html">FAQ</a><br/> -->
|
||||
<a href="compiler_readmes.html">READMEs</a><br>
|
||||
<a href="vendor_interface.html">Interface with std::</a><br>
|
||||
<a href="wrappers.html">Wrappers</a><br>
|
||||
<a href="configure.html">Config manual</a><br>
|
||||
<a href="testsuite.html">Regression Test</a><br>
|
||||
<a href="eh_testsuite.html">Exception Test</a>
|
||||
</p>
|
||||
|
||||
<p><b>Feedback</b><br>
|
||||
<a href="bug_report.html">Bug Reports</a><br>
|
||||
<a href="http://www.stlport.com/cgi-bin/forum/forum.cgi">Forum</a><br>
|
||||
</p>
|
||||
|
||||
<p><b>Appendix</b><br>
|
||||
<a href="thanks.html">Acknowledgements</a><br>
|
||||
<!--   <a href="copyrights.html">Copyrights</a><br/> -->
|
||||
<a href="license.html">Your Free Licence</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
45
STLPORT/doc/install.html
Normal file
45
STLPORT/doc/install.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Installing STLport</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
|
||||
<span class="heading">Getting Started: Installing STLport</span>
|
||||
|
||||
<h3><b><a name="download"></a>Download</b></h3>
|
||||
To get STLport, please visit <a href="http://www.stlport.com/download.html">download page at stlport.com</a>.
|
||||
It provides STLport releases from 2.x to the latest one as well as beta snapshots.
|
||||
If you are interested in contributing to STLport development, please take a look at <a href="http://www.stlport.com/early_access.html">Early Access page</a>.
|
||||
|
||||
<h3><b><a name="unpack"></a>Unpack</b></h3>
|
||||
<p>After downloading <b>STLport-XXX.tar.gz </b>[<b>zip</b>],
|
||||
unpack it to some place where it is going to be accesible for all
|
||||
compilers you plan to use with this installation.
|
||||
<br><b>Note</b> : <b>Never</b> overwrite header files that come with the compiler,
|
||||
even if you made a backup - this won't work!
|
||||
Also, please make sure you do not rename this <b>"stlport"</b> subdirectory
|
||||
into anything else - that may render installation unusable.
|
||||
</p>
|
||||
|
||||
<h3><b><a name="adjust"></a>Setup Preferences</b></h3>
|
||||
|
||||
<p>Look through <tt><<b>stl/_site_config.h</b>></tt> and <tt><<b>stl_user_config.h</b>></tt>
|
||||
to adjust <a href="configure.html">preferences</a>.</p>
|
||||
|
||||
<p>
|
||||
<b>Do NOT</b> attempt to run "configure" script!
|
||||
It is deprecated, moved to safe standalone
|
||||
folder and should be used as a helper to create initial config for a new compiler only.
|
||||
Your compiler should be auto-recognized.
|
||||
Please edit appropriate configuration header for your compiler
|
||||
directly if you have to make small compiler-specific configuration changes.
|
||||
</p>
|
||||
|
||||
<p>Only if you recieve error message during compilation which explicitly says
|
||||
<i><b>"Your compiler version is not recognized by STLport"</b></i>, you
|
||||
will have to do major configuration of STLport before use.
|
||||
To learn how to configure STLport, please read
|
||||
<a href="configure.html">configuration manual</a>.
|
||||
</p>
|
||||
|
||||
<p>Please be sure to read about <a href="select_io.html">STLport iostreams modes</a>
|
||||
and select the one appropriate for your project before using the library.</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
68
STLPORT/doc/license.html
Normal file
68
STLPORT/doc/license.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: License Agreement</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">License Agreement</span>
|
||||
|
||||
<p><b>Boris Fomitchev</b> grants <b>Licensee</b> a non-exclusive,
|
||||
non-transferable, royalty-free license to use <b>STLport</b> and its
|
||||
documentation without fee.<br>
|
||||
<br>
|
||||
By downloading, using, or copying <b>STLport</b> or any portion thereof,
|
||||
<b>Licensee</b> agrees to abide by the intellectual property laws and all other
|
||||
applicable laws of the United States of America, and to all of the terms and
|
||||
conditions of this Agreement.<br>
|
||||
<br>
|
||||
<b>Licensee</b> shall maintain the following copyright and permission
|
||||
notices on <b>STLport </b>sources and its documentation unchanged :</p>
|
||||
|
||||
|
||||
<b>Copyright 1999,2000 Boris Fomitchev</b><br>
|
||||
<br>
|
||||
This material is provided "as is", with absolutely no warranty
|
||||
expressed or implied. Any use is at your own risk.<br>
|
||||
Permission to use or copy this software for any purpose is hereby granted
|
||||
without fee, provided the above notices are retained on all copies. Permission
|
||||
to modify the code and to distribute modified code is granted, provided the
|
||||
above notices are retained, and a notice that the code was modified is included
|
||||
with the above copyright notice.
|
||||
|
||||
|
||||
<p>The <b>Licensee</b> may distribute binaries compiled with <b>STLport</b>
|
||||
(whether original or modified) without any royalties or restrictions.</p>
|
||||
<p>The <b>Licensee</b> may distribute original or modified <b>STLport</b> sources,
|
||||
provided that:</p>
|
||||
<ul>
|
||||
<li>The conditions indicated in the above permission notice are met;</li>
|
||||
<li>The following copyright notices are retained when present, and conditions
|
||||
provided in accompanying permission notices are met :</li>
|
||||
</ul>
|
||||
<p><b><i>Copyright 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright 1996,97 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p><b><i>Copyright 1997 Moscow Center for SPARC Technology.</i></b></p>
|
||||
<blockquote>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Hewlett-Packard Company makes no representations about the
|
||||
suitability of this software for any purpose. It is provided "as is"
|
||||
without express or implied warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Silicon Graphics makes no representations about the suitability
|
||||
of this software for any purpose. It is provided "as is" without
|
||||
express or implied warranty.</font></i></p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Moscow Center for SPARC Technology makes no
|
||||
representations about the suitability of this software for any purpose. It is
|
||||
provided "as is" without express or implied warranty.</font></i>
|
||||
</blockquote>
|
||||
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
50
STLPORT/doc/platforms.html
Normal file
50
STLPORT/doc/platforms.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Platforms</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Compilers supported by STLport</span>
|
||||
<p>Portability is a key feature of STLport. It allows for having single,
|
||||
thoroughly tested code base on all platforms used in the project.</p>
|
||||
<p>STLport was reported to work with the compilers listed below.</p>
|
||||
<p>Please follow links to see README files for particular compilers.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b><a href="README.sunpro.html">
|
||||
SUN Workshop C++ Compilers 4.0.x-5.0, 5.1, 5.2 (Forte 6, 6u1, 6u2)</a>, for Solaris</b></li>
|
||||
<li><b><a href="README.gcc.html">
|
||||
GNU GCC 2.7.2-2.95, 3.0 Compilers</a>, for all GCC platforms</b></li>
|
||||
<li><a href="README.xlC.html">
|
||||
IBM xlC 3.1.4.0</a>, for AIX</li>
|
||||
<li><b><a href="README.os390.html">
|
||||
IBM OS/390 C/C++ 1.x - 2.x Compiler</a>, for OS/390
|
||||
<i>(STLport is the only available and
|
||||
<a href="http://www.software.ibm.com/ad/c390/cmvsstlp.htm">official</a>
|
||||
ANSI library for this platform)</i></b></li>
|
||||
<li><b>IBM VisualAge/ILE C++ for AS/400 Version 4 Release 4, for AS/400</b></li>
|
||||
<li><b><a href="README.xlC.html">
|
||||
IBM Visual Age C++ 3.x-5.x</a>, for OS/2 and Win32</b></li>
|
||||
<li><b><a href="README.aCC.html">
|
||||
HP ANSI C++ Compiler, for HP-UX</a></b></li>
|
||||
<li><b>SGI MIPSpro C++ 7.x, for IRIX</b></li>
|
||||
<li><b><a href="README.sgi40.html">
|
||||
SGI MIPSpro C++ 4.0</a>, for IRIX</b></li>
|
||||
<li><a href="README.DEC.html"><b>
|
||||
DEC C++ V5.5-004, V6.x for OSF 3.2/4.0, for Digital Unix</b></a>.</li>
|
||||
<li><b>Tandem NCC, for Tandem OS</b></li>
|
||||
<li><b>SCO UDK C++, for UnixWare</b></li>
|
||||
<li><b>Apogee C++ 4.0, for SUN Solaris</b></li>
|
||||
|
||||
<li><b>KAI C++ 3.1-4.x, for all KAI platforms</b></li>
|
||||
<li><b>Portland Group C++ compiler ( pgCC), for all pgCC platforms</b></li>
|
||||
|
||||
<li><b><a href="README.VC++.html">Microsoft Visual C++ 4.x - 6.x, for Win32</a></b></li>
|
||||
<li><b><a href="README.VC++.html">Microsoft Embedded Visual C++ 3.0</a></b></li>
|
||||
<li><b><a href="README.BC.html">Borland C++ 5.02-5.5</a>, for Win16/32</b></li>
|
||||
<li><b><a href="README.CW.html">Metrowerks CodeWarrior Pro 1.8-5.3</a>, for MacOS, Win32</b></li>
|
||||
<li><b>Intel (R) C++ 4.0/4.5/5.0 Reference Compiler, for Win32</b></li>
|
||||
<li><b>Watcom C++ 10.x-11.0, for DOS, Win16, Win32</b></li>
|
||||
<li><b><a href="README.pow.html">Powersoft's Power++ 2.0</a>, for Win32</b></li>
|
||||
<li><b>Symantec C++ 7x/8.x, for MacOS and Win32</b></li>
|
||||
<li><b><a href="README.MPW.html">Apple MPW MrCpp and SCpp compilers</a>, for MacOS</b></li>
|
||||
</ul>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
244
STLPORT/doc/projects.html
Normal file
244
STLPORT/doc/projects.html
Normal file
@@ -0,0 +1,244 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Real World Projects</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport Portfolio - Real World Projects</span>
|
||||
|
||||
<p>Many people still won't consider using STL in industrial projects.
|
||||
The reason is often that the code could may turn out to be nonportable,
|
||||
while it must also be compiled with some legacy compiler X on platform Y
|
||||
. With STLport, you can use single tested STL codebase in a
|
||||
multiplatform project. Below is very incomplete list of <b>software
|
||||
projects using STLport </b><i>(thanks to all contributors who have
|
||||
submitted the information)</i>.</p>
|
||||
<p><i>Coming soon : <b>Add Your Project</b></i><br></p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.ipmce.su">Moscow Center for
|
||||
SPARC Technology</a></i></p>
|
||||
<h3>Project : CPU Architecture Simulation</h3>
|
||||
<dl>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Scalable set of compatible VLIW ISA CPU simulators varying in
|
||||
speed/accuracy. Team of 6, extensive use of STL utilities and
|
||||
concepts.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Solaris 2.x/SunPro CC 4.2, to be ported to Windows NT/VC++.</dd>
|
||||
</dl>
|
||||
<h3> </h3>
|
||||
<hr width="100%">
|
||||
<i>Organization: <a href="http://www.motu.com">Mark of the Unicorn,
|
||||
Inc.</a></i>
|
||||
<h3>Product : "Composer's Mosaic"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>State-of-the-art music desktop publishing software for the
|
||||
Macintosh. Provides a WYSIWYG environment in which you can produce
|
||||
publication-quality music notation, from lead sheets to full
|
||||
orchestra scores. Includes real-time MIDI playback and recording,
|
||||
using the transcription engine that Keyboard magazine called
|
||||
"The best we've ever seen". Also supports convenient
|
||||
step-record and mouse and keyboard note entry. Supports standard
|
||||
MIDI file format. Unlimited voices, staves, and voices per staff.
|
||||
Unlimited Undo/Redo.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Mac/CodeWarrior Pro 1</dd>
|
||||
<p><b>Availability :</b> demo version coming in a few weeks.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.motu.com">Mark of the Unicorn,
|
||||
Inc.</a></i></p>
|
||||
<h3>Product : "FreeStyle"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Trackless MIDI sequencing and notation program for songwriters and
|
||||
arrangers, combining simplicity and ease-of-use with sophisticated
|
||||
features that allow users to work in musically intuitive ways.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Mac/CodeWarrior Pro 1 , Windows/Borland C++</dd>
|
||||
<p><b>Availability :</b> demo version coming in a few weeks.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.usc.edu">University of
|
||||
Southern California</a></i></p>
|
||||
<h3><a href="http://selforg.usc.edu:8376/~dyweb/frp.html">Project :
|
||||
Face Recognition</a></h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Face recognition system called FLAVOR(formerly called Eidos),
|
||||
which uses an elastic graph matching algorithm.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>IRIX 6.2 on<b> </b>SGI Power Challenge XL/SGI MipsPro C++ v. 7.1,<b>
|
||||
</b>Wintel port coming.</dd>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.ucla.edu">University of
|
||||
California at Los Angeles </a>, <a href="http://www.cs.ucla.edu">Computer
|
||||
Science Department</a></i> <br>
|
||||
<i><a href="http://vlsicad.cs.ucla.edu">VLSI CAD Laboratory - ABKGroup</a></i></p>
|
||||
<h3>Project : VLSI placement/routing</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Extensively use most aspects of STL in algorithm research for
|
||||
placement and routing of VLSI circuits. Developers at site: 5.
|
||||
Working code using STL: exceeds 20,000 lines.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>SunPro CC4.2 (Solaris) and MSVC++ 5.0 (Windows NT/'95)</dd>
|
||||
<p><i>Contact email: <abk@cs.ucla.edu> <imarkov@cs.ucla.edu></i></p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization:<a href="mailto:100023.3267@compuserve.com">Askesis
|
||||
B.V</a></i></p>
|
||||
<h3>Product : "ICAS"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>A client/server patient database management system for the
|
||||
intensive care departement in the hospital of the University of
|
||||
Nijmegen in the Netherlands. Includes a TCP/IP Winsocket, an ODBC
|
||||
class library and a code generator for creating the database code
|
||||
based on the ODBC class library. Uses the container classes heavily.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>IBM Visual Age C++ for Windows, DB/2 for Windows NT, Windows
|
||||
NT/Windows 95 and Windows 3.11.</dd>
|
||||
<dt><b>Availability :</b></dt>
|
||||
<dd>The TCP/IP and ODBC database libary with the code generator will
|
||||
be released in under GNU Library Genereral Public Licence within a
|
||||
few weeks.</dd>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.entegrity.com">Entegrity
|
||||
Solutions Inc</a></i></p>
|
||||
<h3>Product : "Security Development Platform"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>A comprehensive framework/library for developping secure
|
||||
applications. Includes symmetric and assymetric cryptography and
|
||||
complete public key infrastructure (CA) functionality. Extensive use
|
||||
of STL throughout the project.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Solaris 2.5 with SunCC 4.2 using STL adaption + extra basic_string.
|
||||
Windows NT4 with MS Visual C++ 5.0 using MS STL implementation.
|
||||
Compatibility between MS STL and STL adaption is good when limiting
|
||||
usage to common classes.</dd>
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
Beta release (NT only) due end of September.
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://darwin.cwru.edu">Case Western
|
||||
Reserve University School of Medicine,</a></i> <br>
|
||||
<i><a href="http://darwin.cwru.edu">Department of Molecular and
|
||||
Genetic Epidemiology, S.A.G.E. Group</a></i></p>
|
||||
<h3>Product : "S.A.G.E. (Statistical Analysis for Genetic
|
||||
Epidemiology)"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>For detailed package information, see <a href="http://darwin.cwru.edu.">http://darwin.cwru.edu.</a>
|
||||
Use of the STL : in upcoming 4.0 release, ~50k+ lines of code relies
|
||||
heavily on the standard library containers and to a lesser degree on
|
||||
the standard algorithms. Code also compiles with Kuck &
|
||||
Associate's modified Moderna STL and DeltaLogic's XTL.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Alpha Digital Unix 4.0/g++ 2.7.2.1, Digital C++ 5.5 ; Sparc
|
||||
Solaris 2.5/g++ 2.7.2.1, SunPro C++; i386 Linux 2.x/g++ 2.7.2.1</dd>
|
||||
<dt><b>Availability :</b> check <a href="http://darwin.mhmc.cwru.edu/pub/sage.html">S.A.G.E
|
||||
homepage</a>.</dt>
|
||||
<dt><i>Contact e-mail: </i><a href="mailto:jacobs@darwin.cwru.edu">jacobs@darwin.cwru.edu</a></dt>
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: </i><a href="mailto:info@formatek.com">Formatek
|
||||
Inc.</a></p>
|
||||
<h3>Product : "Softmap"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd><b>SoftMap</b> is a GIS software bundled to a set of standard maps
|
||||
(topographic maps, city maps, thematic maps) on CD-ROM to which
|
||||
complementary georeferenced data can be added: topologically
|
||||
structured nodes, vectors, polygons, icons and texts. As SoftMap is
|
||||
a multimedia software, it is possible to link to the above graphic
|
||||
elements attributes, images, external files, data base records etc.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Windows/Borland C++</dd>
|
||||
<dt><b>Availability :</b> check <a href="http://www.naturinfo.com">http://www.naturinfo.com</a>.</dt>
|
||||
<dt><b>Contact e-mail:</b> <a href="mailto:info@formatek.com">info@formatek.com</a></dt>
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.int.com">Interactive Network
|
||||
Technologies, Inc (INT)</a></i></p>
|
||||
<h3>Product : "Carnac", Graphics Toolkit</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd><b>Carnac</b> is a multi-platform high-performance graphics
|
||||
toolkit written in C++ targeted at handling of huge volumes of
|
||||
graphics information: maps, geoscience, satellite images and so on.
|
||||
Carnac includes database components (spatial-organized geometry,
|
||||
visual attributes), view management, data management, distributed
|
||||
components and platform-specific drivers..</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Microsoft Windows NT, Sun Solaris, SGI IRIX and IBM AIX. Other
|
||||
platforms may be added.</dd>
|
||||
<dt><b>Availability:</b></dt>
|
||||
<dd>check the <a href="http://www.int.com/product/carnac/index.html">Carnac
|
||||
Web Page</a>.</dd>
|
||||
<dt><b>Comments from Carnac developers:</b></dt>
|
||||
<dd>To handle this diversity and to keep our code-base reasonably
|
||||
small and manageable we use internally a lot of new features of
|
||||
upcoming ANSI C++ standard: templates, exception handling, standard
|
||||
library based on STL. The biggest problem of our multi-platform
|
||||
project was a diversity of C++ compilers. They have a variety of
|
||||
different bugs and "features", and somewhat incompatible
|
||||
interpretations of templates. Some of them didn't support HP STL we
|
||||
started with. HP STL had a limited set of containers (notably it
|
||||
lacks hash-based containers). ObjectSpace STL was modeled after HP
|
||||
STL and had the same problems. We decided to go with SGI STL as most
|
||||
comprehensive STL implementation available. While it worked fine on
|
||||
Windows NT and SGI, we had troubles with other platforms. Adaptation
|
||||
of SGI STL (STLport) really improved this situation. We use original
|
||||
SGI STL 2.03 on Windows NT and SGI IRIX and SGI STL port 2.03 on Sun
|
||||
Solaris and IBM AIX. Both libraries work out-of-box on these
|
||||
platforms. I should add that STLport has very important features ---
|
||||
it incorporates a debug mode, which is crucial for big projects,
|
||||
thread-safety and exception safety. SGI STL and STLport are free,
|
||||
easy-to-use, up-to-date and evolving, close to ANSI C++ draft
|
||||
standard and THEY WORK ON EXISTING COMPILERS!!! That's why we chose
|
||||
SGI STL for our project.</dd>
|
||||
<br>
|
||||
Eugene Lazutkin, Senior Software Analyst <br>
|
||||
Interactive Network Technologies, Inc.
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<br>
|
||||
<i>Organization: <a href="http://www.claris.com">Claris Corporation</a></i>
|
||||
<h3>Project : ClarisWorks New Code Base</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>ClarisWorks is a productivity package that includes
|
||||
word-processing, drawing, spreadsheet, and paint capabilities all
|
||||
integrated in one package. It is currently available on MacOS
|
||||
as well as Windows 95/NT.</dd>
|
||||
<br>
|
||||
MacWeek rates us 4.5 diamonds (out of five). PCWeek says we are all
|
||||
the Office you need. <br>
|
||||
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd> MacOS/CodeWarrior Pro 2</dd>
|
||||
<br>
|
||||
Win32/Visual
|
||||
C++ 5.0 sp2 <br>
|
||||
WinCE/Visual
|
||||
C++ 5.0 sp2 <br>
|
||||
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
You can buy ClarisWorks 5.0 currently, although it is not written
|
||||
using STLport, you can get a look at what we are working on.
|
||||
<hr width="100%">
|
||||
<br>
|
||||
<br>
|
||||
<i>Organization: <a href="http://www.uni-paderborn.de/cs/">University
|
||||
of Paderborn, Germany</a></i>
|
||||
<h3>Project : <a href="http://www.uni-paderborn.de/cs/padfem/">PadFEM</a></h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<br>
|
||||
PadFEM is a project of the University of Paderborn,
|
||||
Germany, dealing <br>
|
||||
with parallel adaptive finite element simulations. <br>
|
||||
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<br>
|
||||
g++ compiler (2.7.2 and 2.8.0) on Sun workstations (Solaris) and <br>
|
||||
massive parallel computers. <br>
|
||||
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
More informations are available on the PadFEM homepage at <br>
|
||||
<a href="http://www.uni-paderborn.de/cs/padfem/">http://www.uni-paderborn.de/cs/padfem/</a>.
|
||||
<br>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
176
STLPORT/doc/release_notes.html
Normal file
176
STLPORT/doc/release_notes.html
Normal file
@@ -0,0 +1,176 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Release Notes</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport 4.5 Release Notes</span>
|
||||
<p>
|
||||
Please see etc/ChangeLog for the list of changes since 4.0.
|
||||
A number of new platforms are supported; STLport iostreams ported to many new platforms.
|
||||
4.5 should provide for much greater reliability and efficiency, especially in iostreams part.
|
||||
Code bloat should be significantly reduced. Versioning is introduced for dynamic libraries.
|
||||
</p>
|
||||
<span class="heading">STLport 4.0 Release Notes</span>
|
||||
<p>
|
||||
STLport 4.0 is a major release. Finally, it offers complete C++ standard library!
|
||||
Here is a list of major changes in 4.0 :
|
||||
<ul>
|
||||
|
||||
<li>Complete ANSI C++ standard library, including <complex> and SGI iostreams.</li>
|
||||
|
||||
<li>Can be configured to use either SGI or native iostreams.</li>
|
||||
|
||||
<li>Debug mode completely redesigned. Debug mode containers are
|
||||
implemented in terms of wrappers around non-debug ones.
|
||||
That provides for more clean and efficient implementation.
|
||||
In Debug Mode, different namespace <b>_STLD::</b> is being used,
|
||||
so no link-time clashes between debug and non-debug versions are possible.</li>
|
||||
|
||||
<li>New platforms - gcc-2.95, Mingw32, Borland C++ Builder 5.5, SUN CC 6.0 Early Access, SUN CC in compatibility mode.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
Minor changes:
|
||||
<ul>
|
||||
|
||||
<li> std:: is not used for STLport namespace even with SGI iostreams,
|
||||
to avoid possible clashes and facilitate 3rd-party library use.
|
||||
Same macro redefinition technique for _STL:: used to keep clients
|
||||
code which uses literal std::.</li>
|
||||
|
||||
<li>C library headers wrapping changed to account for multiple inclusion tricks
|
||||
(needed by gcc-2.95 mostly)</li>
|
||||
|
||||
<li>auto_ptr updated, now it passes polymorphic tests with VC++</li>
|
||||
|
||||
<li>config changes - "configure" made obsolete and moved into "stlport/config/new_compiler"</li>
|
||||
<li>Lot of minor bugfixes.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h2><font color="#000080">STLport 3.2.1 Release Notes</font></h2>
|
||||
|
||||
<p>STLport 3.2.1 is a minor release in terms of functionality, but it is a huge
|
||||
leap forward in terms of usability. </p>
|
||||
|
||||
<h2>std::renaming</h2>
|
||||
3.2.1 finally solved the conflict between STLport string and std::string, which
|
||||
used to be worked around by using namespace stlport::, to avoid link- and run-time
|
||||
clashes. Refer to <a href="vendor_interface.html">"Cooperation with native standard library"</a>
|
||||
section for details.
|
||||
In 3.2.1, new, completely transparent scheme introduced to redefine <b>"std::"</b> in user
|
||||
sources to <b>"stlport::"</b> via macros. Before 3.2.1, it was not possible, because not all headers were provided
|
||||
with necessary wrappers.
|
||||
Now, when user writes <b>"std::"</b> in application code, it yields the same results as if he wrote <b>"stlport::"</b>.<br>
|
||||
The biggest advantage is that now absolutely no modifications in client code are needed to use.
|
||||
STLport instead of native STL lib, which turns STLport into seamless drop-in component!
|
||||
|
||||
<h2>Windows improvements</h2>
|
||||
STLport 3.2.1 provides the mechanism to export static members of default node allocator
|
||||
from a designated user's DLL, which solves the problem observed with default allocator
|
||||
and passing objects across DLL boundaries. Currently, one of user's DLL is supposed to
|
||||
be designated to export STLport symbols. That will change as soon as STLport will provide
|
||||
iostreams library.<p></p>
|
||||
For MT compilation, <b><windows.h></b> is not included anymore to get synchronization
|
||||
function prototypes. That significally reduces compilation time.
|
||||
<p></p>
|
||||
<h2>Quality improvements</h2>
|
||||
<p>3.2.1 provides further code bloat reduction - hashtable uses vector <b><void*></b> internally.</p>
|
||||
<h2>New platforms</h2>
|
||||
Configuration files provided for DEC C++ 6.x/5.x , Borland C++ 5.02, KAI C++.
|
||||
Windows CE configuration provided.
|
||||
<hr>
|
||||
|
||||
<h2><font color="#000080">STLport 3.2 Release Notes</font></h2>
|
||||
|
||||
<p>STLport 3.2 is a major change from 3.12. It provides new components, new wrappers
|
||||
and fixes many portability issues.</p>
|
||||
<h2>New Components</h2>
|
||||
New standard header files are provided : <limits;> and <valarray>.
|
||||
Also, STLport now provide complete set of C library headers which are currently
|
||||
wrappers for either old-style or new-style native C library headers.
|
||||
<h2>Headers reorganization</h2>
|
||||
Main STLport include directory renamed to <b>stlport</b>.
|
||||
Old HP-style STL headers moved to <b>stlport/hp</b> directory.
|
||||
<h2>Quality improvements</h2>
|
||||
<p>3.2 provides new workarounds for standard allocators : EBO (empty-base optimization),
|
||||
for automatic space optimization for instanceless allocators. Allocators with instances
|
||||
now can be used with any compiler. Chunking problem is fixed - no memory overuse.
|
||||
</p>
|
||||
<p>Major restructuring - non-inline code moved to .c implementation files.
|
||||
That makes huge code bloat reduction for compilers that support separate compilation model,
|
||||
like IBM xlC. If this model is not supported, .c file is being included in corresponding .h file.
|
||||
</p>
|
||||
<p><a href="debug_mode.html">Debug</a> mode redesigned for less code bloat and memory footprint.
|
||||
Now it use single-linked lists for iterators lists and tables for error reporting. Also it provides more flexible control on error reporting for user - now you can control whether debug aasertion throws an exception or not, or to supply your own termination routine in addition to reporting one.
|
||||
</p>
|
||||
<h2>New platforms</h2>
|
||||
Configuration files provided for Apogee C++, Borland C++ Builder 4.
|
||||
<h2>Smoother portability</h2>
|
||||
<p>New workarounds are used for compilers with limited capabilities. Standard forms of distance()
|
||||
and operator -> for iterators is supported for them in 3.2. Additional user-level switch
|
||||
_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is added to use minimum set of default arguments on
|
||||
template classes that have more than one - for example map<>, set<>. This is supposed to help compiling existing standard code which use shortest notation.
|
||||
Many other portability issues reported for 3.12 are fixed, including workaround for famous Sun CC 4.2 bug. _STLP_USE_MFC switch added for MFC cooperation.
|
||||
</p>
|
||||
<h2>Configuration engine changes</h2>
|
||||
<p><a href="configure.html">Configuration</a> switches changed - those describing compiler misfeatures changed so that
|
||||
the compiler that implements complete ANSI C++ Standard and has no bugs would have empty
|
||||
configuration file.
|
||||
</p>
|
||||
<br>
|
||||
<hr>
|
||||
<h2><font color="#000080">STLport 3.12 Release Notes</font></h2>
|
||||
|
||||
<h2>Configuration changes</h2>
|
||||
<p>In 3.12, the confuguration headers stlcomp.h and configure script reside in
|
||||
config/ directory. stlcomp.h has been splitted to compiler-specific-headers. As now stl_config.h
|
||||
includes <config/stlcomp.h>, your compiler must be able to understand UNIX-style paths.
|
||||
Most compilers do that automatically, but some (MetroWerks CodeWarrior) require setting the option to do that..</p>
|
||||
<h2>Cooperation with compiler's C++ library</h2>
|
||||
<p>STLport 3.12 is capable of using separate namespace <b>stlport::</b>
|
||||
to avoid conflicts with standard C++ library that comes with the
|
||||
compiler. If your compiler provides new-style <b><iostream></b>,
|
||||
please be sure to read the <a href="vendor_interface.html">document
|
||||
describing this technique</a>.</p>
|
||||
<h2>New-style iostreams:</h2>
|
||||
<p>In STLport 3.12, <b>_STLP_USE_NEW_IOSTREAMS </b>macro controls
|
||||
whether you are using templatized iostreams or not. This setting is
|
||||
important - STLport's <b><iostream></b> imports appropriate
|
||||
version of native iostreams (<<b>iostream</b>> vs. <<b>iostream.h</b>>
|
||||
depending on it. This also affects the choice of <a href="vendor_interface.html#option_2">own
|
||||
namespace mode</a>.</p>
|
||||
<p>Use of other new-style header names like <tt><<b>vector</b>></tt>
|
||||
with STLport is highly recommended. </p>
|
||||
<h2>allocator<></h2>
|
||||
<p>In STLport 3.12, the default <b>_Alloc</b> parameter to standard
|
||||
container is always <b>allocator<></b> (unlike in SGI STL, where
|
||||
it is only so when the compiler supports partial specialization and
|
||||
other new features).</p>
|
||||
<h2>Underscored names</h2>
|
||||
<p>All inernal names in STLport 3.12 starts with undercsore
|
||||
("_"), as specified by C++ standard.</p>
|
||||
<h2><a name="new%20headers"></a>New-style C library headers</h2>
|
||||
In this release, <b>_STLP_USE_NEW_STYLE_HEADERS</b> only controls
|
||||
STLport choice of using new-style C library headers : <cstdio> vs.
|
||||
<stdio.h>, etc.
|
||||
<h2>Bitset - additional parameter</h2>
|
||||
<p>SGI STL introduced extra template parameter BufSize for bitset : <b>_WordT,
|
||||
</b>which defaults to unsigned long. For 64-bits architectures, you may
|
||||
wish to change it to be long long. Note that explicit use of extra
|
||||
parameter will lead to non-portability with other STL implementations.</p>
|
||||
<h2>Deque - additional parameter</h2>
|
||||
<p>SGI STL introduced extra template parameter BufSize for deque : <tt>deque<class
|
||||
T, class Alloc, size_t BufSize=0></tt>. <br>
|
||||
That allows you to specify deque buffer size on per-instance basis. </p>
|
||||
<p>Some compilers (<b>Borland, Visual, SunPro, ..</b>.) are unhappy
|
||||
about non-type template parameters (particularly when deque is being
|
||||
passed as parameter to functions). For these compilers, only default
|
||||
buffer size option is available. You may still specify buffer size using
|
||||
<tt>__deque__<T,Alloc,BufSize></tt>. </p>
|
||||
<p> Note that explicit use of extra parameter will lead to
|
||||
non-portability with other STL implementations. You may force full
|
||||
version to be the default ( <tt>deque<class T, class Alloc=allocator<T>,
|
||||
size_t BufSize=0></tt> ) by disabling <tt>_STLP_NON_TYPE_TMPL_PARAM_BUG</tt>
|
||||
switch. Note that you may have problems instantiating template functions
|
||||
taking deque as its argument then.</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
79
STLPORT/doc/select_io.html
Normal file
79
STLPORT/doc/select_io.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Selecting IOStreams mode</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Selecting IOStreams Mode</span>
|
||||
|
||||
<h3><b>Major IOStream Modes</b></h3>
|
||||
|
||||
STLport 4.0 may be used in two different major modes :
|
||||
<ul>
|
||||
<li><b>With STLport iostreams (default)</b>. In this mode, you are going to use iostreams
|
||||
and complex libraries provided by STLport.
|
||||
To do so, first you have to build STLport library from sources
|
||||
provided in "src" subdirectory and link your programs with it.
|
||||
This is major change since pre-4.0 releases, please read the instructions carefully.</li>
|
||||
|
||||
<li><b>Without STLport iostreams</b>. In this mode, STLport will use wrappers around
|
||||
your compiler's iostreams and complex libraries, just like in STLport
|
||||
releases prior to 4.0.</li>
|
||||
</ul>
|
||||
|
||||
For any of these modes, please make sure
|
||||
<b>"stlport"</b> directory containing header files
|
||||
is the <b>first</b> one in your include search path when you compile the project<br>
|
||||
|
||||
<h3><a name="no_sgi_iostreams"></a>Installing STLport for use without STLport iostream library ("wrapper mode")</h3>
|
||||
|
||||
In this mode, you will use wrappers around your compiler's iostreams
|
||||
libabry, as in previous STLport releases.
|
||||
|
||||
All you have to do to use STLport in this mode is to uncomment
|
||||
<b>_STLP_NO_OWN_IOSTREAMS</b> setting in <b>"stlport/stl/_site_config.h"</b>
|
||||
to disable use of STLport iostreams and to use wrappers around your existing iostreams.
|
||||
(For SUN CC, you still have to go to "src" subdirectory and do "make" or at least "make prepare" to produce additional .SUNWCCh files necessary for compilation)
|
||||
|
||||
Note though :
|
||||
<ul>
|
||||
<li>For the most modern compilers which implements Koenig lookup properly, this option may not be available due to ambiguities during namespace lookup. Example: gcc-3.0</li>
|
||||
<li>New-style ANSI iostreams and/or complex library
|
||||
may not be provided by your compiler vendor;</li>
|
||||
<li>If provided, vendor iostreams may appear to be slower than STLport version.</li>
|
||||
</ul>
|
||||
If you have decided to disable STLport iostreams, you may stop reading here.
|
||||
To use wrapper mode, you do not have to build any binary libraries, as everything you need
|
||||
is contained in the header files already.
|
||||
|
||||
<h3><a name="beta"></a>Building STLport iostreams library (Default Mode)</h3>
|
||||
|
||||
In this mode, you will use STLport implementation of iostreams instead of the one that comes
|
||||
with your compiler. It does contain some non-template code so you have to build STLport
|
||||
iostreams library in <b>"src"</b> directory to link your project with.
|
||||
|
||||
Below are step-by-step instructions to build STLport library:
|
||||
<ol>
|
||||
<li>Do make sure you have followed instructions for default installation above.</li>
|
||||
|
||||
<li>Go to <b>"src"</b> subdirectory. It contains various makefiles for different compilers.
|
||||
If iostreams library is not yet ported to your compiler (please see <a href="release_notes.html">Release Notes</a> for details), you may revert to use "wrapper" mode or port it. Please refer
|
||||
to <a href="porting_iostreams.html">porting document</a> to learn how to port iostreams library
|
||||
to your compiler. The porting procedure is usually straightforward on UNIXes.
|
||||
</li>
|
||||
|
||||
<li>Using appropriate makefile, do <b>"make clean all"</b> to build STLport libraries
|
||||
(makefiles are set up to build several different flavors - debug/nondebug,
|
||||
static/dynamic versions).
|
||||
<i>Note : your make program may have different name, like "nmake" for Visual C++, so, with "nmake", do "nmake clean all"</i>
|
||||
</li>
|
||||
|
||||
<li>If make fails, you may try fixing the build yourself and/or report it to <a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">STLport Forum</a>.
|
||||
</li>
|
||||
|
||||
<li>Do <b>"make install"</b> to install resulting libraries into <b>"lib"</b> subdirectory. On Windows, this step also copies .dll libraries to system directory to be accessible at runtime.</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<h3>Testing STLport</h3>
|
||||
STLport provides two <b>test suites</b> - <a href="testsuite.html">regression
|
||||
test</a> and <a href="eh_testsuite.html">exception handling test</a>.<br>
|
||||
It is recommended that you build and run them in place to verify your new STLport installation is OK.
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
86
STLPORT/doc/sgi_stl.html
Normal file
86
STLPORT/doc/sgi_stl.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: SGI STL Overview</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">SGI Standard Template Library</span>
|
||||
|
||||
<h3>Overview</h3>
|
||||
<p class="FOOTNOTE"><i>Silicon Graphics has made its implementation of the C++
|
||||
Standard Template Library freely available to the public. The SGI
|
||||
Standard Template Library features thread safety, improved memory
|
||||
utilization, improved run-time efficiency, and new data structures,
|
||||
including hash tables; it also includes a comprehensive conceptual
|
||||
taxonomy of generic software components.</i></p>
|
||||
<p><font size="1">cite from SF BA <a href="http://www.centeradv.com">Center
|
||||
for Advanced Technology</a> C++ ISG presentation</font></p>
|
||||
Visit SGI <a href="http://www.sgi.com/Technology/STL">Standard
|
||||
Template Library User's Guide</a> page to learn more about SGI STL. That
|
||||
excellent site contain full STL documentation, distribution to download
|
||||
and useful links.
|
||||
<h3><a name="efficiency"></a>Efficiency</h3>
|
||||
<p>These are major improvements that make SGI STL the most efficient:</p>
|
||||
<ul>
|
||||
<li><b>Rich set of algorithm specializations.</b> What everybody is
|
||||
looking for in generic library, it's the <b>generic interface</b>,
|
||||
not the <b>same code</b> for every type instantiated. Utilizing
|
||||
<b>__type_traits</b> technique, SGI STL optimizes <b>copy(T*, T*, T*
|
||||
)</b> call for <b>T</b> being builtin type into a single <b>memmove()</b>
|
||||
call, and so on.</li>
|
||||
<li><b>Node allocators.</b> SGI STL implements allocator<T> as a
|
||||
wrapper over thread-safe node allocator engine which is
|
||||
fine-tuned to handle allocation of relatively small chunks of memory
|
||||
very efficiently.</li>
|
||||
</ul>
|
||||
<h3><b><a name="thread_safety"></a>Thread safety </b></h3>
|
||||
<p>Please refer to SGI site for <a href="http://www.sgi.com/Technology/STL/thread_safety.html">detailed
|
||||
document on thread safety</a>. Basic points are:</p>
|
||||
<ul>
|
||||
<li><b>simultaneous read access to the same container from within
|
||||
separate threads is safe;</b></li>
|
||||
<li><b>simultaneous access to distinct containers (not shared between
|
||||
threads) is safe;</b></li>
|
||||
<li><b>user must provide synchronization for all accesses if any
|
||||
thread may modify shared container.</b></li>
|
||||
</ul>
|
||||
<h3><b>Exception safety</b></h3>
|
||||
<p>SGI STL is exception-safe. STLport <a href="exception_safety.html">document
|
||||
on exception safety</a> describes STL guarantees and client requirements.</p>
|
||||
|
||||
<h3><b>Standard compliance</b></h3>
|
||||
<p>SGI STL is committed to close compliance to C++ Standard. With the
|
||||
latest release in Feb 99 and experimental effort continued through 2000,
|
||||
it incorporates the latest "word of the standard".</p>
|
||||
<h3><b>Reliability</b></h3>
|
||||
<p>SGI STL is being shipped with GNU C++ since 2.8.x.<br>
|
||||
That is enormous amount of installations which provide solid feedback to
|
||||
get bugs fixed.</p>
|
||||
<h3><b>Important extensions</b></h3>
|
||||
<p>SGI STL provides the following extensions compared to the C++
|
||||
standard:</p>
|
||||
<ul>
|
||||
<li><b>hashed containers:</b> hash_set, hash_multiset, hash_map,
|
||||
hash_multimap.</li>
|
||||
<li><b>single-linked lists</b> - often very reasonable tradeoff.</li>
|
||||
<li><b>ropes:</b> alternative representation of strings which scale
|
||||
well to very large strings</li>
|
||||
</ul>
|
||||
<h3>Public distribution</h3>
|
||||
<p>SGI STL is being distributed free of charge and restrictions:</p>
|
||||
<p><b><i>Copyright (c) 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright (c) 1996,97 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Hewlett-Packard Company makes
|
||||
no representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Silicon Graphics makes no
|
||||
representations about the suitability of this software for any purpose.
|
||||
It is provided "as is" without express or implied warranty.</font></i>
|
||||
</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
43
STLPORT/doc/story.html
Normal file
43
STLPORT/doc/story.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: History</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport Story</span>
|
||||
|
||||
<address class="FOOTNOTE">by Boris Fomitchev</address>
|
||||
|
||||
<h3>First Step</h3>
|
||||
|
||||
I started STLport project in Jan'97, shortly after first release of SGI STL.
|
||||
Back then, I was working for <a href="http://www.elbrus.ru">Moscow Center for SPARC Technology</a>.
|
||||
I made a quick-and-dirty port of SGI STL for gcc-2.7.2 and SUN CC 4.2 for internal use.
|
||||
Very proud of myself, I submitted my changes back to SGI team.
|
||||
Matt Austern (still leading library developer) was kind enough to respond to me.
|
||||
However, I realized SGI team were not interested at all in extra portability. So I built my own Web page and started distributing my humble port from there.
|
||||
I named it "Adapted SGI STL" (weird, huh ?). Reasonable name appeared only a few months later.
|
||||
|
||||
|
||||
<h3>"With a little help..."</h3>
|
||||
|
||||
Once the initial port availability was announced, I started to receive strong feedback from
|
||||
users. Many people happened to be interested and willing to contribute to this development.
|
||||
With their help, it only took me a few months to port it to most popular compilers.
|
||||
At the same time, I started to realize infinite potential for improvements in this library.
|
||||
|
||||
<h3>Going Ahead</h3>
|
||||
|
||||
The first time STLport went ahead of SGI STL was introduction of exception handling support. Dave Abrahams implemented exception-safe standard containers and algorithms on the base of SGI STL to present to ANSI C++ Commitee. At the time, no EH guarantees/requirements were present in the draft standard. Dave proposed to merge his changes into STLport, for maintenance reasons, which I happily did. In the meantime, SGI somewhat independently implemented the exception-safety guarantees in the proposal Dave brought before the committee with Greg Colvin. The STLport exception-handling testsuite was instrumental in getting these implementations right. Dave and Greg managed to get the proposal approved by the standards commitee, due in part to the existence of two working implementations.
|
||||
|
||||
<h3>Making the Difference</h3>
|
||||
|
||||
Debug Mode was implemented after "Safe STL" (debug version of HP STL, by Cay Horstmann) in 1997. It is still the feature which makes STLport different from all other standard libraries. No matter how simple the idea of this mode might look, it took several complete redesigns to get it to its current level. I am very pleased to be able to present this unique feature.
|
||||
|
||||
<h3>Letting Go</h3>
|
||||
|
||||
I have to confess that there was a time when I was serious about selling STLport as a commercial library.
|
||||
It took me two years to get a slight idea of how the industry works. So I decided to stick with open source.
|
||||
|
||||
<h3>Growing Up</h3>
|
||||
Using open source component does not necessarily mean relying on self-maintenance and volunteers good will.
|
||||
In 1999, STLport Consulting, Inc. was founded. We offer STLport support contracts as well as custom development and
|
||||
other consulting services. You may reach us at <a href="mailto:consulting@stlport.com">consulting@stlport.com</a>.
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
52
STLPORT/doc/testsuite.html
Normal file
52
STLPORT/doc/testsuite.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Testsuite</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">STLport Test Suite</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h2>Abstract</h2>
|
||||
<p><b>STLport test suite performs extensive test of</b> <b>basic STLport
|
||||
functionality</b>.<br>
|
||||
One of the problems one is faced when deciding whether using STL is the
|
||||
question of reliability. It's a common place when compiler crashes on
|
||||
templates.<br>
|
||||
Obvious question is - how can I be sure the compiler produces valid code
|
||||
when it does <b>not</b> crash ? <br>
|
||||
This test suite answers to this question. It doesn't use too complex
|
||||
construct with STL items. But it does instantiate about every item and
|
||||
checks if it works properly.</p>
|
||||
<h2>The Story</h2>
|
||||
<p>This test suite is derived from <a href="http://www.cygnus.com">Cygnus
|
||||
Solutions</a> STL test suite, which is based on <a href="http://www.objectspace.com">ObjectSpace
|
||||
</a>STL examples. The changes that have been made mostly involve
|
||||
restructuring. You can run a single short test for particular STL
|
||||
construct , or try to compile them all and link to single executable.
|
||||
You may also test if your compiler can handle extremely long source
|
||||
files by compiling a single source including all others.</p>
|
||||
<h2>Portability</h2>
|
||||
<p>Makefiles for most supported compilers are provided with the suite. Look for <i>.mak</i>
|
||||
files in the distribution. It should be not difficult to adjust one of
|
||||
them to your compiler.</p>
|
||||
<h2>How To</h2>
|
||||
<p>The test suite comes in directory <b>test/eh</b> with your STLport
|
||||
distribution.<br>
|
||||
You may have to edit appropriate makefile to fit your compiler and
|
||||
include directories . <br>
|
||||
After you've done, try "<i>make check</i>". This target is
|
||||
output (<i>stl_test.out</i>) of single executable containing all the
|
||||
tests. <br>
|
||||
Compare it with <i>stl_test.exp</i> output. There should be no
|
||||
differences. Note that some tests use random number generators. <i>stl_test.exp</i>
|
||||
is for those having <b>lrand48()</b> function. If your configuration
|
||||
uses <b>rand() </b>function, you should compare the result with <i>stl_test.rand.exp</i>.
|
||||
Obviously, <b>there is no guarantee for matching of different rand()
|
||||
implementations</b>.<br>
|
||||
If some test fails to compile, you may try "make <i>test_name</i>.out"
|
||||
to produce single test executable and run it.</p>
|
||||
<h3>Linux (glibc) note</h3>
|
||||
<p>GNU libc, being used widely on Linux platforms, has different
|
||||
random generator implementation than one used on most UNIX platforms.
|
||||
You should ignore the output difference of tests using random generator.
|
||||
</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
198
STLPORT/doc/thanks.html
Normal file
198
STLPORT/doc/thanks.html
Normal file
@@ -0,0 +1,198 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Acknowledgements</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Acknowledgements</span>
|
||||
|
||||
<p>Special thanks to:</p>
|
||||
<ul>
|
||||
<li><b>Alexander Stepanov</b> for his fundamental work;</li>
|
||||
<li><b>Matt Austern</b>, for his valuable collaboration</li>
|
||||
<li><b>Dave Abrahams</b>, for his continuous help, exception-handling code contribution,
|
||||
EH testsuite and Metrowerks support</li>
|
||||
<li><b>Cay Horstmann</b>, for debug approach example</li>
|
||||
</ul>
|
||||
Thanks to all <b>contributors</b> who
|
||||
have submitted bug reports, patches and suggestions:
|
||||
<table border="0" cellpadding="4" cellspacing="0" align="center">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<dir>
|
||||
<li>Matt Austern</li>
|
||||
<li>Lo Russo Graziano</li>
|
||||
<li>Kevin G. Walker</li>
|
||||
<li>Enno Rehling</li>
|
||||
<li>Jan Didrik Andersen</li>
|
||||
<li>Cheng-Yen (Vinnie) Liang</li>
|
||||
<li>Jeff Hanson</li>
|
||||
<li>Matt Brincho</li>
|
||||
<li>Oleg Alexsandrovich</li>
|
||||
<li>Martin Abernethy</li>
|
||||
<li>Eelco de Lange</li>
|
||||
<li>Warren Young</li>
|
||||
<li>Dave Abrahams</li>
|
||||
<li>Damian Gilmurray</li>
|
||||
<li>Mark Wells</li>
|
||||
<li>Jeremy Grodberg</li>
|
||||
<li>Ralph Zeller</li>
|
||||
<li>Julian C. Cummings</li>
|
||||
<li>Josh Levenberg</li>
|
||||
<li>Egor Elagin</li>
|
||||
<li>Sean Donnelly</li>
|
||||
<li>Eric Bloodworth</li>
|
||||
<li>Harri Heimo P Hakula</li>
|
||||
<li>John Maddock</li>
|
||||
<li>Per Sabelstrom</li>
|
||||
<li>Franck Lebastard</li>
|
||||
<li>Jeff Greif</li>
|
||||
<li>Marcelo Cantos</li>
|
||||
<li>John Stevenson-Hoare</li>
|
||||
<li>Ryszard Kabatek</li>
|
||||
<li>Eugene Lazutkin</li>
|
||||
<li>David Polock</li>
|
||||
<li>Steve Barnes</li>
|
||||
<li>Chris McKillop</li>
|
||||
<li>Dan Candela</li>
|
||||
<li>Joost Kraaijeveld</li>
|
||||
<li>Raymond Nijssen</li>
|
||||
<li>Paul Maragakis</li>
|
||||
<li>Max Moroz</li>
|
||||
<li>Mark Elbrecht</li>
|
||||
<li>Steven Youngs</li>
|
||||
<li>Joe Buck</li>
|
||||
<li>Doni Grande</li>
|
||||
<li>Catherine Lung</li>
|
||||
<li>Joachim Achtzehnter</li>
|
||||
<li>Steven Woolgar</li>
|
||||
<li>Michael Carr</li>
|
||||
<li>Simon-Pierre Cadieux</li>
|
||||
<li>Tinny Ng</li>
|
||||
<li>Bjorn Fahller</li>
|
||||
<li>Alexander Vanic</li>
|
||||
<li>Roland Hoogendijk</li>
|
||||
<li>Chichiang Wan</li>
|
||||
<li>Chris Atwood</li>
|
||||
<li>Esser Arno</li>
|
||||
<li>Gary Powell</li>
|
||||
<li>Guy Gascoigne</li>
|
||||
<li>Ilya Sharapov</li>
|
||||
<li>Aldona Majorek</li>
|
||||
<li>Tsutomu Yoshida</li>
|
||||
<li>Vasile Gaburici</li>
|
||||
<li>Clive Bluston</li>
|
||||
<li>Harold Putman</li>
|
||||
<li>Hongyao Zhu</li>
|
||||
<li>Stephane Rouleau</li>
|
||||
<li>Robert Kopac</li>
|
||||
<li>Steven Serocki</li>
|
||||
<li>Matti Rintala</li>
|
||||
<li>Ilya Chvetsov</li>
|
||||
<li>Edward Ball</li>
|
||||
<li>Mike Pyle</li>
|
||||
<li>Todd Richmond</li>
|
||||
<li>Gavin Wood</li>
|
||||
<li>Alain Miniussi</li>
|
||||
<li>Michael Entin</li>
|
||||
<li>Kevin Wooten</li>
|
||||
<li>Kees de Bruin</li>
|
||||
<li>Parcival Willems</li>
|
||||
<li>Anton Sergeev</li>
|
||||
<li>Todd Rider</li>
|
||||
<li>Niran Bala</li>
|
||||
<li>Will Fike</li>
|
||||
<li>Petr Ovchenkov</li>
|
||||
<li>Marc W. Mengel</li>
|
||||
<li>Willie Arbuckle</li>
|
||||
<li>Matthew Kelly</li>
|
||||
</dir>
|
||||
</td>
|
||||
<td align="left">
|
||||
<dir>
|
||||
<li>Mikhail Leonov</li>
|
||||
<li>E.Musser</li>
|
||||
<li>Andrew Waters</li>
|
||||
<li>Bruce Alderson</li>
|
||||
<li>Ben Nason</li>
|
||||
<li>Danny Smith</li>
|
||||
<li>Andrey Khovanskiy</li>
|
||||
<li>Ben Liblit</li>
|
||||
<li>Mike Steed</li>
|
||||
<li>Sean Cavanaugh</li>
|
||||
<li>John Hynes</li>
|
||||
<li>Glen Summers</li>
|
||||
<li>Dirk Schreib</li>
|
||||
<li>Jeff Sparkes</li>
|
||||
<li>Ricardo Gayoso</li>
|
||||
<li>John Wiegley</li>
|
||||
<li>Craig Powers</li>
|
||||
<li>Bryan Byrnes</li>
|
||||
<li>Vijay Ramachandran</li>
|
||||
<li>Ed Brey</li>
|
||||
<li>Matthew Collins</li>
|
||||
<li>Jack Andrews</li>
|
||||
<li>Bernd Mohr</li>
|
||||
<li>Charles Burfoot</li>
|
||||
<li>Brett Denner</li>
|
||||
<li>Serge Pashkov</li>
|
||||
<li>George Trojan</li>
|
||||
<li>Bruce Dawson</li>
|
||||
<li>Adam Gates</li>
|
||||
<li>Levente Farkas</li>
|
||||
<li>Mark Laffoon</li>
|
||||
<li>Holger Stasch</li>
|
||||
<li>Anton Lapach</li>
|
||||
<li>Ingo Donasch</li>
|
||||
<li>Jack Andrews</li>
|
||||
<li>Jason Taylor</li>
|
||||
<li>Thomas Witt</li>
|
||||
<li>Mat Marcus</li>
|
||||
<li>Jesse Jones</li>
|
||||
<li>Jim Cole</li>
|
||||
<li>Rene van Oostrum</li>
|
||||
<li>Kenny Simpson</li>
|
||||
<li>Gerd Hoeren</li>
|
||||
<li>Tom Widmer</li>
|
||||
<li>Vadim Egorov</li>
|
||||
<li>Dean Sturtevant</li>
|
||||
<li>Gavin Collins</li>
|
||||
<li>Alberto Barbati</li>
|
||||
<li>Todd Wilson</li>
|
||||
<li>Per Liboriussen</li>
|
||||
<li>Michael Rauch</li>
|
||||
<li>Tanes Sriviroolchai</li>
|
||||
<li>Patrick Luby</li>
|
||||
<li>Joachim Achtzehnter</li>
|
||||
<li>Phillip Toland</li>
|
||||
<li>Val Melamed</li>
|
||||
<li>Johannes Brunen</li>
|
||||
<li>Sergei Nikolaev</li>
|
||||
<li>Levente Farkas</li>
|
||||
<li>Rainer Schnitker</li>
|
||||
<li>Carlos Paniago</li>
|
||||
<li>Yotam Medini</li>
|
||||
<li>Anton Ephanov</li>
|
||||
<li>Doug Gilbert</li>
|
||||
<li>Steven Green</li>
|
||||
<li>Andreas Malzahn</li>
|
||||
<li>Whitney Kew</li>
|
||||
<li>Dan Ingold</li>
|
||||
<li>Ed James-Beckerman</li>
|
||||
<li>John Daniel</li>
|
||||
<li>Marcello Pietrobon</li>
|
||||
<li>Mukesh Kapoor</li>
|
||||
<li>Jens Maurer</li>
|
||||
<li>Stephen Baker</li>
|
||||
<li>Thomas Meischner</li>
|
||||
<li>Bruce Florman</li>
|
||||
<li>Paul Ghezzi</li>
|
||||
<li>Tobias Ernst</li>
|
||||
<li>Steve Loves</li>
|
||||
<li>Piers Haken</li>
|
||||
<li>Michael Kopp</li>
|
||||
<li>Synge Todo</li>
|
||||
</dir>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
27
STLPORT/doc/use_stlport.html
Normal file
27
STLPORT/doc/use_stlport.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Compiling with STLport</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
<span class="heading">Compiling Your Project with STLport</span>
|
||||
|
||||
<p>
|
||||
Please make sure
|
||||
<b>"stlport"</b> directory containing header files
|
||||
is the <b>first</b> one in your include search path when you compile the project</p>
|
||||
<p>
|
||||
<i>Note: for SunPro CC 5.0 and higher, there is special directory <b>"stlport/SC5"</b>
|
||||
to be set in search path due to specific SUNpro search rules)</i>
|
||||
</p>
|
||||
|
||||
<h3>Special Notes for STLport as a dynamic library</h3>
|
||||
<p>
|
||||
When using STLport as a dynamic library, please make sure you put in the <b>PATH</b>
|
||||
and distribute it together with your executable. This extra dependency is certainly
|
||||
in favor of using static linking. However, if your project deploys any
|
||||
Win DLL's using STLport, you <b>have</b> to use STLport as Win DLL, too. This is because
|
||||
it contains some static variables (like <b>cerr</b> stream) which would otherwise be duplicated
|
||||
in every DLL. This problem does not arise in Unix world.</p>
|
||||
<p>
|
||||
<i>[ Visual C++ specific ]</i> If using STLport as DLL, please be sure to use <b>/MD[d]</b>
|
||||
compiler option to pick up all dynamic libraries.
|
||||
</p>
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
48
STLPORT/doc/vendor_interface.html
Normal file
48
STLPORT/doc/vendor_interface.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Native C++ Library Interface</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
|
||||
<span class="heading">STLport and Vendor's C++ Library</span>
|
||||
<p>Modern compilers come with more or less complete ANSI standard C++
|
||||
library. <a name="native"></a>Below, term "<b>native</b>"
|
||||
is being used to refer to standard C++ headers and object code libraries
|
||||
supplied with the compiler.</p>
|
||||
|
||||
<p>The problem that arises when you want to use STLport with them, is
|
||||
that putting STLport into namespace <b>std::</b> may violate <b>ODR</b>(One
|
||||
Definition Rule). This can happen if some parts of <a href="#native">native</a>
|
||||
library (such as <b>string</b>, <b>locale, iostream</b>) are
|
||||
instantiated already and <b>compiled into</b> native runtime C++ support
|
||||
libraries.</p> <br>
|
||||
|
||||
Example : Visual C++ 6.x
|
||||
|
||||
<p> In practice, if the compiler supplies new-style <b><iostream>,</b>
|
||||
you have this problem almost for sure - typically that means you have
|
||||
some <b><string></b> stuff compiled into native C++ object
|
||||
library. The clash can happen even if you do not utilize new-style
|
||||
iostreams.</p>
|
||||
|
||||
<p>Even if you use STLport with its own iostreams, which means your code do not
|
||||
use any part of native C++ standard library, you may still encounter clashes at
|
||||
link stage. Just magine using 3rd-party lib which was compiled with
|
||||
native library.<br> </p>
|
||||
<p><b>To resolve this namespace conflict, after long experiments,
|
||||
it was decided to put STLport into its own namespace "_STL::"</b>.
|
||||
<br>
|
||||
This provides seamless drop-in compatibility and ensures no conflicts
|
||||
are ever possible.</p>
|
||||
|
||||
<p>To provide more portability for your code and to make sure
|
||||
you use <b>_STL::</b> components,
|
||||
not the native <b>std::</b> one, <i>STLport provides macro redefinition
|
||||
of <b>std::</b> into <b>_STL::</b></i>.
|
||||
This is completely transparent to the user. </p>
|
||||
<p>
|
||||
As STLport code uses namespace different from <b>std::</b>,
|
||||
it never clashes with native library - neither at compile nor at link time.
|
||||
</p>
|
||||
<p>For the most modern compilers which implements Koenig lookup properly, "wrapper mode" w/o STLport iostreams may not be available due to ambiguities during namespace lookup. Example: gcc-3.0.
|
||||
</p>
|
||||
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
52
STLPORT/doc/wrappers.html
Normal file
52
STLPORT/doc/wrappers.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Wrappers Technique</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||||
|
||||
|
||||
<span class="heading">Wrapper Technique in STLport</span>
|
||||
<p>
|
||||
Considerable point of non-portability was the lack of default
|
||||
template class parameters in many compilers. C++ template syntax doesn't
|
||||
allow an easy way to hide that behind any macro magic.
|
||||
<br>STLport uses wrapper technique to work around that:<br>
|
||||
Full functionality for <i>'container'</i> is implemented via class <i>'__container__'</i>.
|
||||
</p>
|
||||
<p>For example:</p>
|
||||
<pre><tt>#ifdef _STLP_DEFAULT_TYPE_PARAM
|
||||
template <class T, class Alloc = alloc>
|
||||
#else
|
||||
# define vector __vector
|
||||
template <class T, class Alloc>
|
||||
#endif
|
||||
class vector {
|
||||
public:
|
||||
......
|
||||
#ifdef _STLP_DEFAULT_TYPE_PARAM
|
||||
define __vector__ vector
|
||||
# else
|
||||
template <class T>
|
||||
class vector : public __vector__<T,alloc>
|
||||
{
|
||||
.....
|
||||
#define __vector__ __vector
|
||||
# endif /* _STLP_DEFAULT_TYPE_PARAM */</tt></pre>
|
||||
So, you are provided with two versions of container: with and without
|
||||
default parameters. It buys you a way to access full functionality while
|
||||
not breaking code using the short notation. <br>
|
||||
If you wish to specify the allocator parameter, use <tt>__vector__</tt>.
|
||||
For default alloc parameter, use <tt>vector</tt>. <br>
|
||||
I would recommend that you <tt>#define</tt> some alias for <tt>__vector__</tt>,
|
||||
to be able to switch easily. <br>
|
||||
If you don't use different allocators, don't bother.
|
||||
<p><b>New in STLport 3.2:</b><br>
|
||||
<tt>_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS</tt> switch is introduced for user to take control
|
||||
of wrappers behavior with classes that have more than one default template argument. With this switch defined,
|
||||
STLport will use minimum set of default arguments on template classes that have more than one -
|
||||
for example map<>, set<>.
|
||||
This is supposed to help compiling existing standard code which use shortest notation.</p>
|
||||
|
||||
<p>Here is the list of compilers that cannot handle <b>dependant</b>
|
||||
default template parameters:<br>
|
||||
SunPro CC, BC++ 4.52, VC++ 4.2, xlC 3.1.4, DEC C++ 5.5, Visual Age C++
|
||||
3.0.</p>
|
||||
|
||||
|
||||
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|
||||
996
STLPORT/etc/ChangeLog
Normal file
996
STLPORT/etc/ChangeLog
Normal file
@@ -0,0 +1,996 @@
|
||||
The following changes were made in 4.6 since 4.5.3 release:
|
||||
---
|
||||
* A few ANSI conformance fixes (thanks Richard Peng)
|
||||
|
||||
* Performance optimization for string::reserve (thanks Marc)
|
||||
|
||||
---
|
||||
|
||||
* icc patches applied (Thanks Blaine Kubesh)
|
||||
|
||||
* _thread.c, _thread.h: merged thread redesign from CVS (thanks Petr Ovchenkov)
|
||||
|
||||
----
|
||||
|
||||
* iostream.cpp, locale_impl.cpp : static initialization made robust for case of
|
||||
dynamic loader circular depandancies (Thanks Alexey Sarytchev for the report)
|
||||
|
||||
----
|
||||
|
||||
* _function.h : integration of a new workaround for mem_fun_* family
|
||||
for compiler having return void bug (Thanks Pavel Kuznetsov).
|
||||
|
||||
* stl_solaris.h : v8plus compilation fix (Thanks Mukesh Kapoor)
|
||||
|
||||
* num_put_float.cpp : FreeBSD fix
|
||||
|
||||
* _construct.h : fixed case for compilers with default integer
|
||||
constructor bug
|
||||
|
||||
---
|
||||
|
||||
* fstream.cpp : text file stream position bug correction (thanks Christopher Kohlert)
|
||||
---
|
||||
* _num_put.c : Correction of the display of the min 64 bits signed integer values
|
||||
like numeric_limits<__int64>::min() on WIN32 for instance (thanks Anders Dalvander)
|
||||
---
|
||||
* _num_put.c : Add of the '+' sign when requested for the unsigned integer display
|
||||
(thanks Francois Dumont)
|
||||
---
|
||||
* debug : many missing iterator invalidation corrected (thanks Detlev V.Davidson and Francois Dumont)
|
||||
---
|
||||
* _new.h : introduction of a new config compiler switch for those which do define
|
||||
bad_alloc but that do not throw it! (thanks ?)
|
||||
---
|
||||
* _new.h : class nothrow_t changed to struct nothrow_t (Thanks Francois Dumont)
|
||||
---
|
||||
* _bvector.h : Addition of the |= and &= operator on the _Bit_reference struct (thanks Ed Rice)
|
||||
---
|
||||
* Performance bug in type_traits.h fixed (Thanks Francois Dumont)
|
||||
---
|
||||
* Added Linux spin lock code ()
|
||||
---
|
||||
* Added GCC-3.x configurations
|
||||
|
||||
* Fixed HP aCC support
|
||||
|
||||
* Added OpenWatcom support
|
||||
|
||||
* version numbers bumped
|
||||
|
||||
* iostreams ported to EMX (gcc on OS/2) (Thanks Martin Schaffoener)
|
||||
|
||||
* iostreams ported to CRAY Unicos C90, T90, and J90 (Thanks Geir Johansen)
|
||||
|
||||
* stl_sunpro.h : fixed mbstate definition for SUN 4.2 (thanks lengzq)
|
||||
|
||||
* complex.cpp, _complex.h : template<> used for specializations
|
||||
|
||||
* _num_put.c : unised locale variable removed (thanks Petr Ovchenkov)
|
||||
|
||||
* _algo.h : __reverse beautified (thanks Kabanov)
|
||||
|
||||
* dll_main.cpp : force_link() forced to be linked in
|
||||
|
||||
* stl_msvc.h : config changes for .NET
|
||||
|
||||
* _auto_ptr.h : "struct" changed to "class"
|
||||
|
||||
* _istream.c : M_read_unbuffered fixed (thanks Stefan Schwarzer )
|
||||
|
||||
* stl_gcc.h : added missing inclusion for SCO platform (thanks Emmanuel Soden)
|
||||
|
||||
* _tree.c : optimized insert_unique (thanks Timothy)
|
||||
|
||||
* _algo.c : relaxed type requirements for lower_bound, upper_bound, binary_search
|
||||
|
||||
* _algo.h : adjacent_find() expressed with compare-function flavour
|
||||
|
||||
* cpp_runtime/typeinfo : made adjustments for .NET (Thanks Daniel)
|
||||
|
||||
* cstd/cassert : guard removed (thanks Evan Cheng)
|
||||
|
||||
The following changes were made in 4.5.3 since 4.5.1 release:
|
||||
|
||||
* iostreams ported to Windows CE (thanks Andrew Waters)
|
||||
|
||||
* iostreams ported to AmigaOS (thanks Steven Solie)
|
||||
|
||||
* iostreams ported to NCR 3.x (thanks Emmanuel Soden)
|
||||
|
||||
* _hash_map::operator[] : enhanced to avoid calling default object constructor
|
||||
(Thanks Yuri Taranenko for the report)
|
||||
|
||||
* Identifier "__value" changed everywhere to "__val" to avoid clashes with Microsoft's "managed C++" keyword (thanks Crow for the report)
|
||||
|
||||
* Most containers : swap() fixed to swap non-stateless allocators correctly (thanks Scott Meyers)
|
||||
|
||||
* _sstream : fix to account for ios_base::app flag properly
|
||||
|
||||
* type_traits.h : _IsOKToMemCpy() fixed to only allow memcpy() for same type arguments (thanks Ed Brey for the report)
|
||||
|
||||
* stl/_num_put.c, stl/_list.c : workarounds for Debian gcc (thanks Levente Farkas)
|
||||
|
||||
* <typeinfo> : fixed MS workaround (thanks Wil Evers, Andrew Ushakov)
|
||||
|
||||
* _pthread_alloc.h : added per_thread_allocator class; returns memory to the same thread it's been allocated in.
|
||||
|
||||
* _iterator_old.h : restored ->() operator for MSVC (thanks Daniel Anderson)
|
||||
|
||||
* a bunch of MPW fixes (thanks Tsutomu Yoshida)
|
||||
|
||||
* _config_compat.h : fixed compatibility definition for _STLP_NO_EXCEPTIONS (thanks Nicolas)
|
||||
|
||||
* _fstream.c : fixed bug in _M_seek_init (thanks Pavel Kuznetsov)
|
||||
|
||||
* _rope.h : rope<>::swap() methods fixed for non-partial ordering case (thanks Eric Musser)
|
||||
|
||||
* comlex_trig.cpp : fixed bug on SGI (thanks Mortis)
|
||||
|
||||
* A bunch of fixes for HP aCC compilation with -AA option (thanks John Bossom)
|
||||
|
||||
* *.c files : added conditional inclusion of corresponding *.h file to fix xlC issues with -tempinc option (thanks Alla Bogolyubov for the report)
|
||||
|
||||
* _auto_ptr.h : "struct" changed to "class" (thanks Alex Pinsker for the report)
|
||||
|
||||
* _config.h/stl_user_config.h : handling of macro _STLP_WHOLE_VENDOR_STD rectified
|
||||
|
||||
* _num_put.c : do_put(const void*) changed to output pointers in hex format (thanks Alex Rosenberg)
|
||||
|
||||
* test/eh/test_algobase.cpp : fixed alignment to work on 64-bit architectures
|
||||
|
||||
The following changes were made in 4.5.1 beta 1 since 4.5 release:
|
||||
|
||||
* _config.h, _epilog.h : new namespace inclusion schema implemented for own iostreams mode
|
||||
(no std:: redefinition; _STL:: namespace imported into std::, instead of std:: imported to _STL.
|
||||
C library header files wrappers become obsolete if this mode is used and no own namespace is selected.
|
||||
They will be moved out to distinct directory in the next release, and default is going to be no own namespace
|
||||
with own iostreams.)
|
||||
For some compilers (VC6), this only works with _STLP_NO_OWN_NAMESPACE and _STLP_OWN_IOSTREAMS settings.
|
||||
|
||||
* iostreams ported to SCO OpenServer (thanks Emmanuel Soden)
|
||||
|
||||
* sparc_atomic.s : added "stbar" to fix multiprocessor crashes on SPARC
|
||||
|
||||
* dll_main.cpp : forced link of Bs_G static data members (thanks Sandy Martel). Function wrapped in STLport namespace.
|
||||
|
||||
* _alloc.c : fixed _STLP_CHUNK_MALLOC for debug malloc configuration (thanks Markus Sch<63>pflin)
|
||||
|
||||
* _config_compat.h : fixed compatibility section for _STLP_NO_OWN_IOSTREAMS
|
||||
|
||||
* fstram.cpp , vc6.unicode.mak : fixed bug in wide streams handling for VC6 (thanks Jim Dolter)
|
||||
|
||||
* etc/*.txt : files list broken up into several categories for future reorganization
|
||||
|
||||
* stl_msvc.h : fixed library selection for .NET (Thanks Franz Zetting)
|
||||
|
||||
* _ftsream.h, iostream.cpp : fixed compilation for _STLP_NO_EXTENSIONS case (thanks Ben Dorman for the report)
|
||||
|
||||
* char_traits.h : fpos<> operators == made members (thanks Thomas Witt)
|
||||
|
||||
* _threads.h : added using directive for Solaris x86 compile (thanks Mukesh Kapoor)
|
||||
|
||||
* _threads.h : fixed InterlockedXXX definitions for VC++ 6.0 SP5 (thanks AndreasM)
|
||||
|
||||
* gcc-install-apple-macosx.mak : INSTALL_STEP set to install_unix (Thanks Tron Thomas)
|
||||
|
||||
* common.mak : default install directory for Unix set to /usr/local
|
||||
|
||||
* _string.h : _M_null expressed via _STLP_DEFAULT_CONSTRUCTED (Thanks Anthony)
|
||||
|
||||
* _site_config.h : made sure _STLP_NO_THREADS are set if _NOTHREADS is on (Thanks Jeppe Madsen)
|
||||
|
||||
* _config.h : _STLP_WIN32THREADS is set (bugfix) ( thanks to Andreas Malzahn )
|
||||
|
||||
* _num_put.c, common_rules.mak : patches by Levente Farkas
|
||||
|
||||
* etc/STLport-4.5.1.spec : spec file to build STLport-4.5.1 RPM added (thanks Levente Farkas)
|
||||
|
||||
* _auto_ptr.h , _debug.c, _debug.h : debug check for auto_ptr pointer added (thanks Gerd Hoeren for the idea)
|
||||
|
||||
* debug/_vector.h : invalidation for erase() corrected not to invalidate current iterator (Thanks ALberto Barbati)
|
||||
|
||||
* stl_bc.h : restored automatic library link directive for cases when STLport is not a native library
|
||||
|
||||
|
||||
* _auto_ptr.h : template constructor conversion bug fixed (thanks mbergal)
|
||||
|
||||
* MIngw32 patches integrated (thanks Wu Yongwei)
|
||||
|
||||
* src/complex_impl.h : case for DEC CXX changed to general, instead of extension functions for float and long double, to get it compliled with CC 6.1 (thanks Tony McConnell)
|
||||
|
||||
* dll_main.cpp : added __malloc_alloc instantiation (thanks Michael Ehrig)
|
||||
|
||||
* _debug.c : fixed race condition in _M_detach (thanks Achim Stremplat)
|
||||
|
||||
* test/*/hpacc.mak : fixed flags and libs (thanks Michael Ehrig)
|
||||
|
||||
* typeinfo : added fix for MS VC ::bad_cast confusion (thanks Alberto Barbati)
|
||||
|
||||
* debug/_vector.h : removed extra guard for MSCV around member template constructor (thanks Alberto Barbati)
|
||||
|
||||
* _fstream.h : added extension basic_fstream<> constructors taking protection parameter (thanks Mukesh Kapoor for the idea)
|
||||
|
||||
* stl_sunpro.h : added additional C include directory choice for Solaris 6&7 (thanks John E. Bossom)
|
||||
|
||||
* _vector.c : added _vector.h inclusion for _STLP_LINK_TIME_INSTANTIATION case (thanks Alex Vanic)
|
||||
|
||||
|
||||
* _num_put.c : fixed overflow case with grouping (thanks Will Evers)
|
||||
|
||||
* _istreambuf_iterator.h : fixed distance_type return type (thanks Anthony Williams)
|
||||
|
||||
* debug/_vector.h : debug version of push_back() added (thanks)
|
||||
|
||||
* Iostreams ported to LynxOS 3.0 (thanks Dmitry Azovtsev)
|
||||
|
||||
* wrappers/*.h : added inclusions of the master header to fix xlC 3.x compile (Thanks Dmitry Azovtsev)
|
||||
|
||||
* Changes for BCB6 integration (thanks Nathan York)
|
||||
|
||||
* Removed all dead code blocks marked by #if OBSOLETE and #if 0
|
||||
|
||||
* Updates build spec file for Linux rpm (thanks Levene Farkas, Harold van Oostrom)
|
||||
|
||||
* complex_trig.cpp : limits changed to be static, for performance optimization (thanks Sergei Nikolaev)
|
||||
|
||||
* _algo.c : eliminated default-constructed iterators, to lift unnecessary restriction (thanks Tonci Tomic )
|
||||
|
||||
* _vector.h : fixed bug in assign() : copy used instead of __copy_aux (Thanks Tim Finer)
|
||||
|
||||
* stl_sunpro.h : restored _STLP_HAS_NO_NEW_C_HEADERS switch for SUN CC 4.2
|
||||
|
||||
* <new> : __stl_new definition put into the namespace (thanks Satoshi Nakamura)
|
||||
|
||||
* bcb*.mak : fixed md command and DYN_LINK (thanks Kirby Zhou)
|
||||
|
||||
* stl_user_config.h : added _STLP_USE_CUSTOM_CHAR_TYPES_IO switch to optimize iostreams for default case
|
||||
|
||||
* debug/_vector.h : fixed debug check bug (thanks Gerd Hoeren)
|
||||
|
||||
* _alloc.h : allocator::construct uses std::_Construct (thanks Gert Grossmann)
|
||||
|
||||
* stl/_alloc_old.h : restored (thanks Gert Grossmann)
|
||||
|
||||
* stl/_threads.h : fixed _STLP_ATOMIC_xxx macros for DEC (thanks Gert Grossman)
|
||||
|
||||
* src/_locale_impl.cpp : added missing guards for codecvt<> in _STLP_NO_MBSTATE_T case
|
||||
|
||||
|
||||
The following changes were made in 4.5 release since 4.5 beta 8 :
|
||||
|
||||
* _threads.h, debug/_debug.h etc : STLport iostreams library made binary compatible with user code compiler w/o multithreaded switch, for some platforms
|
||||
|
||||
* config/stl_msvc.h, <cmath> : corrected _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS for VC++ 6.0 SP5
|
||||
(Thanks Alberto Barbati)
|
||||
|
||||
* src/vc6.mak : RC macro definition restored (Thanks Graham)
|
||||
|
||||
* stl/_cmath.h, <cmath> : parts of code moved to <cmath> as <valarray> uses it (Thanks Synge Todo)
|
||||
|
||||
* stl/_tree.c : fixed insert_unique() with a hint bug (Thanks Serge Pashkov)
|
||||
|
||||
* src/gcc-*.mak : removed -nostdinc++ option
|
||||
|
||||
* stl_solaris.h : definition of _STLP_SUNPRO_EXCLUDE made dependant on _XOPEN macro instead of SUN CC macros (Thanks ecohen for the report)
|
||||
|
||||
* fstream.cpp : mmap_chunk made to be 1M instead of 16M as was originally intended (thanks Alexey Starikovskiy)
|
||||
* stl_sunpro.h : _STLP_LIMITED_DEFAULT_TEMPLATES not defined for compat mode anymore ( thanks Michael Kopp)
|
||||
* dll_main.cpp : added instantiation for _Swap_lock_struct<> (thanks simonb)
|
||||
|
||||
* _ostream.c : fixed formatting bug for width()==1
|
||||
|
||||
* config/_epilog.h : added option pop section for Borland.
|
||||
|
||||
* stl/_threads.h : fixed InterlockedXXX declarations for MS .NET (thanks Piers Haken)
|
||||
|
||||
* vc7.mak makefile added for MS VC++ 7.0 (.NET)
|
||||
|
||||
* fixed _STLP_ITERATOR_CATEGORY, etc. for Mwerks CodeWarrior 5.0
|
||||
|
||||
* stl/_num_put.c : fixed operator<<(void*) to use _STLP_LONG_LONG where available.
|
||||
|
||||
* _STLP_WHOLE_VENDOR_STD option is back supported (Thanks anton ephanov for the input)
|
||||
|
||||
* _cmath.h : added guard to mask additional overloads (thanks Tim Smith)
|
||||
|
||||
* stl_solaris.h : mbstate_t stuff defined here, old-style C headers used (Thanks Mukesh Kapoor)
|
||||
|
||||
* type_traits.h : __default_constructed() inlined (Thanks Matt Davies)
|
||||
|
||||
* new.h : fix for gcc-3.0 to look in backward directory (Thanks Ken)
|
||||
|
||||
* stlport/using/h/streambuf.h added (Thanks Gennadiy)
|
||||
|
||||
* A bunch of changes for Borland static and DLL compile (Thanks Nathan York)
|
||||
|
||||
* stl/_algo.c : fixed find_end() bug (Thanks Alberto Barbati)
|
||||
|
||||
* stl/_queue.h : priority_queue<>::_comp renamed to "comp" as standard states (thanks Todd Greer)
|
||||
|
||||
* _limits.c : added correct data member representations for AS400 and Alpha machines (thanks Holger Stash)
|
||||
|
||||
* _vector.h : added check to avoid calling allocator<>::deallocate(0) (thanks Stephen Cleary)
|
||||
|
||||
* config/_prolog.h, config/_epilog.h : added push/pop pack(8) pragmas for MSVC (thanks Todd Greer, Alberto Barbati)
|
||||
|
||||
* gcc.mak's : default spelling for "-pthreads" option changed to "-pthread" as more platforms use that.
|
||||
|
||||
|
||||
The following changes were made in 4.5 beta 8 since 4.5 beta 7 :
|
||||
|
||||
* stl/_fstream.c : _M_underflow bug fix for custom codecvt facets (thanks Alberto Barbati)
|
||||
|
||||
* bcc55.mak : c_locale.c added to the link command (thanks Steve Loves)
|
||||
|
||||
* _iterator_base.h & many other places : iterator tags are being accepted by const reference
|
||||
instead of value, to fix segmentation faults experienced on certain platforms with beta7.
|
||||
That also should improve efficiency on same platforms (apparently, empty unreferenced
|
||||
objects with no constructors/destructors were copied on the stack when passed by value).
|
||||
Accompanied change eliminates hardcoded deference hack used in previous beta.
|
||||
Thanks everybody who reported this.
|
||||
|
||||
* stl_user_config.h : added _STLP_GCC_USES_GNU_LD switch. This is for those platforms
|
||||
where native linker does not let gcc to implement automatic instantiation of static
|
||||
template data members (Tru64, AIX, HP-UX).
|
||||
It is being put in this file as there is no automatic way to check if we are using GNU ld or not.
|
||||
|
||||
* _range_erors.h : depandancy on <stdexcept> and <string> removed for own iostreams mode
|
||||
(thanks Doug Gilbert)
|
||||
|
||||
* debug/_list.h : "typename" added in new methods (thanks Doug Gilbert)
|
||||
|
||||
* _config.h, src/common_macros.mak : beta version number bumped
|
||||
|
||||
* src/ftream.cpp, c_locale_win32.c : fixes for UNICODE compilation (thanks Valo)
|
||||
|
||||
* stl_gcc.h, etc : changes for GCC support on Tru64 (thanks Tobias Ernst)
|
||||
|
||||
* _alloc.c : for MS VC, malloc_dbg only used when _STLP_DEBUG_ALLOC is set, not for all debug configs
|
||||
(Thanks Anton Ephanov)
|
||||
|
||||
* test/eh/gcc.mak : directories stuff fixed (Thanks Brodie)
|
||||
|
||||
* stl/_complex.h : fixed declarations for long double specializations (Thanks Tsutomu Yoshida)
|
||||
|
||||
* locale_byname.cpp, etc. : fixes for Apple compilers by Tsutomu Yoshida.
|
||||
|
||||
* _ios_base.h : __evenk id changed not to clash with MS VC++ 7 (thanks Paul Ghezzi)
|
||||
|
||||
* _fstream.c : added basic_filebuf constructor workaround for compiler which do not initialize builtins
|
||||
to zero when default constructed (thanks Alberto Barbati)
|
||||
|
||||
* _locale.h : relaxed guerd around templated locale constructor (thanks Alberto Barbati)
|
||||
|
||||
* stl_mwerks.h : changes to accomodate CodeWarrior 6.2 (thanks cprosser)
|
||||
|
||||
* stl/_cmath.h : extracted from <cmath> for better decoupling
|
||||
|
||||
* stl/_std_prolog.h, stl/_std_epilog.h : hooks for future alternative namespace inclusion style.
|
||||
|
||||
* config/stl_gcc.h : gcc-3.0 now supported
|
||||
|
||||
* src/gcc-beos.h : only static library is being built (dynamic stil don't work) (thanks John Maddock)
|
||||
|
||||
* using/iostream : included using/istream and using/ostream
|
||||
|
||||
* dll_main.cpp : force_link() fix to prevent numeric_limits static members and
|
||||
_M_increment/decrement from _tree.c from being optimized out by VC++
|
||||
(thanks Sofus Mortensen, Alberto Barbati )
|
||||
|
||||
* _alloc.c : added CHECK_NULL_ALLOC for _STLP_CHUNK_ALLOC with malloc, to throw exception if malloc returns 0 (thanks ghunt)
|
||||
|
||||
* stl_bc.h, <exception> : fixed Borland C++ import of unexpected handler stuff
|
||||
|
||||
* stl_ibm.h, etc. : fixes for IBM VisualAge 5.02 to compile
|
||||
|
||||
* type_traits.h : bool2type<> changed to be parameterized on int, to work around SUN CC bugs (probably others, too)
|
||||
|
||||
The following changes were made in 4.5 beta 7 since 4.1 beta 6 :
|
||||
|
||||
* sparc_atomic.s : file missing from the distribution restored
|
||||
|
||||
* etc/ subdirectory created; miscellanous files moved there
|
||||
|
||||
* STLport ported to BeOs, complete with iostreams (thanks John Maddock)
|
||||
|
||||
* Macro _STLP_NO_SGI_IOSTREAMS renamed to _STLP_NO_OWN_IOSTREAMS, old references to SGI removed;
|
||||
|
||||
* "prepare" target added to all makefiles in src/; should be run before using STLport;
|
||||
on most platforms it's empty, on some of them it creates necessary symbolic links, etc.
|
||||
|
||||
* stl/_deque.h : deque<>::erase bug (introduced in 4.1b4) fixed (thanks to BruceFlorman)
|
||||
: default parameter in constructor bug fixed (Thanks to Alex Vanic)
|
||||
|
||||
* stl_msvc.h : explicit template function agruments enabled for VC++;
|
||||
|
||||
* stl_wince.h : added <windows.h> inclusion
|
||||
|
||||
* stl/_limits.h : numeric_limits<bool>::digits changed from 0 to 1 (Thanks Mukesh Kapoor)
|
||||
|
||||
* stl/_function_base.h : added __identity_element() (extension name), _numeric.h : this one used instead of identity_element() (Thanks Hafeez)
|
||||
|
||||
* stl_msvc.h : explicit template function agruments enabled for VC++;
|
||||
|
||||
use_facet<> now fully conforms to the standard with VC++. (Thanks Jeff Kohn for the input)
|
||||
|
||||
* fstream.cpp : LARGE_INTEGER used to work around Intel shift instruction bug (thanks Thomas Meischner)
|
||||
* fstream.cpp : ULL macro fixed for Win32
|
||||
* fstream.cpp : Added test for for INVALID_HANDLE_VALUE and NULL base and _M_view_id,
|
||||
for _M_close on Win32 (Thanks Stephen Baker)
|
||||
* fstream.cpp : Fixed corner case with mmap() on EOF (Thanks Jens Maurer)
|
||||
|
||||
* _istream.c : fixed _M_read_buffered sssso that it does not skip delimiters (Thanks Gerd Hoeren)
|
||||
|
||||
* stl/_string.h : operator __std_string() uses constructor with a size to correctly initialize string containing null chars (Thanks Armin)
|
||||
|
||||
* iomanip : added operator for setfill object and istream (was ostream only) (Thanks Mukesh Kapoor)
|
||||
|
||||
* stl/_locale.h , stl_intel.h : fixes for Intel 5.0 compiler (Thanks Anton and Marcello Pietrobon)
|
||||
|
||||
* stl_solaris.h : added _STLP_NO_NATIVE_WIDE_FUNCTIONS
|
||||
|
||||
* New makefiles added for Intel C++ 5.0 and VC++ 6.0 in src/, test/eh, test/regression (Thanks to Marcello Pietrobon)
|
||||
|
||||
* _STLP_NO_LONG_DOUBLE case handled for STLport iostreams as well (thanks John Daniel)
|
||||
|
||||
* SUN CC compiler template cache is being properly cleaned up (Thanks Whitney Kew)
|
||||
|
||||
* dll_main.cpp : added extern "C" around DllMain() (Thanks Danny Smith)
|
||||
|
||||
* type_traits.h : added bool parameter to shut up warnings on some compilers (Thanks glassman)
|
||||
|
||||
* stl/_rope.h/.c, src/mrcpp.mak, src/mrc.mak, stl/_tree.h : MPW & MRC fixes by Tsutomu Yoshida
|
||||
|
||||
* stl_gcc.h : added path for <exceptions> et al for gcc-2.95.3 on FreeBSD (Thanks to
|
||||
|
||||
* _tree.h /_tree.c : pointers used as return values instead of iterators for implementation
|
||||
functions, for efficiency.
|
||||
|
||||
* _algo.h/.c : added leading underscrore to some symbols (Thanks to Ed James-Beckerman for the report)
|
||||
|
||||
* dll_main.cpp : fixed nothrow object initialization (Thanks to Dan Ingold)
|
||||
|
||||
* beta suffix in common_macros.mak updated (thanks to Whitney Kew)
|
||||
|
||||
* c_locale_win32.c : incomple fix for locale completed (thanks to Alberto Barbati)
|
||||
|
||||
* c_locale.h : _Locale_ALPHA definition for VC++ and mingw32 fixed (thanks Danny Smith)
|
||||
|
||||
* _threads.h : fixed _DECTHREADS block to work on both DEC and HP
|
||||
|
||||
* _hash_set.h : fixed typo in MSVC++ bug workaround ( Thanks to Jon_Hanson for the report)
|
||||
|
||||
* stlport/strstream.h : fixed inclusion for MSVC 6 (Thanks Joachim Achtzehnter)
|
||||
|
||||
* _config.h : _STLP_RETHROW changed to avoid warnings with NO_EXCEPTIONS (thanks Richmond)
|
||||
|
||||
* _hashtable.c : prime list definition made consistent (thanks Rainer Schnitker)
|
||||
|
||||
* stl_hpacc.h : _STLP_FORCE_ALLOCATORS workaround used for Version 3.15 also (thanks Rainer Schnitker)
|
||||
|
||||
* stl/_string_io.c : fixed using directive in operator >>() (thanks Rainer Schnitker)
|
||||
|
||||
* debug/_deque.h : a check in erase() fixed (thanks Andreas Malzahn)
|
||||
|
||||
* debug/_list.h : added remove() to do iterator invalidation; range erase() fixed to do invalidation
|
||||
|
||||
* stl_watcom.h : added switches; disabled own iosterams by default;
|
||||
enabled ->() operator for iterators (thanks Steven Green)
|
||||
|
||||
* <exception> : added throw spec for what(); stl_sgi.h : made _STLP_NO_EXCEPTIONS depend on __EXCEPTIONS macro (Thanks Anton Ephanov)
|
||||
|
||||
* _string_io.c : operator << : fixed width() interpretation bug
|
||||
|
||||
* stl_hpacc.h/cmath : fixed HP aCC settings for -AA option (thanks Doug Gilbert)
|
||||
|
||||
|
||||
|
||||
The following changes were made in 4.1 beta 6 since 4.1 beta 5 :
|
||||
|
||||
* _istream.h, _ostream.h, _ios.h, _fstream.h : guard macros fixed to not clash with .h files in "stlport" directory
|
||||
Also all uses of those macros fixed. (thanks to Gerd Hoeren for the report)
|
||||
|
||||
* _debug.c/_debug.h : fixed swap() for rb_tree and list (thanks to Gerd Hoeren for the report)
|
||||
swap() changed not to invalidate any iterators, as prescribed by the standard
|
||||
|
||||
* forced _REENTRANT to be defined when compiling with STLport iostreams and _STLP_DEBUG
|
||||
(without _STLP_DEBUG it seems to be binary compatible even without that)
|
||||
|
||||
* facets_byname.cpp source introduced to replace all xx_byname.cpp files;
|
||||
restored separate facets .cpp complilation (they used to be included in locale_impl.cpp)
|
||||
|
||||
* introduced _STLP_USE_PERTHREAD_ALLOC to optionally use per-thread allocator
|
||||
(_Pthread_alloc from _pthread_alloc.h) as the deafult node allocator. Only works with pthreads for now.
|
||||
|
||||
* Switches _STLP_DONT_REDEFINE_STD and _STLP_WHOLE_VENOR_STD are back (thanks to Anton Ephanov for the report)
|
||||
|
||||
* _vector.h : fixed bug in template version of insert (Thanks to Yotam Medini for the report)
|
||||
|
||||
* monetary.cpp : unneded hack for cygwin removed (thanks to Dean Sturtevant)
|
||||
|
||||
* <iostream> : fixed _STLP_OUTERMOST_HEADER_ID macro
|
||||
|
||||
* cin/cout/cerr redefined if no namespaces and SGI iostreams are used, for all compilers, just in case.
|
||||
* _sparc_atomic.h : fixed and improved atomic ops for gcc
|
||||
|
||||
* test/regression : non-backward-compatible old-style __STL_xx macros use changed to _STLP_xx
|
||||
|
||||
* config/st_gcc.h : disabled non-standard "extern" use for non-DLL templates
|
||||
|
||||
* mingw32 - used 'windows.h replacement' section in _threads.h (thanks to Danny Smith)
|
||||
|
||||
* locale Win32 bug fixed (thanks to Alberto Balbarti)
|
||||
|
||||
* mingw32 : _STLP_CONST_INIT_BUG defined for dll (thanks to Danny Smith)
|
||||
|
||||
* "make clean" glitches fixed (thanks to Whitney Kew for the report)
|
||||
|
||||
* _fstream.c : fixed codecvt bug for variable width encoding
|
||||
|
||||
* _STLP_ABORT macro introduced to avoid clashes with third-party sw redefining abort() (thanks to Jerry)
|
||||
|
||||
* c_locale_win32 : fixed parse bug in __ParseLocaleString (thanks to Danny Smith)
|
||||
|
||||
* extra declspecs removed from templates to fix VC++ 7.0 ; only concrete classes have specifiers (thanks to Holger Stasch for the report)
|
||||
|
||||
* stl_msvc.h, _hashtable.h/.c : fixes for IA64 compilation (thanks to Rainer Schnitker )
|
||||
|
||||
* fixed bugs in "make install" on Unix (thanks to Carlos Paniago)
|
||||
|
||||
* dll_main.cpp : DisableThreadLibraryCalls used for optimization (thanks to Alberto Barbati)
|
||||
|
||||
* dll_main.cpp : a dummy function added to force <limits> guts for static VC++ link (thanks to Alberto Barbati)
|
||||
|
||||
* gcc-linux.mak : flags fixed (thanks to Levente Farkas )
|
||||
|
||||
* stl_msvc.h, stl_intel.h : fixed __ICL version test (thanks to Serge Pashkov)
|
||||
|
||||
* versioning schema changed on Windows to have .dll extension (thanks everybody for the feedback)
|
||||
|
||||
* NetBSD makefiles fixed
|
||||
|
||||
* A bunch of fixes by Tsutomu Yoshida : MPW fixes plus :
|
||||
* stl/_config.h : I believe the definition for _STLP_STD under debug/non-debug configurations swapped.
|
||||
|
||||
* typeinfo.h : added check for _STLP_NO_NEW_HEADER for using declaration.
|
||||
Otherwise three classes will not be included in the namespace std when #include <typeinfo>.
|
||||
|
||||
* _istream.c : use of bind2nd (which required _function.h inclusion) changed to use alternate functor (thanks to Sergei Nikolaev)
|
||||
|
||||
* stl_msvc.h : removed erroneous _STLP_USE_TEMPLATE_EXPORT setting which caused major code bloat for native streams builds on VC++ (Thanks to Johannes Brunen for the report)
|
||||
|
||||
* _string_io.c : fixed Intel C++ compilation bug in native streams mode
|
||||
|
||||
* fstream.cpp : added write-sharing for fstream file handle (Thanks to Leland Best)
|
||||
|
||||
* stl_gcc.h : disabled wide function imports for linux (some xx_POSIX macro should be really used; disabled for all linuxes for now). Thanks everybody for the reports.
|
||||
|
||||
* KAI C++ 4.0 is now supported on SUN
|
||||
|
||||
* MAC OS X compilation fixed (thanks Patrick Luby for the patch)
|
||||
|
||||
* HP aCC fixes by Michael Tsirkin
|
||||
|
||||
* "INF/NAN" string representation for uppercase changed to "Inf/NaN" to behave like printf() on most systems.
|
||||
|
||||
* debug/_iterator.c : fixed SUN 6.0 compiler internal error
|
||||
|
||||
* typeinfo.h : global scope used to import bad_cast, etc. (thanks to Val Melamed)
|
||||
|
||||
* debug/_list.h : missing template versions of remove_if(), merge() added. Missing regular sort() added.
|
||||
(Thanks to dgehri)
|
||||
|
||||
* debug/_slist.h : missing sort() (template and regular) interface added
|
||||
|
||||
* _istream.h : eliminated warning about comparison with unsigned (Thanks to Gerd Hoeren for the report)
|
||||
|
||||
* template constructors for containers changed to be one version with default allocator agrument, where possible.
|
||||
|
||||
* remaining _STL_ prefixes changed to _STLP_
|
||||
|
||||
* Solaris 7 compilation fixed
|
||||
|
||||
* fstream.cpp : seek() allowed to seek past the end of the stream (Thanks to Phillip Toland for the input)
|
||||
The following changes were made in 4.1 beta 5 since 4.1 beta 4 :
|
||||
|
||||
* All internal macros changed to have prefix _STLP_ instead of __STL or __STLPORT or __SGI_STL.
|
||||
That is to allow seamless wrapping on platforms that use SGI STL as native STL/iostreams.
|
||||
For backward compatibility, most of user-settable __STL_xxx macros are accepted.
|
||||
|
||||
* Versioning of shared libraries made UNIX-compliant
|
||||
|
||||
* Some temporary lifetime problems in SGI iostreams which may introduce memory corruption, fixed.
|
||||
|
||||
* <new> : fixed memory leak bug due to unclever macro expansion in __stl_new (thanks to Joachim Achtzehnter)
|
||||
|
||||
* stl/_tree.h : fixed several bugs in new code for corner cases in insert_equal()/insert_unique() with a hint
|
||||
(thanks to Micheal Tsirkin for the report and patch)
|
||||
|
||||
* _vector.h:284 : __copy call fixed to be __copy_aux (thanks to Alex Vanic)
|
||||
|
||||
* _config.h : fixed static build bug due to __STL_EXPOSE_GLOBALS_IMPLEMENTATION typo (thanks to Serge Pashkov)
|
||||
|
||||
* fstream.cpp: __pioinfo definition for mingw32 fixed (Thanks to Danny Smith)
|
||||
|
||||
* *.SUNWCCh files changed to regular files; moved to "stlport" directory
|
||||
|
||||
* pthread_alloc : split into <pthread_alloc>/<stl/_pthread_alloc.h>
|
||||
|
||||
* lightweight atomic ops used on SPARC v8plus and v9 (gcc and SUN CC)
|
||||
|
||||
* Mac OS X support introduced (thanks to Patrick Luby)
|
||||
|
||||
* SGI iostreams ported to DJGPP (thanks to Tanes Sriviroolchai)
|
||||
|
||||
* SGI iostreams ported to NetBSD (thanks to Michael Rauch)
|
||||
|
||||
* FreeBSD build fixed, now builds for wchar_t too
|
||||
|
||||
* DEC CXX build fixed; restricted to dynamic lib only
|
||||
|
||||
* SGI MIPSpro build fixed; GNU make has to be used
|
||||
|
||||
* Set of HP fixes by Michael Tsirkin
|
||||
|
||||
* Set of Watcom fixes by Ricardo Gayozo
|
||||
|
||||
* Bunch of Apple MRC/MPW fixes by Tsutomu Yoshida integrated
|
||||
|
||||
* Bunch of iostream fixes for Cygwin, Borland and Intel 4.5, by Serge Pashkov
|
||||
|
||||
* debug/_list.h : added checking versions of pop_back/pop_front (thanks to Per Liboriussen)
|
||||
|
||||
* src/c_locale_win32.c : fix for VC5sp3 (thanks to Petr Ovchenkov), fix for day of week order (thanks to Danny Smith),
|
||||
fix for null-termination in my_ltoa (thanks to Serge Pashkov)
|
||||
|
||||
* Some warnings in debug mode fixed (thanks to Marco)
|
||||
|
||||
* type_traits.h : IsP functions return types changed to be more portable (thanks to Serge Pashkov for the suggestion),
|
||||
__cdecl added for Win (thanks to Todd Wilson)
|
||||
|
||||
* debug/_tree.h : added owner check for erase() (thanks to Alberto Barbati)
|
||||
|
||||
* stl/_ostream.h : << operator specializations added for compilers w/o partial ordering
|
||||
(thanks to Alberto Barbati for pointing this out).
|
||||
|
||||
* "make install" on UNIX : fixed the target not to remove lib directory;
|
||||
default installdir restored to be /usr/local (thanks to Jeff de Vries for the input)
|
||||
|
||||
* _construct.h : extra cast for __STL_SHRED_BYTE removed (thanks to khesin)
|
||||
|
||||
* _relops.h header obsoleted; some extra includes removed
|
||||
|
||||
* __STL_STATIC_CONST_INIT_BUG use normalized; now it's used for all compilers not able
|
||||
to treat const members as coplile-time constants; enum used for them (e.g VC++).
|
||||
Thanks to Dean Sturtevant and Gavin Collins for the ideas.
|
||||
|
||||
* stlport/cmath : fixed SUN CC 5.0 compatibility mode bug (thanks to ade for the report)
|
||||
|
||||
* debug/_hashtable.h : fixed equal_range() bug (thanks to decraft for the report)
|
||||
|
||||
* streambuf.cpp/_streambuf.h : fixes xsgetn() bug (thanks to Vadim Egorov)
|
||||
|
||||
* istreambuf_iterator<> : nonconforming behaviour fixed (thanks to Tom Widmer)
|
||||
|
||||
* _num_put.c : fixed corner case for 0x8000000 output.
|
||||
|
||||
* num_get<> : extra get() and do_get() members for "int" and "short" removed; istream operators changed accordingly
|
||||
|
||||
* _itreambuf_iterator.h/_ostreambuf_iterator.h introduced to decouple those from num_get/num_put
|
||||
|
||||
* gcc makefiles in src : "-fno-implement-inlines" removed
|
||||
|
||||
* Added workaround for gcc's limits.h and SUN Ultra with -mcpu=ultrasparc in 32-bit mode.
|
||||
|
||||
* ios_base:: type for constants made "int" for all compilers, as it more efficient and perfectly compliant.
|
||||
|
||||
* debug/_hashtable.h : fixed typo in swap() ( thanks to Gerd Hoeren for the report)
|
||||
|
||||
* debug/_string.h : +() operators defined unconditionally ( thanks to Gerd Hoeren for the report)
|
||||
|
||||
* _istream.c : removed dependancy on _function.h (thanks to Kenny Simpson for the report)
|
||||
|
||||
* _limits.c : fixed little-endian representation of infinity & NaN (thanks to Rene van Oostrum)
|
||||
|
||||
* _stdio_file.h : fixed postdecr macro for 64-bit Solaris (thanks to Jim Cole)
|
||||
|
||||
|
||||
The following changes were made in 4.1 beta 4 since 4.1 beta 3 :
|
||||
|
||||
* Simulation of class partial specialization (thanks to Mat Marcus and Jesse Jones of Adobe)
|
||||
used to provide following enhancements :
|
||||
|
||||
- type_traits are automatically specialized for all pointer types for all compilers,
|
||||
which makes them able to utilize type_traits-based optimizations when dealing with pointer types,
|
||||
automatically.
|
||||
|
||||
- all functions specialized for pointers and optimized via __type_traits
|
||||
( like copy()/copy_backward(), _uninitialized_xx) now enjoy this optimization for all compilers!
|
||||
|
||||
- generic __value_type()/__difference_type()/__iterator_category() are written so user does not have
|
||||
to supply any of its own even when partial specialization is not available.
|
||||
(Note : gcc-2.7 and VC++ 5.x, 6.x have bugs which prevents them from using this enhancement, still)
|
||||
|
||||
* <iterator> : by default, non-standard iterator query names like
|
||||
value_type()/difference_type()/iterator_category() are not used
|
||||
|
||||
* <algo> : major revision:
|
||||
- algorithms without explicit Compare() function expressed via the one that has it where possible.
|
||||
This considerably reduces header size and reduces code bloat for programs which use both flavours of
|
||||
those algorithms.
|
||||
- some function bodies moved between .c and .h
|
||||
- all functions used internally moved out to _algobase.h, so no other header includes <_algo.h> anymore
|
||||
- find() specialized for random access iterators regardless of partial spec.
|
||||
|
||||
* Dynamic libraries (.DLL and .so) : name versioning used to prevent clashes between STLport versions
|
||||
|
||||
* src/ : code regrouped between .cpp files to provide for less executable size with dumb linkers;
|
||||
|
||||
* locale subsystem initialization : startup changed to use statically allocated structures as much as possible;
|
||||
|
||||
* <stl/_function.h> : basic stuff moved to _function_base.h ;
|
||||
other STL headers now include _function_base.h instead
|
||||
|
||||
* _threads.h : MT support for OS/2 added (only tested with VAC++)
|
||||
|
||||
* _stdio_file.h : added support for Solaris in ELF64 mode (thanks to Holger Stasch)
|
||||
|
||||
* stl/_hashtable.h : [] operator for hash_map optimized to take no more than find() when element is present
|
||||
(Thanks to Thomas Witt et al.)
|
||||
|
||||
* _ostream.h : fix for default unsigned char (thanks to Holger Stasch)
|
||||
|
||||
* all __STL_ABBREVS abbreviations moved aside in _abbrevs.h header.
|
||||
|
||||
* Fujitsu C++ Compiler support added (thanks to Holger Stasch)
|
||||
|
||||
* Initial SGI iostreams port to OS/390 introduced (thanks to Holger Stasch).
|
||||
|
||||
* More on SGI iostreams port to xlC 5.0 (thanks to Holger Stasch).
|
||||
|
||||
* Fixes for SGI MIPSpro compilers (Thanks to Ralph)
|
||||
|
||||
* Fixes for HP aCC compiler (Thanks to Michael Tsirkin)
|
||||
|
||||
* stlport/SC5 directory : removed C library .h files to fix circular inclusion problem with WS6.0 + C programs.
|
||||
|
||||
* hash_map::swap() in debug mode fixed (thanks to Anton)
|
||||
|
||||
* __STL_COMPILE_INSTANTIATE hack for DEC removed (thanks to Ralph)
|
||||
|
||||
* __STL_INLINE_STRING_LITERAL_BUG defined for HP aCC ( thanks to Jason Taylor)
|
||||
|
||||
* _bitset.h - member workaround operators made const (thanks to dzwick)
|
||||
|
||||
* _bitset.h/.c, hashtable.h -- small bugfixes (thanks to Levente Farkas)
|
||||
|
||||
* <exception> - now includes exception.h if only that is available.
|
||||
|
||||
* vector::assign() inplemented for vector::iterator when member templates are not available (Thanks to dzwick)
|
||||
|
||||
* fstream.cpp : __pioinfo used for MinGW32 (thanks to Danny Smith)
|
||||
|
||||
The following changes were made in 4.1 beta 3 since 4.1 beta 2 :
|
||||
|
||||
* list<>::clear() : protected access bug fixed
|
||||
|
||||
* __STL_MUTEX_INITIALIZER set back to PTHREAD_MUTEX_INITIALIZER for pthreads case,
|
||||
as some platforms (eg AIX) do not treat zero-initialized mutex as valid one (thanks to Alex Vanic, Jack Andrews for help)
|
||||
|
||||
* stl/_limits.c : fixed typo preventing numeric limits constants to be defined for __STL_LITTLE_ENDIAN,
|
||||
constants initialization fixed (thanks to Ingo Donasch)
|
||||
|
||||
* real implementation of locales for Win32 contributed by Anton Lapach (thanks !) merged in.
|
||||
|
||||
* stl_user_config.h, _config.h : changed default to not define relops:: operators
|
||||
in __STL_NO_NAMESPACES mode.
|
||||
|
||||
* _numeric_facets.c/num_put.cpp : printing of integer do not use sprintf() anymore
|
||||
|
||||
* "install" target implemented for UNIX & VC++ Makefiles. It now installs headers and libraries.
|
||||
|
||||
* "src" : files merged to get less compilation time and less space overhead for imperfect compilers
|
||||
|
||||
* "debug" flavour of STLport excluded from default build and auto-select ;
|
||||
please use __STL_USE_DEBUG_LIB and build debug STLport lib explicitly with "make debug_dynamic"
|
||||
if you really need it). "all" now builds 2 kinds : "release" and "STLdebug", for static and dynamic builds.
|
||||
|
||||
* stlport_prefix.h : WIN32_LEAN_AND_MEAN set for Win32 build of STLport library, for speed.
|
||||
|
||||
* FreeBSD compile fixed; makefiles added.
|
||||
|
||||
* All "__init" changed to "_Init" to fix clashes with DEC conventions (thanks to Holger Stasch)
|
||||
|
||||
* _range_errors.h -- fixed to always set __STL_EXTERN_RANGE_ERRORS for SGI iostreams (thanks to Serge Pashkov)
|
||||
|
||||
* *gcc* mak : some files renamed to gcc-platform mak
|
||||
|
||||
* "extern template" extension used for gcc & standard i/o classes, to reduce code bloat in application's .o
|
||||
|
||||
* "extern template" extension used for VC++ & standard i/o classes (was for DLL only)
|
||||
|
||||
* _iterator.h : added template(and non-template) assignment operator for reverse_iterator<> (thanks to psw). Obsolete HP-style code moved to _iterator_old.h
|
||||
|
||||
* _alloc.h : obsolete code for raw SGI allocators support moved to separate header, for compile-time improvement
|
||||
|
||||
* More iostreams code conditionally moved out for clients who only use standard i/o and can set __STL_NO_CUSTOM_IO flag
|
||||
|
||||
* <iostream>, <locale> : initialization of locale subsystem made independent of standard streams.
|
||||
sync_with_stdio call before iostream initialization now works.
|
||||
|
||||
* <fstream>, <fstream.h> : added initialization code for locale , same as in <locale>
|
||||
(thanks to George Trojan for the report)
|
||||
|
||||
* fstream.cpp : fixed resource leak in case memory map fails on Win32 (thanks to Mark Laffoon)
|
||||
|
||||
* <cmath>, <cstdlib> : added additonal overload signatures required by chapter 26.5 of ANSI (thanks to Levente Farkas for
|
||||
the suggestion), plus "long long" flavour where applicable.
|
||||
|
||||
* __STL_LONG_LONG generalized to support __int64 on Win32 (thanks to Adam Gates for the suggestion)
|
||||
|
||||
* _fstream.h : added constructor from file descriptor, as extension (thanks to eric_a_benson)
|
||||
|
||||
* _fstream.h : added basic_filebuf<>::fd() file descriptor accessor, as extension (thanks to George Trojan)
|
||||
|
||||
* stl_sunpro.h : strstream masked for CC 4.2 to avoid virtual table clash (thanks to Ken)
|
||||
|
||||
* stl_msvc.h : member templates allowed for VC5, it's capable of hadling most of them (same restrictions as VC6 -- inline).
|
||||
|
||||
* debug/_debug.c : slightly changed format of debug message to please VC++ IDE (thanks for Bruce Dawson for the suggestion)
|
||||
|
||||
* src/sgi_mipspro.mak added, for SGI MIPSPro compilation
|
||||
|
||||
* merged series of HP/SUN minor fixes by Petr Ovchenkov
|
||||
|
||||
* merged series of Intel 4.5 fixes by Serge
|
||||
|
||||
* vc_common.mak : -Yd dropped, as obsolete (thanks to psw)
|
||||
|
||||
* _range_errors.h:95 : unused argument removed (thanks to George Trojan)
|
||||
|
||||
* _string_io.h : refined _WRTLING workaround for Watcom (thanks to Serge Pashkov)
|
||||
|
||||
* _threads.h : fixed SGI threads dafines for gcc on IRIX (thanks to Brett Denner for the report)
|
||||
|
||||
* <typeinfo.h>, <typeinfo> : mutually-exclusive machanism added to allow including both in same unit.
|
||||
|
||||
* Inclusion of SGI iostreams headers put to some order; _streambuf_iterator.h file introduced to resolve circular dependancies
|
||||
|
||||
The following changes were made in 4.1 beta 2 since 4.1 beta 1 :
|
||||
|
||||
* _algobase.h : fixed __STL_DECLARE_COPY_TRIVIAL definition
|
||||
(thanks to Charles Burfoot for the report)
|
||||
|
||||
* _algobase.h : added copy_backward specializations for builtin types for compilers w/o partial spec.
|
||||
|
||||
* _char_traits.h : fixed zero-length check for copy (thanks to Michael Tsirkin)
|
||||
|
||||
* msvc_warnings_off.h : fixed "and" typo
|
||||
(thanks to Charles Burfoot for the report)
|
||||
|
||||
* num_put_float.cpp : fixed rounding for "g" format (thanks to Bernd Mohr for the report)
|
||||
|
||||
* Initial port of iostreams to xlC 5.0 added (thanks to Jack Andrews)
|
||||
|
||||
* stl_sunpro.h : a fix for Forte config (Thanks to Alex Vanic for the report)
|
||||
|
||||
* old_hp/iterator.h : fixed iterator_category()/etc. import
|
||||
|
||||
* _threads.h : __stl_atomic_t used instead of "unsigned long" (thanks to Alex Vanic for the report)
|
||||
* using/iomanip : old-streams path used for native iomanip.h (thanks to Michael Tsirkin for the report).
|
||||
|
||||
* _bitset.h , _bitset.c : direct STL_THROW replaced with __stl_throw_xxx calls (thanks to Michael Tsirkin for the report)
|
||||
|
||||
* range_errors.h/cpp : added functions to support throwing of overflow_error and invalid_argument
|
||||
|
||||
* _threads.h : enganced HP-specific guards for HP-UX 11 (thanks to Matthew Collins for the report)
|
||||
|
||||
* _string.h : compare() bugfix (thanks to Anton Sergeev)
|
||||
|
||||
* moneypunct_byname_w.cpp : rolled back wrong bugfix (thanks to Ken)
|
||||
|
||||
* _vector.h, _deque.h, _list.h : nonstandard versions of push_back()/push_front()
|
||||
moved under __STL_NO_ANACHRONISMS guard (thanks to Ed Brey)
|
||||
|
||||
* _tree.c, _list.c, _slist.c, _debug.c : compile-time improvements
|
||||
|
||||
* _tree.h/c, _list.h/c, _slist.h/c, _vector.h/c, _string.h/c : using directive for data members
|
||||
changed to explicit "this->".
|
||||
|
||||
* _complex.h : signatures of some methods changed to take value_type instead of const value_type&,
|
||||
for better conformance (thanks to Petr Ovchenkov)
|
||||
|
||||
* Bunch of fixes to compile with gcc on HP-UX 10, 11 (thanks to Petr Ovchenkov)
|
||||
|
||||
* Code duplication for __STL_INLINE_MEMBER_TEMPLATES removed -- corresponding methods are always inlined
|
||||
|
||||
* stl_sunpro.h : fix for "-compat" mode (thanks to Vijay Ramachandran)
|
||||
|
||||
* pthread.h : new wrapper added
|
||||
|
||||
* Added custom prolog/epilog for HP aCC to select kthreads on HP-UX 11 (Thanks to Michael Tsirkin)
|
||||
|
||||
* <new> : fixed throw specification for bad_alloc (has to be inherited)
|
||||
|
||||
* Macro __STL_NATIVE_CPP_RUNTIME_INCLUDE_PATH introduced to specify separate path for <exception>, <typeinfo>, <new>.
|
||||
(thanks to Bryan Byrnes)
|
||||
|
||||
* <stdio_streambuf> : moved from stlport/stl to stlport directory, for SGI compatibility
|
||||
|
||||
The following changes were made in 4.1 beta 1 since 4.0 :
|
||||
|
||||
* Sun Forte 6.0 C++ configuration provided (thanks to Alexander Vanic for the input)
|
||||
|
||||
* _threads.h/_config.h : added efficient support for atomic operations for
|
||||
DEC CXX and Watcom (thanks to Ricardo Gayoso for the input).
|
||||
Macros __STL_ATOMIC_xxx introduced to facilitate this.
|
||||
|
||||
* _tree.h : optimizations to lower number of comparisons (thanks to Craig Powers for the patch)
|
||||
|
||||
* _tree.h, _hashtable.h and clients : added templated find() as an extension (thanks to Michael Tsirkin for the suggestion)
|
||||
|
||||
* _tree.h : changed some inlining for performance optimization
|
||||
|
||||
* __node_alloc:: allocate broken into two functions for better inlining
|
||||
|
||||
* _threads.h : added PTHREAD_MUTEX_INITIALIZER guard for HP workaround
|
||||
|
||||
* stl_bc.h : option set to control alignment and virtual table behaviour to be consistent;
|
||||
library name adjusted to stlport_bcc55_xxx
|
||||
|
||||
* _algobase.h, _uninitialized.h, char_traits.h -- optimized out empty memcpy() calls
|
||||
(thanks to Michael Tsirkin for the report).
|
||||
|
||||
* _iterator.h : fixed reverse_iterator::operator+(int, reverse_iterator) resolution
|
||||
(thanks to Anton Sergeev for the input)
|
||||
|
||||
* _bitset.h : bitset<>::test bugfix (thanks to Anton Sergeev for the patch)
|
||||
|
||||
* complex_trig.cpp : use of __STL_NO_LONG_DOUBLE made consistent, fixes for Borland on Linux
|
||||
(thanks to John Wiegley for the input)
|
||||
|
||||
* moneypunct_byname_w.cpp : bugfixes for string copying (thanks to Anton Sergeev for the input)
|
||||
|
||||
* Watcom-specific fixes (thanks to Ricardo Gayoso for the input)
|
||||
|
||||
* src/common_macros.mak : some intermediate targets added (thanks to Jeremy for the suggestion)
|
||||
|
||||
* _debug.c : fixes for Win CE (thanks to John Hynes for the patch)
|
||||
|
||||
* Intel CC 4.0-specific fixes (thanks to Sean Cavanaugh for the input)
|
||||
|
||||
* _list.c : workaround for Watcom C++ (thanks to Mike Steed for the report)
|
||||
|
||||
* __STL_NO_NATIVE_WIDE_STREAMS definition fixed (thanks to Glen Summers for the patch)
|
||||
|
||||
* cast macros fixed to be more robust (thanks to Geoff Oakham for the report)
|
||||
|
||||
* "strstream.h" native inclusion for VC 6.0 fixed (thanks to Sathish T C for the report)
|
||||
|
||||
* debug/_string.h : improvement to string with __STL_DEBUG w/o member templates
|
||||
(thanks to Paul Furnanz for the report)
|
||||
|
||||
* debug/_string.h : fixed internal compiler error for VC++ 5.x (thanks to chvetsov for the report)
|
||||
|
||||
* cstdio, stl/_streambuf.h : fixes to allow gcc compilation with -ansi flag
|
||||
|
||||
* workaround for cin/cout renaming on HPUX11 for -D_REENTRANT (thankf to Jeff Sparkes for the report)
|
||||
|
||||
* cin/cout/cerr/clog renaming in STLport for CC 4.0 and SGI iostreams,
|
||||
to avoid symbol clashes with native ones (thanks to Dirk Schreib for the report)
|
||||
|
||||
* type_info scope fixes for VC++ 6.0 (thanks to Sathish T C for the report)
|
||||
|
||||
* typeinfo.h using fixes (thanks to Glen Summers for the input)
|
||||
|
||||
* stlcomp.h : fixes to allow compilation of .c modules with VAC++, Sun CC, DEC CC, Watcom CC
|
||||
(thanks to Dmitry A.Steklenev, Jonathan Richardson for the report)
|
||||
|
||||
* debug/_tree.h : fixed insert_unique() bug (thanks to Ben Liblit for the report)
|
||||
|
||||
* regression/gcc.mak made non-dependant on "." in the path
|
||||
(thanks to Thomas Matelich for the report)
|
||||
|
||||
* hmset1.cpp fixed to compile under OS390 ( thanks to Andrey Khovanskiy for the report)
|
||||
|
||||
668
STLPORT/etc/ChangeLog-4.0
Normal file
668
STLPORT/etc/ChangeLog-4.0
Normal file
@@ -0,0 +1,668 @@
|
||||
The following fix was made in 4.0 since 4.0 Release Candidate :
|
||||
|
||||
* _threads.h/_config.h : for all platforms, static mutexes made non-indirect
|
||||
|
||||
* _iterator_base.h : made possible to choose between iterator_traits approach
|
||||
and old-style iterator queries like iterator_category(), value_type(), etc.
|
||||
(Thanks to John R. Bandela for pointing this out)
|
||||
* _config.h, stl_user_config.h : introduced __STL_OLD_HP_ITERATOR_QUERIES switch to
|
||||
allow old-style and new-style iterator queries (for all compilers).
|
||||
iterator_traits<> made always defined.
|
||||
|
||||
* _ptr_specialize.h - specializations of type_traits<> for compilers w/o partial spec
|
||||
moved into separate file. Added iterator_traits<> specializations for pointer types
|
||||
for __STL_NO_OLD_HP_ITERATOR_QUERIES case. Macro __STL_POINTERS_SPECIALIZE is now available
|
||||
to specialize both type_traits and iterator_traits for a pointer to user-defined
|
||||
type (latter for standard-style iterator queries mode only)
|
||||
|
||||
* vc5.mak : __STL_NO_FORCE_INSTANTIATE flag restored
|
||||
|
||||
* _site_config.h : if __STL_NO_NEW_IOSTREAMS or __STL_NO_IOSTREAMS specified,
|
||||
SGI iostreams are being turned off. __STL_NO_SGI_IOSTREAMS moved into stl_user_config.h
|
||||
(Thanks to Sathish T C for the report)
|
||||
|
||||
* stl_watcom.h : _REENTRANT is being set if _MT is set (thanks to Ricardo E. Gayoso for the input)
|
||||
|
||||
The following fix was made in 4.0 Release Candidate :
|
||||
* _threads.h, _alloc.c : fixed use of _STL_mutex_base instead of _STL_STATIC_MUTEX macro
|
||||
|
||||
The following changes were made in 4.0 Release Candidate since 4.0 beta 8:
|
||||
|
||||
* fstream.cpp : WIN32 fstreambuf::open flag mapping fixed
|
||||
(thanks to Alberto Barbati for the reports)
|
||||
|
||||
* ctype.cpp : fixed classic table regarding ios_base::print/ios_base::space
|
||||
conflict (thanks to Alberto Barbati for the report)
|
||||
|
||||
* cmath : added same workaround for SUN's math exception/std::exception name clash
|
||||
as was there in math.h before
|
||||
|
||||
* _streambuf.c : added "typename" to out-of-line functions (thanks to Michael Tsirkin for the report)
|
||||
|
||||
* README fixed to be consistent about SGI iostreams setting (thanks to Ed Brey for the report)
|
||||
|
||||
* _bitset.h : fixed SUN CC 4.2 crash with -g option (thanks to Alex Vanic for the report),
|
||||
fixed bug in bitset<>::reference base bitset typedef
|
||||
|
||||
* _threads.h/.c - fixed issue with inconsistent system's macro for initialization
|
||||
and warning about partially bracketed initializer
|
||||
|
||||
* debug/_vector.h : fixed _Vector_nonconst_traits specialization for bit_vector
|
||||
(thanks for Dave Abrahams for the fix & reminder)
|
||||
|
||||
* config/msvc.h - addidional level 4 warnings suppressed (thanks to Ed Brey for the report)
|
||||
* _ios.h : fixed DLL export decl for MSVC (thanks to Alberto Barbati for the report)
|
||||
|
||||
* stdio_streambuf.cpp : compatibility fix for glibc 2.2 (thanks to Bill Shanahan for the patch)
|
||||
* _iterator_base.h : added iterator<output_iterator_tag, void,..> specialization;
|
||||
_stream_iterator.h : ostream_iterator changed to inherit from iterator<>
|
||||
(thanks to Raphael Bossek for the report)
|
||||
|
||||
* INSTALL : added some exaples and fixed typos (thanks to Beman Dawes for the report)
|
||||
|
||||
* _site_config.h : more consistency checks for MT (thanks to John Maddock for the input)
|
||||
|
||||
* _messages_facets.h : added DLL export decls (thanks to John Maddock for the report)
|
||||
|
||||
* complex_io_w.cpp : fixed specialization syntax for aCC (thanks to Paul E. Blanchard for the report)
|
||||
|
||||
* complex_exp.cpp : fixed pow() bug for negative arguments (thanks to Anton Sergeev for the report)
|
||||
* _fstream.h/_streambuf.h : MRC/MPW workarounds (thanks for Tsutomu Yoshida for the report)
|
||||
|
||||
* using/fstream.h : added missing end-of-line (thanks to Jean-Francois Panisset for the report)
|
||||
|
||||
* <typeinfo> : workaround for VC++ 6.0 defining type_info in gobal namespace (thanks to Bosko Ivanisevic for pointing that out)
|
||||
|
||||
* _threads.h/_threads.c/pthread_alloc : improved pthreads portability (thatnks to Michael Tsirkin for the patch)
|
||||
|
||||
* _debug.h/_debug.c : __STL_ASSERT/__STL_VERBOSE_ASSERT/__STL_VERBOSE_RETUN macros guarded to be overridable by user (thanks to Tony Gould for the input)
|
||||
|
||||
* _valarray.h : added assert to operator=
|
||||
|
||||
* config/vc_select_lib.h : added _AFXDLL recognition (thanks to Andrew Phipps for input)
|
||||
|
||||
* _rope.h : added default constructors to please gcc-2.7.2
|
||||
|
||||
* _set.h/_hash_set.h : pointer and reference typedefs fixed (thanks to Anton Sergeev for the report)
|
||||
|
||||
* stl/_config.h : stl_user config.h included prior to other parts of configuration
|
||||
(thanks to Frank Samuel for the report)
|
||||
|
||||
The following changes were made in 4.0 beta 8 since 4.0 beta 7:
|
||||
|
||||
* Merged changes for 06/08 SGI library snapshot; mostly in locale
|
||||
|
||||
* Merged series of fixes/workarounds by Tsutomu Yoshida (thanks!):
|
||||
* _rope.c - fixed memory leak bug;
|
||||
* _debug.c/_debug.h - added extra zero-initialization for more robustness;
|
||||
* _list.h - MPW - specific fixes;
|
||||
* _hashtable.h - fixed debug renaming clash for __STL_USE_ABBREVS
|
||||
* EH workarounds to make Apple compilers behave
|
||||
|
||||
* _fstream.c : fixed tellg() bug in text mode
|
||||
|
||||
* <csignal> : added sig_atomic_t import
|
||||
|
||||
* series of fixes for HP aCC 1.23 ( thanks to Michael Tsirkin for the patch ):
|
||||
_bvector.h : all relops are specialized;
|
||||
stl_hpacc.h - fixed config;
|
||||
hpacc.mak : added makefiles for HP aCC in src and test
|
||||
debug/_iterator.h, debug/_vector.h - removed future errors due to baseclass member use
|
||||
|
||||
* <cstdlib> : added import of system() call (thanks to Petr Ovchenkov for the report)
|
||||
|
||||
* _REENTRANT is now set by default to be on for all SGI iostreams compilations.
|
||||
Same is being enforced if SGI iostreams are used.
|
||||
|
||||
* _pair.h : added workaround for make_pair in case of char literals
|
||||
(extension, only works with partial function order)
|
||||
|
||||
* config/stl_gcc.h - fixed configuration problem for "g++-3" directory used in Cygnus and Mingw
|
||||
distributions for gcc-2.95.2, while all other platforms use "g++". Added recognition section.
|
||||
Thanks to Dave Abrahams for the report.
|
||||
|
||||
* config/stl_mlc.h : added support for MLC compiler (thanks to Anton Sergeev for the patch)
|
||||
|
||||
* <memory> : auto_ptr simplified (thanks to Kon Tantos for problem report)
|
||||
|
||||
* num_get.cpp : included <ostream> to get external symbols right.
|
||||
|
||||
* stl_ibm.h : __STL_NO_TYPEINFO added for OS/2 (thanks to Willie Arbuckle for the report)
|
||||
|
||||
* stl_bc.h : fixed enforcement of static library until dynamic made to work (thanks to J. Lambert for the report)
|
||||
* src/stlport.rc : improved version definition to work with mingw32, <winres.h> changed to <windows.h>
|
||||
|
||||
* src/mingw32.mak : Made use of stlport.rc for DLL build (thanks to Danny Smith for the suggestion)
|
||||
* debug/_vector.h : name clash removed for _Base (thanks to Will Fike for the report)
|
||||
|
||||
* _monetary.h - added "static const bool intl" member to meneypunct<> templates
|
||||
(thanks to Anton Sergeev for the report)
|
||||
|
||||
* _bitset.h : added forward friend decraration for reference (thanks to Anton Sergeev for the report)
|
||||
|
||||
* _tree.h : made _Rb_tree_base_iterator::_M_node initialized in default constructor (thanks to Dean Sturtevant for the report)
|
||||
|
||||
* _set.h : reinterpret_cast<> changed to C-style cast (thanks to Dave Abrahams for the suggestion)
|
||||
|
||||
* Use of raw SGI allocators (like __node_alloc) as an allocator parameter deprecated,
|
||||
available only with __STL_USE_RAW_SGI_ALLOCATORS macro. May be removed later.
|
||||
__allocator<T> still available unless __STL_NO_EXTENSIONS is specified
|
||||
|
||||
* _limits.h/_limits.c - alignment fix for Solaris;
|
||||
* Modified __format_float* routines to take long double as parameter;
|
||||
(thatnks to Anthony Williams for the patch)
|
||||
|
||||
* debug/_iterator.h - wrappers for noncompliant compilers moved under
|
||||
#ifdef __SGI_STL_NO_ARROW_OPERATOR (thanks to Dave Abrahams for the input)
|
||||
|
||||
* _numeric_facets.h - num_put<> , num_get<> virtual members made outline to work
|
||||
aroung gcc-2.95 bug.
|
||||
|
||||
* <cstdio> : undefined obsolete C macros : getchar/putchar & the like.
|
||||
|
||||
* ctype.cpp : fixed bug with ctype<char>::is (const char*, const char*, mask)
|
||||
|
||||
* ctype.cpp : fixed is(print) for certain platforms where print is a separate flag
|
||||
|
||||
* ftstream.cpp : fixed corner case bug for Win32 text output (thanks for Dirk Schreib for the report)
|
||||
|
||||
* _streambuf.h, _fstream.h, stdio_strembuf.h : fixed overflow/pbackfail() virtuals definition;
|
||||
* _bitset.h : _M_copy_from_string fixed for non-member-template case (thanks to Alex Vanic for the report)
|
||||
|
||||
* gcc-glibc.mak, common_macros.mak : GLIBC compilation fixes (thanks to Thomas Witt for the report)
|
||||
* WCHAR_MIN, WCHAR_MAX definitions moved from <limits> to <cwchar>
|
||||
|
||||
* char_traits<char>::to_char_type : parameter changed to int
|
||||
|
||||
* <cstddef> included in <new> (for size_t)
|
||||
|
||||
* _codecvt<>::do_length: fixed first parameter to be const mbstate_t &;
|
||||
virtual fns moved into .cpp, to work aroung gcc bugs
|
||||
|
||||
* _complex.h : fixed complex<>::operator= and constructors signature to take const T&
|
||||
|
||||
* _istream.c : fixed formatted input involving binary '0'
|
||||
|
||||
* locale_impl.cpp : insertion of time_put<wchar_t> fixed
|
||||
|
||||
The following changes were made in 4.0 beta 7 since 4.0 beta 6:
|
||||
|
||||
* Merged series of fixes/workarounds by Tsutomu Yoshida (thanks!):
|
||||
* cmath, _complex.h, stl_apple.h, _deque.h - MPW/MRC specific workarounds
|
||||
* _bitset.h - removed the obsolete _WordT template parameters.
|
||||
* _ctype.h, _codecvt.h, _collate.h, _istream.h, _messages_facets.h, _monetary.c
|
||||
_monetary.h, _numeric_facets.h, _time_facets.h - added workaround for locale's nested class.
|
||||
* _ostream.c_ostream.h - added proposed modification against the <ostream> circular inclusion problem.
|
||||
* test/eh/test_deque.cpp - removed the obsolete template argument
|
||||
|
||||
* _bitset.h - removed obsolete adaptor (thanks to Alex Vanic for the report)
|
||||
|
||||
* _[io]stream.h - removed extra DLL specs (thanks to Danny Smith for the report)
|
||||
|
||||
* stl_msvc.h - fixed bug caused static lib to always be selected
|
||||
|
||||
* gcc.mak - fixed AR definition for static link
|
||||
|
||||
* Added workaround for static locale::id member in DLL for mingw32 (thanks for Danny Smith for the report)
|
||||
|
||||
* _string_io.h : added _widen() to get getline() compile with wchar (somewhat missing in b6 , thanks to Mikhail Leonov for reminder)
|
||||
|
||||
* threads.h - fixed guards for DreamSega WinCE (thanks to Ben Nason for the report)
|
||||
|
||||
* fstream.cpp : fixed truncation for WIN32 (thanks to Bruce Alderson for the report)
|
||||
|
||||
* _istream.c/_M_ignore_unbuffered() - fixed count bug
|
||||
|
||||
* _istream.c/ readsome() : fixed extra failbit setting on eof
|
||||
|
||||
* __get_integer - enhanced using a table; input value made unchanged in case of error.
|
||||
|
||||
* __get_base_or_zero - more code factored out
|
||||
|
||||
* stl_wince.h : fixed assert() definition for Win CE (thanks to Andrew Waters for the report)
|
||||
|
||||
* vc_select_lib.h " fixed __declspec selection for Win CE (thanks to Andrew Waters for the report)
|
||||
|
||||
* _rope.c - fixed bug in _S_destr_concat_char_iter (thanks to E.Musser for the fix)
|
||||
|
||||
* debug/_vector.h - fixed DLL export for vector<void*>
|
||||
|
||||
* _vector.h, _deque.h, _bvector.h - obsolete guards around at() methods removed ;
|
||||
* type_traits.h - WinCE compatibility fixes for -> operator definition ;
|
||||
* _vector.h, _deque,h - removed extra casts (thanks to Andrew Waters for the report)
|
||||
|
||||
* _algobase.h - optimized lexicografical_compare() overload for char*
|
||||
|
||||
The following changes were made in 4.0 beta 6 since 4.0 beta 5:
|
||||
|
||||
* Merged changes from SGI STL snapshots 04/03, 04/14, 04/18.
|
||||
|
||||
* Iostreams ported to Apple MPW/MRC (thanks to Tsutomu Yoshida for the contribution)
|
||||
|
||||
* Iostreams ported to OSF1/Tru64 (thanks to Marc W. Mengel for the contribution)
|
||||
|
||||
* Iostreams ported to FreeBSD ( Thanks to Sms for the contribution)
|
||||
|
||||
* <deque> : extra template parameter removed
|
||||
|
||||
* locale::id, locale::facet : reverted to nested classes as standard prescribes
|
||||
|
||||
* _string_io.h : added _widen() to get getline() compile with wchar (thanks to Mikhail Leonov for the patch)
|
||||
|
||||
* collate_byname[_w].cpp : fixes for VC++ 5.0 build w/__STL_DEBUG (thanks to Petr Ovchenkov for the patch)
|
||||
|
||||
* <complex> : __STL_COMPLEX_NAMESPACE defined before inclusion of impl. header
|
||||
(thanks to Matthew Kelly for the patch)
|
||||
|
||||
* makefiles in "src" : improved to get each compiler to put object files in separate directory :
|
||||
./obj/$(COMP)/Debug, etc. COMP is given some default value for each compiler, but may be also overridden.
|
||||
|
||||
* "src" subdirectory : added stlport_prefix.h file for precompiled header support;
|
||||
VC++ makefiles make use of them
|
||||
|
||||
* stl/_iterator_base.h : provided __STL_NONTEMPL_BASE_MATCH_BUG
|
||||
workaround for new form of distance().
|
||||
|
||||
* <limits> : added cast to WCHAR_MAX definition (thanks for Dave Abrahams for the report).
|
||||
|
||||
* stl_user_config.h, stl/_config.h - setting splitted and organized more properly.
|
||||
|
||||
* time_facets.cpp - extra instantiations removed (thanks to Matti Rintala for the report).
|
||||
|
||||
* stdio_streambuf.h : added explicit qualifications of C lib functions for gcc-2.91
|
||||
|
||||
* SGI code used for compatibility w/older versions are guarded with #ifndef __STL_NO_ANACHRONISMS
|
||||
|
||||
* SGI extensions are guarded with #ifndef __STL_NO_EXTENSIONS
|
||||
|
||||
* SGI/HP anachronisms are guarded with #ifndef __STL_NO_ANACHRONISMS
|
||||
|
||||
* <typeinfo> : .h file included if __STL_NO_NEW_NEW header is set
|
||||
(thanks to Willie Arbuckle for the report)
|
||||
|
||||
* Suppresed spurious BC55 warnings about iterators
|
||||
|
||||
* complex_io.h - fixed operators declarations for MetroWerks
|
||||
|
||||
* debug/_slist.h - cleaned up use of stl_debug_do obsolete macro (thanks to Matti Rintala)
|
||||
|
||||
* debug/_iterator.h, debug/_vector.h - fixed relaxed iterator constructors (thanks to Dave Abrahams for the patch)
|
||||
|
||||
* stl/_complex.h - fixes for gcc-2.95 on IRIX (thanks to Marc W. Mengel)
|
||||
|
||||
* debug/_iterator.h : fixed relaxed const/non-const iterator construction for debug mode
|
||||
(thanks to Dave Abrahams for the patch)
|
||||
|
||||
* collate : added workaround for SUNpro linker (thanks to Petr Ovchenkov for the fix)
|
||||
|
||||
* _ios.h, _streambuf.h - added obsolete stuff required by the standard
|
||||
|
||||
* _config.h/stdexcept - introduced __STL_NOTHROW_INHERITED to be used when we actually need
|
||||
exception specification due to inheritance (thanks to Joe for the report)
|
||||
|
||||
* _locale.h:104 : fixed ummaned parameters
|
||||
|
||||
* _tempbuf.h - fixed absent inclusion of _tempbuf.c
|
||||
|
||||
* <exception> : relaxed rules for importing vendor symbols
|
||||
|
||||
* _deque.h - added != operator
|
||||
|
||||
* _streambuf.h - fixed snextc() bug for wchar_t
|
||||
|
||||
* <ostream>, _numeric_facets.h - circular dependency resolved
|
||||
|
||||
* stl/_iosfwd.h - added include guard
|
||||
|
||||
* basic_[io]stream::sentry made inner class again (as per standard)
|
||||
for non-DLL compilations.
|
||||
|
||||
* vector<void*> is used in locale implementation to reduce code bloat,
|
||||
vector<void*> exported from DLL
|
||||
|
||||
* <stdexcept> : exported more stuff
|
||||
|
||||
* stl_intel.h : ICL config merged into stl_msvc.h
|
||||
|
||||
* gcc.mak - fixed for shared target
|
||||
|
||||
The following changes were made in 4.0 beta 5 since 4.0 beta 4:
|
||||
|
||||
* _hastable.c:263 : removed inneeded cast (thanks to Will Fike for the report)
|
||||
|
||||
* debug/_string.h : added conversion to non-SGI string (thanks to Todd Richmond for the report)
|
||||
|
||||
* _complex.h : fixed DLL declarations for i/o operators
|
||||
|
||||
* _ostream.h : fixed sentry behavoiur and DLL specs.
|
||||
|
||||
* _istream.h : fixed DLL specs, optimized some try/catch blocks
|
||||
|
||||
* _vector.h : fixed vector::insert body definition for __STL_INLINE_MEMBER_TEMPLATES
|
||||
|
||||
* <exception> : more compilers listed as having full exception header
|
||||
|
||||
* debug/_debug.h : added namespace to __STL_ASSERT for EH test which uses this internal macro.
|
||||
|
||||
* resource info fixed (thanks to Michael Entin for the report)
|
||||
|
||||
* debug/_string.h : fixed _M_start resolution bug (thanks to Rob for the report )
|
||||
|
||||
* <new> : added import of new_handler stuff from vendor namespace (thanks to Niran Bala for the report).
|
||||
|
||||
* src/c_locale_glibc - missed directory contents restored (thanks to Todd Rider for the report)
|
||||
|
||||
* mwerks_prj - project updated for new file set, target names for x86 changed to conform to common schema
|
||||
|
||||
* _ostream.c/_istream.c : fixed lookup for _S_eof symbol (thanks to Anton Sergeev for the report)
|
||||
|
||||
* _ios.h - fixed VC++ DLL warning for specializations
|
||||
|
||||
* stl_ibm.h - disabled "long long" due to incomplete support on MVS by request (thanks to Tinny Ng)
|
||||
|
||||
* char_traits.h - worked around weird gcc internal bug (__sz identifier changed to _Sz)
|
||||
|
||||
The following changes were made in 4.0 beta 4 since 4.0 beta 3:
|
||||
|
||||
* "src" directory : source divided into smaller parts to be more manageable and to
|
||||
get more cache locality
|
||||
|
||||
* throw specifications removed (macros made void) - thanks to Dave Abrahams for the suggestion
|
||||
|
||||
* stl/_list.c - fixed reverse() "inline",
|
||||
_deque.h - fixed cast bug for xlC (thanks to Alex Vanic for the reports)
|
||||
|
||||
* stl/_strstream.h - fixed DLL specs (thanks to Parcival Willems for the report)
|
||||
|
||||
* stl/_string.h, debug/_string.h - fixed conversion from native string with __STL_DEBUG
|
||||
(thanks to Todd Richmond for the report).
|
||||
|
||||
* stl/_istream.h - fixed clash of "__N" symbol with ctype.h macro for some compilers
|
||||
(thanks to Kees de Bruin for the report)
|
||||
|
||||
* Configuration fixed for Borland C++ 5.02 compiler [ deque still does not work with it ]
|
||||
|
||||
* gcc-2.7.2 configuration fixed
|
||||
|
||||
* SGI iostreams now work for Borland 5.5 with static lib , some problems with
|
||||
locale initialization when DLL is used.
|
||||
|
||||
* __get_c_string exported in DLL (thanks to Ed Ball for the report).
|
||||
|
||||
* ENDIAN fixes for CodeWarrior/DEC (thanks to Kevin Wooten for bringing this up)
|
||||
|
||||
* wrap_std/h/strstream.h - added missing wrapper (Thanks to Laurent for the report)
|
||||
|
||||
* stl_hpacc.h - fixed #endif bug,
|
||||
_limits.h/.c - fixed array initialization,
|
||||
_string_io.h, _locale.h - fixed circular dependancy,
|
||||
_set.[hc], _hashtable.c, _set.h - added __REINTERPRET_CAST need by some compilers;
|
||||
_i[o]stream.c, _rope.[hc] - lookup fixed for dependant symbols
|
||||
(thanks to Alain Miniussi for the reports)
|
||||
|
||||
After-release minor bugfixes for beta3:
|
||||
|
||||
* stl/_list.c - fixed reverse() [ new SGI code, merged unported first ]
|
||||
Thanks for everybody who reported it.
|
||||
|
||||
* stl/_bvector.h : fixed ambiguity problem with relational iterators
|
||||
for __STL_NO_BOOL case (thanks to Alex Vanic for the report).
|
||||
|
||||
* stl/_alloc.c, stl/_threads.c - fixed static member definitions for compilers
|
||||
that lack automatic static data members (gcc-2.7). Thanks to Huang-Ming Huang
|
||||
for the report.
|
||||
|
||||
* standard wide streams initialization bug on Win32 fixed (thanks to Harold Putman for the
|
||||
report)
|
||||
|
||||
The following changes were made in 4.0 beta 3 since 4.0 beta 2:
|
||||
|
||||
* Merged SGI changes from 02/18 snapshot.
|
||||
|
||||
* Ming32W (gcc Win32 port using MS runtime lib) is now fully supported.
|
||||
|
||||
* .dll build schema improved, now builds with mingw32 and Borland C++
|
||||
(Borland has some problem with numeric i/o)
|
||||
|
||||
* VC++ version bugfixes in <xstring>/<xutility>/<xstring>
|
||||
(thanks to Todd Richmond for the report)
|
||||
|
||||
* _bvector.h - relational operators defined only for "bit_vector",
|
||||
not for "vector" specializations (thanks to Edward Ball for the report)
|
||||
|
||||
* src/locale_impl.h - fixed multiple defined symbol problem with gcc
|
||||
(Thanks to Matti Rintala for the report)
|
||||
|
||||
* config/stl_ibm.h - __STL_NO_TYPEINFO added (thanks for Tinny Ng).
|
||||
|
||||
* <string> : _stl_string_io.h/c introduced to fight inter-dependencies
|
||||
|
||||
* _bvector.h - added fix for -tempinc compilation on AIX (thanks to Alex Vanic for the patch)
|
||||
|
||||
* fstream.cpp - _M_write bug for Win32 text mode fixed (thanks to Mike Pyle)
|
||||
|
||||
* _string.h : debug version included prior to _string.c;
|
||||
|
||||
* debug/_debug.h/.c, debug/_deque.h, debug/_string.h - fixed debug mode bugs;
|
||||
Apple compilers config fixes / iostream wrapping fixes / EH test fixes,
|
||||
(thanks to Tsutomu Youshida for the patch)
|
||||
|
||||
* csetjmp/setjmp.h - guards added against VC++ #defines (thanks to Gavin Wood)
|
||||
|
||||
* stl/_iosfwd.h : __STL_DEFAULT_CONSTRUCTED used instead of __STL_NULL_CHAR_INIT
|
||||
(thanks to Alex Vanic for the report)
|
||||
|
||||
* __stl_get_c_string() - made extern non-template for SGI iostreams mode.
|
||||
|
||||
* __cdecl calling convention fixes - now works for debug & non-debug code.
|
||||
|
||||
* _limits.h/.c : static data moved from inline functions into a class.
|
||||
|
||||
* stlport_msvc.rc resource file added for DLL's (thanks to Michael Entin)
|
||||
|
||||
* stlport/config/stl_wince.h : added abort()/assert() definitions
|
||||
(thanks to Gavin Wood for the report)
|
||||
|
||||
* Initial iostreams port for xlC (thanks to Alexander Vanic for the patch).
|
||||
|
||||
* config files - made safe for C compilers
|
||||
|
||||
* src/c_locale_stub.c - made structure for full platform-dependent
|
||||
locales other than "C". Glibc implementation merged.
|
||||
|
||||
The following changes were made in 4.0 release candidate 2 since 4.0 release candidate 1:
|
||||
|
||||
* Solid approach to __STL_DEFAULT_CONSTRUCTOR_BUG problem implemented,
|
||||
rope.h typo fixed (thanks to Alex Vanic for the report)
|
||||
|
||||
* getline and stream operators moved from _istream.c to _string.c
|
||||
where they belong (thanks for Petr Ovchenkov)
|
||||
|
||||
* <new> fixed to import nothrow and nothrow_t
|
||||
|
||||
* Borland C++ 5.5 (free compiler) supported (iostreams won't compile yet).
|
||||
|
||||
* SUN CC 6.0 EA - new features unabled (most announced features still don't work though)
|
||||
|
||||
* HP ACC configuration updated, some fixes for new aCC beta(thanks to Alain Miniussi).
|
||||
|
||||
* Windows CE compatibility fixed (thanks to Gavin Wood for the report)
|
||||
|
||||
* <sstream> fixed for non-SGI case, ios.cpp bug in __STL_NO_EXCEPTIONS
|
||||
mode fixed, debug iterators fix (thanks to Todd Richmond).
|
||||
|
||||
* VC++ 5.0 and 4.2 compatibility fixed (thanks to Ilya for the report)
|
||||
|
||||
* __cdecl calling convention explicitly specified for VC++ & static/global functions.
|
||||
|
||||
* vc_common.mk : debug type changed to CV (thanks to Mike Pyle for the solution)
|
||||
|
||||
* fstream.cpp : Win32 text mode : bugs fixed, SGI code used.
|
||||
fixed _M_open() creation flags for Win32 (thanks to Mike Pyle for the report)
|
||||
|
||||
* "install" target added for VC++ to install .dll's into Win system directory.
|
||||
|
||||
* __STL_USE_STATIC_LIB switch added to add flexibility to VC++ linking.
|
||||
|
||||
* __stl_debug_message for WIN32/Unicode/MFC improved
|
||||
(thanks to Edward Ball, Chvetsov for the reports)
|
||||
|
||||
* MVS fix for auto_ptr<> (thanks to Tinny Ng)
|
||||
|
||||
* debug/_tree.h, debug/_vector.h "typename" fixes, thanks to Matti Rintala.
|
||||
|
||||
* c_locale.h : fix for Solaris 2.5.x (thanks to B. K. Oxley)
|
||||
|
||||
* _bvector.h : Watcom compatibility fixed (thanks to Ricardo E. Gayoso for the report)
|
||||
|
||||
* __STL_DONT_REDEFINE_STD flag behaviour fixed
|
||||
|
||||
The following changes were made in 4.0 release candidate 1 since 3.2.2 Beta 4 :
|
||||
|
||||
* Merged changes made to SGI standard library snapshot on 01/28.
|
||||
|
||||
* Fixed bug with istream reading numbers in hex mode (thanks to Dave Abrahams
|
||||
for the patch).
|
||||
|
||||
* Debug mode redesigned (again) - no extra namespaces is being used
|
||||
Finally, it works for MSVC and all other platforms.
|
||||
|
||||
* __SGI_STL_OWN_IOSTREAMS made to be the default mode except few platforms
|
||||
not provided with makefiles to build STLport yet.
|
||||
|
||||
* Changed strategy on redefinig std:: namespace.
|
||||
prolog/epilog technology used to get clean namespace wrapping.
|
||||
It also allows for managing stack of pragmas
|
||||
(see stlport/stl/config/_prolog.h,_epilog.h) to get rid of warnings.
|
||||
Note : default namespace changed to _STL:: to satisfy implementation
|
||||
constraints and to allow for more compact symbols.
|
||||
"stlport::" namespace is still defined for backwards compatibility.
|
||||
|
||||
* iostreams library now compiles on HP with aCC (thanks to Steven Serocki for the patch).
|
||||
|
||||
* Configuration for SUN Workshop 6.0 EA provided.
|
||||
|
||||
* For VC++, corresponding [selected by /MT(d) or /MD(d) switch]
|
||||
STLport iostreams library is being linked automatically - all you
|
||||
need is to put library in lib search path or specify additional library path.
|
||||
|
||||
* Ability to turn on all warnings in your own code if you're using
|
||||
a compiler with appropriate support (e.g. MSVC6).
|
||||
|
||||
* Small fixes posted to the forum integrated:
|
||||
|
||||
* config/stl_wince.h : added __STL_HAS_NO_NEW_C_HEADERS switch
|
||||
* wrap_std/strsream : fixed preprocessor bug, strstream.h included
|
||||
when not using new-style headers
|
||||
* other fixes
|
||||
|
||||
The following changes were made in 3.2.2 beta 4 since 3.2.2 Beta 3:
|
||||
|
||||
* Merged changes made to SGI standard library snapshot on 01/10.
|
||||
|
||||
* Major restructuring of header files - for maintainability and
|
||||
8.3 filesystems benefit.
|
||||
|
||||
* Major debug mode improvements - new debug mode now works with
|
||||
VC++, gcc, intel, SUNpro, MetroWerks.
|
||||
|
||||
* Regression test suite changed to new-style headers - thanks to
|
||||
Dima Pasechnik for the initial port.
|
||||
|
||||
* <rope> fixes for Watcom
|
||||
|
||||
* many miscellanous fixes.
|
||||
|
||||
The following changes were made in 3.2.2 beta 3 since 3.2.2 Beta 2:
|
||||
|
||||
* Merged changes made to SGI standard library snapshot in December.
|
||||
|
||||
* std:: is not used for STLport namespace even with SGI iostreams,
|
||||
to avoid possible clashes and facilitate 3rd-party library use.
|
||||
Same macro redefinition technique for stlport:: used to keep clients
|
||||
code with literal std:: happy as in native iostreams mode.
|
||||
|
||||
* C library headers wrapping changed to allow multiple inclusion tricks
|
||||
(needed by gcc-2.95 mostly)
|
||||
|
||||
* gcc-2.95 and CodeWarrior configurations updated.
|
||||
|
||||
* HP aCC fixes applied.
|
||||
|
||||
* Visual C++ - added static library targets, build refined.
|
||||
Fixed memory-mapping bugs.
|
||||
|
||||
* auto_ptr updated, now it passes polymorphic tests with VC++.
|
||||
|
||||
* Many small bugfixes.
|
||||
|
||||
The following changes were made in 3.2.2 beta 2 since 3.2.2 Beta 1:
|
||||
|
||||
* Fixed SUN CC deque<> problem with -g
|
||||
|
||||
* Added configuration and makefiles for DEC VMS, Borland and Win32 gcc.
|
||||
|
||||
* Merged changes made to November SGI standard library snapshot.
|
||||
|
||||
* config changes - "configure" made obsolete and moved into "stlport/config/new_compiler".
|
||||
|
||||
* __STL_TYPENAME_ON_RETURN_TYPE handling changed.
|
||||
|
||||
* Miscellanous fixes.
|
||||
|
||||
The following changes were made in 3.2.2 Beta 1 since 3.2.1 release:
|
||||
|
||||
* SGI iostreams adopted. To use SGI iostreams, user have to set
|
||||
__SGI_STL_OWN_IOSTREAMS flag and to build the library in "src"
|
||||
directory to link with. Please read INSTALL file for detailed
|
||||
instructions.
|
||||
Default setting is NOT to use SGI iostreams (wrappers used as before).
|
||||
|
||||
* Debug mode completely redesigned - debug mode containers are
|
||||
implemented in terms of wrappers around non-debug ones.
|
||||
That provides for more clean and efficient implementation and
|
||||
binary compatibility between debug and non-debug versions.
|
||||
|
||||
* Additional configurations added for platforms :
|
||||
- gcc-2.95
|
||||
- SUNpro CC 5.0 in "compatibility" mode
|
||||
"configure" made obsolete.
|
||||
|
||||
* Bugfixes reported by users since 3.2.1 release merged
|
||||
|
||||
The following changes were made in 3.2.1 since 3.2 release:
|
||||
|
||||
* Now, by default, STLPort renames std:: namespace for user
|
||||
if __STL_USE_OWN_NAMESPACE is used. To make it possible, many new
|
||||
wrapper headers introduced. Internally, STLport uses stlport:: namespace,
|
||||
so no link- or run- time clashes are possible, and you don't have to rebuild
|
||||
the runtime lib (which you don't want to).
|
||||
This feature makes STLport usable out-of-the box, without any modifications
|
||||
for client code, with any compiler.
|
||||
|
||||
* Code bloat reduction : hashtable<T> uses vector<void*> internally.
|
||||
|
||||
* Vector : efficiency/code bloat reduction fixes.
|
||||
|
||||
* Visual C++ : DLL export is supported for allocators and strings. To use it,
|
||||
please define __STL_USE_DECLSPEC in all modules and __STL_DESIGNATED_DLL
|
||||
for the DLL which is supposed to instantiate STLport exports (at least one
|
||||
source of this DLL must include <string>.
|
||||
|
||||
* Visual C++ : for MT synchronization, <windows.h> is not included anymore.
|
||||
|
||||
* For Sunpro C++ 5.0 : all headers are linked into stlport/SC5, so only
|
||||
one include path is needed. Note that SC5.0 has problems with relative
|
||||
search path. It is easy to work around : in your makefiles, instead of
|
||||
"STL_INCL=../.." , write "STL_INCL=${PWD}/../..".
|
||||
|
||||
* Configuration files provided for compilers :
|
||||
KAI C++
|
||||
DEC C++ (6.x, 5.x)
|
||||
Borland 5.02 is back on the road (finally !)
|
||||
|
||||
* Windows CE config provided for Visual C++.
|
||||
|
||||
* __STL_NO_IOSTREAMS switch introduced for embedded platforms.
|
||||
|
||||
* Lots of minor config fixes and improvements for various platforms.
|
||||
36
STLPORT/etc/README
Normal file
36
STLPORT/etc/README
Normal file
@@ -0,0 +1,36 @@
|
||||
***********************************************
|
||||
|
||||
This directory contains miscellanous files for STLport-4.6 release.
|
||||
|
||||
***********************************************
|
||||
|
||||
PROJECT COORDINATION FILES
|
||||
|
||||
* ChangeLog - Log of changes since STLport 4.0 release
|
||||
* ChangeLog-4.0 - Log of changes before STLport 4.0 release
|
||||
|
||||
* TODO - Some future plans and directions
|
||||
|
||||
CVS HOUSEKEEPING, SCRIPTS
|
||||
|
||||
* cvsignore - ignore patterns to use with GNU 'tar' command
|
||||
* scvs - script to use CVS through SSH tunneling (the default
|
||||
method at cvs.stlport.com)
|
||||
|
||||
INDEPENDENT PACKAGING SUPPORT
|
||||
* STLport-4.5.1.spec : spec file to build RPM for STLport-4.5.1
|
||||
|
||||
INTERNAL INSTALLATION SUPPORT
|
||||
|
||||
* std_headers_xxx.txt - a list of headers to be placed in various dirs
|
||||
|
||||
LOGOS
|
||||
|
||||
* stlport_powered_red.gif Those are "Powered by STLport" logos. You are more than welcome
|
||||
stlport_powered_white.gif to put those logos on webpages for your product if it uses STLport.
|
||||
|
||||
GOODIES
|
||||
|
||||
* msvcincl.dat - the file to be placed in Windows directory
|
||||
to exclude STLport files from VC++ dependancy checks
|
||||
|
||||
96
STLPORT/etc/STLport-4.5.1.spec
Normal file
96
STLPORT/etc/STLport-4.5.1.spec
Normal file
@@ -0,0 +1,96 @@
|
||||
%define MAKEFILE gcc-linux.mak
|
||||
|
||||
Summary: Complete C++ standard library
|
||||
Name: STLport
|
||||
Version: 4.5.1
|
||||
Release: 1
|
||||
Copyright: free (see license), see /usr/share/doc/%{name}-%{version}/license.html
|
||||
URL: http://www.stlport.org/
|
||||
Packager: Levente Farkas <lfarkas@mindmaker.hu>
|
||||
Group: System Environment/Languages
|
||||
Icon: stlport_powered_white.gif
|
||||
Source0: http://www.stlport.org/archive/%{name}-%{version}.tar.gz
|
||||
Patch0: STLport-rename.patch
|
||||
#Patch1: STLport-rules.patch
|
||||
#Patch2: STLport-install-dir.patch
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n)
|
||||
|
||||
%description
|
||||
STLport is a multiplatform STL implementation based on SGI STL.
|
||||
This package contains the runtime library for STLport.
|
||||
|
||||
%package -n STLport-devel
|
||||
Summary: Complete C++ standard library header files and libraries
|
||||
Group: Development/Libraries
|
||||
Requires: STLport = %{version}
|
||||
|
||||
%description -n STLport-devel
|
||||
STLport is a multiplatform STL implementation based on SGI STL. Complete
|
||||
C++ standard library, including <complex> and SGI STL iostreams. If you
|
||||
would like to use your code with STLport add
|
||||
"-nostdinc++ -I/usr/include/stlport" when compile and -lstlport_gcc when
|
||||
link (eg: gcc -nostdinc++ -I/usr/include/stlport x.cc -lstlport_gcc).
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%patch0 -p1
|
||||
#%patch1 -p1
|
||||
#%patch2 -p1
|
||||
|
||||
%build
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr clean all
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr install
|
||||
cd $RPM_BUILD_ROOT/usr/include/stlport
|
||||
ln -s . ext
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%post -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc doc/license.html
|
||||
/usr/lib/libstlport_gcc.so
|
||||
#/usr/lib/libstlport_gcc.so.%{version}
|
||||
/usr/lib/libstlport_gcc.so.4.5
|
||||
|
||||
%files -n STLport-devel
|
||||
%defattr(-,root,root)
|
||||
%doc INSTALL README doc etc test
|
||||
/usr/lib/libstlport_gcc*.a
|
||||
/usr/lib/libstlport_gcc_*debug.so*
|
||||
/usr/include/*
|
||||
|
||||
%changelog
|
||||
* Mon Dec 10 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5.1
|
||||
|
||||
* Fri Nov 16 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- merge with Harold's changes
|
||||
|
||||
* Thu Nov 15 2001 <stlport@lanceerplaats.nl>
|
||||
- rebuild for RedHat 7.2, spec file fixes.
|
||||
|
||||
* Tue Oct 2 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5
|
||||
|
||||
* Thu Oct 26 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.1-b3
|
||||
|
||||
* Thu Jul 17 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- initial release use STLport-4.0
|
||||
|
||||
96
STLPORT/etc/STLport-4.5.3.spec
Normal file
96
STLPORT/etc/STLport-4.5.3.spec
Normal file
@@ -0,0 +1,96 @@
|
||||
%define MAKEFILE gcc-linux.mak
|
||||
|
||||
Summary: Complete C++ standard library
|
||||
Name: STLport
|
||||
Version: 4.5.3
|
||||
Release: 1
|
||||
Copyright: free (see license), see /usr/share/doc/%{name}-%{version}/license.html
|
||||
URL: http://www.stlport.org/
|
||||
Packager: Levente Farkas <lfarkas@mindmaker.hu>
|
||||
Group: System Environment/Languages
|
||||
Icon: stlport_powered_white.gif
|
||||
Source0: http://www.stlport.org/archive/%{name}-%{version}.tar.gz
|
||||
#Patch0: STLport-rename.patch
|
||||
#Patch1: STLport-rules.patch
|
||||
#Patch2: STLport-install-dir.patch
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n)
|
||||
|
||||
%description
|
||||
STLport is a multiplatform STL implementation based on SGI STL.
|
||||
This package contains the runtime library for STLport.
|
||||
|
||||
%package -n STLport-devel
|
||||
Summary: Complete C++ standard library header files and libraries
|
||||
Group: Development/Libraries
|
||||
Requires: STLport = %{version}
|
||||
|
||||
%description -n STLport-devel
|
||||
STLport is a multiplatform STL implementation based on SGI STL. Complete
|
||||
C++ standard library, including <complex> and SGI STL iostreams. If you
|
||||
would like to use your code with STLport add
|
||||
"-nostdinc++ -I/usr/include/stlport" when compile and -lstlport_gcc when
|
||||
link (eg: gcc -nostdinc++ -I/usr/include/stlport x.cc -lstlport_gcc).
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%patch0 -p1
|
||||
#%patch1 -p1
|
||||
#%patch2 -p1
|
||||
|
||||
%build
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr clean all
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr install
|
||||
cd $RPM_BUILD_ROOT/usr/include/stlport
|
||||
ln -s . ext
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%post -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc doc/license.html
|
||||
/usr/lib/libstlport_gcc.so
|
||||
#/usr/lib/libstlport_gcc.so.%{version}
|
||||
/usr/lib/libstlport_gcc.so.4.5
|
||||
|
||||
%files -n STLport-devel
|
||||
%defattr(-,root,root)
|
||||
%doc INSTALL README doc etc test
|
||||
/usr/lib/libstlport_gcc*.a
|
||||
/usr/lib/libstlport_gcc_*debug.so*
|
||||
/usr/include/*
|
||||
|
||||
%changelog
|
||||
* Mon Dec 10 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5.1
|
||||
|
||||
* Fri Nov 16 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- merge with Harold's changes
|
||||
|
||||
* Thu Nov 15 2001 <stlport@lanceerplaats.nl>
|
||||
- rebuild for RedHat 7.2, spec file fixes.
|
||||
|
||||
* Tue Oct 2 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5
|
||||
|
||||
* Thu Oct 26 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.1-b3
|
||||
|
||||
* Thu Jul 17 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- initial release use STLport-4.0
|
||||
|
||||
99
STLPORT/etc/STLport-4.6.spec
Normal file
99
STLPORT/etc/STLport-4.6.spec
Normal file
@@ -0,0 +1,99 @@
|
||||
%define MAKEFILE gcc-linux.mak
|
||||
|
||||
Summary: Complete C++ standard library
|
||||
Name: STLport
|
||||
Version: 4.6
|
||||
Release: 1
|
||||
Copyright: free (see license), see /usr/share/doc/%{name}-%{version}/license.html
|
||||
URL: http://www.stlport.org/
|
||||
Packager: Levente Farkas <lfarkas@mindmaker.hu>
|
||||
Group: System Environment/Languages
|
||||
Icon: stlport_powered_white.gif
|
||||
Source0: http://www.stlport.org/archive/%{name}-%{version}.tar.gz
|
||||
#Patch0: STLport-rename.patch
|
||||
#Patch1: STLport-rules.patch
|
||||
#Patch2: STLport-install-dir.patch
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n)
|
||||
|
||||
%description
|
||||
STLport is a multiplatform STL implementation based on SGI STL.
|
||||
This package contains the runtime library for STLport.
|
||||
|
||||
%package -n STLport-devel
|
||||
Summary: Complete C++ standard library header files and libraries
|
||||
Group: Development/Libraries
|
||||
Requires: STLport = %{version}
|
||||
|
||||
%description -n STLport-devel
|
||||
STLport is a multiplatform STL implementation based on SGI STL. Complete
|
||||
C++ standard library, including <complex> and SGI STL iostreams. If you
|
||||
would like to use your code with STLport add
|
||||
"-nostdinc++ -I/usr/include/stlport" when compile and -lstlport_gcc when
|
||||
link (eg: gcc -nostdinc++ -I/usr/include/stlport x.cc -lstlport_gcc).
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%patch0 -p1
|
||||
#%patch1 -p1
|
||||
#%patch2 -p1
|
||||
|
||||
%build
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr clean all
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
cd src
|
||||
make -f %{MAKEFILE} INSTALLDIR=$RPM_BUILD_ROOT/usr install
|
||||
cd $RPM_BUILD_ROOT/usr/include/stlport
|
||||
ln -s . ext
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%post -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun -n STLport-devel
|
||||
/sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc doc/license.html
|
||||
/usr/lib/libstlport_gcc.so
|
||||
#/usr/lib/libstlport_gcc.so.%{version}
|
||||
/usr/lib/libstlport_gcc.so.4.6
|
||||
|
||||
%files -n STLport-devel
|
||||
%defattr(-,root,root)
|
||||
%doc INSTALL README doc etc test
|
||||
/usr/lib/libstlport_gcc*.a
|
||||
/usr/lib/libstlport_gcc_*debug.so*
|
||||
/usr/include/*
|
||||
|
||||
%changelog
|
||||
* Fri Oct 31 2003 <boris@stlport.com>
|
||||
- upgrade to 4.6
|
||||
|
||||
* Mon Dec 10 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5.1
|
||||
|
||||
* Fri Nov 16 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- merge with Harold's changes
|
||||
|
||||
* Thu Nov 15 2001 <stlport@lanceerplaats.nl>
|
||||
- rebuild for RedHat 7.2, spec file fixes.
|
||||
|
||||
* Tue Oct 2 2001 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.5
|
||||
|
||||
* Thu Oct 26 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- upgrade to 4.1-b3
|
||||
|
||||
* Thu Jul 17 2000 Levente Farkas <lfarkas@mindmaker.hu>
|
||||
- initial release use STLport-4.0
|
||||
|
||||
36
STLPORT/etc/TODO
Normal file
36
STLPORT/etc/TODO
Normal file
@@ -0,0 +1,36 @@
|
||||
**********************************************************************
|
||||
* TODO file for STLport *
|
||||
* *
|
||||
**********************************************************************
|
||||
|
||||
This file lists various prospective things to do with STLport.
|
||||
|
||||
Please feel free to contribute to implementing any of these.
|
||||
Please submit results back to STLport coordinator
|
||||
( boris@stlport.com, http://www.stlport.com/forum ).
|
||||
|
||||
Below, numbers in "[]" brackets indicate priority.
|
||||
|
||||
[1] Make sure that the libary compiled with thread support,
|
||||
is binary compatible with _NOTHREADS compiled projects. Hint - now it's NOT.
|
||||
|
||||
[1] More makefiles in src directory.
|
||||
|
||||
[1] More detailed installation/build instructions.
|
||||
|
||||
[2] More detailed documentation.
|
||||
|
||||
[1] User-friendly installation scripts.
|
||||
|
||||
[3] iostreams efficiency analysis.
|
||||
|
||||
[3] iostream/STL benchmarking against other implementations.
|
||||
|
||||
[3] An "undef" script to expand macros and produce more readable
|
||||
STLport headers customized for given configuration automatically.
|
||||
|
||||
[1] More points to add to this file ;).
|
||||
|
||||
|
||||
|
||||
|
||||
22
STLPORT/etc/cvsignore
Normal file
22
STLPORT/etc/cvsignore
Normal file
@@ -0,0 +1,22 @@
|
||||
ignore
|
||||
dev
|
||||
fix
|
||||
lib
|
||||
*.o
|
||||
*.obj
|
||||
*~
|
||||
*.exe
|
||||
*.dll
|
||||
*.core
|
||||
*.bak
|
||||
*.out
|
||||
*.pdb
|
||||
*.pch
|
||||
.*
|
||||
core
|
||||
CVS
|
||||
SunWS_cache
|
||||
Templates.DB
|
||||
*.gz
|
||||
doc
|
||||
make_snap.sh
|
||||
309
STLPORT/etc/msvcincl.dat
Normal file
309
STLPORT/etc/msvcincl.dat
Normal file
@@ -0,0 +1,309 @@
|
||||
algo.h
|
||||
algobase.h
|
||||
algorith.h
|
||||
algorithm
|
||||
alloc.h
|
||||
bitset
|
||||
bitset.h
|
||||
bvector.h
|
||||
cassert
|
||||
cassert.h
|
||||
cctype
|
||||
cctype.h
|
||||
cerrno
|
||||
cerrno.h
|
||||
cfloat
|
||||
cfloat.h
|
||||
char_traits.h
|
||||
climits
|
||||
climits.h
|
||||
clocale
|
||||
clocale.h
|
||||
cmath
|
||||
cmath.h
|
||||
complex
|
||||
complex.h
|
||||
concept_checks.h
|
||||
configure
|
||||
configure.in
|
||||
csetjmp
|
||||
csetjmp.h
|
||||
csignal
|
||||
csignal.h
|
||||
cstdarg
|
||||
cstdarg.h
|
||||
cstddef
|
||||
cstddef.h
|
||||
cstdio
|
||||
cstdio.h
|
||||
cstdlib
|
||||
cstdlib.h
|
||||
cstring
|
||||
cstring.h
|
||||
ctime
|
||||
ctime.h
|
||||
ctype.h
|
||||
cwchar
|
||||
cwchar.h
|
||||
cwctype
|
||||
cwctype.h
|
||||
c_locale.h
|
||||
defalloc.h
|
||||
deque
|
||||
deque.h
|
||||
exceptio.h
|
||||
exception
|
||||
exception.h
|
||||
export
|
||||
fstream
|
||||
fstream.h
|
||||
function.h
|
||||
functional
|
||||
hashtable.h
|
||||
hash_map
|
||||
hash_map.h
|
||||
hash_set
|
||||
hash_set.h
|
||||
heap.h
|
||||
iomanip
|
||||
iomanip.h
|
||||
ios
|
||||
ios.h
|
||||
iosfwd
|
||||
iosfwd.h
|
||||
iostream
|
||||
iostream.h
|
||||
istream
|
||||
istream.h
|
||||
iterator
|
||||
iterator.h
|
||||
limits
|
||||
limits.h
|
||||
list
|
||||
list.h
|
||||
locale
|
||||
locale.h
|
||||
map
|
||||
map.h
|
||||
math.h
|
||||
mem.h
|
||||
memory
|
||||
memory.h
|
||||
mmemory.h
|
||||
msl_string.h
|
||||
multimap.h
|
||||
multiset.h
|
||||
new
|
||||
new.h
|
||||
numeric
|
||||
numeric.h
|
||||
numeric.h
|
||||
ostream
|
||||
ostream.h
|
||||
pair.h
|
||||
pthread.h
|
||||
pthread_alloc
|
||||
pthread_alloc.h
|
||||
queue
|
||||
queue.h
|
||||
rope
|
||||
rope.h
|
||||
set
|
||||
set.h
|
||||
setjmp.h
|
||||
signal.h
|
||||
slist
|
||||
slist.h
|
||||
sstream
|
||||
sstream.h
|
||||
stack
|
||||
stack.h
|
||||
stdarg.h
|
||||
stddef.h
|
||||
stddef.h
|
||||
stdexcep.h
|
||||
stdexcept
|
||||
stdio.h
|
||||
stdio_streambuf
|
||||
stdlib.h
|
||||
stdlib.h
|
||||
stlcomp.h
|
||||
stlconf.h.in
|
||||
stl_apcc.h
|
||||
stl_apple.bak.h
|
||||
stl_apple.h
|
||||
stl_as400.h
|
||||
stl_bc.h
|
||||
stl_como.h
|
||||
stl_confix.h
|
||||
stl_dec.h
|
||||
stl_dec_vms.h
|
||||
stl_fujitsu.h
|
||||
stl_gcc.h
|
||||
stl_hpacc.h
|
||||
stl_ibm.h
|
||||
stl_intel.h
|
||||
stl_kai.h
|
||||
stl_mlc.h
|
||||
stl_msvc.h
|
||||
stl_mwerks.h
|
||||
stl_mycomp.h
|
||||
stl_sco.h
|
||||
stl_select_lib.h
|
||||
stl_sgi.h
|
||||
stl_solaris.h
|
||||
stl_sunpro.h
|
||||
stl_symantec.h
|
||||
stl_tmpl.h
|
||||
stl_user_config.h
|
||||
stl_watcom.h
|
||||
stl_wince.h
|
||||
streambu.h
|
||||
streambuf
|
||||
streambuf.h
|
||||
string
|
||||
string.h
|
||||
strstrea.h
|
||||
strstream
|
||||
strstream.h
|
||||
tempbuf.h
|
||||
time.h
|
||||
tree.h
|
||||
typeinfo
|
||||
typeinfo.h
|
||||
type_traits.h
|
||||
utility
|
||||
utility.h
|
||||
valarray
|
||||
valarray.h
|
||||
vc_select_lib.h
|
||||
vector
|
||||
vector.h
|
||||
wchar.h
|
||||
wctype.h
|
||||
_abbrevs.h
|
||||
_algo.c
|
||||
_algo.h
|
||||
_algobase.c
|
||||
_algobase.h
|
||||
_alloc.c
|
||||
_alloc.h
|
||||
_alloc_old.h
|
||||
_auto_ptr.h
|
||||
_bitset.c
|
||||
_bitset.h
|
||||
_bvector.h
|
||||
_check_config.h
|
||||
_codecvt.h
|
||||
_collate.h
|
||||
_complex.c
|
||||
_complex.h
|
||||
_config.h
|
||||
_config_compat.h
|
||||
_config_compat_post.h
|
||||
_construct.h
|
||||
_ctraits_fns.h
|
||||
_ctype.h
|
||||
_cwchar.h
|
||||
_debug.c
|
||||
_debug.h
|
||||
_deque.c
|
||||
_deque.h
|
||||
_epilog.h
|
||||
_epilog.h
|
||||
_exception.h
|
||||
_fstream.c
|
||||
_fstream.h
|
||||
_function.h
|
||||
_function_base.h
|
||||
_hashtable.c
|
||||
_hashtable.h
|
||||
_hash_fun.h
|
||||
_hash_map.h
|
||||
_hash_set.h
|
||||
_heap.c
|
||||
_heap.h
|
||||
_ios.c
|
||||
_ios.h
|
||||
_iosfwd.h
|
||||
_ios_base.h
|
||||
_istream.c
|
||||
_istream.h
|
||||
_istreambuf_iterator.h
|
||||
_iterator.h
|
||||
_iterator.h
|
||||
_iterator_base.h
|
||||
_iterator_old.h
|
||||
_limits.c
|
||||
_limits.h
|
||||
_list.c
|
||||
_list.h
|
||||
_list.h
|
||||
_locale.h
|
||||
_map.h
|
||||
_messages_facets.h
|
||||
_mmap.h
|
||||
_monetary.c
|
||||
_monetary.h
|
||||
_msvc_warnings_off.h
|
||||
_null_stream.h
|
||||
_numeric.c
|
||||
_numeric.h
|
||||
_numpunct.h
|
||||
_num_get.c
|
||||
_num_get.h
|
||||
_num_put.c
|
||||
_num_put.h
|
||||
_ostream.c
|
||||
_ostream.h
|
||||
_ostreambuf_iterator.h
|
||||
_pair.h
|
||||
_prolog.h
|
||||
_pthread_alloc.h
|
||||
_ptrs_specialize.h
|
||||
_queue.h
|
||||
_range_errors.h
|
||||
_raw_storage_iter.h
|
||||
_relops.h
|
||||
_relops_cont.h
|
||||
_relops_template.h
|
||||
_rope.c
|
||||
_rope.h
|
||||
_set.h
|
||||
_set_operators.h
|
||||
_site_config.h
|
||||
_slist.c
|
||||
_slist.h
|
||||
_slist_base.c
|
||||
_slist_base.h
|
||||
_sparc_atomic.h
|
||||
_sstream.c
|
||||
_sstream.h
|
||||
_stack.h
|
||||
_stdio_file.h
|
||||
_stdio_file.h.new
|
||||
_streambuf.c
|
||||
_streambuf.h
|
||||
_streambuf_iterator.h
|
||||
_stream_iterator.h
|
||||
_string.c
|
||||
_string.h
|
||||
_string_fwd.c
|
||||
_string_fwd.h
|
||||
_string_hash.h
|
||||
_string_io.c
|
||||
_string_io.h
|
||||
_strstream.h
|
||||
_tempbuf.c
|
||||
_tempbuf.h
|
||||
_threads.c
|
||||
_threads.h
|
||||
_time_facets.c
|
||||
_time_facets.h
|
||||
_tree.c
|
||||
_tree.h
|
||||
_uninitialized.h
|
||||
_valarray.c
|
||||
_valarray.h
|
||||
_vector.c
|
||||
_vector.h
|
||||
192
STLPORT/etc/scvs
Normal file
192
STLPORT/etc/scvs
Normal file
@@ -0,0 +1,192 @@
|
||||
#!/usr/bin/perl
|
||||
# Note : you may have to edit path to Perl above, according to your system setup
|
||||
|
||||
#
|
||||
# modified for ssh+chroot setup by Anton Berezin <tobez@plab.ku.dk> #
|
||||
# Synopsys : scvs -d :pserver:cvs@www.stlport.com/stlport <cvs command> # (this is for read-only anonymous access via "cvs" user)
|
||||
# Please use your cvs login name if you have one instead of "cvs" above, to be able to commit your changes
|
||||
#
|
||||
|
||||
|
||||
#--
|
||||
# tunable variables
|
||||
#--
|
||||
|
||||
# Set this if it does not work otherwise
|
||||
# $tune_cvs_server_name = "cvs.stlport.com";
|
||||
|
||||
# where cvs program is located on the client system
|
||||
$tune_local_cvs_cmd = "cvs";
|
||||
|
||||
# remote pserver port to use
|
||||
# for explanation, see
|
||||
# http://www.prima.eu.org/tobez/cvs-howto.html#inetd
|
||||
$tune_remote_cvs_port = 2410;
|
||||
|
||||
# local pserver port; you probably don't want to change this
|
||||
$tune_local_cvs_port = 2401;
|
||||
|
||||
# ssh command to use; the default is good for UNIX clients
|
||||
$tune_ssh_cmd = "ssh";
|
||||
|
||||
# the user on the server side cvs runs as
|
||||
$tune_ssh_user = "cvs";
|
||||
|
||||
#--
|
||||
# end of tunable variables
|
||||
# there is no need to modify anything below
|
||||
#--
|
||||
|
||||
#############################################################################
|
||||
# CVS settings
|
||||
|
||||
$CVS_CMD=$tune_local_cvs_cmd;
|
||||
|
||||
$CVS_PORT=$tune_remote_cvs_port;
|
||||
$CVS_LOCAL_PORT=$tune_local_cvs_port;
|
||||
|
||||
# the values below will be needed only if the repository is specified via the
|
||||
# command line or the CVSROOT environment variable, and in those cases they
|
||||
# will be extracted from there. However, for funny results you can uncomment
|
||||
# these two lines.
|
||||
# $CVS_HOST="www.stlport.com";
|
||||
# $CVS_USER="cvs";
|
||||
|
||||
#############################################################################
|
||||
# SSH settings
|
||||
|
||||
# ssh2 does not seem to work with our -L port:host:hostport argument, so make
|
||||
# sure we will use ssh1.
|
||||
$SSH_CMD=$tune_ssh_cmd;
|
||||
|
||||
# This should be the user on whose behalf the tunneling is made. It is
|
||||
# typically a user that cannot do any harm, has no password and uses a program
|
||||
# like nologin (but one that will wait) as a shell.
|
||||
$SSH_USER=$tune_ssh_user;
|
||||
|
||||
# This value should also automagically be set from the repository name.
|
||||
# However, if that host is not running sshd, you may want to tunnel through
|
||||
# another host and modify and uncomment the line below.
|
||||
# $SSH_HOST=$CVS_HOST
|
||||
|
||||
# This value is used if the repository cannot be determined from the
|
||||
# commandline or the CVSROOT variable. Modify this for your local situation.
|
||||
$SSH_DEFAULT_HOST=$tune_cvs_server_name;
|
||||
|
||||
# Port at which the sshd on the remote server runs. Default is 22.
|
||||
# $SSH_PORT=22;
|
||||
|
||||
# This should be left unmodified, as it makes no sense changing this. Unless
|
||||
# some future version (or perhaps even the current version) of cvs allow you
|
||||
# to specify the remote repository's port.
|
||||
$SSH_LOCAL_PORT=$CVS_LOCAL_PORT;
|
||||
|
||||
|
||||
#############################################################################
|
||||
# & parse_repository ({{rep}})
|
||||
# . extracts the method, user, host, port and directory from {{rep}}.
|
||||
# . There are four possibilities:
|
||||
# - /path/to/repository
|
||||
# - :method:/path/to/repository
|
||||
# - :user@hostname:/path/to/repository
|
||||
# - :method:user@hostname:/path/to/repository
|
||||
# non-standard repositories. Has only been tested for :pserver: method.
|
||||
#
|
||||
sub parse_repository
|
||||
{
|
||||
my $rep = $_[0];
|
||||
my ($dir,$user,$host,$method);
|
||||
|
||||
# determine the directory
|
||||
$rep =~ s/:(\/.*)$// && do { $dir=$1; };
|
||||
if (not $dir)
|
||||
{ $rep =~ s/(\/.*)$// && do {$dir = $1; }; }
|
||||
|
||||
# determine the hostname and the username
|
||||
$rep =~ s/:([^:]*)@(.*)$// && do { $user = $1; $host = $2; };
|
||||
if (not $host)
|
||||
{ $rep =~ s/:([^:]+)$// && do { $host = $1; }; }
|
||||
|
||||
# all that is left now is the method
|
||||
$rep =~ s/^:([^:]*)// && do { $method = $1; };
|
||||
|
||||
# if there is still anything left, we have an error, warn the user
|
||||
if ($rep)
|
||||
{ print STDERR "Warning: repository parsed wrong ('$rep' ignored).\n"; }
|
||||
|
||||
# print STDERR "DEBUG: dir=$dir, user=$user, host=$host, method=$method\n";
|
||||
return ($method, $user, $host, $dir);
|
||||
}
|
||||
|
||||
|
||||
#############################################################################
|
||||
# main
|
||||
|
||||
# should be changed to a general cmdline parsing routine.
|
||||
# get the repository's name from the commandline or the CVSROOT environment
|
||||
# variable.
|
||||
if ($ARGV[0] eq "-d")
|
||||
{
|
||||
$rep="$ARGV[1]";
|
||||
shift; shift;
|
||||
}
|
||||
else
|
||||
{
|
||||
$rep = $ENV{'CVSROOT'};
|
||||
}
|
||||
|
||||
# print STDERR "DEBUG: rep = $rep\n";
|
||||
|
||||
# parse the repository
|
||||
($method, $user, $host, $dir) = parse_repository $rep;
|
||||
# print "met: $method, user: $user, host: $host, dir: $dir\n";
|
||||
|
||||
# construct the local fake cvs server name.
|
||||
if ($method) { $cvs_serv = ":$method:"; }
|
||||
if ($user) { $cvs_serv .= "$user\@"; }
|
||||
if ($rep) { $cvs_serv .= "localhost:"; }
|
||||
if ($dir) { $cvs_serv .= $dir; }
|
||||
|
||||
# print STDERR "DEBUG: cvs_serv = $cvs_serv\n";
|
||||
|
||||
# construct the tunneling command
|
||||
$SSH_HOST |= $host;
|
||||
# print STDERR "DEBUG: SSH_HOST=$SSH_HOST\n";
|
||||
$SSH_HOST |= $SSH_DEFAULT_HOST;
|
||||
# print STDERR "DEBUG: SSH_HOST=$SSH_HOST\n";
|
||||
|
||||
if ($SSH_USER)
|
||||
{ $ssh_serv="$SSH_USER\@$SSH_HOST"; }
|
||||
else
|
||||
{ $ssh_serv="$SSH_HOST"; }
|
||||
|
||||
# print "ssh_serv: $ssh_serv\n";
|
||||
|
||||
$tunnel_cmd = "$SSH_CMD $ssh_serv -x -f"
|
||||
. ( ($SSH_PORT) ? " -p $(SSH_PORT)" : "" )
|
||||
. " -L $SSH_LOCAL_PORT:$SSH_HOST:$CVS_PORT open";
|
||||
|
||||
# print STDERR "DEBUG: tunnel_cmd: $tunnel_cmd\n";
|
||||
|
||||
# execute the tunneling, and read the response from the server
|
||||
open (TUNNELSH,"$tunnel_cmd |") or die "Could not execute $tunnel_cmd!";
|
||||
chomp ($magicword = <TUNNELSH>);
|
||||
# print STDERR "DEBUG: magicword = $magicword!\n";
|
||||
|
||||
# Now we can call system to execute the cvs command.
|
||||
# print STDERR "Doing: $CVS_CMD|", ( ($cvs_serv) ? ('-d |', "$cvs_serv|") : ( ) ) , "@ARGV", "|\n";
|
||||
$exitcode =
|
||||
system "$CVS_CMD", ( ($cvs_serv) ? ('-d', $cvs_serv) : () ) , @ARGV;
|
||||
|
||||
if ($exitcode) { print STDERR "Could not execute CVS command!\n"; }
|
||||
|
||||
# close the tunnel
|
||||
#print STDERR "DEBUG: ", ( "$SSH_CMD $ssh_serv -q -x -f"
|
||||
# . ( ($SSH_PORT) ? " -p $SSH_PORT" : "" )
|
||||
# . " $magicword" );
|
||||
# print STDERR "before close\n";
|
||||
system ( "$SSH_CMD $ssh_serv -q -x -f"
|
||||
. ( ($SSH_PORT) ? " -p $SSH_PORT" : "" )
|
||||
. " $magicword" );
|
||||
|
||||
# print STDERR "right after close\n";
|
||||
34
STLPORT/etc/std_headers.txt
Normal file
34
STLPORT/etc/std_headers.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
algorithm
|
||||
bitset
|
||||
complex
|
||||
deque
|
||||
fstream
|
||||
functional
|
||||
hash_map
|
||||
hash_set
|
||||
iomanip
|
||||
ios
|
||||
iosfwd
|
||||
iostream
|
||||
istream
|
||||
iterator
|
||||
limits
|
||||
list
|
||||
locale
|
||||
map
|
||||
memory
|
||||
numeric
|
||||
ostream
|
||||
pthread_alloc
|
||||
queue
|
||||
set
|
||||
slist
|
||||
sstream
|
||||
stack
|
||||
stdexcept
|
||||
streambuf
|
||||
string
|
||||
strstream
|
||||
utility
|
||||
valarray
|
||||
vector
|
||||
17
STLPORT/etc/std_headers_c.txt
Normal file
17
STLPORT/etc/std_headers_c.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
cassert
|
||||
cctype
|
||||
cerrno
|
||||
cfloat
|
||||
climits
|
||||
clocale
|
||||
cmath
|
||||
csetjmp
|
||||
csignal
|
||||
cstdarg
|
||||
cstddef
|
||||
cstdio
|
||||
cstdlib
|
||||
cstring
|
||||
ctime
|
||||
cwchar
|
||||
cwctype
|
||||
13
STLPORT/etc/std_headers_c_h.txt
Normal file
13
STLPORT/etc/std_headers_c_h.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
ctype.h
|
||||
locale.h
|
||||
math.h
|
||||
setjmp.h
|
||||
signal.h
|
||||
stdarg.h
|
||||
stddef.h
|
||||
stdio.h
|
||||
stdlib.h
|
||||
string.h
|
||||
time.h
|
||||
wchar.h
|
||||
wctype.h
|
||||
8
STLPORT/etc/std_headers_classic_iostreams.txt
Normal file
8
STLPORT/etc/std_headers_classic_iostreams.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
fstream.h
|
||||
iomanip.h
|
||||
ios.h
|
||||
iostream.h
|
||||
istream.h
|
||||
ostream.h
|
||||
streambuf.h
|
||||
strstream.h
|
||||
3
STLPORT/etc/std_headers_cpp_runtime.txt
Normal file
3
STLPORT/etc/std_headers_cpp_runtime.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
exception
|
||||
new
|
||||
typeinfo
|
||||
3
STLPORT/etc/std_headers_cpp_runtime_h.txt
Normal file
3
STLPORT/etc/std_headers_cpp_runtime_h.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
exception.h
|
||||
new.h
|
||||
typeinfo.h
|
||||
BIN
STLPORT/etc/stlport_powered_red.gif
Normal file
BIN
STLPORT/etc/stlport_powered_red.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1005 B |
BIN
STLPORT/etc/stlport_powered_white.gif
Normal file
BIN
STLPORT/etc/stlport_powered_white.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
179
STLPORT/src/MrCpp.mak
Normal file
179
STLPORT/src/MrCpp.mak
Normal file
@@ -0,0 +1,179 @@
|
||||
MAKEFILE = MrCpp.mak
|
||||
<EFBFBD>MondoBuild<EFBFBD> = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
|
||||
|
||||
Sym-PPC = -sym on
|
||||
!ifdef DEBUG
|
||||
config_ = .PPC.DBG
|
||||
MrCpp_DebugOptions = -inline none,global -opt none {Sym-PPC}
|
||||
STL_DebugOptions = -d _STLP_DEBUG -d _STLP_DEBUG_ALLOC -d _STLP_DEBUG_UNINITIALIZED
|
||||
!else
|
||||
config_ = .PPC
|
||||
MrCpp_DebugOptions =
|
||||
STL_DebugOptions =
|
||||
!endif
|
||||
ObjDir = :{config_}:
|
||||
SrcDir = :
|
||||
|
||||
Includes = -i : -i "{STL}" -i "{CIncludes}"
|
||||
|
||||
MrCpp_Options = -ansi on -ansifor -bool on -exceptions on -rtti on -align power -j0 -traceback -opt size -inline 3,global -includes unix_mac
|
||||
|
||||
STL_Options = #-d _STLP_USE_NEWALLOC <20>
|
||||
#-d _STLP_NO_SGI_IOSTREAMS <20>
|
||||
# end
|
||||
|
||||
Link_options = <20>
|
||||
-c 'MPS ' <20>
|
||||
-mf <20>
|
||||
-d <20>
|
||||
-Linkfaster off <20>
|
||||
#{Sym-PPC} <20>
|
||||
# end
|
||||
|
||||
### Default Rules ###
|
||||
|
||||
"{ObjDir}" <EFBFBD> "{SrcDir}"
|
||||
|
||||
.cpp.x <EFBFBD> .cpp # {<7B>MondoBuild<6C>}
|
||||
###
|
||||
echo "<22>nCompiling: '"{depDir}{default}.cpp"'"
|
||||
"{MrCpp}" {depDir}{default}.cpp <20>
|
||||
-o {targDir}{default}.cpp.x <20>
|
||||
{Includes} <20>
|
||||
{MrCpp_Options} {MrCpp_DebugOptions} {other_MrCpp_Options} <20>
|
||||
{STL_Options} {STL_DebugOptions} {other_STL_Options}
|
||||
if "{status}"
|
||||
set compile_status 1
|
||||
end
|
||||
|
||||
|
||||
### Optional Dependencies ###
|
||||
|
||||
setup <EFBFBD> $OutOfDate
|
||||
###
|
||||
echo "<22>n# Target: '"{ObjDir}"'"
|
||||
unset compile_status
|
||||
if !`exists "{ObjDir}"`
|
||||
newfolder "{ObjDir}"
|
||||
end
|
||||
|
||||
|
||||
### Build this target to generate "include file" dependencies. ###
|
||||
|
||||
Dependencies <EFBFBD> $OutOfDate #*TY 02/26/2000 - MakeDepend does not work unless all mentioned include directory exists
|
||||
###
|
||||
echo "<22>nUpdating: {MAKEFILE} Dependencies"
|
||||
MakeDepend <20>
|
||||
-append {MAKEFILE} <20>
|
||||
-ignore "{CIncludes}" <20>
|
||||
-objdir "{ObjDir}" <20>
|
||||
-objext .x <20>
|
||||
{Includes} <20>
|
||||
{SrcFiles}
|
||||
|
||||
|
||||
##################################################################################
|
||||
# {stl}:src: build rule
|
||||
##################################################################################
|
||||
|
||||
### Source Files ###
|
||||
|
||||
STLportLibSrcFiles = <20>
|
||||
c_locale_stub.cpp <09>
|
||||
codecvt.cpp <09>
|
||||
collate.cpp <09>
|
||||
complex.cpp <09>
|
||||
complex_exp.cpp <09>
|
||||
complex_io.cpp <09>
|
||||
complex_io_w.cpp <09>
|
||||
complex_trig.cpp <09>
|
||||
ctype.cpp <09>
|
||||
dll_main.cpp <09>
|
||||
fstream.cpp <09>
|
||||
ios.cpp <09>
|
||||
iostream.cpp <09>
|
||||
istream.cpp <09>
|
||||
locale.cpp <09>
|
||||
locale_catalog.cpp <09>
|
||||
facets_byname.cpp <09>
|
||||
locale_impl.cpp <09>
|
||||
messages.cpp <09>
|
||||
monetary.cpp <09>
|
||||
num_get.cpp <09>
|
||||
num_get_float.cpp <09>
|
||||
num_put.cpp <09>
|
||||
num_put_float.cpp <09>
|
||||
numpunct.cpp <09>
|
||||
ostream.cpp <09>
|
||||
sstream.cpp <09>
|
||||
stdio_streambuf.cpp <09>
|
||||
streambuf.cpp <09>
|
||||
string_w.cpp <09>
|
||||
strstream.cpp <09>
|
||||
time_facets.cpp <09>
|
||||
# end #*TY 11/25/2000 - updated for STLport.4.1
|
||||
|
||||
|
||||
### Object Files ###
|
||||
|
||||
STLportLibObjFiles-PPC = <20>
|
||||
{ObjDir}c_locale_stub.cpp.x <09>
|
||||
{ObjDir}codecvt.cpp.x <09>
|
||||
{ObjDir}collate.cpp.x <09>
|
||||
{ObjDir}complex.cpp.x <09>
|
||||
{ObjDir}complex_exp.cpp.x <09>
|
||||
{ObjDir}complex_io.cpp.x <09>
|
||||
{ObjDir}complex_io_w.cpp.x <09>
|
||||
{ObjDir}complex_trig.cpp.x <09>
|
||||
{ObjDir}ctype.cpp.x <09>
|
||||
{ObjDir}dll_main.cpp.x <09>
|
||||
{ObjDir}fstream.cpp.x <09>
|
||||
{ObjDir}ios.cpp.x <09>
|
||||
{ObjDir}iostream.cpp.x <09>
|
||||
{ObjDir}istream.cpp.x <09>
|
||||
{ObjDir}locale.cpp.x <09>
|
||||
{ObjDir}locale_catalog.cpp.x <09>
|
||||
{ObjDir}facets_byname.cpp.x <09>
|
||||
{ObjDir}locale_impl.cpp.x <09>
|
||||
{ObjDir}messages.cpp.x <09>
|
||||
{ObjDir}monetary.cpp.x <09>
|
||||
{ObjDir}num_get.cpp.x <09>
|
||||
{ObjDir}num_get_float.cpp.x <09>
|
||||
{ObjDir}num_put.cpp.x <09>
|
||||
{ObjDir}num_put_float.cpp.x <09>
|
||||
{ObjDir}numpunct.cpp.x <09>
|
||||
{ObjDir}ostream.cpp.x <09>
|
||||
{ObjDir}sstream.cpp.x <09>
|
||||
{ObjDir}stdio_streambuf.cpp.x <09>
|
||||
{ObjDir}streambuf.cpp.x <09>
|
||||
{ObjDir}string_w.cpp.x <09>
|
||||
{ObjDir}strstream.cpp.x <09>
|
||||
{ObjDir}time_facets.cpp.x <09>
|
||||
# end #*TY 11/25/2000 - updated for STLport.4.1
|
||||
|
||||
|
||||
### Build Rules ###
|
||||
|
||||
build <EFBFBD><EFBFBD> setup
|
||||
build <EFBFBD><EFBFBD> "{ObjDir}"STLportLib{config_}.o
|
||||
|
||||
install <EFBFBD><EFBFBD> build
|
||||
###
|
||||
echo "<22>nInstalling: <20>{stl<74>}:lib:STLportLib{config_}.o"
|
||||
if !`exists "{stl}":lib:`
|
||||
newfolder "{stl}":lib:
|
||||
end
|
||||
duplicate -y "{ObjDir}"STLportLib{config_}.o "{stl}":lib:STLportLib{config_}.o
|
||||
|
||||
"{ObjDir}"STLportLib{config_}.o <EFBFBD><EFBFBD> {STLportLibObjFiles-PPC} {<EFBFBD>MondoBuild<EFBFBD>}
|
||||
###
|
||||
echo "<22>nLibbing: {Targ}"
|
||||
PPCLink <20>
|
||||
-xm l <20>
|
||||
-t 'XCOF' <20>
|
||||
-o {Targ} <20>
|
||||
{STLportLibObjFiles-PPC} <20>
|
||||
{Link_options} <20>
|
||||
{Sym-PPC} <20>
|
||||
# end
|
||||
|
||||
196
STLPORT/src/SCpp.mak
Normal file
196
STLPORT/src/SCpp.mak
Normal file
@@ -0,0 +1,196 @@
|
||||
MAKEFILE = SCpp.mak
|
||||
<EFBFBD>MondoBuild<EFBFBD> = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified
|
||||
|
||||
Sym-68K = -sym on
|
||||
!ifdef DEBUG
|
||||
config_ = .68K.DBG
|
||||
SCpp_DebugOptions = -inline none,global -opt none -frames {Sym-68K}
|
||||
STL_DebugOptions = -d _STLP_DEBUG -d _STLP_DEBUG_ALLOC -d _STLP_DEBUG_UNINITIALIZED
|
||||
!else
|
||||
config_ = .68K
|
||||
SCpp_DebugOptions =
|
||||
STL_DebugOptions =
|
||||
!endif
|
||||
ObjDir = :{config_}:
|
||||
SrcDir = :
|
||||
|
||||
Includes = -i : -i "{STL}" -i "{CIncludes}"
|
||||
|
||||
SCpp_Options = -model far -ansi on -ansifor -bool on -exceptions on -rtti on -b2 -mbg full -opt all -inline all,global -includes unix_mac -w 12
|
||||
|
||||
STL_Options = #-d _STLP_USE_NEWALLOC <20>
|
||||
#-d _STLP_NO_SGI_IOSTREAMS <20>
|
||||
# end
|
||||
|
||||
Link_options = <20>
|
||||
-c 'MPS ' <20>
|
||||
-mf <20>
|
||||
-d <20>
|
||||
-w <20>
|
||||
-model far <20>
|
||||
-srtsg all <20>
|
||||
#{Sym-68K} <20>
|
||||
# end
|
||||
|
||||
### Default Rules ###
|
||||
|
||||
"{ObjDir}" <EFBFBD> "{SrcDir}"
|
||||
|
||||
.cpp.o <EFBFBD> .cpp # {<7B>MondoBuild<6C>}
|
||||
###
|
||||
echo "<22>nCompiling: '"{depDir}{default}.cpp"'"
|
||||
"{SCpp}" {depDir}{default}.cpp <20>
|
||||
-o {targDir}{default}.cpp.o <20>
|
||||
-seg "{default}" <20>
|
||||
{Includes} <20>
|
||||
{SCpp_Options} {SCpp_DebugOptions} {other_SCpp_Options} <20>
|
||||
{STL_Options} {STL_DebugOptions} {other_STL_Options}
|
||||
if "{status}"
|
||||
set compile_status 1
|
||||
end
|
||||
|
||||
|
||||
### Optional Dependencies ###
|
||||
|
||||
setup <EFBFBD> $OutOfDate
|
||||
###
|
||||
echo "<22>n# Target: '"{ObjDir}"'"
|
||||
unset compile_status
|
||||
if !`exists "{ObjDir}"`
|
||||
newfolder "{ObjDir}"
|
||||
end
|
||||
|
||||
|
||||
### Build this target to generate "include file" dependencies. ###
|
||||
|
||||
Dependencies <EFBFBD> $OutOfDate #*TY 02/26/2000 - MakeDepend does not work unless all mentioned include directory exists
|
||||
###
|
||||
echo "<22>nUpdating: {MAKEFILE} Dependencies"
|
||||
MakeDepend <20>
|
||||
-append {MAKEFILE} <20>
|
||||
-ignore "{CIncludes}" <20>
|
||||
-objdir "{ObjDir}" <20>
|
||||
-objext .x <20>
|
||||
{Includes} <20>
|
||||
{SrcFiles}
|
||||
|
||||
|
||||
##################################################################################
|
||||
# {stl}:src: build rule
|
||||
##################################################################################
|
||||
|
||||
### Source Files ###
|
||||
|
||||
STLportLibSrcFiles = <20>
|
||||
c_locale_stub.cpp <09>
|
||||
codecvt.cpp <09>
|
||||
collate.cpp <09>
|
||||
complex.cpp <09>
|
||||
complex_exp.cpp <09>
|
||||
complex_io.cpp <09>
|
||||
complex_io_w.cpp <09>
|
||||
complex_trig.cpp <09>
|
||||
ctype.cpp <09>
|
||||
dll_main.cpp <09>
|
||||
fstream.cpp <09>
|
||||
ios.cpp <09>
|
||||
iostream.cpp <09>
|
||||
istream.cpp <09>
|
||||
locale.cpp <09>
|
||||
locale_catalog.cpp <09>
|
||||
facets_byname.cpp <09>
|
||||
locale_impl.cpp <09>
|
||||
messages.cpp <09>
|
||||
monetary.cpp <09>
|
||||
num_get.cpp <09>
|
||||
num_get_float.cpp <09>
|
||||
num_put.cpp <09>
|
||||
num_put_float.cpp <09>
|
||||
numpunct.cpp <09>
|
||||
ostream.cpp <09>
|
||||
sstream.cpp <09>
|
||||
stdio_streambuf.cpp <09>
|
||||
streambuf.cpp <09>
|
||||
string_w.cpp <09>
|
||||
strstream.cpp <09>
|
||||
time_facets.cpp <09>
|
||||
# end #*TY 11/25/2000 - updated for STLport.4.1
|
||||
|
||||
|
||||
### Object Files ###
|
||||
|
||||
STLportLibObjFiles1-68K = <20>
|
||||
{ObjDir}c_locale_stub.cpp.o <09>
|
||||
{ObjDir}codecvt.cpp.o <09>
|
||||
{ObjDir}collate.cpp.o <09>
|
||||
{ObjDir}complex.cpp.o <09>
|
||||
{ObjDir}complex_exp.cpp.o <09>
|
||||
{ObjDir}complex_io.cpp.o <09>
|
||||
{ObjDir}complex_io_w.cpp.o <09>
|
||||
{ObjDir}complex_trig.cpp.o <09>
|
||||
{ObjDir}ctype.cpp.o <09>
|
||||
{ObjDir}dll_main.cpp.o <09>
|
||||
{ObjDir}fstream.cpp.o <09>
|
||||
{ObjDir}ios.cpp.o <09>
|
||||
{ObjDir}iostream.cpp.o <09>
|
||||
{ObjDir}istream.cpp.o <09>
|
||||
{ObjDir}locale.cpp.o <09>
|
||||
{ObjDir}locale_catalog.cpp.o <09>
|
||||
#
|
||||
STLportLibObjFiles2-68K = <20>
|
||||
{ObjDir}facets_byname.cpp.o <09>
|
||||
{ObjDir}locale_impl.cpp.o <09>
|
||||
{ObjDir}messages.cpp.o <09>
|
||||
{ObjDir}monetary.cpp.o <09>
|
||||
{ObjDir}num_get.cpp.o <09>
|
||||
{ObjDir}num_get_float.cpp.o <09>
|
||||
{ObjDir}num_put.cpp.o <09>
|
||||
{ObjDir}num_put_float.cpp.o <09>
|
||||
{ObjDir}numpunct.cpp.o <09>
|
||||
{ObjDir}ostream.cpp.o <09>
|
||||
{ObjDir}sstream.cpp.o <09>
|
||||
{ObjDir}stdio_streambuf.cpp.o <09>
|
||||
{ObjDir}streambuf.cpp.o <09>
|
||||
{ObjDir}string_w.cpp.o <09>
|
||||
{ObjDir}strstream.cpp.o <09>
|
||||
{ObjDir}time_facets.cpp.o <09>
|
||||
# end #*TY 11/25/2000 - updated for STLport.4.1
|
||||
|
||||
|
||||
### Build Rules ###
|
||||
|
||||
build <EFBFBD><EFBFBD> setup
|
||||
build <EFBFBD><EFBFBD> "{ObjDir}"STLportLib{config_}.o
|
||||
|
||||
"{ObjDir}"STLportLib{config_}.o <EFBFBD><EFBFBD> {STLportLibObjFiles1-68K} {STLportLibObjFiles2-68K} {<EFBFBD>MondoBuild<EFBFBD>}
|
||||
###
|
||||
echo "<22>nLibbing: {Targ}"
|
||||
Lib <20>
|
||||
-o "{ObjDir}"STLportLib1{config_}.o <20>
|
||||
{STLportLibObjFiles1-68K} <20>
|
||||
-mf <20>
|
||||
-d <20>
|
||||
-sym on <20>
|
||||
# end
|
||||
Lib <20>
|
||||
-o "{ObjDir}"STLportLib2{config_}.o <20>
|
||||
{STLportLibObjFiles2-68K} <20>
|
||||
-mf <20>
|
||||
-d <20>
|
||||
-sym on <20>
|
||||
# end
|
||||
Lib <20>
|
||||
-o {Targ} <20>
|
||||
"{ObjDir}"STLportLib1{config_}.o "{ObjDir}"STLportLib2{config_}.o <20>
|
||||
-mf <20>
|
||||
-d <20>
|
||||
-sym on <20>
|
||||
# end
|
||||
|
||||
install <EFBFBD><EFBFBD> build
|
||||
###
|
||||
echo "<22>nInstalling: <20>{stl<74>}:lib:STLportLib{config_}.o"
|
||||
if !`exists "{stl}":lib:`
|
||||
newfolder "{stl}":lib:
|
||||
end
|
||||
duplicate -y "{ObjDir}"STLportLib{config_}.o "{stl}":lib:STLportLib{config_}.o
|
||||
13
STLPORT/src/aligned_buffer.h
Normal file
13
STLPORT/src/aligned_buffer.h
Normal file
@@ -0,0 +1,13 @@
|
||||
# ifndef ALIGNED_BUFFER_H
|
||||
# define ALIGNED_BUFFER_H
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
// this is for fake initialization
|
||||
template<class T>
|
||||
union _Stl_aligned_buffer {
|
||||
char buf[sizeof(T)];
|
||||
struct { double a; double b; } padding;
|
||||
};
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
# endif
|
||||
234
STLPORT/src/bc502.mak
Normal file
234
STLPORT/src/bc502.mak
Normal file
@@ -0,0 +1,234 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
CPP=cpp32
|
||||
CC=bcc32 -P
|
||||
CXX=bcc32
|
||||
|
||||
RC=brc32
|
||||
COMP=BCC502
|
||||
|
||||
LIB_BASENAME=stlport_bcb
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
LINK_OUT=
|
||||
DYNLINK_OUT=
|
||||
LINK = tlib /P128
|
||||
DYN_LINK = ilink32
|
||||
OBJEXT=obj
|
||||
DYNEXT=dll
|
||||
STEXT=lib
|
||||
RM=@erase /F /Q
|
||||
PATH_SEP=\\
|
||||
MKDIR=mkdir
|
||||
STATIC_SUFFIX=_static
|
||||
INSTALL_STEP=install_bc
|
||||
|
||||
# static builds, but cannot be used - some weird compile errors..
|
||||
all : all_dynamic
|
||||
|
||||
!include common_macros_windows.mak
|
||||
|
||||
DYNAMIC_DEFS=_RTLDLL
|
||||
STATIC_DEFS=_LIB;_STLP_NO_FORCE_INSTANTIATE
|
||||
|
||||
LINKSTARTUP= c0d32.obj
|
||||
|
||||
FLAGS_COMMON= -I.;..\stlport\BC50;..\stlport;$(BCB)\include -j1 -w -c -w-par -w-inl -tWM
|
||||
FLAGS_COMMON_static = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(STATIC_DEFS)
|
||||
FLAGS_COMMON_dynamic = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(DYNAMIC_DEFS) -tWD
|
||||
|
||||
LDFLAGS_COMMON=-Gn -Gi -Tpd -aa -L$(MAKEDIR)\..\lib -x
|
||||
LDFLAGS_COMMON_static= $(LDFLAGS_COMMON)
|
||||
LDFLAGS_COMMON_dynamic= $(LDFLAGS_COMMON)
|
||||
|
||||
|
||||
LDFLAGS_RELEASE_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
|
||||
LDFLAGS_RELEASE_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
|
||||
LDLIBS_RELEASE_dynamic= import32.lib cw32mti.lib
|
||||
LDLIBS_DEBUG_dynamic= import32.lib cw32mti.lib
|
||||
LDLIBS_STLDEBUG_dynamic= import32.lib cw32mti.lib
|
||||
|
||||
|
||||
CXXFLAGS_RELEASE_static= $(FLAGS_COMMON_static) -O2 -n$(RELEASE_OBJDIR_static)
|
||||
CXXFLAGS_DEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(DEBUG_OBJDIR_static)
|
||||
CXXFLAGS_STLDEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(STLDEBUG_OBJDIR_static) -D_STLP_DEBUG
|
||||
|
||||
CXXFLAGS_RELEASE_dynamic= $(FLAGS_COMMON_dynamic) -O2 -n$(RELEASE_OBJDIR_dynamic)
|
||||
CXXFLAGS_DEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(DEBUG_OBJDIR_dynamic)
|
||||
CXXFLAGS_STLDEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(STLDEBUG_OBJDIR_dynamic) -D_STLP_DEBUG
|
||||
|
||||
RELEASE_LINK_COMMANDS_static=\
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_LINK_COMMANDS_static= \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_LINK_COMMANDS_static= \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(OUTDIR) :
|
||||
$(MKDIR) $(OUTDIR)
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
install : $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) \
|
||||
$(STLDEBUG_OBJDIR_static) $(RELEASE_OBJDIR_dynamic) \
|
||||
$(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic)
|
||||
|
||||
clobber : clean
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(OUTDIR) $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) , $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB),,$(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(OUTDIR) $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic), $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) ,, $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) , $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) ,, $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(RELEASE_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(OUTDIR) $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(DEBUG_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(STLDEBUG_LINK_COMMANDS_static)
|
||||
|
||||
#########################################
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!include nmake_common.mak
|
||||
|
||||
.cpp.i:
|
||||
$(CPP) $(CXXFLAGS_RELEASE_dynamic) -n. -Sr -Ss -Sd {$< }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
253
STLPORT/src/bcb.mak
Normal file
253
STLPORT/src/bcb.mak
Normal file
@@ -0,0 +1,253 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!if !$d(BCB)
|
||||
BCB = $(MAKEDIR)\..
|
||||
!endif
|
||||
|
||||
CPP=cpp32
|
||||
CC=bcc32 -P
|
||||
CXX=bcc32
|
||||
|
||||
RC=brc32
|
||||
COMP=BCB
|
||||
|
||||
LIB_BASENAME=stlp
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
LINK_OUT=
|
||||
DYNLINK_OUT=
|
||||
LINK = tlib /P256
|
||||
# Use objs in RTL build tree
|
||||
DYN_LINK = ilink32 -L$(BCB)\lib
|
||||
OBJEXT=obj
|
||||
DYNEXT=dll
|
||||
STEXT=lib
|
||||
# We use 4NT, which does not know about /Q
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
PATH_SEP=\\
|
||||
MKDIR=-mkdir
|
||||
STATIC_SUFFIX=st
|
||||
INSTALL_STEP=install_bc
|
||||
|
||||
all : platform all_dynamic all_static
|
||||
|
||||
!include common_macros_windows.mak
|
||||
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
MKDIR=-mkdir
|
||||
|
||||
DYNAMIC_DEFS=_RTLDLL;_WIN32;_DLL;_STLP_DESIGNATED_DLL
|
||||
STATIC_DEFS=_LIB;_WIN32;_STLP_NO_FORCE_INSTANTIATE
|
||||
|
||||
LINKSTARTUP= c0d32.obj
|
||||
|
||||
FLAGS_COMMON= -I.;..\stlport;$(BCB)\include;$(BCB)\include\windows -jb -j1 -w -c -w-par -w-inl -w-stl
|
||||
FLAGS_COMMON_static = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(STATIC_DEFS)
|
||||
FLAGS_COMMON_dynamic = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(DYNAMIC_DEFS) -tWDR
|
||||
|
||||
# -L$(MAKEDIR)\..\lib removed ...it should get ilink32.cfg values instead
|
||||
LDFLAGS_COMMON=-Gn -Gi -Tpd -aa -x
|
||||
LDFLAGS_COMMON_static= $(LDFLAGS_COMMON)
|
||||
LDFLAGS_COMMON_dynamic= $(LDFLAGS_COMMON)
|
||||
|
||||
|
||||
LDFLAGS_RELEASE_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
|
||||
LDFLAGS_RELEASE_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
|
||||
LDLIBS_RELEASE_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_DEBUG_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_STLDEBUG_dynamic= import32.lib cw32i.lib
|
||||
|
||||
|
||||
CXXFLAGS_RELEASE_static= $(FLAGS_COMMON_static) -O2 -n$(RELEASE_OBJDIR_static)
|
||||
CXXFLAGS_DEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(DEBUG_OBJDIR_static)
|
||||
CXXFLAGS_STLDEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(STLDEBUG_OBJDIR_static) -D_STLP_DEBUG
|
||||
|
||||
CXXFLAGS_RELEASE_dynamic= $(FLAGS_COMMON_dynamic) -O2 -n$(RELEASE_OBJDIR_dynamic)
|
||||
CXXFLAGS_DEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(DEBUG_OBJDIR_dynamic)
|
||||
CXXFLAGS_STLDEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(STLDEBUG_OBJDIR_dynamic) -D_STLP_DEBUG
|
||||
|
||||
RELEASE_LINK_COMMANDS_static=\
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_LINK_COMMANDS_static= \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_LINK_COMMANDS_static= \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
install : $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) \
|
||||
$(STLDEBUG_OBJDIR_static) $(RELEASE_OBJDIR_dynamic) \
|
||||
$(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic)
|
||||
|
||||
clobber : clean
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
#create a compiler platform directory
|
||||
platform:
|
||||
-$(MKDIR) $(OBJDIR_COMMON)
|
||||
-$(MKDIR) $(OBJDIR)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) , $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB),,$(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic), $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) ,, $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) , $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) ,, $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(RELEASE_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(DEBUG_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(STLDEBUG_LINK_COMMANDS_static)
|
||||
|
||||
#########################################
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!include nmake_common.mak
|
||||
|
||||
.cpp.i:
|
||||
$(CPP) $(CXXFLAGS_DEBUG_dynamic) -n. -Sr -Ss -Sd {$< }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
253
STLPORT/src/bcb55.mak
Normal file
253
STLPORT/src/bcb55.mak
Normal file
@@ -0,0 +1,253 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!if !$d(BCB)
|
||||
BCB = $(MAKEDIR)\..
|
||||
!endif
|
||||
|
||||
CPP=cpp32
|
||||
CC=bcc32 -P
|
||||
CXX=bcc32
|
||||
|
||||
RC=brc32
|
||||
COMP=BCB
|
||||
|
||||
LIB_BASENAME=stlp
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
LINK_OUT=
|
||||
DYNLINK_OUT=
|
||||
LINK = tlib /P256
|
||||
# Use objs in RTL build tree
|
||||
DYN_LINK = ilink32 -L$(BCB)\lib
|
||||
OBJEXT=obj
|
||||
DYNEXT=dll
|
||||
STEXT=lib
|
||||
# We use 4NT, which does not know about /Q
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
PATH_SEP=\\
|
||||
MKDIR=-md
|
||||
STATIC_SUFFIX=st
|
||||
INSTALL_STEP=install_bc
|
||||
|
||||
all : platform all_dynamic all_static
|
||||
|
||||
!include common_macros_windows.mak
|
||||
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
MKDIR=-md
|
||||
|
||||
DYNAMIC_DEFS=_RTLDLL;_WIN32;_DLL;_STLP_DESIGNATED_DLL
|
||||
STATIC_DEFS=_LIB;_WIN32;_STLP_NO_FORCE_INSTANTIATE
|
||||
|
||||
LINKSTARTUP= c0d32.obj
|
||||
|
||||
FLAGS_COMMON= -I.;..\stlport;$(BCB)\include;$(BCB)\include\windows -jb -j1 -w -c -w-par -w-inl -w-stl
|
||||
FLAGS_COMMON_static = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(STATIC_DEFS)
|
||||
FLAGS_COMMON_dynamic = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(DYNAMIC_DEFS) -tWDR
|
||||
|
||||
# -L$(MAKEDIR)\..\lib removed ...it should get ilink32.cfg values instead
|
||||
LDFLAGS_COMMON=-Gn -Gi -Tpd -aa -x
|
||||
LDFLAGS_COMMON_static= $(LDFLAGS_COMMON)
|
||||
LDFLAGS_COMMON_dynamic= $(LDFLAGS_COMMON)
|
||||
|
||||
|
||||
LDFLAGS_RELEASE_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
|
||||
LDFLAGS_RELEASE_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
|
||||
LDLIBS_RELEASE_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_DEBUG_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_STLDEBUG_dynamic= import32.lib cw32i.lib
|
||||
|
||||
|
||||
CXXFLAGS_RELEASE_static= $(FLAGS_COMMON_static) -O2 -n$(RELEASE_OBJDIR_static)
|
||||
CXXFLAGS_DEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(DEBUG_OBJDIR_static)
|
||||
CXXFLAGS_STLDEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(STLDEBUG_OBJDIR_static) -D_STLP_DEBUG
|
||||
|
||||
CXXFLAGS_RELEASE_dynamic= $(FLAGS_COMMON_dynamic) -O2 -n$(RELEASE_OBJDIR_dynamic)
|
||||
CXXFLAGS_DEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(DEBUG_OBJDIR_dynamic)
|
||||
CXXFLAGS_STLDEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(STLDEBUG_OBJDIR_dynamic) -D_STLP_DEBUG
|
||||
|
||||
RELEASE_LINK_COMMANDS_static=\
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_LINK_COMMANDS_static= \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_LINK_COMMANDS_static= \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
install : $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) \
|
||||
$(STLDEBUG_OBJDIR_static) $(RELEASE_OBJDIR_dynamic) \
|
||||
$(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic)
|
||||
|
||||
clobber : clean
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
#create a compiler platform directory
|
||||
platform:
|
||||
-$(MKDIR) $(OBJDIR_COMMON)
|
||||
-$(MKDIR) $(OBJDIR)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) , $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB),,$(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic), $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) ,, $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) , $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) ,, $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(RELEASE_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(DEBUG_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(STLDEBUG_LINK_COMMANDS_static)
|
||||
|
||||
#########################################
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!include nmake_common.mak
|
||||
|
||||
.cpp.i:
|
||||
$(CPP) $(CXXFLAGS_DEBUG_dynamic) -n. -Sr -Ss -Sd {$< }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
254
STLPORT/src/bcb60.mak
Normal file
254
STLPORT/src/bcb60.mak
Normal file
@@ -0,0 +1,254 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!if !$d(BCB)
|
||||
BCB = $(MAKEDIR)\..
|
||||
!endif
|
||||
|
||||
CPP=cpp32
|
||||
CC=bcc32 -P
|
||||
CXX=bcc32
|
||||
|
||||
RC=brc32
|
||||
COMP=BCB
|
||||
|
||||
LIB_BASENAME=stlp
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
LINK_OUT=
|
||||
DYNLINK_OUT=
|
||||
LINK = tlib /P256
|
||||
# Use objs in RTL build tree
|
||||
DYN_LINK = ilink32 -L$(BCB)\lib
|
||||
OBJEXT=obj
|
||||
DYNEXT=dll
|
||||
STEXT=lib
|
||||
# We use 4NT, which does not know about /Q
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
PATH_SEP=\\
|
||||
MKDIR=-md
|
||||
STATIC_SUFFIX=st
|
||||
INSTALL_STEP=install_bc
|
||||
|
||||
all : platform all_dynamic all_static
|
||||
|
||||
!include common_macros_windows.mak
|
||||
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
MKDIR=-md
|
||||
|
||||
DYNAMIC_DEFS=_RTLDLL;_WIN32;_DLL;_STLP_DESIGNATED_DLL
|
||||
STATIC_DEFS=_LIB;_WIN32;_STLP_NO_FORCE_INSTANTIATE;_STLP_DESIGNATED_DLL
|
||||
|
||||
LINKSTARTUP= c0d32.obj
|
||||
|
||||
FLAGS_COMMON= -I.;..\stlport;$(BCB)\include;$(BCB)\include\windows -jb -j1 -w -c -w-par -w-inl -w-stl
|
||||
|
||||
FLAGS_COMMON_static = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(STATIC_DEFS)
|
||||
FLAGS_COMMON_dynamic = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(DYNAMIC_DEFS) -tWDR
|
||||
|
||||
# -L$(MAKEDIR)\..\lib removed ...it should get ilink32.cfg values instead
|
||||
LDFLAGS_COMMON=-Gn -Gi -Tpd -aa -x
|
||||
LDFLAGS_COMMON_static= $(LDFLAGS_COMMON)
|
||||
LDFLAGS_COMMON_dynamic= $(LDFLAGS_COMMON)
|
||||
|
||||
|
||||
LDFLAGS_RELEASE_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
|
||||
LDFLAGS_RELEASE_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
|
||||
LDLIBS_RELEASE_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_DEBUG_dynamic= import32.lib cw32i.lib
|
||||
LDLIBS_STLDEBUG_dynamic= import32.lib cw32i.lib
|
||||
|
||||
|
||||
CXXFLAGS_RELEASE_static= $(FLAGS_COMMON_static) -O2 -n$(RELEASE_OBJDIR_static)
|
||||
CXXFLAGS_DEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(DEBUG_OBJDIR_static)
|
||||
CXXFLAGS_STLDEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(STLDEBUG_OBJDIR_static) -D_STLP_DEBUG
|
||||
|
||||
CXXFLAGS_RELEASE_dynamic= $(FLAGS_COMMON_dynamic) -O2 -n$(RELEASE_OBJDIR_dynamic)
|
||||
CXXFLAGS_DEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(DEBUG_OBJDIR_dynamic)
|
||||
CXXFLAGS_STLDEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(STLDEBUG_OBJDIR_dynamic) -D_STLP_DEBUG
|
||||
|
||||
RELEASE_LINK_COMMANDS_static=\
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_LINK_COMMANDS_static= \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_LINK_COMMANDS_static= \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
install : $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) \
|
||||
$(STLDEBUG_OBJDIR_static) $(RELEASE_OBJDIR_dynamic) \
|
||||
$(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic)
|
||||
|
||||
clobber : clean
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
#create a compiler platform directory
|
||||
platform:
|
||||
-$(MKDIR) $(OBJDIR_COMMON)
|
||||
-$(MKDIR) $(OBJDIR)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) , $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB),,$(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic), $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) ,, $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) , $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) ,, $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(RELEASE_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(DEBUG_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(STLDEBUG_LINK_COMMANDS_static)
|
||||
|
||||
#########################################
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!include nmake_common.mak
|
||||
|
||||
.cpp.i:
|
||||
$(CPP) $(FLAGS_COMMON_static) -n. -Sr -Ss -Sd {$< }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
253
STLPORT/src/bcb60mt.mak
Normal file
253
STLPORT/src/bcb60mt.mak
Normal file
@@ -0,0 +1,253 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!if !$d(BCB)
|
||||
BCB = $(MAKEDIR)\..
|
||||
!endif
|
||||
|
||||
CPP=cpp32
|
||||
CC=bcc32 -P
|
||||
CXX=bcc32
|
||||
|
||||
RC=brc32
|
||||
COMP=BCB60MT
|
||||
|
||||
LIB_BASENAME=stlpmt
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
LINK_OUT=
|
||||
DYNLINK_OUT=
|
||||
LINK = tlib /P256
|
||||
# Use objs in RTL build tree
|
||||
DYN_LINK = ilink32 -L$(BCB)\..\lib
|
||||
OBJEXT=obj
|
||||
DYNEXT=dll
|
||||
STEXT=lib
|
||||
# We use 4NT, which does not know about /Q
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
PATH_SEP=\\
|
||||
MKDIR=-md /S
|
||||
STATIC_SUFFIX=st
|
||||
INSTALL_STEP=install_bc
|
||||
|
||||
all : platform all_dynamic all_static
|
||||
|
||||
!include common_macros_windows.mak
|
||||
|
||||
#RM=-rd /S /Q
|
||||
RM=-rd /S
|
||||
MKDIR=-md /S
|
||||
|
||||
DYNAMIC_DEFS=_RTLDLL;_WIN32;_DLL;_STLP_DESIGNATED_DLL
|
||||
STATIC_DEFS=_LIB;_WIN32;_STLP_NO_FORCE_INSTANTIATE
|
||||
|
||||
LINKSTARTUP= c0d32.obj
|
||||
|
||||
FLAGS_COMMON= -I.;..\stlport;$(BCB)\include;$(BCB)\include\windows -jb -j1 -w -c -w-par -w-inl -tWM -w-stl
|
||||
FLAGS_COMMON_static = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(STATIC_DEFS)
|
||||
FLAGS_COMMON_dynamic = $(FLAGS_COMMON) -D$(SYSDEFINES);$(USERDEFINES);$(DYNAMIC_DEFS) -tWDR
|
||||
|
||||
# -L$(MAKEDIR)\..\lib removed ...it should get ilink32.cfg values instead
|
||||
LDFLAGS_COMMON=-Gn -Gi -Tpd -aa -x
|
||||
LDFLAGS_COMMON_static= $(LDFLAGS_COMMON)
|
||||
LDFLAGS_COMMON_dynamic= $(LDFLAGS_COMMON)
|
||||
|
||||
|
||||
LDFLAGS_RELEASE_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_static= $(LDFLAGS_COMMON_static) $(LINKSTARTUP)
|
||||
|
||||
LDFLAGS_RELEASE_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_DEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
LDFLAGS_STLDEBUG_dynamic= $(LDFLAGS_COMMON_dynamic) $(LINKSTARTUP)
|
||||
|
||||
LDLIBS_RELEASE_dynamic= import32.lib cw32mti.lib
|
||||
LDLIBS_DEBUG_dynamic= import32.lib cw32mti.lib
|
||||
LDLIBS_STLDEBUG_dynamic= import32.lib cw32mti.lib
|
||||
|
||||
|
||||
CXXFLAGS_RELEASE_static= $(FLAGS_COMMON_static) -O2 -n$(RELEASE_OBJDIR_static)
|
||||
CXXFLAGS_DEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(DEBUG_OBJDIR_static)
|
||||
CXXFLAGS_STLDEBUG_static= $(FLAGS_COMMON_static) -v -N -x -xp -n$(STLDEBUG_OBJDIR_static) -D_STLP_DEBUG
|
||||
|
||||
CXXFLAGS_RELEASE_dynamic= $(FLAGS_COMMON_dynamic) -O2 -n$(RELEASE_OBJDIR_dynamic)
|
||||
CXXFLAGS_DEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(DEBUG_OBJDIR_dynamic)
|
||||
CXXFLAGS_STLDEBUG_dynamic= $(FLAGS_COMMON_dynamic) -v -N -x -xp -n$(STLDEBUG_OBJDIR_dynamic) -D_STLP_DEBUG
|
||||
|
||||
RELEASE_LINK_COMMANDS_static=\
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_LINK_COMMANDS_static= \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_LINK_COMMANDS_static= \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
+$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
install : $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) \
|
||||
$(STLDEBUG_OBJDIR_static) $(RELEASE_OBJDIR_dynamic) \
|
||||
$(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic)
|
||||
|
||||
clobber : clean
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
#create a compiler platform directory
|
||||
platform:
|
||||
-$(MKDIR) $(OBJDIR_COMMON)
|
||||
-$(MKDIR) $(OBJDIR)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) , $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB),,$(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic), $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) ,, $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) , $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) ,, $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(RELEASE_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(DEBUG_LINK_COMMANDS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(STLDEBUG_LINK_COMMANDS_static)
|
||||
|
||||
#########################################
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
!include nmake_common.mak
|
||||
|
||||
.cpp.i:
|
||||
$(CPP) $(CXXFLAGS_DEBUG_dynamic) -n. -Sr -Ss -Sd {$< }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
87
STLPORT/src/beos-setup
Normal file
87
STLPORT/src/beos-setup
Normal file
@@ -0,0 +1,87 @@
|
||||
#!/bin/sh
|
||||
|
||||
function intel_setup
|
||||
{
|
||||
files='alloca assert ctype dirent err fcntl float new inttypes libio limits locale malloc math memory signal stdarg stddef stdio stdlib string time va_list wchar wctype'
|
||||
|
||||
for file in $files; do
|
||||
echo '#include_next "'"$file"'.h"' > "../stlport/beos/$file"'.h'
|
||||
echo '#include_next "'"c$file"'"' > "../stlport/beos/c$file"''
|
||||
done
|
||||
|
||||
files='fstream new exception typeinfo iomanip iosfwd iostream istream ostream stdexcept stdiostream stream streambuf strstream'
|
||||
|
||||
for file in $files; do
|
||||
echo '#include_next "'"$file"'.h"' > "../stlport/beos/$file"'.h'
|
||||
echo '#include_next "'"$file"'"' > "../stlport/beos/$file"''
|
||||
done
|
||||
}
|
||||
|
||||
function intel_uninstall
|
||||
{
|
||||
rm -fr ~/config/include/stlport
|
||||
cd ../lib
|
||||
for file in libstlport_gcc*; do
|
||||
rm -f ~/config/lib/$file
|
||||
done
|
||||
rm -f ~/config/lib/libstlport_gcc*.so
|
||||
}
|
||||
|
||||
function intel_install
|
||||
{
|
||||
cp -R ../stlport ~/config/include
|
||||
|
||||
cd ../lib
|
||||
for file in libstlport_gcc*.so.*; do
|
||||
basename=`echo $file | sed 's/\(.*\.so\).*/\1/'`
|
||||
cp $file ~/config/lib
|
||||
if test "$file" != "$basename"; then
|
||||
ln -s ~/config/lib/$file ~/config/lib/$basename
|
||||
fi
|
||||
done
|
||||
|
||||
for file in libstlport_gcc*.a; do
|
||||
cp $file ~/config/lib
|
||||
done
|
||||
|
||||
echo include files are in ~/config/include
|
||||
echo libraries are in ~/config/lib
|
||||
}
|
||||
|
||||
|
||||
if test $# -ne 1; then
|
||||
echo usage:
|
||||
echo " beos-setup -setup # sets up headers"
|
||||
echo " beos-setup -install # installs STLPort"
|
||||
echo " beos-setup -uninstall #uninstalls STLPort"
|
||||
|
||||
else
|
||||
|
||||
if test $1 = "-setup"; then
|
||||
intel_setup
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test $1 = "-uninstall"; then
|
||||
intel_uninstall
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test $1 = "-install"; then
|
||||
intel_install
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo unknown option $*
|
||||
exit 1
|
||||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
16
STLPORT/src/build-tempinc-xlc.mk
Normal file
16
STLPORT/src/build-tempinc-xlc.mk
Normal file
@@ -0,0 +1,16 @@
|
||||
tempIncConst = tempinc
|
||||
buildDir = .
|
||||
tempIncDir = $(buildDir)/$(tempIncConst)
|
||||
|
||||
TempInc_CFiles := $(wildcard $(tempIncDir)/*.C)
|
||||
TempInc_OFiles := $(patsubst %.C,%.o, $(TempInc_CFiles))
|
||||
|
||||
all.PHONY : $(TempInc_OFiles)
|
||||
|
||||
%.o : %.C
|
||||
@echo "Compiling File $@"
|
||||
@xlC_r \
|
||||
-I/tools/STLport-4.0/stlport -qmaxerr=10 -qtempinc=$(tempIncDir)
|
||||
-qrtti=all -qsrcmsg \
|
||||
-o $(@) \
|
||||
-c $<
|
||||
18
STLPORT/src/build-tempinc-xlc.sh
Normal file
18
STLPORT/src/build-tempinc-xlc.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
GNUMake=gmake
|
||||
MakeFile=build-tempinc-xlc.mk
|
||||
|
||||
PassNumber=0
|
||||
echo "Building the AIX tempinc directory."
|
||||
echo "Calling $MakeFile."
|
||||
until { $GNUMake -f $MakeFile -q ; }
|
||||
do
|
||||
let PassNumber=$PassNumber+1
|
||||
echo "Pass Number: $PassNumber"
|
||||
if { ! $GNUMake -f $MakeFile ; } then
|
||||
echo "An error occurred.. aborting"
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
echo "Finished the AIX tempinc directory."
|
||||
37
STLPORT/src/c_locale.c
Normal file
37
STLPORT/src/c_locale.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
# include <stdlib.h>
|
||||
|
||||
# ifdef _STLP_REAL_LOCALE_IMPLEMENTED
|
||||
# include <limits.h>
|
||||
# include "c_locale.h"
|
||||
# if defined (WIN32) || defined (_WIN32)
|
||||
# include "c_locale_win32/c_locale_win32.c"
|
||||
# elif defined (_STLP_USE_GLIBC) && ! defined (__CYGWIN__)
|
||||
# if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
# include "c_locale_glibc/c_locale_glibc2.c"
|
||||
# else
|
||||
# include "c_locale_glibc/c_locale_glibc.c"
|
||||
# endif
|
||||
# elif defined __ISCPP__
|
||||
# include "c_locale_is/c_locale_is.cpp"
|
||||
# endif
|
||||
# endif
|
||||
407
STLPORT/src/c_locale.h
Normal file
407
STLPORT/src/c_locale.h
Normal file
@@ -0,0 +1,407 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* It is impossible to write the C++ locale library in terms of locales
|
||||
* as defined in the C standard. Instead, we write the C++ locale and I/O
|
||||
* library in terms of a low level C-like interface. This file defines
|
||||
* that interface.
|
||||
*
|
||||
* The low-level locale interface can't be written portably; there
|
||||
* must be a version of it for each platform that the C++ library
|
||||
* is ported to. On many systems this interface may be a thin wrapper
|
||||
* for existing functionality.
|
||||
*/
|
||||
|
||||
#ifndef _STLP_C_LOCALE_IMPL_H
|
||||
# define _STLP_C_LOCALE_IMPL_H
|
||||
|
||||
# include <stl/c_locale.h>
|
||||
// # include <wchar.h>
|
||||
# include <stl/_cwchar.h>
|
||||
|
||||
#define _Locale_MAX_SIMPLE_NAME 256
|
||||
|
||||
/*
|
||||
* A number: the maximum length of a simple locale name.
|
||||
* (i.e. a name like like en_US, as opposed to a name like
|
||||
* en_US/de_AT/de_AT/es_MX/en_US/en_US) */
|
||||
#define _Locale_MAX_COMPOSITE_NAME 6*(_Locale_MAX_SIMPLE_NAME+3)
|
||||
|
||||
/*
|
||||
* Maximum length of a composite locale.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Typedefs:
|
||||
*/
|
||||
|
||||
#if defined (__GNUC__) || defined (_KCC) || defined(__ICC)
|
||||
typedef unsigned short int _Locale_mask_t;
|
||||
#else
|
||||
typedef unsigned int _Locale_mask_t;
|
||||
#endif
|
||||
|
||||
void * _Locale_ctype_create(const char *);
|
||||
void * _Locale_numeric_create(const char *);
|
||||
void * _Locale_time_create(const char *);
|
||||
void * _Locale_collate_create(const char *);
|
||||
void * _Locale_monetary_create(const char *);
|
||||
void * _Locale_messages_create(const char *);
|
||||
|
||||
/*
|
||||
* The char* argument is a simple locale name.
|
||||
* These functions return NULL to indicate failure.
|
||||
* The char* argument is a simple locale name, which may not
|
||||
* be "". These functions return NULL to indicate failure.
|
||||
*/
|
||||
|
||||
const char * _Locale_ctype_default(char * __buf);
|
||||
const char * _Locale_numeric_default(char * __buf);
|
||||
const char * _Locale_time_default(char * __buf);
|
||||
const char * _Locale_collate_default(char * __buf);
|
||||
const char * _Locale_monetary_default(char * __buf);
|
||||
const char * _Locale_messages_default(char * __buf);
|
||||
|
||||
/*
|
||||
* Returns the name of the user's default locale in each
|
||||
* category, as a null-terminated string. A NULL value
|
||||
* means the default "C" locale.
|
||||
*/
|
||||
|
||||
char * _Locale_ctype_name(const void *, char *);
|
||||
char * _Locale_numeric_name(const void *, char *);
|
||||
char * _Locale_time_name(const void *, char *);
|
||||
char * _Locale_collate_name(const void *, char *);
|
||||
char * _Locale_monetary_name(const void *, char *);
|
||||
char * _Locale_messages_name(const void *, char *);
|
||||
|
||||
/*
|
||||
* __buf points to a buffer that can hold at least _Locale_MAX_SIMPLE_NAME
|
||||
* characters. These functions store the name, as a null-terminated
|
||||
* string, in __buf.
|
||||
*/
|
||||
|
||||
void _Locale_ctype_destroy(void *);
|
||||
void _Locale_numeric_destroy(void *);
|
||||
void _Locale_time_destroy(void *);
|
||||
void _Locale_collate_destroy(void *);
|
||||
void _Locale_monetary_destroy(void *);
|
||||
void _Locale_messages_destroy(void *);
|
||||
|
||||
char * _Locale_extract_ctype_name(const char *cname, char *__buf);
|
||||
char * _Locale_extract_numeric_name(const char *cname, char *__buf);
|
||||
char * _Locale_extract_time_name(const char *cname, char *__buf);
|
||||
char * _Locale_extract_collate_name(const char *cname, char *__buf);
|
||||
char * _Locale_extract_monetary_name(const char *cname, char *__buf);
|
||||
char * _Locale_extract_messages_name(const char *cname, char *__buf);
|
||||
|
||||
/*
|
||||
* cname is a (possibly composite) locale name---i.e. a name that can
|
||||
* be passed to setlocale. _buf points to an array large enough to
|
||||
* store at least _Locale_MAX_SIMPLE_NAME characters, and each of these
|
||||
* functions extracts the name of a single category, stores it in buf
|
||||
* as a null-terminated string, and returns buf.
|
||||
*/
|
||||
|
||||
char * _Locale_compose_name(char *__buf,
|
||||
const char *__Ctype, const char *__Numeric,
|
||||
const char *__Time, const char *__Collate,
|
||||
const char *__Monetary, const char *__Messages,
|
||||
const char *__DefaultName);
|
||||
|
||||
/*
|
||||
* The inputs to this function are six null-terminated strings: the
|
||||
* names of a locale's six categories. Locale names for non-standard
|
||||
* categories are taken from __DefaultName.
|
||||
* __buf is a pointer to an array large enough to store at least
|
||||
* _Locale_MAX_COMPOSITE_NAME characters.
|
||||
* This function constructs a (possibly composite) name describing the
|
||||
* locale as a whole, stores that name in buf as a null-terminated
|
||||
* string, and returns buf.
|
||||
*/
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE CTYPE
|
||||
*/
|
||||
|
||||
/*
|
||||
* Narrow character functions:
|
||||
*/
|
||||
|
||||
const _Locale_mask_t * _Locale_ctype_table(struct _Locale_ctype *);
|
||||
|
||||
/*
|
||||
* Returns a pointer to the beginning of the ctype table. The table is
|
||||
* at least 257 bytes long; if p is the pointer returned by this
|
||||
* function, then p[c] is valid if c is EOF or if p is any value of
|
||||
* type unsigned char.
|
||||
*/
|
||||
|
||||
int _Locale_toupper(struct _Locale_ctype *, int);
|
||||
int _Locale_tolower(struct _Locale_ctype *, int);
|
||||
|
||||
/*
|
||||
* c is either EOF, or an unsigned char value.
|
||||
*/
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
/*
|
||||
* Wide character functions:
|
||||
*/
|
||||
_Locale_mask_t _Locale_wchar_ctype(struct _Locale_ctype *, wint_t,
|
||||
_Locale_mask_t);
|
||||
wint_t _Locale_wchar_tolower(struct _Locale_ctype *, wint_t);
|
||||
wint_t _Locale_wchar_toupper(struct _Locale_ctype *, wint_t);
|
||||
# endif
|
||||
|
||||
# if !defined ( _STLP_NO_MBSTATE_T )
|
||||
|
||||
/*
|
||||
* Multibyte functions:
|
||||
*/
|
||||
|
||||
int _Locale_mb_cur_max (struct _Locale_ctype *);
|
||||
/*
|
||||
* Returns the number of bytes of the longest allowed multibyte
|
||||
* character in the current encoding.
|
||||
*/
|
||||
|
||||
int _Locale_mb_cur_min (struct _Locale_ctype *);
|
||||
/*
|
||||
* Returns the number of bytes of the shortest allowed multibyte
|
||||
* character in the current encoding.
|
||||
*/
|
||||
|
||||
int _Locale_is_stateless (struct _Locale_ctype *);
|
||||
/*
|
||||
* Returns 1 if the current multibyte encoding is stateless
|
||||
* and does not require the use of an mbstate_t value.
|
||||
*/
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
wint_t _Locale_btowc(struct _Locale_ctype *, int);
|
||||
int _Locale_wctob(struct _Locale_ctype *, wint_t);
|
||||
|
||||
/*
|
||||
* Just like btowc and wctob, from 4.6.5.1 of the C standard, Normative
|
||||
* Addendum 1. (And just like widen/narrow, from clause 22 of the C++
|
||||
* standard.)
|
||||
*/
|
||||
|
||||
size_t _Locale_mbtowc(struct _Locale_ctype *,
|
||||
wchar_t *,
|
||||
const char *, size_t,
|
||||
mbstate_t *);
|
||||
|
||||
/*
|
||||
* Almost identical to mbrtowc, from 4.6.5.3.2 of NA1. The only
|
||||
* important difference is that mbrtowc treats null wide characters
|
||||
* as special, and we don't. Specifically: examines the characters
|
||||
* in [from, from + n), extracts a single wide character, and stores
|
||||
* it in *to. Modifies shift_state if appropriate. The return value,
|
||||
* which is always positive, is the number of characters extracted from
|
||||
* the input sequence. Return value is (size_t) -1 if there was an
|
||||
* encoding error in the input sequence, and (size_t) -2 if
|
||||
* [from, from + n) is correct but not complete. None of the pointer
|
||||
* arguments may be null pointers.
|
||||
*/
|
||||
|
||||
size_t _Locale_wctomb(struct _Locale_ctype *,
|
||||
char *, size_t,
|
||||
const wchar_t,
|
||||
mbstate_t *);
|
||||
|
||||
/*
|
||||
* Again, very similar to wcrtomb. The differences are that (1) it
|
||||
* doesn't treat null characters as special; and (2) it stores at most
|
||||
* n characters. Converts c to a multibyte sequence, stores that
|
||||
* sequence in the array 'to', and returns the length of the sequence.
|
||||
* Modifies shift_state if appropriate. The return value is (size_t) -1
|
||||
* if c is not a valid wide character, and (size_t) -2 if the length of
|
||||
* the multibyte character sequence is greater than n.
|
||||
*/
|
||||
# endif
|
||||
|
||||
size_t _Locale_unshift(struct _Locale_ctype *,
|
||||
mbstate_t *,
|
||||
char *, size_t, char **);
|
||||
|
||||
/*
|
||||
* Inserts whatever characters are necessary to restore st to an
|
||||
* initial shift state. Sets *next to buf + m, where m is the number
|
||||
* of characters inserted. (0 <= m <= n.) Returns m to indicate
|
||||
* success, (size_t) -1 to indicate error, (size_t) -2 to indicate
|
||||
* partial success (more than n characters needed). For success or partial
|
||||
* success, sets *next to buf + m.
|
||||
*/
|
||||
|
||||
# endif /* _STLP_NO_MBSTATE_T */
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE COLLATE
|
||||
*/
|
||||
|
||||
int _Locale_strcmp(struct _Locale_collate *,
|
||||
const char *, size_t,
|
||||
const char *, size_t);
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
int _Locale_strwcmp(struct _Locale_collate *,
|
||||
const wchar_t *, size_t,
|
||||
const wchar_t *, size_t);
|
||||
# endif
|
||||
/*
|
||||
* Compares the two sequences [s1, s1 + n1) and [s2, s2 + n2). Neither
|
||||
* sequence is assumed to be null-terminated, and null characters
|
||||
* aren't special. If the two sequences are the same up through
|
||||
* min(n1, n2), then the sequence that compares less is whichever one
|
||||
* is shorter.
|
||||
*/
|
||||
|
||||
size_t _Locale_strxfrm(struct _Locale_collate *,
|
||||
char *, size_t,
|
||||
const char *, size_t);
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
size_t _Locale_strwxfrm(struct _Locale_collate *,
|
||||
wchar_t *, size_t,
|
||||
const wchar_t *, size_t);
|
||||
# endif
|
||||
|
||||
/*
|
||||
* Creates a transformed version of the string [s2, s2 + n2). The
|
||||
* string may contain embedded null characters; nulls aren't special.
|
||||
* The transformed string begins at s1, and contains at most n1
|
||||
* characters. The return value is the length of the transformed
|
||||
* string. If the return value is greater than n1 then this is an
|
||||
* error condition: it indicates that there wasn't enough space. In
|
||||
* that case, the contents of [s1, s1 + n1) is unspecified.
|
||||
*/
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE NUMERIC
|
||||
*/
|
||||
|
||||
char _Locale_decimal_point(struct _Locale_numeric *);
|
||||
char _Locale_thousands_sep(struct _Locale_numeric *);
|
||||
const char * _Locale_grouping(struct _Locale_numeric *);
|
||||
|
||||
/*
|
||||
* Equivalent to the first three fields in struct lconv. (C standard,
|
||||
* section 7.4.)
|
||||
*/
|
||||
|
||||
const char * _Locale_true(struct _Locale_numeric *);
|
||||
const char * _Locale_false(struct _Locale_numeric *);
|
||||
|
||||
/*
|
||||
* Return "true" and "false" in English locales, and something
|
||||
* appropriate in non-English locales.
|
||||
*/
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE MONETARY
|
||||
*/
|
||||
|
||||
const char * _Locale_int_curr_symbol(struct _Locale_monetary *);
|
||||
const char * _Locale_currency_symbol(struct _Locale_monetary *);
|
||||
char _Locale_mon_decimal_point(struct _Locale_monetary *);
|
||||
char _Locale_mon_thousands_sep(struct _Locale_monetary *);
|
||||
const char * _Locale_mon_grouping(struct _Locale_monetary *);
|
||||
const char * _Locale_positive_sign(struct _Locale_monetary *);
|
||||
const char * _Locale_negative_sign(struct _Locale_monetary *);
|
||||
char _Locale_int_frac_digits(struct _Locale_monetary *);
|
||||
char _Locale_frac_digits(struct _Locale_monetary *);
|
||||
int _Locale_p_cs_precedes(struct _Locale_monetary *);
|
||||
int _Locale_p_sep_by_space(struct _Locale_monetary *);
|
||||
int _Locale_p_sign_posn(struct _Locale_monetary *);
|
||||
int _Locale_n_cs_precedes(struct _Locale_monetary *);
|
||||
int _Locale_n_sep_by_space(struct _Locale_monetary *);
|
||||
int _Locale_n_sign_posn(struct _Locale_monetary *);
|
||||
|
||||
/*
|
||||
* Return the obvious fields of struct lconv.
|
||||
*/
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE TIME
|
||||
*/
|
||||
|
||||
const char * _Locale_full_monthname(struct _Locale_time *, int);
|
||||
const char * _Locale_abbrev_monthname(struct _Locale_time *, int);
|
||||
|
||||
/*
|
||||
* month is in the range [0, 12).
|
||||
*/
|
||||
|
||||
const char * _Locale_full_dayofweek(struct _Locale_time *, int);
|
||||
const char * _Locale_abbrev_dayofweek(struct _Locale_time *, int);
|
||||
|
||||
/*
|
||||
* day is in the range [0, 7). Sunday is 0.
|
||||
*/
|
||||
|
||||
const char * _Locale_d_t_fmt(struct _Locale_time *);
|
||||
const char * _Locale_d_fmt(struct _Locale_time *);
|
||||
const char * _Locale_t_fmt(struct _Locale_time *);
|
||||
const char * _Locale_long_d_t_fmt(struct _Locale_time*);
|
||||
const char * _Locale_long_d_fmt(struct _Locale_time*);
|
||||
|
||||
const char * _Locale_am_str(struct _Locale_time *);
|
||||
const char * _Locale_pm_str(struct _Locale_time *);
|
||||
const char * _Locale_t_fmt_ampm(struct _Locale_time *);
|
||||
|
||||
|
||||
/*
|
||||
* FUNCTIONS THAT USE MESSAGES
|
||||
*/
|
||||
|
||||
int _Locale_catopen(struct _Locale_messages*, const char*);
|
||||
|
||||
/*
|
||||
* Very similar to catopen, except that it uses L to determine
|
||||
* which catalog to open.
|
||||
*/
|
||||
|
||||
void _Locale_catclose(struct _Locale_messages*, int);
|
||||
|
||||
/*
|
||||
* catalog is a value that was returned by a previous call to
|
||||
* _Locale_catopen
|
||||
*/
|
||||
|
||||
const char * _Locale_catgets(struct _Locale_messages *, int,
|
||||
int, int,const char *);
|
||||
|
||||
/*
|
||||
* Returns a string, identified by a set index and a message index,
|
||||
* from an opened message catalog. Returns default if no such
|
||||
* string exists.
|
||||
*/
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
_STLP_END_NAMESPACE
|
||||
# endif
|
||||
|
||||
# endif /* _STLP_C_LOCALE_IMPL_H */
|
||||
774
STLPORT/src/c_locale_glibc/c_locale_glibc.c
Normal file
774
STLPORT/src/c_locale_glibc/c_locale_glibc.c
Normal file
@@ -0,0 +1,774 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#ifdef _POSIX_MAPPED_FILES
|
||||
# include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
#include <stl/c_locale.h>
|
||||
#include <limits.h>
|
||||
#include <wctype.h>
|
||||
/* #include <libc-lock.h> */
|
||||
|
||||
#include <locale.h>
|
||||
#include <argz.h>
|
||||
#include "gcc_localeinfo.h"
|
||||
|
||||
wint_t btowc(int c);
|
||||
int wctob (wint_t c);
|
||||
|
||||
size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
|
||||
size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
|
||||
size_t mbrlen (const char* s, size_t n, mbstate_t *ps);
|
||||
|
||||
#include <nl_types.h>
|
||||
|
||||
|
||||
typedef struct _Locale_ctype {
|
||||
const struct locale_data* gcc_data;
|
||||
const int* __tolower;
|
||||
const int* __toupper;
|
||||
_Locale_mask_t* __class;
|
||||
} L_ctype_t;
|
||||
|
||||
typedef struct _Locale_numeric {
|
||||
const struct locale_data* gcc_data;
|
||||
} L_numeric_t;
|
||||
|
||||
typedef struct _Locale_time {
|
||||
const struct locale_data* gcc_data;
|
||||
} L_time_t;
|
||||
|
||||
typedef struct _Locale_collate {
|
||||
const struct locale_data* gcc_data;
|
||||
} L_collate_t;
|
||||
|
||||
typedef struct _Locale_monetary {
|
||||
const struct locale_data* gcc_data;
|
||||
} L_monetary_t;
|
||||
|
||||
typedef struct _Locale_messages {
|
||||
const struct locale_data* gcc_data;
|
||||
} L_messages_t;
|
||||
|
||||
static char *
|
||||
_Locale_extract_name ( const char *cname, char *into, int category )
|
||||
{
|
||||
int i = 0;
|
||||
const char * end;
|
||||
|
||||
if ( cname[0] != '/' )
|
||||
return strcpy(into, cname); /* simple locale name */
|
||||
|
||||
for ( i = 0; i <= category; i ++ ) {
|
||||
while ( *cname != '\0' && *cname != '/' )
|
||||
cname++;
|
||||
if ( *cname == '\0' )
|
||||
return into;
|
||||
cname++;
|
||||
}
|
||||
|
||||
if ( *cname == '\0' )
|
||||
return into;
|
||||
|
||||
end = cname;
|
||||
while ( *end != '\0' && *end != '/' )
|
||||
end++;
|
||||
|
||||
strncpy ( into, cname, end - cname );
|
||||
into [ end - cname ] = '\0';
|
||||
|
||||
return into;
|
||||
}
|
||||
|
||||
char* _Locale_name(const struct locale_data* gcc_data,
|
||||
char* buf)
|
||||
{
|
||||
if (!(gcc_data && gcc_data->name)) return 0;
|
||||
strncpy(buf, gcc_data->name, _Locale_MAX_SIMPLE_NAME);
|
||||
buf [ _Locale_MAX_SIMPLE_NAME - 1 ] = '\0';
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
/* calls _nl_find_locale which is a function internal to the glibc
|
||||
locale implementation that loads locale data in from the data
|
||||
files. The locale_data struct has information for all categories.
|
||||
In the following implementation we use a locale_data struct for
|
||||
each category for simplicity, though there is an obvious waste in
|
||||
doing that. */
|
||||
const struct locale_data *
|
||||
_Find_locale (char *locale_path, size_t locale_path_len,
|
||||
int category, char **name)
|
||||
{
|
||||
return __nl_find_locale(locale_path, locale_path_len, category, name);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_Remove_locale (int locale, struct locale_data *data)
|
||||
{
|
||||
/* this should eventually call _nl_remove_locale() in glibc 2.1 */
|
||||
}
|
||||
|
||||
/* couldn't find where LOCALE_PATH was defined in glibc,
|
||||
but this is the directory it is defined to -JGS */
|
||||
#define __LOCALE_PATH "/usr/share/locale"
|
||||
|
||||
const struct locale_data*
|
||||
_Category_create(const char * name, int category)
|
||||
{
|
||||
/* JGS, where should this path come from? */
|
||||
char* locpath_var;
|
||||
char* locale_path = NULL;
|
||||
size_t locale_path_len = 0;
|
||||
|
||||
locpath_var = __secure_getenv("LOCPATH");
|
||||
|
||||
if (locpath_var != NULL && locpath_var[0] != '\0')
|
||||
if (argz_create_sep (locpath_var, ':',
|
||||
&locale_path, &locale_path_len) != 0)
|
||||
return NULL;
|
||||
|
||||
if (argz_add_sep (&locale_path, &locale_path_len, __LOCALE_PATH, ':') != 0)
|
||||
return NULL;
|
||||
|
||||
return _Find_locale(locale_path, locale_path_len,
|
||||
category, (char**)&name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static const char* get_default_locale(char* buf) {
|
||||
char* lang = getenv("LANG");
|
||||
if (lang == NULL || lang[0] == '\0') {
|
||||
buf[0] = '\0';
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
strcpy(buf, lang);
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
|
||||
const char* _Locale_ctype_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_ctype_name(fullname, buf);
|
||||
}
|
||||
|
||||
const char* _Locale_numeric_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_numeric_name(fullname, buf);
|
||||
}
|
||||
|
||||
const char* _Locale_time_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_time_name(fullname, buf);
|
||||
}
|
||||
|
||||
const char* _Locale_collate_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_collate_name(fullname, buf);
|
||||
}
|
||||
|
||||
const char* _Locale_monetary_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_monetary_name(fullname, buf);
|
||||
}
|
||||
|
||||
const char* _Locale_messages_default(char* buf) {
|
||||
char fullname[_Locale_MAX_COMPOSITE_NAME];
|
||||
if (get_default_locale(fullname) == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return _Locale_extract_messages_name(fullname, buf);
|
||||
}
|
||||
|
||||
|
||||
/****** Numeric Category ******/
|
||||
|
||||
void*
|
||||
_Locale_numeric_create(const char * name) {
|
||||
L_numeric_t* lnum = (L_numeric_t*)malloc(sizeof(L_numeric_t));
|
||||
lnum->gcc_data = _Category_create(name, LC_NUMERIC);
|
||||
return (void*)lnum;
|
||||
}
|
||||
|
||||
|
||||
char* _Locale_numeric_name(const void* lnum,
|
||||
char* buf) {
|
||||
return _Locale_name(((struct _Locale_ctype*)lnum)->gcc_data, buf);
|
||||
}
|
||||
void _Locale_numeric_destroy(void* lnum)
|
||||
{
|
||||
_Remove_locale(LC_NUMERIC, (struct locale_data *)((struct _Locale_ctype*)lnum)->gcc_data);
|
||||
free(lnum);
|
||||
}
|
||||
char* _Locale_extract_numeric_name(const char* cname, char* buf)
|
||||
{
|
||||
return _Locale_extract_name(cname, buf, LC_NUMERIC);
|
||||
}
|
||||
char _Locale_decimal_point(struct _Locale_numeric* lnum)
|
||||
{
|
||||
return lnum->gcc_data->values[_NL_ITEM_INDEX(DECIMAL_POINT)].string[0];
|
||||
}
|
||||
char _Locale_thousands_sep(struct _Locale_numeric* lnum)
|
||||
{
|
||||
return lnum->gcc_data->values[_NL_ITEM_INDEX(THOUSANDS_SEP)].string[0];
|
||||
}
|
||||
const char* _Locale_grouping(struct _Locale_numeric * lnum)
|
||||
{
|
||||
return lnum->gcc_data->values[_NL_ITEM_INDEX(GROUPING)].string;
|
||||
}
|
||||
|
||||
/* JGS: gcc/linux does not provide true/false names in their
|
||||
* locale data files
|
||||
*/
|
||||
|
||||
static const char* __true_name = "true";
|
||||
static const char* __false_name = "false";
|
||||
|
||||
const char * _Locale_true(struct _Locale_numeric *l)
|
||||
{ return __true_name; }
|
||||
const char * _Locale_false(struct _Locale_numeric *l)
|
||||
{ return __false_name; }
|
||||
|
||||
|
||||
/****** Monetary Category ******/
|
||||
|
||||
void* _Locale_monetary_create(const char* name) {
|
||||
L_monetary_t* lmon = (L_monetary_t*)malloc(sizeof(L_monetary_t));
|
||||
lmon->gcc_data = _Category_create(name, LC_MONETARY);
|
||||
return lmon;
|
||||
}
|
||||
|
||||
char* _Locale_monetary_name(const void* lmon,
|
||||
char* buf) {
|
||||
return _Locale_name(((struct _Locale_monetary*)lmon)->gcc_data, buf);
|
||||
}
|
||||
|
||||
void _Locale_monetary_destroy(void*lmon) {
|
||||
_Remove_locale(LC_MONETARY, (struct locale_data *)((struct _Locale_monetary*)lmon)->gcc_data);
|
||||
free(lmon);
|
||||
}
|
||||
|
||||
char* _Locale_extract_monetary_name(const char* cname, char* buf) {
|
||||
return _Locale_extract_name(cname, buf, LC_MONETARY);
|
||||
}
|
||||
|
||||
const char* _Locale_int_curr_symbol(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(INT_CURR_SYMBOL)].string;
|
||||
}
|
||||
const char* _Locale_currency_symbol(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(CURRENCY_SYMBOL)].string;
|
||||
}
|
||||
char _Locale_mon_decimal_point(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(MON_DECIMAL_POINT)].string[0];
|
||||
}
|
||||
char _Locale_mon_thousands_sep(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(MON_THOUSANDS_SEP)].string[0];
|
||||
}
|
||||
const char* _Locale_mon_grouping(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(MON_GROUPING)].string;
|
||||
}
|
||||
const char* _Locale_positive_sign(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(POSITIVE_SIGN)].string;
|
||||
}
|
||||
const char* _Locale_negative_sign(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(NEGATIVE_SIGN)].string;
|
||||
}
|
||||
char _Locale_int_frac_digits(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(INT_FRAC_DIGITS)].string[0];
|
||||
}
|
||||
char _Locale_frac_digits(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(FRAC_DIGITS)].string[0];
|
||||
}
|
||||
int _Locale_p_cs_precedes(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(P_CS_PRECEDES)].word;
|
||||
}
|
||||
int _Locale_p_sep_by_space(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(P_SEP_BY_SPACE)].word;
|
||||
}
|
||||
int _Locale_p_sign_posn(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(P_SIGN_POSN)].word;
|
||||
}
|
||||
int _Locale_n_cs_precedes(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(N_CS_PRECEDES)].word;
|
||||
}
|
||||
int _Locale_n_sep_by_space(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(N_SEP_BY_SPACE)].word;
|
||||
}
|
||||
int _Locale_n_sign_posn(struct _Locale_monetary* lmon) {
|
||||
return lmon->gcc_data->values[_NL_ITEM_INDEX(N_SIGN_POSN)].word;
|
||||
}
|
||||
|
||||
/****** Time Category ******/
|
||||
|
||||
void* _Locale_time_create(const char * name) {
|
||||
L_time_t* ltime = (L_time_t*)malloc(sizeof(L_time_t));
|
||||
ltime->gcc_data = _Category_create(name, LC_TIME);
|
||||
return ltime;
|
||||
}
|
||||
|
||||
char* _Locale_time_name(const void* ltime,
|
||||
char* buf) {
|
||||
return _Locale_name(((struct _Locale_time*)ltime)->gcc_data, buf);
|
||||
}
|
||||
char* _Locale_extract_time_name(const char* cname, char* buf) {
|
||||
return _Locale_extract_name(cname, buf, LC_TIME);
|
||||
}
|
||||
void _Locale_time_destroy(void* ltime) {
|
||||
_Remove_locale(LC_TIME, (struct locale_data *)((struct _Locale_time*)ltime)->gcc_data);
|
||||
free(ltime);
|
||||
}
|
||||
const char * _Locale_full_monthname(struct _Locale_time *ltime, int month) {
|
||||
const char **names = (const char **)&(ltime->gcc_data->values[_NL_ITEM_INDEX(MON_1)]);
|
||||
return names[month];
|
||||
}
|
||||
const char * _Locale_abbrev_monthname(struct _Locale_time *ltime, int month) {
|
||||
const char **names = (const char **)&(ltime->gcc_data->values[_NL_ITEM_INDEX(ABMON_1)]);
|
||||
return names[month];
|
||||
}
|
||||
const char * _Locale_full_dayofweek(struct _Locale_time *ltime, int day) {
|
||||
const char **names = (const char **)&(ltime->gcc_data->values[_NL_ITEM_INDEX(DAY_1)]);
|
||||
return names[day];
|
||||
}
|
||||
const char * _Locale_abbrev_dayofweek(struct _Locale_time *ltime, int day) {
|
||||
const char **names = (const char **)&(ltime->gcc_data->values[_NL_ITEM_INDEX(ABDAY_1)]);
|
||||
return names[day];
|
||||
}
|
||||
const char* _Locale_d_t_fmt(struct _Locale_time* ltime) {
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(D_T_FMT)].string;
|
||||
}
|
||||
const char* _Locale_long_d_t_fmt(struct _Locale_time* ltime) {
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(D_T_FMT)].string;
|
||||
}
|
||||
const char* _Locale_d_fmt(struct _Locale_time* ltime)
|
||||
{
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(D_FMT)].string;
|
||||
}
|
||||
const char* _Locale_long_d_fmt(struct _Locale_time* ltime)
|
||||
{
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(D_FMT)].string;
|
||||
}
|
||||
const char* _Locale_t_fmt(struct _Locale_time* ltime) {
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(T_FMT)].string;
|
||||
}
|
||||
const char* _Locale_am_str(struct _Locale_time* ltime) {
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(AM_STR)].string;
|
||||
}
|
||||
const char* _Locale_pm_str(struct _Locale_time* ltime) {
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(PM_STR)].string;
|
||||
}
|
||||
const char* _Locale_t_fmt_ampm(struct _Locale_time* ltime)
|
||||
{
|
||||
return ltime->gcc_data->values[_NL_ITEM_INDEX(T_FMT_AMPM)].string;
|
||||
}
|
||||
|
||||
|
||||
/****** Messages Category ******/
|
||||
|
||||
void* _Locale_messages_create(const char * name) {
|
||||
L_messages_t* lmsg = (L_messages_t*)malloc(sizeof(L_messages_t));
|
||||
lmsg->gcc_data = _Category_create(name, LC_MESSAGES);
|
||||
return lmsg;
|
||||
}
|
||||
|
||||
char* _Locale_messages_name(const void* lmsg, char* buf) {
|
||||
return _Locale_name(((struct _Locale_messages*)lmsg)->gcc_data, buf);
|
||||
}
|
||||
|
||||
void _Locale_messages_destroy(void* lmsg) {
|
||||
_Remove_locale(LC_MESSAGES, (struct locale_data *)((struct _Locale_messages*)lmsg)->gcc_data);
|
||||
free(lmsg);
|
||||
}
|
||||
|
||||
char* _Locale_extract_messages_name(const char* cname, char* buf) {
|
||||
return _Locale_extract_name(cname, buf, LC_MESSAGES);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Could not find support for locale specific messages in glibc
|
||||
|
||||
Also, this C locale interface should use a typedef for the catalog
|
||||
instead of just an int. Currently I'm casting a void* (nl_catd)
|
||||
back and forth to and int.
|
||||
|
||||
-JGS
|
||||
*/
|
||||
|
||||
int _Locale_catopen(struct _Locale_messages*l, const char* cat_name) {
|
||||
return (int)catopen(cat_name, 0); /* JGS, don't know about the flag */
|
||||
}
|
||||
void _Locale_catclose(struct _Locale_messages*l, int catalog) {
|
||||
catclose((nl_catd)catalog);
|
||||
}
|
||||
const char* _Locale_catgets(struct _Locale_messages*l, int catalog,
|
||||
int set_num, int msg_num,
|
||||
const char *dfault){
|
||||
return catgets((nl_catd)catalog, set_num, msg_num, dfault);
|
||||
}
|
||||
|
||||
|
||||
/****** ctype Category ******/
|
||||
|
||||
|
||||
/*
|
||||
gcc uses a different set of masks for wide characters than for
|
||||
normal characters. However, the C++ standard requires there
|
||||
to be only one set of masks for both. Therefore we must
|
||||
translate the mask values from the wide characters to the
|
||||
mask values for the normal characters. -JGS
|
||||
*/
|
||||
static _Locale_mask_t _Map_wchar_mask_to_char_mask(wctype_t m) {
|
||||
_Locale_mask_t ret = 0;
|
||||
if (m & _ISwcntrl) ret |= _Locale_CNTRL;
|
||||
if (m & _ISwupper) ret |= _Locale_UPPER;
|
||||
if (m & _ISwlower) ret |= _Locale_LOWER;
|
||||
if (m & _ISwdigit) ret |= _Locale_DIGIT;
|
||||
if (m & _ISwxdigit) ret |= _Locale_XDIGIT;
|
||||
if (m & _ISwpunct) ret |= _Locale_PUNCT;
|
||||
if (m & _ISwspace) ret |= _Locale_SPACE;
|
||||
if (m & _ISwprint) ret |= _Locale_PRINT;
|
||||
if (m & _ISwalpha) ret |= _Locale_ALPHA;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void* _Locale_ctype_create(const char * name) {
|
||||
const union locale_data_value *ctypes;
|
||||
L_ctype_t* lctype;
|
||||
|
||||
lctype = (L_ctype_t*)malloc(sizeof(L_ctype_t));
|
||||
lctype->gcc_data = _Category_create(name, LC_CTYPE);
|
||||
ctypes = lctype->gcc_data->values;
|
||||
|
||||
lctype->__class = (_Locale_mask_t *)
|
||||
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_CLASS)] .string) + 128;
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
lctype->__tolower = (const int *)
|
||||
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER_EB)].string) + 128;
|
||||
lctype->__toupper = (const int *)
|
||||
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER_EB)].string) + 128;
|
||||
#elif BYTE_ORDER == LITTLE_ENDIAN
|
||||
lctype->__tolower = (const int *)
|
||||
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER_EL)].string) + 128;
|
||||
lctype->__toupper = (const int *)
|
||||
(ctypes[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER_EL)].string) + 128;
|
||||
#else
|
||||
#error bizarre byte order
|
||||
#endif
|
||||
return lctype;
|
||||
}
|
||||
char* _Locale_ctype_name(const void* lctype,
|
||||
char* buf) {
|
||||
return _Locale_name(((struct _Locale_ctype*)lctype)->gcc_data, buf);
|
||||
}
|
||||
void _Locale_ctype_destroy(void* lctype) {
|
||||
_Remove_locale(LC_CTYPE, (struct locale_data *)((struct _Locale_ctype*)lctype)->gcc_data);
|
||||
free(lctype);
|
||||
}
|
||||
char* _Locale_extract_ctype_name(const char* cname, char* buf) {
|
||||
return _Locale_extract_name(cname, buf, LC_CTYPE);
|
||||
}
|
||||
const _Locale_mask_t* _Locale_ctype_table(struct _Locale_ctype* lctype) {
|
||||
return lctype->__class;
|
||||
}
|
||||
int _Locale_toupper(struct _Locale_ctype* lctype, int c) {
|
||||
return lctype->__toupper[c];
|
||||
}
|
||||
int _Locale_tolower(struct _Locale_ctype* lctype, int c) {
|
||||
return lctype->__tolower[c];
|
||||
}
|
||||
|
||||
/* Wide Character Functions */
|
||||
|
||||
static inline size_t
|
||||
cname_lookup (wint_t wc, const struct locale_data* loc)
|
||||
{
|
||||
unsigned int *__nl_ctype_names;
|
||||
unsigned int hash_size, hash_layers;
|
||||
size_t result, cnt;
|
||||
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
__nl_ctype_names = (unsigned int*)loc->values[_NL_ITEM_INDEX(_NL_CTYPE_NAMES_EB)].string;
|
||||
#elif BYTE_ORDER == LITTLE_ENDIAN
|
||||
__nl_ctype_names = (unsigned int*)loc->values[_NL_ITEM_INDEX(_NL_CTYPE_NAMES_EL)].string;
|
||||
#else
|
||||
#error bizarre byte order
|
||||
#endif
|
||||
|
||||
hash_size = loc->values[_NL_ITEM_INDEX(_NL_CTYPE_HASH_SIZE)].word;
|
||||
hash_layers = loc->values[_NL_ITEM_INDEX(_NL_CTYPE_HASH_LAYERS)].word;
|
||||
|
||||
result = wc % hash_size;
|
||||
for (cnt = 0; cnt < hash_layers; ++cnt) {
|
||||
if (__nl_ctype_names[result] == wc)
|
||||
break;
|
||||
result += hash_size;
|
||||
}
|
||||
return cnt < hash_layers ? result : ~((size_t) 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
_Locale_mask_t _Locale_wchar_ctype(struct _Locale_ctype* loc, wint_t wc,
|
||||
_Locale_mask_t which_bits) {
|
||||
const struct locale_data* locale = loc->gcc_data;
|
||||
const unsigned int *class32_b;
|
||||
size_t idx;
|
||||
|
||||
idx = cname_lookup (wc, locale);
|
||||
if (idx == ~((size_t) 0))
|
||||
return 0;
|
||||
|
||||
class32_b = (u_int32_t *)
|
||||
locale->values[_NL_ITEM_INDEX (_NL_CTYPE_CLASS32)].string;
|
||||
|
||||
return _Map_wchar_mask_to_char_mask( class32_b[idx] ) & which_bits;
|
||||
}
|
||||
|
||||
|
||||
|
||||
wint_t
|
||||
__towctrans_ld (wint_t wc, wctrans_t desc, const struct locale_data* locale)
|
||||
{
|
||||
size_t idx;
|
||||
|
||||
idx = cname_lookup (wc, locale);
|
||||
if (idx == ~((size_t) 0))
|
||||
/* Character is not known. Default action is to simply return it. */
|
||||
return wc;
|
||||
|
||||
return (wint_t) desc[idx];
|
||||
}
|
||||
|
||||
wint_t _Locale_wchar_tolower(struct _Locale_ctype* locale, wint_t wc) {
|
||||
return __towctrans_ld (wc, (const unsigned int *)locale->__tolower, locale->gcc_data);
|
||||
}
|
||||
wint_t _Locale_wchar_toupper(struct _Locale_ctype* locale, wint_t wc) {
|
||||
return __towctrans_ld (wc, (const unsigned int *)locale->__toupper, locale->gcc_data);
|
||||
}
|
||||
|
||||
|
||||
int _Locale_mb_cur_max (struct _Locale_ctype *lctype) {
|
||||
return lctype->gcc_data->values[_NL_ITEM_INDEX(_NL_CTYPE_MB_CUR_MAX)].word;
|
||||
}
|
||||
|
||||
int _Locale_mb_cur_min (struct _Locale_ctype *l) {
|
||||
return 1; /* JGS just a guess */
|
||||
}
|
||||
|
||||
int _Locale_is_stateless (struct _Locale_ctype *l) { return 1; }
|
||||
|
||||
wint_t _Locale_btowc(struct _Locale_ctype *l, int c) {
|
||||
return btowc(c);
|
||||
}
|
||||
|
||||
/*
|
||||
glibc currently doesn't support locale dependent conversion,
|
||||
which affects the following functions. When it does, then
|
||||
these functions will need to change. Hopeully, the
|
||||
just the calls to the glibc functions will need to be
|
||||
replaced.
|
||||
-JGS
|
||||
*/
|
||||
|
||||
int _Locale_wctob(struct _Locale_ctype *l, wint_t c) {
|
||||
return wctob(c);
|
||||
}
|
||||
|
||||
size_t _Locale_mbtowc(struct _Locale_ctype *l,
|
||||
wchar_t *to,
|
||||
const char *from, size_t n,
|
||||
mbstate_t *shift_state)
|
||||
{
|
||||
int ret;
|
||||
if (to)
|
||||
ret = mbrtowc(to, from, n, shift_state);
|
||||
else
|
||||
ret = mbrlen(from, n, shift_state);
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t _Locale_wctomb(struct _Locale_ctype *l,
|
||||
char *to, size_t n,
|
||||
const wchar_t c,
|
||||
mbstate_t *shift_state)
|
||||
{
|
||||
char buf [MB_LEN_MAX];
|
||||
int ret;
|
||||
char* mb = buf;
|
||||
ret = wcrtomb(mb, c, shift_state);
|
||||
|
||||
if (ret > n)
|
||||
return (size_t)-2;
|
||||
else if (ret <= 0)
|
||||
return ret;
|
||||
|
||||
n = ret;
|
||||
while (n--)
|
||||
*to++ = *mb++;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t _Locale_unshift(struct _Locale_ctype *l,
|
||||
mbstate_t * st,
|
||||
char *buf, size_t n, char **next) {
|
||||
*next = buf; /* JGS stateless, so don't need to do anything? */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/****** Collate Category ******/
|
||||
|
||||
void* _Locale_collate_create(const char * name) {
|
||||
L_collate_t* lcollate = (L_collate_t*)malloc(sizeof(L_collate_t));
|
||||
lcollate->gcc_data = _Category_create(name, LC_COLLATE);
|
||||
return lcollate;
|
||||
}
|
||||
|
||||
char* _Locale_collate_name(const void* lcollate, char* buf) {
|
||||
return _Locale_name(((struct _Locale_collate*)lcollate)->gcc_data, buf);
|
||||
}
|
||||
|
||||
void _Locale_collate_destroy(void* lcollate) {
|
||||
_Remove_locale(LC_COLLATE, (struct locale_data *)((struct _Locale_collate*)lcollate)->gcc_data);
|
||||
free(lcollate);
|
||||
}
|
||||
|
||||
char* _Locale_extract_collate_name(const char* cname, char* buf) {
|
||||
return _Locale_extract_name(cname, buf, LC_COLLATE);
|
||||
}
|
||||
|
||||
/* copied from the IRIX version -JGS */
|
||||
char* _Locale_compose_name(char* buf,
|
||||
const char* ctype, const char* numeric,
|
||||
const char* time, const char* collate,
|
||||
const char* monetary, const char* messages,
|
||||
const char *default_name)
|
||||
{
|
||||
(void) default_name;
|
||||
|
||||
if ( !strcmp ( ctype, numeric ) &&
|
||||
!strcmp ( ctype, time ) &&
|
||||
!strcmp ( ctype, collate ) &&
|
||||
!strcmp ( ctype, monetary ) &&
|
||||
!strcmp ( ctype, messages ) )
|
||||
return strcpy ( buf, ctype );
|
||||
|
||||
strcpy ( buf, "/" );
|
||||
strcat ( buf, ctype );
|
||||
|
||||
strcat ( buf, "/" );
|
||||
strcat ( buf, numeric );
|
||||
|
||||
strcat ( buf, "/" );
|
||||
strcat ( buf, time );
|
||||
|
||||
strcat ( buf, "/" );
|
||||
strcat ( buf, collate );
|
||||
|
||||
strcat ( buf, "/" );
|
||||
strcat ( buf, monetary );
|
||||
|
||||
strcat ( buf, "/" );
|
||||
strcat ( buf, messages );
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
glibc doesn't have a locale specific strcmp
|
||||
This doesn't ignore null chars the way it should
|
||||
*/
|
||||
int
|
||||
_Locale_strcmp(struct _Locale_collate * l,
|
||||
const char *s1, size_t n1,
|
||||
const char *s2, size_t n2)
|
||||
{
|
||||
int ret;
|
||||
int minN = n1 < n2 ? n1 : n2;
|
||||
ret = strncmp(s1, s2, minN);
|
||||
if (ret == 0) {
|
||||
if (n1 < n2) return -1;
|
||||
else if (n1 > n2) return 1;
|
||||
else return 0;
|
||||
} else
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int _Locale_strwcmp(struct _Locale_collate*l,
|
||||
const wchar_t*s1, size_t n1,
|
||||
const wchar_t*s2, size_t n2)
|
||||
{
|
||||
int ret;
|
||||
int minN = n1 < n2 ? n1 : n2;
|
||||
ret = wcsncmp(s1, s2, minN);
|
||||
if (ret == 0) {
|
||||
if (n1 < n2) return -1;
|
||||
else if (n1 > n2) return 1;
|
||||
else return 0;
|
||||
} else
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
size_t _Locale_strxfrm(struct _Locale_collate* lcollate,
|
||||
char* dest, size_t destN, const char* src, size_t srcN)
|
||||
{
|
||||
size_t n;
|
||||
n = strxfrm(dest, src, destN);
|
||||
if (n > destN)
|
||||
return (size_t)-1;
|
||||
dest[n] = 0;
|
||||
return n;
|
||||
}
|
||||
|
||||
size_t _Locale_strwxfrm(struct _Locale_collate* lcollate,
|
||||
wchar_t* dest, size_t destN,
|
||||
const wchar_t* src, size_t srcN)
|
||||
{
|
||||
size_t n;
|
||||
n = wcsxfrm(dest, src, destN);
|
||||
if (n > destN)
|
||||
return (size_t)-1;
|
||||
dest[n] = 0;
|
||||
return n;
|
||||
}
|
||||
207
STLPORT/src/c_locale_glibc/gcc_localeinfo.h
Normal file
207
STLPORT/src/c_locale_glibc/gcc_localeinfo.h
Normal file
@@ -0,0 +1,207 @@
|
||||
/* localeinfo.h -- declarations for internal libc locale interfaces
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _LOCALEINFO_H
|
||||
#define _LOCALEINFO_H 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <langinfo.h>
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
/* stuff from loadinfo.h */
|
||||
|
||||
#ifndef PARAMS
|
||||
# if __STDC__
|
||||
# define PARAMS(args) args
|
||||
# else
|
||||
# define PARAMS(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Encoding of locale name parts. */
|
||||
#define CEN_REVISION 1
|
||||
#define CEN_SPONSOR 2
|
||||
#define CEN_SPECIAL 4
|
||||
#define XPG_NORM_CODESET 8
|
||||
#define XPG_CODESET 16
|
||||
#define TERRITORY 32
|
||||
#define CEN_AUDIENCE 64
|
||||
#define XPG_MODIFIER 128
|
||||
|
||||
#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
|
||||
#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
|
||||
|
||||
|
||||
struct loaded_l10nfile
|
||||
{
|
||||
const char *filename;
|
||||
int decided;
|
||||
|
||||
const void *data;
|
||||
|
||||
struct loaded_l10nfile *next;
|
||||
struct loaded_l10nfile *successor[1];
|
||||
};
|
||||
|
||||
|
||||
extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
|
||||
size_t name_len));
|
||||
|
||||
extern struct loaded_l10nfile *
|
||||
_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
|
||||
const char *dirlist, size_t dirlist_len, int mask,
|
||||
const char *language, const char *territory,
|
||||
const char *codeset,
|
||||
const char *normalized_codeset,
|
||||
const char *modifier, const char *special,
|
||||
const char *sponsor, const char *revision,
|
||||
const char *filename, int do_allocate));
|
||||
|
||||
|
||||
extern const char *_nl_expand_alias PARAMS ((const char *name));
|
||||
|
||||
extern int _nl_explode_name PARAMS ((char *name, const char **language,
|
||||
const char **modifier,
|
||||
const char **territory,
|
||||
const char **codeset,
|
||||
const char **normalized_codeset,
|
||||
const char **special,
|
||||
const char **sponsor,
|
||||
const char **revision));
|
||||
|
||||
|
||||
|
||||
/* Magic number at the beginning of a locale data file for CATEGORY. */
|
||||
#define LIMAGIC(category) (0x960617de ^ (category))
|
||||
|
||||
/* Two special weight constants for the collation data. */
|
||||
#define FORWARD_CHAR ((wchar_t) 0xfffffffd)
|
||||
#define ELLIPSIS_CHAR ((wchar_t) 0xfffffffe)
|
||||
#define IGNORE_CHAR ((wchar_t) 0xffffffff)
|
||||
|
||||
#define MAX_USAGE_COUNT (UINT_MAX - 1)
|
||||
#define UNDELETABLE UINT_MAX
|
||||
|
||||
/* Structure describing locale data in core for a category. */
|
||||
struct locale_data
|
||||
{
|
||||
const char *name;
|
||||
const char *filedata; /* Region mapping the file data. */
|
||||
off_t filesize; /* Size of the file (and the region). */
|
||||
|
||||
// unsigned int usage_count;
|
||||
// int mmaped;
|
||||
|
||||
unsigned int nstrings; /* Number of strings below. */
|
||||
union locale_data_value
|
||||
{
|
||||
const wchar_t *wstr;
|
||||
const char *string;
|
||||
unsigned int word;
|
||||
}
|
||||
values[0]; /* Items, usually pointers into `filedata'. */
|
||||
};
|
||||
|
||||
/* We know three kinds of collation sorting rules. */
|
||||
enum coll_sort_rule
|
||||
{
|
||||
illegal_0__,
|
||||
sort_forward,
|
||||
sort_backward,
|
||||
illegal_3__,
|
||||
sort_position,
|
||||
sort_forward_position,
|
||||
sort_backward_position,
|
||||
sort_mask
|
||||
};
|
||||
|
||||
/* We can map the types of the entries into a few categories. */
|
||||
enum value_type
|
||||
{
|
||||
none,
|
||||
string,
|
||||
stringarray,
|
||||
byte,
|
||||
bytearray,
|
||||
word
|
||||
};
|
||||
|
||||
|
||||
/* Structure to access `era' information from LC_TIME. */
|
||||
struct era_entry
|
||||
{
|
||||
u_int32_t direction; /* Contains '+' or '-'. */
|
||||
int32_t offset;
|
||||
int32_t start_date[3];
|
||||
int32_t stop_date[3];
|
||||
const char name_fmt[0];
|
||||
};
|
||||
|
||||
extern const char *const _nl_category_names[LC_ALL + 1];
|
||||
extern const size_t _nl_category_name_sizes[LC_ALL + 1];
|
||||
extern const struct locale_data * *const _nl_current[LC_ALL];
|
||||
|
||||
/* Name of the standard locale. */
|
||||
extern const char _nl_C_name[];
|
||||
|
||||
/* Extract the current CATEGORY locale's string for ITEM. */
|
||||
#define _NL_CURRENT(category, item) \
|
||||
(_nl_current_##category->values[_NL_ITEM_INDEX (item)].string)
|
||||
|
||||
/* Extract the current CATEGORY locale's word for ITEM. */
|
||||
#define _NL_CURRENT_WORD(category, item) \
|
||||
(_nl_current_##category->values[_NL_ITEM_INDEX (item)].word)
|
||||
|
||||
/* This is used in lc-CATEGORY.c to define _nl_current_CATEGORY. */
|
||||
#define _NL_CURRENT_DEFINE(category) \
|
||||
extern const struct locale_data _nl_C_##category; \
|
||||
const struct locale_data *_nl_current_##category = &_nl_C_##category
|
||||
|
||||
/* Load the locale data for CATEGORY from the file specified by *NAME.
|
||||
If *NAME is "", use environment variables as specified by POSIX,
|
||||
and fill in *NAME with the actual name used. The directories
|
||||
listed in LOCALE_PATH are searched for the locale files. */
|
||||
extern const struct locale_data *_nl_find_locale (const char *locale_path,
|
||||
size_t locale_path_len,
|
||||
int category, char **name);
|
||||
|
||||
/* Try to load the file described by FILE. */
|
||||
extern void _nl_load_locale (struct loaded_l10nfile *file, int category);
|
||||
|
||||
|
||||
/* Return `era' entry which corresponds to TP. Used in strftime. */
|
||||
struct era_entry *_nl_get_era_entry (const struct tm *tp);
|
||||
|
||||
/* Return `alt_digit' which corresponds to NUMBER. Used in strftime. */
|
||||
const char *_nl_get_alt_digit (unsigned int number);
|
||||
|
||||
|
||||
/* Global variables for LC_COLLATE category data. */
|
||||
extern const u_int32_t *__collate_table;
|
||||
extern const u_int32_t *__collate_extra;
|
||||
extern const u_int32_t *__collate_element_hash;
|
||||
extern const char *__collate_element_strings;
|
||||
extern const wchar_t *__collate_element_values;
|
||||
extern const u_int32_t *__collate_symbol_hash;
|
||||
extern const char *__collate_symbol_strings;
|
||||
extern const u_int32_t *__collate_symbol_classes;
|
||||
|
||||
#endif /* localeinfo.h */
|
||||
279
STLPORT/src/c_locale_stub.cpp
Normal file
279
STLPORT/src/c_locale_stub.cpp
Normal file
@@ -0,0 +1,279 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
# include "stlport_prefix.h"
|
||||
#include "c_locale.h"
|
||||
#include <limits.h>
|
||||
|
||||
# ifdef _STLP_REAL_LOCALE_IMPLEMENTED
|
||||
|
||||
// here, we'll put C locale implementation for those compilers where
|
||||
// it has to be done in C++
|
||||
|
||||
# else
|
||||
|
||||
/* This is a "stub" implementation of the "c_locale.h" interface,
|
||||
intended for operating systems where we have not yet written
|
||||
a real implementation. A C++ library using this stub implementation
|
||||
is still standard-conforming, since the C++ standard does not require
|
||||
that any locales other than "C" be supported.
|
||||
*/
|
||||
|
||||
/* Framework functions */
|
||||
|
||||
struct _Locale_ctype /* { } */ ;
|
||||
struct _Locale_numeric /* { } */;
|
||||
struct _Locale_time /* { } */;
|
||||
struct _Locale_collate /*{ } */;
|
||||
struct _Locale_monetary /* { } */;
|
||||
struct _Locale_messages /* { } */;
|
||||
|
||||
# ifdef __cplusplus
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
extern "C" {
|
||||
# define __DUMMY_PAR
|
||||
# define __DUMMY_PAR1
|
||||
# define __DUMMY_PAR2
|
||||
# define __DUMMY_PAR3
|
||||
# define __DUMMY_PAR4
|
||||
# define __DUMMY_PAR5
|
||||
# define __DUMMY_PAR6
|
||||
# define __DUMMY_PAR7
|
||||
# define __DUMMY_PAR8
|
||||
# endif
|
||||
|
||||
void* _Locale_ctype_create(const char * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
void* _Locale_numeric_create(const char * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
void*_Locale_time_create(const char * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
void* _Locale_collate_create(const char *__DUMMY_PAR)
|
||||
{ return 0; }
|
||||
void* _Locale_monetary_create(const char * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
void* _Locale_messages_create(const char *__DUMMY_PAR)
|
||||
{ return 0; }
|
||||
|
||||
const char* _Locale_ctype_default(char*) { return 0; }
|
||||
const char* _Locale_numeric_default(char *) { return 0; }
|
||||
const char* _Locale_time_default(char*) { return 0; }
|
||||
const char* _Locale_collate_default(char*) { return 0; }
|
||||
const char* _Locale_monetary_default(char*) { return 0; }
|
||||
const char* _Locale_messages_default(char*) { return 0; }
|
||||
|
||||
char* _Locale_ctype_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_numeric_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_time_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_collate_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_monetary_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_messages_name(const void* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
|
||||
void _Locale_ctype_destroy(void* __DUMMY_PAR) {}
|
||||
void _Locale_numeric_destroy(void* __DUMMY_PAR) {}
|
||||
void _Locale_time_destroy(void* __DUMMY_PAR) {}
|
||||
void _Locale_collate_destroy(void* __DUMMY_PAR) {}
|
||||
void _Locale_monetary_destroy(void* __DUMMY_PAR) {}
|
||||
void _Locale_messages_destroy(void* __DUMMY_PAR) {}
|
||||
|
||||
char* _Locale_extract_ctype_name(const char* __DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_extract_numeric_name(const char*__DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_extract_time_name(const char*__DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_extract_collate_name(const char*__DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_extract_monetary_name(const char*__DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char* _Locale_extract_messages_name(const char*__DUMMY_PAR1, char* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
|
||||
char* _Locale_compose_name(char*__DUMMY_PAR1, const char*__DUMMY_PAR2, const char*__DUMMY_PAR3,
|
||||
const char*__DUMMY_PAR4,
|
||||
const char*__DUMMY_PAR5, const char*__DUMMY_PAR6, const char*__DUMMY_PAR7, const char*__DUMMY_PAR8)
|
||||
{ return 0; }
|
||||
|
||||
|
||||
/* ctype */
|
||||
|
||||
const _Locale_mask_t* _Locale_ctype_table(struct _Locale_ctype* __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
int _Locale_toupper(struct _Locale_ctype*__DUMMY_PAR1, int __DUMMY_PAR) { return 0; }
|
||||
int _Locale_tolower(struct _Locale_ctype*__DUMMY_PAR1, int __DUMMY_PAR) { return 0; }
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
_Locale_mask_t _Locale_wchar_ctype(struct _Locale_ctype*__DUMMY_PAR1, wint_t __DUMMY_PAR2, _Locale_mask_t __DUMMY_PAR3)
|
||||
{ return 0; }
|
||||
wint_t _Locale_wchar_tolower(struct _Locale_ctype*__DUMMY_PAR1, wint_t __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
wint_t _Locale_wchar_toupper(struct _Locale_ctype*__DUMMY_PAR1, wint_t __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
# endif
|
||||
|
||||
# ifndef _STLP_NO_MBSTATE_T
|
||||
|
||||
int _Locale_mb_cur_max (struct _Locale_ctype * __DUMMY_PAR) { return 0; }
|
||||
int _Locale_mb_cur_min (struct _Locale_ctype * __DUMMY_PAR) { return 0; }
|
||||
int _Locale_is_stateless (struct _Locale_ctype * __DUMMY_PAR) { return 1; }
|
||||
#ifndef _STLP_NO_WCHAR_T
|
||||
wint_t _Locale_btowc(struct _Locale_ctype * __DUMMY_PAR1, int __DUMMY_PAR) { return 0; }
|
||||
int _Locale_wctob(struct _Locale_ctype * __DUMMY_PAR2, wint_t __DUMMY_PAR) { return 0; }
|
||||
|
||||
size_t _Locale_mbtowc(struct _Locale_ctype *__DUMMY_PAR1,
|
||||
wchar_t *__DUMMY_PAR2,
|
||||
const char *__DUMMY_PAR3, size_t __DUMMY_PAR4,
|
||||
mbstate_t *__DUMMY_PAR5) {
|
||||
return (size_t) -1;
|
||||
}
|
||||
size_t _Locale_wctomb(struct _Locale_ctype *__DUMMY_PAR1,
|
||||
char *__DUMMY_PAR2, size_t __DUMMY_PAR3,
|
||||
const wchar_t __DUMMY_PAR4,
|
||||
mbstate_t *__DUMMY_PAR5) {
|
||||
return (size_t) -1;
|
||||
}
|
||||
# endif
|
||||
|
||||
size_t _Locale_unshift(struct _Locale_ctype *__DUMMY_PAR1,
|
||||
mbstate_t *__DUMMY_PAR2,
|
||||
char *__DUMMY_PAR3, size_t __DUMMY_PAR4, char ** __DUMMY_PAR5) {
|
||||
return (size_t) -1;
|
||||
}
|
||||
|
||||
# endif /* _STLP_NO_MBSTATE_T */
|
||||
|
||||
|
||||
/* Collate */
|
||||
int _Locale_strcmp(struct _Locale_collate* __DUMMY_PAR1,
|
||||
const char* __DUMMY_PAR2, size_t __DUMMY_PAR3, const char* __DUMMY_PAR4,
|
||||
size_t __DUMMY_PAR5) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
|
||||
int _Locale_strwcmp(struct _Locale_collate* __DUMMY_PAR1,
|
||||
const wchar_t* __DUMMY_PAR2, size_t __DUMMY_PAR3,
|
||||
const wchar_t* __DUMMY_PAR4, size_t __DUMMY_PAR5) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
size_t _Locale_strxfrm(struct _Locale_collate* __DUMMY_PAR1,
|
||||
char* __DUMMY_PAR2, size_t __DUMMY_PAR3,
|
||||
const char* __DUMMY_PAR4, size_t __DUMMY_PAR5) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
|
||||
size_t _Locale_strwxfrm(struct _Locale_collate* __DUMMY_PAR1,
|
||||
wchar_t* __DUMMY_PAR2, size_t __DUMMY_PAR3,
|
||||
const wchar_t* __DUMMY_PAR4, size_t __DUMMY_PAR5)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
/* Numeric */
|
||||
|
||||
char _Locale_decimal_point(struct _Locale_numeric* __DUMMY_PAR) { return '.'; }
|
||||
char _Locale_thousands_sep(struct _Locale_numeric* __DUMMY_PAR) { return ','; }
|
||||
const char* _Locale_grouping(struct _Locale_numeric * __DUMMY_PAR)
|
||||
{ return ""; }
|
||||
|
||||
const char * _Locale_true(struct _Locale_numeric * __DUMMY_PAR) { return 0; }
|
||||
const char * _Locale_false(struct _Locale_numeric * __DUMMY_PAR) { return 0; }
|
||||
|
||||
|
||||
/* Monetary */
|
||||
|
||||
const char* _Locale_int_curr_symbol(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
const char* _Locale_currency_symbol(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return 0; }
|
||||
char _Locale_mon_decimal_point(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return '.'; }
|
||||
char _Locale_mon_thousands_sep(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return ','; }
|
||||
const char* _Locale_mon_grouping(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return ""; }
|
||||
const char* _Locale_positive_sign(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return ""; }
|
||||
const char* _Locale_negative_sign(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return ""; }
|
||||
char _Locale_int_frac_digits(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
char _Locale_frac_digits(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_p_cs_precedes(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_p_sep_by_space(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_p_sign_posn(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_n_cs_precedes(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_n_sep_by_space(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
int _Locale_n_sign_posn(struct _Locale_monetary * __DUMMY_PAR)
|
||||
{ return CHAR_MAX; }
|
||||
|
||||
|
||||
/* Time */
|
||||
const char * _Locale_full_monthname(struct _Locale_time * __DUMMY_PAR1, int __DUMMY_PAR2)
|
||||
{ return 0; }
|
||||
const char * _Locale_abbrev_monthname(struct _Locale_time * __DUMMY_PAR1, int __DUMMY_PAR2)
|
||||
{ return 0; }
|
||||
const char * _Locale_full_dayofweek(struct _Locale_time * __DUMMY_PAR1, int __DUMMY_PAR2)
|
||||
{ return 0; }
|
||||
const char * _Locale_abbrev_dayofweek(struct _Locale_time * __DUMMY_PAR1, int __DUMMY_PAR2)
|
||||
{ return 0; }
|
||||
|
||||
const char* _Locale_d_t_fmt(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_d_fmt(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_t_fmt(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_long_d_t_fmt(struct _Locale_time* __DUMMY_PAR){ return 0; }
|
||||
const char* _Locale_long_d_fmt(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_am_str(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_pm_str(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
const char* _Locale_t_fmt_ampm(struct _Locale_time* __DUMMY_PAR) { return 0; }
|
||||
|
||||
/* Messages */
|
||||
|
||||
int _Locale_catopen(struct _Locale_messages* __DUMMY_PAR1, const char* __DUMMY_PAR)
|
||||
{ return -1; }
|
||||
void _Locale_catclose(struct _Locale_messages* __DUMMY_PAR1, int __DUMMY_PAR) {}
|
||||
const char* _Locale_catgets(struct _Locale_messages* __DUMMY_PAR1, int __DUMMY_PAR2,
|
||||
int __DUMMY_PAR3, int __DUMMY_PAR4,
|
||||
const char *dfault)
|
||||
{ return dfault; }
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern C */
|
||||
_STLP_END_NAMESPACE
|
||||
#endif
|
||||
|
||||
#endif /* real locale */
|
||||
1743
STLPORT/src/c_locale_win32/c_locale_win32.c
Normal file
1743
STLPORT/src/c_locale_win32/c_locale_win32.c
Normal file
File diff suppressed because it is too large
Load Diff
165
STLPORT/src/codecvt.cpp
Normal file
165
STLPORT/src/codecvt.cpp
Normal file
@@ -0,0 +1,165 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
# ifndef _STLP_NO_MBSTATE_T
|
||||
|
||||
#include <stl/_codecvt.h>
|
||||
#include <stl/_algobase.h>
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// codecvt<char, char, mbstate_t>
|
||||
|
||||
codecvt<char, char, mbstate_t>::~codecvt() {}
|
||||
|
||||
int codecvt<char, char, mbstate_t>::do_length(const mbstate_t&,
|
||||
const char* from,
|
||||
const char* end,
|
||||
size_t mx) const
|
||||
{
|
||||
return (int)(min) ( __STATIC_CAST(size_t, (end - from)), mx);
|
||||
}
|
||||
|
||||
int codecvt<char, char, mbstate_t>::do_max_length() const _STLP_NOTHROW
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool
|
||||
codecvt<char, char, mbstate_t>::do_always_noconv() const _STLP_NOTHROW
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
int
|
||||
codecvt<char, char, mbstate_t>::do_encoding() const _STLP_NOTHROW
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
codecvt_base::result
|
||||
codecvt<char, char, mbstate_t>::do_unshift(mbstate_t& /* __state */,
|
||||
char* __to,
|
||||
char* /* __to_limit */,
|
||||
char*& __to_next) const
|
||||
{ __to_next = __to; return noconv; }
|
||||
|
||||
codecvt_base::result
|
||||
codecvt<char, char, mbstate_t>::do_in (mbstate_t& /* __state */ ,
|
||||
const char* __from,
|
||||
const char* /* __from_end */,
|
||||
const char*& __from_next,
|
||||
char* __to,
|
||||
char* /* __to_end */,
|
||||
char*& __to_next) const
|
||||
{ __from_next = __from; __to_next = __to; return noconv; }
|
||||
|
||||
codecvt_base::result
|
||||
codecvt<char, char, mbstate_t>::do_out(mbstate_t& /* __state */,
|
||||
const char* __from,
|
||||
const char* /* __from_end */,
|
||||
const char*& __from_next,
|
||||
char* __to,
|
||||
char* /* __to_limit */,
|
||||
char*& __to_next) const
|
||||
{ __from_next = __from; __to_next = __to; return noconv; }
|
||||
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
//----------------------------------------------------------------------
|
||||
// codecvt<wchar_t, char, mbstate_t>
|
||||
|
||||
codecvt<wchar_t, char, mbstate_t>::~codecvt() {}
|
||||
|
||||
|
||||
codecvt<wchar_t, char, mbstate_t>::result
|
||||
codecvt<wchar_t, char, mbstate_t>::do_out(state_type& /* state */,
|
||||
const intern_type* from,
|
||||
const intern_type* from_end,
|
||||
const intern_type*& from_next,
|
||||
extern_type* to,
|
||||
extern_type* to_limit,
|
||||
extern_type*& to_next) const
|
||||
{
|
||||
ptrdiff_t len = (min) (from_end - from, to_limit - to);
|
||||
copy(from, from + len, to);
|
||||
from_next = from + len;
|
||||
to_next = to + len;
|
||||
return ok;
|
||||
}
|
||||
|
||||
codecvt<wchar_t, char, mbstate_t>::result
|
||||
codecvt<wchar_t, char, mbstate_t>::do_in (state_type& /* state */,
|
||||
const extern_type* from,
|
||||
const extern_type* from_end,
|
||||
const extern_type*& from_next,
|
||||
intern_type* to,
|
||||
intern_type* to_limit,
|
||||
intern_type*& to_next) const
|
||||
{
|
||||
ptrdiff_t len = (min) (from_end - from, to_limit - to);
|
||||
copy(from, from + len, to);
|
||||
from_next = from + len;
|
||||
to_next = to + len;
|
||||
return ok;
|
||||
}
|
||||
|
||||
codecvt<wchar_t, char, mbstate_t>::result
|
||||
codecvt<wchar_t, char, mbstate_t>::do_unshift(state_type& /* state */,
|
||||
extern_type* to,
|
||||
extern_type* ,
|
||||
extern_type*& to_next) const
|
||||
{
|
||||
to_next = to;
|
||||
return noconv;
|
||||
}
|
||||
|
||||
int codecvt<wchar_t, char, mbstate_t>::do_encoding() const _STLP_NOTHROW {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
bool codecvt<wchar_t, char, mbstate_t>::do_always_noconv() const _STLP_NOTHROW
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
int codecvt<wchar_t, char, mbstate_t>::do_length(const state_type&,
|
||||
const extern_type* from,
|
||||
const extern_type* end,
|
||||
size_t mx) const
|
||||
{
|
||||
return (int)(min) ((size_t) (end - from), mx);
|
||||
}
|
||||
|
||||
int codecvt<wchar_t, char, mbstate_t>::do_max_length() const _STLP_NOTHROW {
|
||||
return 1;
|
||||
}
|
||||
# endif /* wchar_t */
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
# endif /* _STLP_NO_MBSTATE_T */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
|
||||
83
STLPORT/src/collate.cpp
Normal file
83
STLPORT/src/collate.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
#include "stl/_collate.h"
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
// collate<char>
|
||||
|
||||
collate<char>::~collate() {}
|
||||
|
||||
int collate<char>::do_compare(const char* low1, const char* high1,
|
||||
const char* low2, const char* high2) const
|
||||
{
|
||||
return __lexicographical_compare_3way(low1, high1, low2, high2);
|
||||
}
|
||||
|
||||
string collate<char>::do_transform(const char* low, const char* high) const
|
||||
{
|
||||
return string(low, high);
|
||||
}
|
||||
|
||||
long collate<char>::do_hash(const char* low, const char* high) const {
|
||||
unsigned long result = 0;
|
||||
for ( ; low < high; ++low)
|
||||
result = 5 * result + *low;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
// collate<wchar_t>
|
||||
|
||||
collate<wchar_t>::~collate() {}
|
||||
|
||||
int
|
||||
collate<wchar_t>::do_compare(const wchar_t* low1, const wchar_t* high1,
|
||||
const wchar_t* low2, const wchar_t* high2) const
|
||||
{
|
||||
return __lexicographical_compare_3way(low1, high1, low2, high2);
|
||||
}
|
||||
|
||||
|
||||
wstring
|
||||
collate<wchar_t>::do_transform(const wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
return wstring(low, high);
|
||||
}
|
||||
|
||||
long collate<wchar_t>::do_hash(const wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
unsigned long result = 0;
|
||||
for ( ; low < high; ++low)
|
||||
result = 5 * result + *low;
|
||||
return result;
|
||||
}
|
||||
# endif
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
|
||||
416
STLPORT/src/common_macros.mak
Normal file
416
STLPORT/src/common_macros.mak
Normal file
@@ -0,0 +1,416 @@
|
||||
SHELL=/bin/sh
|
||||
|
||||
#
|
||||
# Versioning
|
||||
#
|
||||
VERSION_MAJOR=4
|
||||
VERSION_MINOR=6
|
||||
|
||||
# This one is not always present; it should be empty for release versions.
|
||||
# We do not assume any binary compatibility for betas.
|
||||
BETA_SUFFIX=
|
||||
|
||||
VERSION_SUFFIX= .$(VERSION_MAJOR).$(VERSION_MINOR)$(BETA_SUFFIX)
|
||||
WIN_VERSION_SUFFIX= $(VERSION_MAJOR)$(VERSION_MINOR)$(BETA_SUFFIX)
|
||||
|
||||
# DYNAMIC_SUFFIX= $(VERSION_SUFFIX)$(PATCH_SUFFIX)
|
||||
DYNAMIC_SUFFIX= $(VERSION_SUFFIX)
|
||||
WIN_DYNAMIC_SUFFIX= $(WIN_VERSION_SUFFIX)
|
||||
|
||||
#
|
||||
# Directories
|
||||
#
|
||||
#
|
||||
|
||||
SRCDIR=.
|
||||
STLPORT_DIR=$(CUR_DIR)..$(PATH_SEP)stlport
|
||||
OUTDIR=$(CUR_DIR)..$(PATH_SEP)lib
|
||||
OBJDIR_COMMON=$(OUTDIR)$(PATH_SEP)obj
|
||||
OBJDIR=$(OUTDIR)$(PATH_SEP)obj$(PATH_SEP)$(COMP)
|
||||
|
||||
RELEASE_OBJDIR_static=$(OBJDIR)$(PATH_SEP)Release
|
||||
DEBUG_OBJDIR_static=$(OBJDIR)$(PATH_SEP)Debug
|
||||
STLDEBUG_OBJDIR_static=$(OBJDIR)$(PATH_SEP)DebugSTL
|
||||
RELEASE_OBJDIR_staticx=$(OBJDIR)$(PATH_SEP)Releasex
|
||||
DEBUG_OBJDIR_staticx=$(OBJDIR)$(PATH_SEP)Debugx
|
||||
STLDEBUG_OBJDIR_staticx=$(OBJDIR)$(PATH_SEP)DebugSTLx
|
||||
RELEASE_OBJDIR_dynamic=$(OBJDIR)$(PATH_SEP)ReleaseD
|
||||
DEBUG_OBJDIR_dynamic=$(OBJDIR)$(PATH_SEP)DebugD
|
||||
STLDEBUG_OBJDIR_dynamic=$(OBJDIR)$(PATH_SEP)DebugSTLD
|
||||
|
||||
#
|
||||
# By default on UNIX, STLport headers go into /usr/local/include/stlport,
|
||||
# and libraries go into /usr/local/lib. Please override any of them if desired.
|
||||
#
|
||||
|
||||
INSTALLDIR=/usr/local
|
||||
# INSTALLDIR=/tmp
|
||||
INSTALLDIR_INC=$(INSTALLDIR)/include/stlport
|
||||
INSTALLDIR_LIB=$(INSTALLDIR)/lib
|
||||
|
||||
RM = rm -fr
|
||||
INSTALL = ./install.sh -c
|
||||
INSTALL_LIB = $(INSTALL)
|
||||
INSTALL_H = $(INSTALL) -m 444
|
||||
|
||||
#
|
||||
#
|
||||
# Targets
|
||||
#
|
||||
|
||||
RELEASE_NAME=$(LIB_BASENAME)
|
||||
DEBUG_NAME=$(LIB_BASENAME)_debug
|
||||
STLDEBUG_NAME=$(LIB_BASENAME)_stldebug
|
||||
|
||||
RELEASE_DYNLIB=$(RELEASE_NAME).$(DYNEXT)$(DYNAMIC_SUFFIX)
|
||||
DEBUG_DYNLIB=$(DEBUG_NAME).$(DYNEXT)$(DYNAMIC_SUFFIX)
|
||||
STLDEBUG_DYNLIB=$(STLDEBUG_NAME).$(DYNEXT)$(DYNAMIC_SUFFIX)
|
||||
|
||||
RELEASE_DYNLIB_SONAME=$(RELEASE_NAME).$(DYNEXT)$(VERSION_SUFFIX)
|
||||
DEBUG_DYNLIB_SONAME=$(DEBUG_NAME).$(DYNEXT)$(VERSION_SUFFIX)
|
||||
STLDEBUG_DYNLIB_SONAME=$(STLDEBUG_NAME).$(DYNEXT)$(VERSION_SUFFIX)
|
||||
|
||||
RELEASE_LIB=$(RELEASE_NAME)$(STATIC_SUFFIX).$(STEXT)
|
||||
DEBUG_LIB=$(DEBUG_NAME)$(STATIC_SUFFIX).$(STEXT)
|
||||
STLDEBUG_LIB=$(STLDEBUG_NAME)$(STATIC_SUFFIX).$(STEXT)
|
||||
|
||||
RELEASEX_LIB=$(RELEASE_NAME)$(STATIC_SUFFIX)x.$(STEXT)
|
||||
DEBUGX_LIB=$(DEBUG_NAME)$(STATIC_SUFFIX)x.$(STEXT)
|
||||
STLDEBUGX_LIB=$(STLDEBUG_NAME)$(STATIC_SUFFIX)x.$(STEXT)
|
||||
|
||||
ALL_STATIC_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB)
|
||||
DEBUG_STATIC_LIBS=$(ALL_STATIC_LIBS) $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB)
|
||||
|
||||
ALL_STATICX_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB)
|
||||
DEBUG_STATICX_LIBS=$(ALL_STATICX_LIBS) $(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB)
|
||||
|
||||
ALL_DYNAMIC_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB)
|
||||
DEBUG_DYNAMIC_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB)
|
||||
|
||||
|
||||
RELEASE_OBJECTS_static= \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_OBJECTS_static= \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_OBJECTS_static= \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_static)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
###########################################################
|
||||
|
||||
RELEASE_OBJECTS_staticx= \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_staticx)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
DEBUG_OBJECTS_staticx= \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_staticx)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
STLDEBUG_OBJECTS_staticx= \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_staticx)$(PATH_SEP)string_w.$(OBJEXT)
|
||||
|
||||
|
||||
###########################################################
|
||||
|
||||
RELEASE_OBJECTS_dynamic= \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)string_w.$(OBJEXT) \
|
||||
$(RESFILE)
|
||||
|
||||
DEBUG_OBJECTS_dynamic= \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)string_w.$(OBJEXT) \
|
||||
$(RESFILE_debug)
|
||||
|
||||
STLDEBUG_OBJECTS_dynamic= \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)dll_main.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)fstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)strstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)sstream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)ios.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)stdio_streambuf.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)istream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)ostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)iostream.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)codecvt.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)collate.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)ctype.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)monetary.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)num_get.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)num_put.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)num_get_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)num_put_float.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)numpunct.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)time_facets.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)messages.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)locale_impl.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)locale_catalog.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)facets_byname.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)c_locale.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)c_locale_stub.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)complex.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_exp.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_io.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_trig.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)complex_io_w.$(OBJEXT) \
|
||||
$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)string_w.$(OBJEXT) \
|
||||
$(RESFILE_stldebug)
|
||||
|
||||
|
||||
30
STLPORT/src/common_macros_windows.mak
Normal file
30
STLPORT/src/common_macros_windows.mak
Normal file
@@ -0,0 +1,30 @@
|
||||
SHELL=/bin/sh
|
||||
|
||||
!include common_macros.mak
|
||||
|
||||
# INSTALLDIR=/usr/local
|
||||
# INSTALLDIR_INC=$(INSTALLDIR)/include/stlport
|
||||
# INSTALLDIR_LIB=$(INSTALLDIR)/lib
|
||||
|
||||
# RM = rm -fr
|
||||
|
||||
# INSTALL = ./install.sh -c
|
||||
# INSTALL_LIB = $(INSTALL)
|
||||
# INSTALL_H = $(INSTALL) -m 444
|
||||
|
||||
#
|
||||
#
|
||||
# Targets
|
||||
#
|
||||
|
||||
# those are defined "Unix way" in common_macros.mak; redefine them here
|
||||
RELEASE_DYNLIB=$(RELEASE_NAME)$(WIN_DYNAMIC_SUFFIX).$(DYNEXT)
|
||||
DEBUG_DYNLIB=$(DEBUG_NAME)$(WIN_DYNAMIC_SUFFIX).$(DYNEXT)
|
||||
STLDEBUG_DYNLIB=$(STLDEBUG_NAME)$(WIN_DYNAMIC_SUFFIX).$(DYNEXT)
|
||||
|
||||
RELEASE_DYNLIB_SONAME=$(RELEASE_NAME)$(WIN_VERSION_SUFFIX).$(DYNEXT)
|
||||
DEBUG_DYNLIB_SONAME=$(DEBUG_NAME)$(WIN_VERSION_SUFFIX).$(DYNEXT)
|
||||
STLDEBUG_DYNLIB_SONAME=$(STLDEBUG_NAME)$(WIN_VERSION_SUFFIX).$(DYNEXT)
|
||||
|
||||
ALL_DYNAMIC_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB)
|
||||
DEBUG_DYNAMIC_LIBS=$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) $(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB)
|
||||
46
STLPORT/src/common_percent_rules.mak
Normal file
46
STLPORT/src/common_percent_rules.mak
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
.SUFFIXES: .cpp .c .o .so .a
|
||||
|
||||
$(RELEASE_OBJDIR_static)/%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_static) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_static)/%.o: %.c
|
||||
$(CC) $(CXXFLAGS_RELEASE_static) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_static)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_static) $< -E $@
|
||||
|
||||
$(RELEASE_OBJDIR_dynamic)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_dynamic) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_dynamic)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_RELEASE_dynamic) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_dynamic)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_dynamic) $< -E $@
|
||||
|
||||
$(DEBUG_OBJDIR_static)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_DEBUG_static) $< -c -o $@
|
||||
$(DEBUG_OBJDIR_static)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_DEBUG_static) $< -c -o $@
|
||||
$(DEBUG_OBJDIR_static)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_DEBUG_static) $< -E $@
|
||||
|
||||
$(DEBUG_OBJDIR_dynamic)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_DEBUG_dynamic) $< -c -o $@
|
||||
$(DEBUG_OBJDIR_dynamic)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_DEBUG_dynamic) $< -c -o $@
|
||||
$(DEBUG_OBJDIR_dynamic)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_DEBUG_dynamic) $< -E $@
|
||||
|
||||
$(STLDEBUG_OBJDIR_static)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_static) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_static)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_STLDEBUG_static) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_static)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_static) $< -E $@
|
||||
|
||||
$(STLDEBUG_OBJDIR_dynamic)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_dynamic) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_dynamic)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_STLDEBUG_dynamic) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_dynamic)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_dynamic) $< -E $@
|
||||
|
||||
|
||||
160
STLPORT/src/common_rules.mak
Normal file
160
STLPORT/src/common_rules.mak
Normal file
@@ -0,0 +1,160 @@
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(OUTDIR) :
|
||||
$(MKDIR) $(OUTDIR)
|
||||
$(RELEASE_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_dynamic)
|
||||
$(DEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_dynamic)
|
||||
$(STLDEBUG_OBJDIR_dynamic) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_dynamic)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
$(RELEASE_OBJDIR_staticx) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_staticx)
|
||||
$(DEBUG_OBJDIR_staticx) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_staticx)
|
||||
$(STLDEBUG_OBJDIR_staticx) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_staticx)
|
||||
|
||||
#create a compiler platform directory
|
||||
platform: $(PREPARE_STEP)
|
||||
-@$(MKDIR) $(OUTDIR)
|
||||
-@$(MKDIR) $(OBJDIR_COMMON)
|
||||
-@$(MKDIR) $(OBJDIR)
|
||||
|
||||
prepare: $(PREPARE_STEP)
|
||||
@echo "STLport installation is prepared for use in-place. No iostreams are built yet !"
|
||||
@echo "To build and use STLport iostreams, please do : make -f <this makefile> all."
|
||||
@echo "To install STLport in a designated directory, please do : make -f <this makefile> install."
|
||||
|
||||
clean_all_obj:
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)obj
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : platform $(ALL_STATIC_LIBS)
|
||||
|
||||
all_dynamic : platform $(ALL_DYNAMIC_LIBS)
|
||||
|
||||
all_staticx : platform $(ALL_STATICX_LIBS)
|
||||
|
||||
release_static : platform $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB)
|
||||
|
||||
debug_static : platform $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB)
|
||||
|
||||
stldebug_static : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB)
|
||||
|
||||
release_staticx : platform $(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB)
|
||||
|
||||
debug_staticx : platform $(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB)
|
||||
|
||||
stldebug_staticx : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB)
|
||||
|
||||
release_dynamic : platform $(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB)
|
||||
|
||||
debug_dynamic : platform $(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB)
|
||||
|
||||
stldebug_dynamic : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB)
|
||||
|
||||
install : all $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) $(STLDEBUG_OBJDIR_static) \
|
||||
$(RELEASE_OBJDIR_staticx) $(DEBUG_OBJDIR_staticx) $(STLDEBUG_OBJDIR_staticx) \
|
||||
$(RELEASE_OBJDIR_dynamic) $(DEBUG_OBJDIR_dynamic) $(STLDEBUG_OBJDIR_dynamic) \
|
||||
$(OUTDIR)$(PATH_SEP)SunWS_cache SunWS_cache $(OUTDIR)$(PATH_SEP)Templates.DB Templates.DB tempinc
|
||||
|
||||
clobber : clean clean_all_obj
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
HEADER_DIRS1 = . using wrap_std old_hp
|
||||
HEADER_DIRS2 = config stl stl/debug stl/wrappers using/h wrap_std/h
|
||||
|
||||
symbolic_links :
|
||||
$(RM) $(OUTDIR)/$(RELEASE_NAME).$(DYNEXT)
|
||||
$(RM) $(OUTDIR)/$(STLDEBUG_NAME).$(DYNEXT)
|
||||
$(RM) $(OUTDIR)/$(DEBUG_NAME).$(DYNEXT)
|
||||
ln -s $(RELEASE_DYNLIB) $(OUTDIR)/$(RELEASE_NAME).$(DYNEXT)
|
||||
-ln -s $(DEBUG_DYNLIB) $(OUTDIR)/$(DEBUG_NAME).$(DYNEXT)
|
||||
ln -s $(STLDEBUG_DYNLIB) $(OUTDIR)/$(STLDEBUG_NAME).$(DYNEXT)
|
||||
|
||||
install_unix :
|
||||
-$(RM) $(INSTALLDIR_INC)
|
||||
for dir in $(HEADER_DIRS1); \
|
||||
do \
|
||||
./mkinstalldirs $(INSTALLDIR_INC)/$$dir; \
|
||||
for file in `cat ../stlport/$$dir/export`; \
|
||||
do \
|
||||
$(INSTALL_H) ../stlport/$$dir/$$file $(INSTALLDIR_INC)/$$dir ; \
|
||||
done \
|
||||
done
|
||||
for dir in $(HEADER_DIRS2); \
|
||||
do \
|
||||
./mkinstalldirs $(INSTALLDIR_INC)/$$dir; \
|
||||
for file in `ls ../stlport/$$dir/*.*`; \
|
||||
do \
|
||||
$(INSTALL_H) $$file $(INSTALLDIR_INC)/$$dir ; \
|
||||
done \
|
||||
done
|
||||
./mkinstalldirs $(INSTALLDIR_LIB)
|
||||
for file in `ls $(OUTDIR)/$(LIB_BASENAME)*`; \
|
||||
do \
|
||||
$(RM) $(INSTALLDIR_LIB)/$$file; \
|
||||
$(INSTALL_LIB) $$file $(INSTALLDIR_LIB); \
|
||||
done
|
||||
$(RM) $(INSTALLDIR_LIB)/$(RELEASE_NAME).$(DYNEXT)
|
||||
$(RM) $(INSTALLDIR_LIB)/$(STLDEBUG_NAME).$(DYNEXT)
|
||||
ln -s $(RELEASE_DYNLIB) $(INSTALLDIR_LIB)/$(RELEASE_NAME).$(DYNEXT)
|
||||
ln -s $(STLDEBUG_DYNLIB) $(INSTALLDIR_LIB)/$(STLDEBUG_NAME).$(DYNEXT)
|
||||
|
||||
# ln -s $(INSTALLDIR_LIB)/$(RELEASE_DYNLIB) $(INSTALLDIR_LIB)/$(RELEASE_NAME).$(DYNEXT)
|
||||
# ln -s $(INSTALLDIR_LIB)/$(STLDEBUG_DYNLIB) $(INSTALLDIR_LIB)/$(STLDEBUG_NAME).$(DYNEXT)
|
||||
|
||||
install_sun : install_unix
|
||||
for file in `cat ../stlport/$$dir/export.sun`; \
|
||||
do \
|
||||
$(INSTALL_H) ../stlport/$$dir/$$file $(INSTALLDIR_INC)/$$dir ; \
|
||||
done
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) : $(OUTDIR) $(RELEASE_OBJDIR_dynamic) $(DEF_FILE) $(RELEASE_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASE_DYNLIB) $(LDFLAGS_RELEASE_dynamic) $(RELEASE_OBJECTS_dynamic) $(LDLIBS_RELEASE_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_static) $(LDLIBS_RELEASE_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_staticx) $(DEF_FILE) $(RELEASE_OBJECTS_staticx)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_staticx) $(LDLIBS_RELEASE_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) : $(OUTDIR) $(DEBUG_OBJDIR_dynamic) $(DEF_FILE) $(DEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_DYNLIB) $(LDFLAGS_DEBUG_dynamic) $(DEBUG_OBJECTS_dynamic) $(LDLIBS_DEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) : $(OUTDIR) $(DEBUG_OBJDIR_static) $(DEF_FILE) $(DEBUG_OBJECTS_static)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUG_LIB) $(LDLIBS_DEBUG_static) $(LDFLAGS_DEBUG_static) $(DEBUG_OBJECTS_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB) : $(OUTDIR) $(DEBUG_OBJDIR_staticx) $(DEF_FILE) $(DEBUG_OBJECTS_staticx)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB) $(LDLIBS_DEBUG_static) $(LDFLAGS_DEBUG_static) $(DEBUG_OBJECTS_staticx)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_dynamic) $(DEF_FILE) $(STLDEBUG_OBJECTS_dynamic)
|
||||
$(DYN_LINK) $(DYNLINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_DYNLIB) $(LDFLAGS_STLDEBUG_dynamic) $(STLDEBUG_OBJECTS_dynamic) $(LDLIBS_STLDEBUG_dynamic)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_static) $(LDLIBS_STLDEBUG_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_staticx) $(DEF_FILE) $(STLDEBUG_OBJECTS_staticx)
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_staticx) $(LDLIBS_STLDEBUG_static)
|
||||
|
||||
# locale_impl.cpp : codecvt.cpp collate.cpp ctype.cpp monetary.cpp num_get.cpp num_get_float.cpp num_put.cpp num_put_float.cpp numpunct.cpp time_facets.cpp messages.cpp
|
||||
|
||||
# locale_catalog.cpp : ctype_byname.cpp collate_byname.cpp codecvt_byname.cpp numpunct_byname.cpp monetary_byname.cpp messages_byname.cpp
|
||||
|
||||
|
||||
#########################################
|
||||
53
STLPORT/src/como.mak
Normal file
53
STLPORT/src/como.mak
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Note : this makefile has been only tested in como + gcc setup
|
||||
#
|
||||
|
||||
#
|
||||
# compiler
|
||||
#
|
||||
CC = gcc
|
||||
CXX = como
|
||||
|
||||
#
|
||||
# Basename for libraries
|
||||
#
|
||||
LIB_BASENAME = libstlport_como
|
||||
|
||||
#
|
||||
# guts for common stuff
|
||||
#
|
||||
#
|
||||
LINK=ar cr
|
||||
# 2.95 flag
|
||||
DYN_LINK=-copt="-shared -all" -G -o
|
||||
|
||||
OBJEXT=o
|
||||
DYNEXT=so
|
||||
STEXT=a
|
||||
RM=rm -rf
|
||||
PATH_SEP=/
|
||||
MKDIR=mkdir -p
|
||||
COMP=COMO_$(ARCH)
|
||||
INSTALL_STEP = install_unix
|
||||
|
||||
all: all_static symbolic_links
|
||||
|
||||
include common_macros.mak
|
||||
|
||||
WARNING_FLAGS= -DLIBCIO= --diag_suppress=68
|
||||
|
||||
CXXFLAGS_COMMON = -I. -I${STLPORT_DIR} ${WARNING_FLAGS}
|
||||
|
||||
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -O2
|
||||
CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -O2 -fPIC
|
||||
|
||||
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g -O
|
||||
CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -g -O -fPIC
|
||||
|
||||
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
|
||||
CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG
|
||||
|
||||
include common_percent_rules.mak
|
||||
include common_rules.mak
|
||||
|
||||
|
||||
290
STLPORT/src/complex.cpp
Normal file
290
STLPORT/src/complex.cpp
Normal file
@@ -0,0 +1,290 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
# include "stlport_prefix.h"
|
||||
// Complex division and square roots.
|
||||
|
||||
#include "complex_impl.h"
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
// Absolute value
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC float _STLP_CALL abs(const complex<float>& __z)
|
||||
{
|
||||
return _STLP_HYPOTF(__z._M_re, __z._M_im);
|
||||
}
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC double _STLP_CALL abs(const complex<double>& __z)
|
||||
{
|
||||
return _STLP_HYPOT(__z._M_re, __z._M_im);
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC long double _STLP_CALL abs(const complex<long double>& __z)
|
||||
{
|
||||
return _STLP_HYPOTL(__z._M_re, __z._M_im);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Phase
|
||||
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC float _STLP_CALL arg(const complex<float>& __z)
|
||||
{
|
||||
return _STLP_ATAN2F(__z._M_im, __z._M_re);
|
||||
}
|
||||
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC double _STLP_CALL arg(const complex<double>& __z)
|
||||
{
|
||||
return _STLP_ATAN2(__z._M_im, __z._M_re);
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC long double _STLP_CALL arg(const complex<long double>& __z)
|
||||
{
|
||||
return _STLP_ATAN2L(__z._M_im, __z._M_re);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Construct a complex number from polar representation
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL polar(const float& __rho, const float& __phi)
|
||||
{
|
||||
return complex<float>(__rho * _STLP_COSF(__phi), __rho * _STLP_SINF(__phi));
|
||||
}
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL polar(const double& __rho, const double& __phi)
|
||||
{
|
||||
return complex<double>(__rho * _STLP_COS(__phi), __rho * _STLP_SIN(__phi));
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_TEMPLATE_NULL
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL polar(const long double& __rho, const long double& __phi)
|
||||
{
|
||||
return complex<long double>(__rho * _STLP_COSL(__phi), __rho * _STLP_SINL(__phi));
|
||||
}
|
||||
#endif
|
||||
|
||||
// Division
|
||||
|
||||
void _STLP_CALL
|
||||
complex<float>::_div(const float& __z1_r, const float& __z1_i,
|
||||
const float& __z2_r, const float& __z2_i,
|
||||
float& __res_r, float& __res_i) {
|
||||
float __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
float __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
float __ratio = __z2_r / __z2_i;
|
||||
float __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio + __z1_i) / __denom;
|
||||
__res_i = (__z1_i * __ratio - __z1_r) / __denom;
|
||||
}
|
||||
else {
|
||||
float __ratio = __z2_i / __z2_r;
|
||||
float __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r + __z1_i * __ratio) / __denom;
|
||||
__res_i = (__z1_i - __z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
|
||||
void _STLP_CALL
|
||||
complex<float>::_div(const float& __z1_r,
|
||||
const float& __z2_r, const float& __z2_i,
|
||||
float& __res_r, float& __res_i) {
|
||||
float __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
float __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
float __ratio = __z2_r / __z2_i;
|
||||
float __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio) / __denom;
|
||||
__res_i = - __z1_r / __denom;
|
||||
}
|
||||
else {
|
||||
float __ratio = __z2_i / __z2_r;
|
||||
float __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = __z1_r / __denom;
|
||||
__res_i = - (__z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _STLP_CALL
|
||||
complex<double>::_div(const double& __z1_r, const double& __z1_i,
|
||||
const double& __z2_r, const double& __z2_i,
|
||||
double& __res_r, double& __res_i) {
|
||||
double __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
double __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
double __ratio = __z2_r / __z2_i;
|
||||
double __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio + __z1_i) / __denom;
|
||||
__res_i = (__z1_i * __ratio - __z1_r) / __denom;
|
||||
}
|
||||
else {
|
||||
double __ratio = __z2_i / __z2_r;
|
||||
double __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r + __z1_i * __ratio) / __denom;
|
||||
__res_i = (__z1_i - __z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
|
||||
void _STLP_CALL
|
||||
complex<double>::_div(const double& __z1_r,
|
||||
const double& __z2_r, const double& __z2_i,
|
||||
double& __res_r, double& __res_i) {
|
||||
double __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
double __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
double __ratio = __z2_r / __z2_i;
|
||||
double __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio) / __denom;
|
||||
__res_i = - __z1_r / __denom;
|
||||
}
|
||||
else {
|
||||
double __ratio = __z2_i / __z2_r;
|
||||
double __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = __z1_r / __denom;
|
||||
__res_i = - (__z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
void _STLP_CALL
|
||||
complex<long double>::_div(const long double& __z1_r, const long double& __z1_i,
|
||||
const long double& __z2_r, const long double& __z2_i,
|
||||
long double& __res_r, long double& __res_i) {
|
||||
long double __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
long double __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
long double __ratio = __z2_r / __z2_i;
|
||||
long double __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio + __z1_i) / __denom;
|
||||
__res_i = (__z1_i * __ratio - __z1_r) / __denom;
|
||||
}
|
||||
else {
|
||||
long double __ratio = __z2_i / __z2_r;
|
||||
long double __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r + __z1_i * __ratio) / __denom;
|
||||
__res_i = (__z1_i - __z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _STLP_CALL
|
||||
complex<long double>::_div(const long double& __z1_r,
|
||||
const long double& __z2_r, const long double& __z2_i,
|
||||
long double& __res_r, long double& __res_i) {
|
||||
long double __ar = __z2_r >= 0 ? __z2_r : -__z2_r;
|
||||
long double __ai = __z2_i >= 0 ? __z2_i : -__z2_i;
|
||||
|
||||
if (__ar <= __ai) {
|
||||
long double __ratio = __z2_r / __z2_i;
|
||||
long double __denom = __z2_i * (1 + __ratio * __ratio);
|
||||
__res_r = (__z1_r * __ratio) / __denom;
|
||||
__res_i = - __z1_r / __denom;
|
||||
}
|
||||
else {
|
||||
long double __ratio = __z2_i / __z2_r;
|
||||
long double __denom = __z2_r * (1 + __ratio * __ratio);
|
||||
__res_r = __z1_r / __denom;
|
||||
__res_i = - (__z1_r * __ratio) / __denom;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Square root
|
||||
|
||||
|
||||
complex<float> _STLP_CALL
|
||||
sqrt(const complex<float>& z) {
|
||||
float re = z._M_re;
|
||||
float im = z._M_im;
|
||||
float mag = _STLP_HYPOTF(re, im);
|
||||
complex<float> result;
|
||||
|
||||
if (mag == 0.) {
|
||||
result._M_re = result._M_im = 0.f;
|
||||
} else if (re > 0.f) {
|
||||
result._M_re = _STLP_SQRTF(0.5f * (mag + re));
|
||||
result._M_im = im/result._M_re/2.f;
|
||||
} else {
|
||||
result._M_im = _STLP_SQRTF(0.5f * (mag - re));
|
||||
if (im < 0.f)
|
||||
result._M_im = - result._M_im;
|
||||
result._M_re = im/result._M_im/2.f;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
complex<double> _STLP_CALL
|
||||
sqrt(const complex<double>& z) {
|
||||
double re = z._M_re;
|
||||
double im = z._M_im;
|
||||
double mag = _STLP_HYPOT(re, im);
|
||||
complex<double> result;
|
||||
|
||||
if (mag == 0.) {
|
||||
result._M_re = result._M_im = 0.;
|
||||
} else if (re > 0.) {
|
||||
result._M_re = _STLP_SQRT(0.5 * (mag + re));
|
||||
result._M_im = im/result._M_re/2;
|
||||
} else {
|
||||
result._M_im = _STLP_SQRT(0.5 * (mag - re));
|
||||
if (im < 0.)
|
||||
result._M_im = - result._M_im;
|
||||
result._M_re = im/result._M_im/2;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
complex<long double> _STLP_CALL
|
||||
sqrt(const complex<long double>& z) {
|
||||
long double re = z._M_re;
|
||||
long double im = z._M_im;
|
||||
long double mag = _STLP_HYPOTL(re, im);
|
||||
complex<long double> result;
|
||||
|
||||
if (mag == 0.L) {
|
||||
result._M_re = result._M_im = 0.L;
|
||||
} else if (re > 0.L) {
|
||||
result._M_re = _STLP_SQRTL(0.5L * (mag + re));
|
||||
result._M_im = (im/result._M_re) * .5L;
|
||||
} else {
|
||||
result._M_im = _STLP_SQRTL(0.5L * (mag - re));
|
||||
if (im < 0.L)
|
||||
result._M_im = - result._M_im;
|
||||
result._M_re = (im/result._M_im) * .5L;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
239
STLPORT/src/complex_exp.cpp
Normal file
239
STLPORT/src/complex_exp.cpp
Normal file
@@ -0,0 +1,239 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
// exp, log, pow for complex<float>, complex<double>, and complex<long double>
|
||||
|
||||
#include <numeric>
|
||||
#include "complex_impl.h"
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// exp
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL
|
||||
exp(const complex<float>& z)
|
||||
{
|
||||
float expx = _STLP_EXPF(z._M_re);
|
||||
return complex<float>(expx * _STLP_COSF(z._M_im),
|
||||
expx * _STLP_SINF(z._M_im));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL exp(const complex<double>& z)
|
||||
{
|
||||
double expx = _STLP_EXP(z._M_re);
|
||||
return complex<double>(expx * _STLP_COS(z._M_im),
|
||||
expx * _STLP_SIN(z._M_im));
|
||||
}
|
||||
|
||||
# ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL exp(const complex<long double>& z)
|
||||
{
|
||||
long double expx = _STLP_EXPL(z._M_re);
|
||||
return complex<long double>(expx * _STLP_COSL(z._M_im),
|
||||
expx * _STLP_SINL(z._M_im));
|
||||
}
|
||||
# endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// log10
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL log10(const complex<float>& z)
|
||||
{
|
||||
complex<float> r;
|
||||
static float ln10_inv = 1.f / _STLP_LOGF(10.f);
|
||||
|
||||
r._M_im = _STLP_ATAN2F(z._M_im, z._M_re) * ln10_inv;
|
||||
r._M_re = _STLP_LOG10F(_STLP_HYPOTF(z._M_re, z._M_im));
|
||||
return r;
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL log10(const complex<double>& z)
|
||||
{
|
||||
complex<double> r;
|
||||
static double ln10_inv = 1. / _STLP_LOG(10.);
|
||||
|
||||
r._M_im = _STLP_ATAN2(z._M_im, z._M_re) * ln10_inv;
|
||||
r._M_re = _STLP_LOG10(_STLP_HYPOT(z._M_re, z._M_im));
|
||||
return r;
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL log10(const complex<long double>& z)
|
||||
{
|
||||
complex<long double> result;
|
||||
static long double ln10_inv = 1.l / _STLP_LOGL(10.l);
|
||||
|
||||
result._M_im = _STLP_ATAN2L(z._M_im, z._M_re) * ln10_inv;
|
||||
result._M_re = _STLP_LOG10L(_STLP_HYPOTL(z._M_re, z._M_im));
|
||||
return result;
|
||||
}
|
||||
# endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// log
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL log(const complex<float>& z)
|
||||
{
|
||||
complex<float> r;
|
||||
|
||||
r._M_im = _STLP_ATAN2F(z._M_im, z._M_re);
|
||||
r._M_re = _STLP_LOGF(_STLP_HYPOTF(z._M_re, z._M_im));
|
||||
return r;
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL log(const complex<double>& z)
|
||||
{
|
||||
complex<double> r;
|
||||
|
||||
r._M_im = _STLP_ATAN2(z._M_im, z._M_re);
|
||||
r._M_re = _STLP_LOG(_STLP_HYPOT(z._M_re, z._M_im));
|
||||
return r;
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL log(const complex<long double>& z)
|
||||
{
|
||||
complex<long double> result;
|
||||
|
||||
result._M_im = _STLP_ATAN2L(z._M_im, z._M_re);
|
||||
result._M_re = _STLP_LOGL(_STLP_HYPOTL(z._M_re, z._M_im));
|
||||
return result;
|
||||
}
|
||||
# endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// pow
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL pow(const float& a, const complex<float>& b) {
|
||||
float logr = _STLP_LOGF(a);
|
||||
float x = _STLP_EXPF(logr*b._M_re);
|
||||
float y = logr*b._M_im;
|
||||
|
||||
return complex<float>(x * _STLP_COSF(y), x * _STLP_SINF(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>& z_in, int n) {
|
||||
complex<float> z = z_in;
|
||||
z = __power(z, (n < 0 ? -n : n), multiplies< complex<float> >());
|
||||
if (n < 0)
|
||||
return 1.f / z;
|
||||
else
|
||||
return z;
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>& a, const float& b) {
|
||||
float logr = _STLP_LOGF(_STLP_HYPOTF(a._M_re,a._M_im));
|
||||
float logi = _STLP_ATAN2F(a._M_im, a._M_re);
|
||||
float x = _STLP_EXPF(logr * b);
|
||||
float y = logi * b;
|
||||
|
||||
return complex<float>(x * _STLP_COSF(y), x * _STLP_SINF(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>& a, const complex<float>& b) {
|
||||
float logr = _STLP_LOGF(_STLP_HYPOTF(a._M_re,a._M_im));
|
||||
float logi = _STLP_ATAN2F(a._M_im, a._M_re);
|
||||
float x = _STLP_EXPF(logr*b._M_re - logi*b._M_im);
|
||||
float y = logr*b._M_im + logi*b._M_re;
|
||||
|
||||
return complex<float>(x * _STLP_COSF(y), x * _STLP_SINF(y));
|
||||
}
|
||||
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL pow(const double& a, const complex<double>& b) {
|
||||
double logr = _STLP_LOG(a);
|
||||
double x = _STLP_EXP(logr*b._M_re);
|
||||
double y = logr*b._M_im;
|
||||
|
||||
return complex<double>(x * _STLP_COS(y), x * _STLP_SIN(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>& z_in, int n) {
|
||||
complex<double> z = z_in;
|
||||
z = __power(z, (n < 0 ? -n : n), multiplies< complex<double> >());
|
||||
if (n < 0)
|
||||
#if !defined(__SC__) //*TY 04/15/2000 -
|
||||
return 1. / z;
|
||||
#else //*TY 04/15/2000 - added workaround for SCpp compiler
|
||||
return double(1.0) / z; //*TY 04/15/2000 - it incorrectly assign long double attribute to floating point literals
|
||||
#endif //*TY 04/15/2000 -
|
||||
else
|
||||
return z;
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>& a, const double& b) {
|
||||
double logr = _STLP_LOG(_STLP_HYPOT(a._M_re,a._M_im));
|
||||
double logi = _STLP_ATAN2(a._M_im, a._M_re);
|
||||
double x = _STLP_EXP(logr * b);
|
||||
double y = logi * b;
|
||||
|
||||
return complex<double>(x * _STLP_COS(y), x * _STLP_SIN(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>& a, const complex<double>& b) {
|
||||
double logr = _STLP_LOG(_STLP_HYPOT(a._M_re,a._M_im));
|
||||
double logi = _STLP_ATAN2(a._M_im, a._M_re);
|
||||
double x = _STLP_EXP(logr*b._M_re - logi*b._M_im);
|
||||
double y = logr*b._M_im + logi*b._M_re;
|
||||
|
||||
return complex<double>(x * _STLP_COS(y), x * _STLP_SIN(y));
|
||||
}
|
||||
|
||||
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const long double& a,
|
||||
const complex<long double>& b) {
|
||||
long double logr = _STLP_LOGL(a);
|
||||
long double x = _STLP_EXPL(logr*b._M_re);
|
||||
long double y = logr*b._M_im;
|
||||
|
||||
return complex<long double>(x * _STLP_COSL(y), x * _STLP_SINL(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>& z_in, int n) {
|
||||
complex<long double> z = z_in;
|
||||
z = __power(z, (n < 0 ? -n : n), multiplies< complex<long double> >());
|
||||
if (n < 0)
|
||||
return 1.l / z;
|
||||
else
|
||||
return z;
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>& a,
|
||||
const long double& b) {
|
||||
long double logr = _STLP_LOGL(_STLP_HYPOTL(a._M_re,a._M_im));
|
||||
long double logi = _STLP_ATAN2L(a._M_im, a._M_re);
|
||||
long double x = _STLP_EXPL(logr * b);
|
||||
long double y = logi * b;
|
||||
|
||||
return complex<long double>(x * _STLP_COSL(y), x * _STLP_SINL(y));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>& a,
|
||||
const complex<long double>& b) {
|
||||
long double logr = _STLP_LOGL(_STLP_HYPOTL(a._M_re,a._M_im));
|
||||
long double logi = _STLP_ATAN2L(a._M_im, a._M_re);
|
||||
long double x = _STLP_EXPL(logr*b._M_re - logi*b._M_im);
|
||||
long double y = logr*b._M_im + logi*b._M_re;
|
||||
|
||||
return complex<long double>(x * _STLP_COSL(y), x * _STLP_SINL(y));
|
||||
}
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
94
STLPORT/src/complex_impl.h
Normal file
94
STLPORT/src/complex_impl.h
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# ifndef COMPLEX_IMPL_H
|
||||
# define COMPLEX_IMPL_H
|
||||
|
||||
#include <complex>
|
||||
#include <cmath>
|
||||
#include <math.h>
|
||||
#include <stl/_cmath.h>
|
||||
|
||||
# if (defined (__sgi) && !defined(__GNUC__)) /* || defined (__DECCXX) */
|
||||
|
||||
# define _STLP_ABSF _STLP_VENDOR_CSTD::fabsf
|
||||
# define _STLP_ATAN2F _STLP_VENDOR_CSTD::atan2f
|
||||
# define _STLP_SINF _STLP_VENDOR_CSTD::sinf
|
||||
# define _STLP_COSF _STLP_VENDOR_CSTD::cosf
|
||||
# define _STLP_SQRTF _STLP_VENDOR_CSTD::sqrtf
|
||||
# define _STLP_EXPF _STLP_VENDOR_CSTD::expf
|
||||
# define _STLP_LOG10F _STLP_VENDOR_CSTD::log10f
|
||||
# define _STLP_LOGF _STLP_VENDOR_CSTD::logf
|
||||
# define _STLP_SINHF _STLP_VENDOR_CSTD::sinhf
|
||||
# define _STLP_COSHF _STLP_VENDOR_CSTD::coshf
|
||||
# define _STLP_HYPOTF _STLP_VENDOR_CSTD::hypotf
|
||||
|
||||
|
||||
# define _STLP_ABSL _STLP_VENDOR_CSTD::fabsl
|
||||
# define _STLP_ATAN2L _STLP_VENDOR_CSTD::atan2l
|
||||
# define _STLP_SINL _STLP_VENDOR_CSTD::sinl
|
||||
# define _STLP_COSL _STLP_VENDOR_CSTD::cosl
|
||||
# define _STLP_SQRTL _STLP_VENDOR_CSTD::sqrtl
|
||||
# define _STLP_EXPL _STLP_VENDOR_CSTD::expl
|
||||
# define _STLP_LOG10L _STLP_VENDOR_CSTD::log10l
|
||||
# define _STLP_LOGL _STLP_VENDOR_CSTD::logl
|
||||
# define _STLP_SINHL _STLP_VENDOR_CSTD::sinhl
|
||||
# define _STLP_COSHL _STLP_VENDOR_CSTD::coshl
|
||||
// # define _STLP_HYPOT ::hypot
|
||||
# define _STLP_HYPOTL _STLP_VENDOR_CSTD::hypotl
|
||||
|
||||
#else
|
||||
|
||||
# define _STLP_ABSF (float)_STLP_DO_ABS(double)
|
||||
# define _STLP_ABSL (long double)_STLP_DO_ABS(double)
|
||||
# define _STLP_ATAN2F (float)_STLP_DO_ATAN2(double)
|
||||
# define _STLP_ATAN2L (long double)_STLP_DO_ATAN2(double)
|
||||
# define _STLP_SINF (float)_STLP_DO_SIN(double)
|
||||
# define _STLP_SINL (long double)_STLP_DO_SIN(double)
|
||||
# define _STLP_COSF (float)_STLP_DO_COS(double)
|
||||
# define _STLP_COSL (long double)_STLP_DO_COS(double)
|
||||
# define _STLP_SQRTF (float)_STLP_DO_SQRT(double)
|
||||
# define _STLP_SQRTL (long double)_STLP_DO_SQRT(double)
|
||||
# define _STLP_EXPF (float)_STLP_DO_EXP(double)
|
||||
# define _STLP_EXPL (long double)_STLP_DO_EXP(double)
|
||||
# define _STLP_LOG10F (float)_STLP_DO_LOG10(double)
|
||||
# define _STLP_LOG10L (long double)_STLP_DO_LOG10(double)
|
||||
# define _STLP_LOGF (float)_STLP_DO_LOG(double)
|
||||
# define _STLP_LOGL (long double)_STLP_DO_LOG(double)
|
||||
# define _STLP_SINHF (float)_STLP_DO_SINH(double)
|
||||
# define _STLP_SINHL (long double)_STLP_DO_SINH(double)
|
||||
# define _STLP_COSHF (float)_STLP_DO_COSH(double)
|
||||
# define _STLP_COSHL (long double)_STLP_DO_COSH(double)
|
||||
# define _STLP_HYPOTF (float)_STLP_DO_HYPOT(double)
|
||||
# define _STLP_HYPOTL (long double)_STLP_DO_HYPOT(double)
|
||||
|
||||
#endif
|
||||
|
||||
# define _STLP_ABS (double)_STLP_DO_ABS(double)
|
||||
# define _STLP_ATAN2 (double)_STLP_DO_ATAN2(double)
|
||||
# define _STLP_SIN (double)_STLP_DO_SIN(double)
|
||||
# define _STLP_COS (double)_STLP_DO_COS(double)
|
||||
# define _STLP_SQRT (double)_STLP_DO_SQRT(double)
|
||||
# define _STLP_EXP (double)_STLP_DO_EXP(double)
|
||||
# define _STLP_LOG10 (double)_STLP_DO_LOG10(double)
|
||||
# define _STLP_LOG (double)_STLP_DO_LOG(double)
|
||||
# define _STLP_SINH (double)_STLP_DO_SINH(double)
|
||||
# define _STLP_COSH (double)_STLP_DO_COSH(double)
|
||||
# define _STLP_HYPOT _STLP_DO_HYPOT(double)
|
||||
|
||||
#endif
|
||||
144
STLPORT/src/complex_io.cpp
Normal file
144
STLPORT/src/complex_io.cpp
Normal file
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
// #include <iterator>
|
||||
#include "complex_impl.h"
|
||||
#include <istream>
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
# if ! (defined (_STLP_MSVC) && _STLP_MSVC < 1200)
|
||||
|
||||
// Specializations for narrow characters; lets us avoid the nuisance of
|
||||
// widening.
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_ostream<char, char_traits<char> >& _STLP_CALL
|
||||
operator<< (basic_ostream<char, char_traits<char> >& __os, const complex<float>& __z)
|
||||
{
|
||||
return __os << '(' << (double)__z.real() << ',' << (double)__z.imag() << ')';
|
||||
}
|
||||
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_ostream<char, char_traits<char> >& _STLP_CALL
|
||||
operator<< (basic_ostream<char, char_traits<char> >& __os, const complex<double>& __z)
|
||||
{
|
||||
return __os << '(' << __z.real() << ',' << __z.imag() << ')';
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_ostream<char, char_traits<char> >& _STLP_CALL
|
||||
operator<< (basic_ostream<char, char_traits<char> >& __os, const complex<long double>& __z)
|
||||
{
|
||||
return __os << '(' << __z.real() << ',' << __z.imag() << ')';
|
||||
}
|
||||
#endif
|
||||
|
||||
// Specialization for narrow characters; lets us avoid widen.
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_istream<char, char_traits<char> >& _STLP_CALL
|
||||
operator>>(basic_istream<char, char_traits<char> >& __is, complex<float>& __z)
|
||||
{
|
||||
float __re = 0;
|
||||
float __im = 0;
|
||||
|
||||
char __c;
|
||||
|
||||
__is >> __c;
|
||||
if (__c == '(') {
|
||||
__is >> __re >> __c;
|
||||
if (__c == ',')
|
||||
__is >> __im >> __c;
|
||||
if (__c != ')')
|
||||
__is.setstate(ios_base::failbit);
|
||||
}
|
||||
else {
|
||||
__is.putback(__c);
|
||||
__is >> __re;
|
||||
}
|
||||
|
||||
if (__is)
|
||||
__z = complex<float>(__re, __im);
|
||||
return __is;
|
||||
}
|
||||
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_istream<char, char_traits<char> >& _STLP_CALL
|
||||
operator>>(basic_istream<char, char_traits<char> >& __is, complex<double>& __z)
|
||||
{
|
||||
double __re = 0;
|
||||
double __im = 0;
|
||||
|
||||
char __c;
|
||||
|
||||
__is >> __c;
|
||||
if (__c == '(') {
|
||||
__is >> __re >> __c;
|
||||
if (__c == ',')
|
||||
__is >> __im >> __c;
|
||||
if (__c != ')')
|
||||
__is.setstate(ios_base::failbit);
|
||||
}
|
||||
else {
|
||||
__is.putback(__c);
|
||||
__is >> __re;
|
||||
}
|
||||
|
||||
if (__is)
|
||||
__z = complex<double>(__re, __im);
|
||||
return __is;
|
||||
}
|
||||
|
||||
# ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_OPERATOR_SPEC
|
||||
basic_istream<char, char_traits<char> >& _STLP_CALL
|
||||
operator>>(basic_istream<char, char_traits<char> >& __is, complex<long double>& __z) {
|
||||
long double __re = 0;
|
||||
long double __im = 0;
|
||||
|
||||
char __c;
|
||||
|
||||
__is >> __c;
|
||||
if (__c == '(') {
|
||||
__is >> __re >> __c;
|
||||
if (__c == ',')
|
||||
__is >> __im >> __c;
|
||||
if (__c != ')')
|
||||
__is.setstate(ios_base::failbit);
|
||||
}
|
||||
else {
|
||||
__is.putback(__c);
|
||||
__is >> __re;
|
||||
}
|
||||
|
||||
if (__is)
|
||||
__z = complex<long double>(__re, __im);
|
||||
return __is;
|
||||
}
|
||||
# endif
|
||||
|
||||
# endif /* MSVC */
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
|
||||
57
STLPORT/src/complex_io_w.cpp
Normal file
57
STLPORT/src/complex_io_w.cpp
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
// #include <iterator>
|
||||
#include <complex>
|
||||
#include <istream>
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
// Force instantiation of complex I/O functions
|
||||
|
||||
#if !(defined (_STLP_NO_FORCE_INSTANTIATE) || defined (_STLP_NO_WCHAR_T))
|
||||
|
||||
_STLP_OPERATOR_SPEC basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<float>&);
|
||||
|
||||
_STLP_OPERATOR_SPEC basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<double>&);
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_OPERATOR_SPEC basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<long double>&);
|
||||
|
||||
_STLP_OPERATOR_SPEC basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<long double>&);
|
||||
#endif
|
||||
|
||||
_STLP_OPERATOR_SPEC basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<float>&);
|
||||
|
||||
_STLP_OPERATOR_SPEC basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL
|
||||
operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<double>&);
|
||||
|
||||
# endif /* _STLP_NO_WCHAR_T */
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
|
||||
218
STLPORT/src/complex_trig.cpp
Normal file
218
STLPORT/src/complex_trig.cpp
Normal file
@@ -0,0 +1,218 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
|
||||
// Trigonometric and hyperbolic functions for complex<float>,
|
||||
// complex<double>, and complex<long double>
|
||||
|
||||
|
||||
#include "complex_impl.h"
|
||||
|
||||
#include <cfloat>
|
||||
#include <cmath>
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// helpers
|
||||
|
||||
#ifdef __sgi
|
||||
static const union { unsigned int i; float f; } float_ulimit = { 0x42b2d4fc };
|
||||
static const float float_limit = float_ulimit.f;
|
||||
static union {
|
||||
struct { unsigned int h; unsigned int l; } w;
|
||||
double d;
|
||||
} double_ulimit = { 0x408633ce, 0x8fb9f87d };
|
||||
static const double double_limit = double_ulimit.d;
|
||||
static union {
|
||||
struct { unsigned int h[2]; unsigned int l[2]; } w;
|
||||
long double ld;
|
||||
} ldouble_ulimit = {0x408633ce, 0x8fb9f87e, 0xbd23b659, 0x4e9bd8b1};
|
||||
# ifndef _STLP_NO_LONG_DOUBLE
|
||||
static const long double ldouble_limit = ldouble_ulimit.ld;
|
||||
# endif
|
||||
#else
|
||||
static const float float_limit = _STLP_LOGF(FLT_MAX);
|
||||
static const double double_limit = _STLP_DO_LOG(double)(DBL_MAX);
|
||||
# ifndef _STLP_NO_LONG_DOUBLE
|
||||
static const long double ldouble_limit = _STLP_LOGL(LDBL_MAX);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// sin
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL sin(const complex<float>& z) {
|
||||
return complex<float>(_STLP_SINF(z._M_re) * _STLP_COSHF(z._M_im),
|
||||
_STLP_COSF(z._M_re) * _STLP_SINHF(z._M_im));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL sin(const complex<double>& z) {
|
||||
return complex<double>(_STLP_SIN(z._M_re) * _STLP_COSH(z._M_im),
|
||||
_STLP_COS(z._M_re) * _STLP_SINH(z._M_im));
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL sin(const complex<long double>& z) {
|
||||
return complex<long double>(_STLP_SINL(z._M_re) * _STLP_COSHL(z._M_im),
|
||||
_STLP_COSL(z._M_re) * _STLP_SINHL(z._M_im));
|
||||
}
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// cos
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL cos(const complex<float>& z) {
|
||||
return complex<float>(_STLP_COSF(z._M_re) * _STLP_COSHF(z._M_im),
|
||||
-_STLP_SINF(z._M_re) * _STLP_SINHF(z._M_im));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL cos(const complex<double>& z) {
|
||||
return complex<double>(_STLP_COS(z._M_re) * _STLP_COSH(z._M_im),
|
||||
-_STLP_SIN(z._M_re) * _STLP_SINH(z._M_im));
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL cos(const complex<long double>& z) {
|
||||
return complex<long double>(_STLP_COSL(z._M_re) * _STLP_COSHL(z._M_im),
|
||||
-_STLP_SINL(z._M_re) * _STLP_SINHL(z._M_im));
|
||||
}
|
||||
# endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// tan
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL tan(const complex<float>& z) {
|
||||
float re2 = 2.f * z._M_re;
|
||||
float im2 = 2.f * z._M_im;
|
||||
|
||||
if (_STLP_ABSF(im2) > float_limit)
|
||||
return complex<float>(0.f, (im2 > 0 ? 1.f : -1.f));
|
||||
else {
|
||||
float den = _STLP_COSF(re2) + _STLP_COSHF(im2);
|
||||
return complex<float>(_STLP_SINF(re2) / den, _STLP_SINHF(im2) / den);
|
||||
}
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL tan(const complex<double>& z) {
|
||||
double re2 = 2. * z._M_re;
|
||||
double im2 = 2. * z._M_im;
|
||||
|
||||
if (fabs(float(im2)) > double_limit)
|
||||
return complex<double>(0., (im2 > 0 ? 1. : -1.));
|
||||
else {
|
||||
double den = _STLP_COS(re2) + _STLP_COSH(im2);
|
||||
return complex<double>(_STLP_SIN(re2) / den, _STLP_SINH(im2) / den);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL tan(const complex<long double>& z) {
|
||||
long double re2 = 2.l * z._M_re;
|
||||
long double im2 = 2.l * z._M_im;
|
||||
if (_STLP_ABSL(im2) > ldouble_limit)
|
||||
return complex<long double>(0.l, (im2 > 0 ? 1.l : -1.l));
|
||||
else {
|
||||
long double den = _STLP_COSL(re2) + _STLP_COSHL(im2);
|
||||
return complex<long double>(_STLP_SINL(re2) / den, _STLP_SINHL(im2) / den);
|
||||
}
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// sinh
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL sinh(const complex<float>& z) {
|
||||
return complex<float>(_STLP_SINHF(z._M_re) * _STLP_COSF(z._M_im),
|
||||
_STLP_COSHF(z._M_re) * _STLP_SINF(z._M_im));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL sinh(const complex<double>& z) {
|
||||
return complex<double>(_STLP_SINH(z._M_re) * _STLP_COS(z._M_im),
|
||||
_STLP_COSH(z._M_re) * _STLP_SIN(z._M_im));
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL sinh(const complex<long double>& z) {
|
||||
return complex<long double>(_STLP_SINHL(z._M_re) * _STLP_COSL(z._M_im),
|
||||
_STLP_COSHL(z._M_re) * _STLP_SINL(z._M_im));
|
||||
}
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// cosh
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL cosh(const complex<float>& z) {
|
||||
return complex<float>(_STLP_COSHF(z._M_re) * _STLP_COSF(z._M_im),
|
||||
_STLP_SINHF(z._M_re) * _STLP_SINF(z._M_im));
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL cosh(const complex<double>& z) {
|
||||
return complex<double>(_STLP_COSH(z._M_re) * _STLP_COS(z._M_im),
|
||||
_STLP_SINH(z._M_re) * _STLP_SIN(z._M_im));
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL cosh(const complex<long double>& z) {
|
||||
return complex<long double>(_STLP_COSHL(z._M_re) * _STLP_COSL(z._M_im),
|
||||
_STLP_SINHL(z._M_re) * _STLP_SINL(z._M_im));
|
||||
}
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// tanh
|
||||
|
||||
_STLP_DECLSPEC complex<float> _STLP_CALL tanh(const complex<float>& z) {
|
||||
float re2 = 2.f * z._M_re;
|
||||
float im2 = 2.f * z._M_im;
|
||||
if (_STLP_ABSF(re2) > float_limit)
|
||||
return complex<float>((re2 > 0 ? 1.f : -1.f), 0.f);
|
||||
else {
|
||||
float den = _STLP_COSHF(re2) + _STLP_COSF(im2);
|
||||
return complex<float>(_STLP_SINHF(re2) / den, _STLP_SINF(im2) / den);
|
||||
}
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC complex<double> _STLP_CALL tanh(const complex<double>& z) {
|
||||
double re2 = 2. * z._M_re;
|
||||
double im2 = 2. * z._M_im;
|
||||
if (fabs(float(re2)) > double_limit)
|
||||
return complex<double>((re2 > 0 ? 1. : -1.), 0.);
|
||||
else {
|
||||
double den = _STLP_COSH(re2) + _STLP_COS(im2);
|
||||
return complex<double>(_STLP_SINH(re2) / den, _STLP_SIN(im2) / den);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
_STLP_DECLSPEC complex<long double> _STLP_CALL tanh(const complex<long double>& z) {
|
||||
long double re2 = 2.l * z._M_re;
|
||||
long double im2 = 2.l * z._M_im;
|
||||
if (_STLP_ABSL(re2) > ldouble_limit)
|
||||
return complex<long double>((re2 > 0 ? 1.l : -1.l), 0.l);
|
||||
else {
|
||||
long double den = _STLP_COSHL(re2) + _STLP_COSL(im2);
|
||||
return complex<long double>(_STLP_SINHL(re2) / den, _STLP_SINL(im2) / den);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
_STLP_END_NAMESPACE
|
||||
155
STLPORT/src/cray.mak
Normal file
155
STLPORT/src/cray.mak
Normal file
@@ -0,0 +1,155 @@
|
||||
#
|
||||
# Note : This makefile is for Cray C++ 3.4 and 3.5
|
||||
#
|
||||
# The GNU version of make must be used to execute the
|
||||
# makefile. The UNICOS version of make does not support
|
||||
# the "%.suffix1: %.suffix2" feature.
|
||||
#
|
||||
# GNU version of make is available from the Cray Open
|
||||
# Source release, or can be downloaded from various of
|
||||
# open source sites.
|
||||
|
||||
#
|
||||
# compiler
|
||||
#
|
||||
CC = cc
|
||||
CXX = CC
|
||||
|
||||
#
|
||||
# Basename for libraries
|
||||
#
|
||||
LIB_BASENAME = libstlport
|
||||
|
||||
#
|
||||
# guts for common stuff
|
||||
#
|
||||
#
|
||||
LINK=ar cr
|
||||
|
||||
OBJEXT=o
|
||||
STEXT=a
|
||||
RM=rm -rf
|
||||
PATH_SEP=/
|
||||
MKDIR=mkdir -p
|
||||
COMP=CRAY$(ARCH)
|
||||
|
||||
all: all_static all_staticx
|
||||
|
||||
include common_macros.mak
|
||||
|
||||
CXXFLAGS_COMMON = -I${STLPORT_DIR}
|
||||
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -D_STLP_HAS_NO_EXCEPTIONS
|
||||
CXXFLAGS_RELEASE_staticx = $(CXXFLAGS_COMMON) -hexceptions
|
||||
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g
|
||||
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG -D_STLP_HAS_NO_EXCEPTIONS
|
||||
CXXFLAGS_STLDEBUG_staticx = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG -hexceptions
|
||||
|
||||
include common_percent_rules.mak
|
||||
|
||||
# common_percent_rules.mak does not contain makerules for staticx source
|
||||
$(RELEASE_OBJDIR_staticx)/%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_staticx) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_staticx)/%.o: %.c
|
||||
$(CC) $(CXXFLAGS_RELEASE_staticx) $< -c -o $@
|
||||
$(RELEASE_OBJDIR_staticx)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_RELEASE_staticx) $< -E $@
|
||||
|
||||
$(STLDEBUG_OBJDIR_staticx)/%.o : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_staticx) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_staticx)/%.o : %.c
|
||||
$(CC) $(CXXFLAGS_STLDEBUG_staticx) $< -c -o $@
|
||||
$(STLDEBUG_OBJDIR_staticx)/%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS_STLDEBUG_staticx) $< -E $@
|
||||
|
||||
#include common_rules.mak
|
||||
#
|
||||
# Target directories
|
||||
#
|
||||
#
|
||||
|
||||
$(OUTDIR) :
|
||||
$(MKDIR) $(OUTDIR)
|
||||
$(RELEASE_OBJDIR_static) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_static)
|
||||
$(DEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_static)
|
||||
$(STLDEBUG_OBJDIR_static) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_static)
|
||||
$(RELEASE_OBJDIR_staticx) :
|
||||
$(MKDIR) $(RELEASE_OBJDIR_staticx)
|
||||
$(DEBUG_OBJDIR_staticx) :
|
||||
$(MKDIR) $(DEBUG_OBJDIR_staticx)
|
||||
$(STLDEBUG_OBJDIR_staticx) :
|
||||
$(MKDIR) $(STLDEBUG_OBJDIR_staticx)
|
||||
|
||||
#create a compiler platform directory
|
||||
platform: $(PREPARE_STEP)
|
||||
-@$(MKDIR) $(OUTDIR)
|
||||
-@$(MKDIR) $(OBJDIR_COMMON)
|
||||
-@$(MKDIR) $(OBJDIR)
|
||||
|
||||
clean_all_obj:
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)obj
|
||||
|
||||
###### Targets ##################
|
||||
|
||||
all_static : platform $(ALL_STATIC_LIBS)
|
||||
|
||||
all_staticx : platform $(ALL_STATICX_LIBS)
|
||||
|
||||
release_static : platform $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB)
|
||||
|
||||
debug_static : platform $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB)
|
||||
|
||||
stldebug_static : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB)
|
||||
|
||||
release_staticx : platform $(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB)
|
||||
|
||||
debug_staticx : platform $(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB)
|
||||
|
||||
stldebug_staticx : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB)
|
||||
|
||||
install : all $(INSTALL_STEP)
|
||||
|
||||
clean : $(CLEAN_SPECIFIC)
|
||||
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) $(STLDEBUG_OBJDIR_static) \
|
||||
$(RELEASE_OBJDIR_staticx) $(DEBUG_OBJDIR_staticx) $(STLDEBUG_OBJDIR_staticx)
|
||||
|
||||
clobber : clean clean_all_obj
|
||||
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
|
||||
|
||||
# Need to link with a dummy main process to fully instantiate object files.
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
|
||||
echo 'main() { }' >dummy_main.C
|
||||
$(CXX) -o junk dummy_main.C $(RELEASE_OBJECTS_static) -lpthread
|
||||
rm dummy_main.C
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_static) $(LDLIBS_RELEASE_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_staticx) $(DEF_FILE) $(RELEASE_OBJECTS_staticx)
|
||||
echo 'main() { }' >dummy_main.C
|
||||
$(CXX) -o junk dummy_main.C $(RELEASE_OBJECTS_staticx) -lpthread
|
||||
rm dummy_main.C
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_staticx) $(LDLIBS_RELEASE_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
|
||||
echo 'main() { }' >dummy_main.C
|
||||
$(CXX) -o junk dummy_main.C $(STLDEBUG_OBJECTS_static) -lpthread
|
||||
rm dummy_main.C
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_static) $(LDLIBS_STLDEBUG_static)
|
||||
|
||||
$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_staticx) $(DEF_FILE) $(STLDEBUG_OBJECTS_staticx)
|
||||
echo 'main() { }' >dummy_main.C
|
||||
$(CXX) -o junk dummy_main.C $(STLDEBUG_OBJECTS_staticx) -lpthread
|
||||
rm dummy_main.C
|
||||
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_staticx) $(LDLIBS_STLDEBUG_static)
|
||||
|
||||
|
||||
#install: all
|
||||
# cp -p $(LIB_TARGET) ${D_LIB_TARGET} ../lib
|
||||
|
||||
%.s: %.cpp
|
||||
$(CXX) $(CXXFLAGS) -S $< -o $@
|
||||
|
||||
|
||||
490
STLPORT/src/ctype.cpp
Normal file
490
STLPORT/src/ctype.cpp
Normal file
@@ -0,0 +1,490 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <stl/_ctype.h>
|
||||
#include <stl/_function.h>
|
||||
#include "c_locale.h"
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// ctype<char>
|
||||
|
||||
// The classic table: static data members.
|
||||
|
||||
# if !defined(_STLP_STATIC_CONST_INIT_BUG) && !(defined(__MRC__) || defined(__SC__))
|
||||
//*TY 02/25/2000 - added workaround for MPW compilers; they confuse on in-class static const
|
||||
const size_t ctype<char>::table_size;
|
||||
# endif
|
||||
|
||||
// This macro is specifically for platforms where isprint() relies
|
||||
// on separate flag
|
||||
|
||||
# define PRINTFLAG ctype_base::mask( _Locale_PRINT & ~(_Locale_UPPER | _Locale_LOWER | _Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | _Locale_SPACE | _Locale_XDIGIT ))
|
||||
|
||||
// Ctype table for the ASCII character set.
|
||||
// There are 257 entries in this table. The first is EOF (-1).
|
||||
// That is, the "table" seen by ctype<char> member functions is
|
||||
// _S_classic_table + 1.
|
||||
const ctype_base::mask
|
||||
ctype<char>::_S_classic_table[257] =
|
||||
{
|
||||
ctype_base::mask(0) /* EOF */,
|
||||
cntrl /* null */,
|
||||
cntrl /* ^A */,
|
||||
cntrl /* ^B */,
|
||||
cntrl /* ^C */,
|
||||
cntrl /* ^D */,
|
||||
cntrl /* ^E */,
|
||||
cntrl /* ^F */,
|
||||
cntrl /* ^G */,
|
||||
cntrl /* ^H */,
|
||||
ctype_base::mask(space | cntrl) /* tab */,
|
||||
ctype_base::mask(space | cntrl) /* LF */,
|
||||
ctype_base::mask(space | cntrl) /* ^K */,
|
||||
ctype_base::mask(space | cntrl) /* FF */,
|
||||
ctype_base::mask(space | cntrl) /* ^M */,
|
||||
cntrl /* ^N */,
|
||||
cntrl /* ^O */,
|
||||
cntrl /* ^P */,
|
||||
cntrl /* ^Q */,
|
||||
cntrl /* ^R */,
|
||||
cntrl /* ^S */,
|
||||
cntrl /* ^T */,
|
||||
cntrl /* ^U */,
|
||||
cntrl /* ^V */,
|
||||
cntrl /* ^W */,
|
||||
cntrl /* ^X */,
|
||||
cntrl /* ^Y */,
|
||||
cntrl /* ^Z */,
|
||||
cntrl /* esc */,
|
||||
cntrl /* ^\ */,
|
||||
cntrl /* ^] */,
|
||||
cntrl /* ^^ */,
|
||||
cntrl /* ^_ */,
|
||||
ctype_base::mask (space | PRINTFLAG) /* */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ! */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* " */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* # */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* $ */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* % */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* & */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ' */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ( */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ) */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* * */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* + */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* , */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* - */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* . */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* / */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 0 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 1 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 2 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 3 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 4 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 5 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 6 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 7 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 8 */,
|
||||
ctype_base::mask(digit | PRINTFLAG | xdigit) /* 9 */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* : */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ; */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* < */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* = */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* > */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ? */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ! */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* A */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* B */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* C */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* D */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* E */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper | xdigit) /* F */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* G */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* H */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* I */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* J */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* K */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* L */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* M */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* N */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* O */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* P */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* Q */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* R */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* S */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* T */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* U */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* V */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* W */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* X */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* Y */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | upper) /* Z */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* [ */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* \ */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ] */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ^ */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* _ */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ` */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* a */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* b */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* c */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* d */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* e */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower | xdigit) /* f */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* g */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* h */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* i */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* j */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* k */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* l */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* m */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* n */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* o */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* p */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* q */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* r */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* s */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* t */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* u */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* v */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* w */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* x */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* y */,
|
||||
ctype_base::mask(alpha | PRINTFLAG | lower) /* x */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* { */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* | */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* } */,
|
||||
ctype_base::mask (punct | PRINTFLAG ) /* ~ */,
|
||||
cntrl /* del (0x7f)*/,
|
||||
/* ASCII is a 7-bit code, so everything else is non-ASCII */
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0),
|
||||
ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0), ctype_base::mask(0)
|
||||
};
|
||||
|
||||
// For every c in the range 0 <= c < 256, _S_upper[c] is the
|
||||
// uppercased version of c and _S_lower[c] is the lowercased
|
||||
// version. As before, these two tables assume the ASCII character
|
||||
// set.
|
||||
|
||||
const unsigned char ctype<char>::_S_upper[256] =
|
||||
{
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
|
||||
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
|
||||
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
|
||||
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
|
||||
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
|
||||
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
|
||||
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
|
||||
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
|
||||
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
|
||||
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
|
||||
0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
|
||||
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
|
||||
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
|
||||
0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
|
||||
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
|
||||
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
|
||||
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
|
||||
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
|
||||
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
|
||||
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
|
||||
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
|
||||
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
|
||||
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
|
||||
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
|
||||
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
|
||||
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
|
||||
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
|
||||
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
|
||||
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
|
||||
};
|
||||
|
||||
const unsigned char ctype<char>::_S_lower[256] =
|
||||
{
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
|
||||
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
|
||||
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
|
||||
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
|
||||
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
|
||||
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
|
||||
0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
|
||||
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
|
||||
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
|
||||
0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
|
||||
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
|
||||
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
|
||||
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
|
||||
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
|
||||
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
|
||||
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
|
||||
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
|
||||
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
|
||||
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
|
||||
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
|
||||
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
|
||||
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
|
||||
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
|
||||
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
|
||||
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
|
||||
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
|
||||
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
|
||||
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
|
||||
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
|
||||
};
|
||||
|
||||
|
||||
// Some helper functions used in ctype<>::scan_is and scan_is_not.
|
||||
|
||||
struct _Ctype_is_mask {
|
||||
typedef char argument_type;
|
||||
typedef bool result_type;
|
||||
|
||||
ctype_base::mask _Mask;
|
||||
const ctype_base::mask* _M_table;
|
||||
|
||||
_Ctype_is_mask(ctype_base::mask __m, const ctype_base::mask* __t) : _Mask(__m), _M_table(__t) {}
|
||||
bool operator()(char __c) const { return (_M_table[(unsigned char) __c] & _Mask) != 0; }
|
||||
};
|
||||
|
||||
struct _Ctype_not_mask {
|
||||
typedef char argument_type;
|
||||
typedef bool result_type;
|
||||
|
||||
ctype_base::mask _Mask;
|
||||
const ctype_base::mask* _M_table;
|
||||
|
||||
_Ctype_not_mask(ctype_base::mask __m, const ctype_base::mask* __t) : _Mask(__m), _M_table(__t) {}
|
||||
bool operator()(char __c) const { return (_M_table[(unsigned char) __c] & _Mask) == 0; }
|
||||
};
|
||||
|
||||
ctype<char>::ctype(const ctype_base::mask * __tab, bool __del, size_t __refs) :
|
||||
_BaseFacet(__refs) /* , _M_ctype_table(0) */ {
|
||||
_M_ctype_table = __tab ? __tab : classic_table();
|
||||
_M_delete = __tab && __del;
|
||||
}
|
||||
|
||||
ctype<char>::~ctype() {
|
||||
if (_M_delete)
|
||||
delete[] __CONST_CAST(ctype_base::mask *, _M_ctype_table);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::scan_is(ctype_base::mask __m, const char* __low, const char* __high) const {
|
||||
return _STLP_STD::find_if(__low, __high, _Ctype_is_mask(__m, _M_ctype_table));
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::scan_not(ctype_base::mask __m, const char* __low, const char* __high) const {
|
||||
return _STLP_STD::find_if(__low, __high, _Ctype_not_mask(__m, _M_ctype_table));
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{ return (char) _S_upper[(unsigned char) __c]; }
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{ return (char) _S_lower[(unsigned char) __c]; }
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const {
|
||||
for ( ; __low < __high; ++__low)
|
||||
*__low = (char) _S_upper[(unsigned char) *__low];
|
||||
return __high;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const {
|
||||
for ( ; __low < __high; ++__low)
|
||||
*__low = (char) _S_lower[(unsigned char) *__low];
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_widen(char __c) const { return __c; }
|
||||
|
||||
const char*
|
||||
ctype<char>::do_widen(const char* __low, const char* __high,
|
||||
char* __to) const {
|
||||
__copy_trivial(__low, __high, __to);
|
||||
return __high;
|
||||
}
|
||||
char
|
||||
ctype<char>::do_narrow(char __c, char /* dfault */ ) const { return __c; }
|
||||
const char*
|
||||
ctype<char>::do_narrow(const char* __low, const char* __high,
|
||||
char /* dfault */, char* __to) const {
|
||||
__copy_trivial(__low, __high, __to);
|
||||
return __high;
|
||||
}
|
||||
|
||||
|
||||
# ifndef _STLP_NO_WCHAR_T
|
||||
|
||||
struct _Ctype_w_is_mask {
|
||||
typedef wchar_t argument_type;
|
||||
typedef bool result_type;
|
||||
|
||||
ctype_base::mask M;
|
||||
const ctype_base::mask* table;
|
||||
|
||||
_Ctype_w_is_mask(ctype_base::mask m, const ctype_base::mask* t)
|
||||
: M(m), table(t) {}
|
||||
bool operator()(wchar_t c) const
|
||||
{ return c >= 0 && size_t(c) < ctype<char>::table_size && (table[c] & M); }
|
||||
};
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// ctype<wchar_t>
|
||||
|
||||
ctype<wchar_t>::~ctype() {}
|
||||
|
||||
|
||||
bool ctype<wchar_t>::do_is(ctype_base::mask m, wchar_t c) const
|
||||
{
|
||||
const ctype_base::mask * table = ctype<char>::classic_table();
|
||||
return c >= 0 && size_t(c) < ctype<char>::table_size && (m & table[c]);
|
||||
}
|
||||
|
||||
const wchar_t* ctype<wchar_t>::do_is(const wchar_t* low, const wchar_t* high,
|
||||
ctype_base::mask * vec) const
|
||||
{
|
||||
// boris : not clear if this is the right thing to do...
|
||||
const ctype_base::mask * table = ctype<char>::classic_table();
|
||||
for ( ; low < high; ++low, ++vec) {
|
||||
wchar_t c = *low;
|
||||
*vec = c >= 0 && size_t(c) < ctype<char>::table_size ? table[c] : ctype_base::mask (0);
|
||||
}
|
||||
return high;
|
||||
}
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_scan_is(ctype_base::mask m,
|
||||
const wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
return find_if(low, high, _Ctype_w_is_mask(m, ctype<char>::classic_table()));
|
||||
}
|
||||
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_scan_not(ctype_base::mask m,
|
||||
const wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
return find_if(low, high, not1(_Ctype_w_is_mask(m, ctype<char>::classic_table())));
|
||||
}
|
||||
|
||||
wchar_t ctype<wchar_t>::do_toupper(wchar_t c) const
|
||||
{
|
||||
return c >= 0 && size_t(c) < ctype<char>::table_size
|
||||
? (wchar_t) ctype<char>::_S_upper[c]
|
||||
: c;
|
||||
}
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_toupper(wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
for ( ; low < high; ++low) {
|
||||
wchar_t c = *low;
|
||||
*low = c >= 0 && size_t(c) < ctype<char>::table_size
|
||||
? (wchar_t) ctype<char>::_S_upper[c]
|
||||
: c;
|
||||
}
|
||||
return high;
|
||||
}
|
||||
|
||||
wchar_t ctype<wchar_t>::do_tolower(wchar_t c) const
|
||||
{
|
||||
return c >= 0 && size_t(c) < ctype<char>::table_size
|
||||
? (wchar_t) ctype<char>::_S_lower[c]
|
||||
: c;
|
||||
}
|
||||
|
||||
const wchar_t*
|
||||
ctype<wchar_t>::do_tolower(wchar_t* low, const wchar_t* high) const
|
||||
{
|
||||
for ( ; low < high; ++low) {
|
||||
wchar_t c = *low;
|
||||
*low = c >= 0 && size_t(c) < ctype<char>::table_size
|
||||
? (wchar_t) ctype<char>::_S_lower[c]
|
||||
: c;
|
||||
}
|
||||
return high;
|
||||
}
|
||||
|
||||
wchar_t ctype<wchar_t>::do_widen(char c) const
|
||||
{
|
||||
return (wchar_t) c;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<wchar_t>::do_widen(const char* low, const char* high,
|
||||
wchar_t* dest) const
|
||||
{
|
||||
while (low != high)
|
||||
*dest++ = (wchar_t) *low++;
|
||||
return high;
|
||||
}
|
||||
|
||||
char ctype<wchar_t>::do_narrow(wchar_t c, char dfault) const
|
||||
{
|
||||
return (char) c == c ? c : dfault;
|
||||
}
|
||||
|
||||
const wchar_t* ctype<wchar_t>::do_narrow(const wchar_t* low,
|
||||
const wchar_t* high,
|
||||
char dfault, char* dest) const
|
||||
{
|
||||
while (low != high) {
|
||||
wchar_t c = *low++;
|
||||
*dest++ = (char) c == c ? c : dfault;
|
||||
}
|
||||
|
||||
return high;
|
||||
}
|
||||
|
||||
# endif
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
|
||||
100
STLPORT/src/dec.mak
Normal file
100
STLPORT/src/dec.mak
Normal file
@@ -0,0 +1,100 @@
|
||||
#
|
||||
# Note : this requires GNU make
|
||||
#
|
||||
|
||||
# Basename for libraries
|
||||
#
|
||||
LIB_BASENAME = libstlport_dec
|
||||
|
||||
CUR_DIR= $(PWD)/
|
||||
|
||||
# point this to proper location
|
||||
STL_INCL= -I. -I../stlport -I/usr/include
|
||||
|
||||
#
|
||||
# guts for common stuff
|
||||
#
|
||||
#
|
||||
CC = cxx
|
||||
CXX = cxx
|
||||
|
||||
LINK=$(CXX) -o
|
||||
DYN_LINK=$(CXX) -o
|
||||
|
||||
OBJEXT=o
|
||||
DYNEXT=so
|
||||
STEXT=a
|
||||
RM=rm -rf
|
||||
PATH_SEP=/
|
||||
MKDIR=mkdir -p
|
||||
COMP=DEC
|
||||
|
||||
# LINK_OUT=-xar -o
|
||||
# DYNLINK_OUT=-o
|
||||
|
||||
# all: all_dynamic all_static
|
||||
# Boris : do not see a reasonable way to link static library witout instantiating in .o
|
||||
# Anyone ?
|
||||
all: msg all_dynamic symbolic_links
|
||||
|
||||
msg:
|
||||
@echo "*** ATTENTION! ***"
|
||||
@echo "This makefile requires GNU make!"
|
||||
@echo "******************"
|
||||
|
||||
include common_macros.mak
|
||||
|
||||
# Rules
|
||||
|
||||
MTFLAGS = -pthread
|
||||
|
||||
CXXFLAGS_COMMON = -std ansi -nousing_std -pt -rtti $(MTFLAGS) ${STL_INCL} -D_PTHREADS
|
||||
|
||||
SHCXXFLAGS = -shared
|
||||
RELEASE_FLAGS = -O
|
||||
|
||||
LIBS =
|
||||
|
||||
RELEASE_static_rep = -ptr ${RELEASE_OBJDIR_static}
|
||||
RELEASE_dynamic_rep = -ptr ${RELEASE_OBJDIR_dynamic}
|
||||
DEBUG_static_rep = -ptr ${DEBUG_OBJDIR_static}
|
||||
DEBUG_dynamic_rep = -ptr ${DEBUG_OBJDIR_dynamic}
|
||||
STLDEBUG_static_rep = -ptr ${STLDEBUG_OBJDIR_static}
|
||||
STLDEBUG_dynamic_rep = -ptr ${STLDEBUG_OBJDIR_dynamic}
|
||||
|
||||
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) ${RELEASE_FLAGS} ${RELEASE_static_rep}
|
||||
CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) ${RELEASE_FLAGS} $(SHCXXFLAGS) ${RELEASE_dynamic_rep}
|
||||
|
||||
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g ${DEBUG_static_rep}
|
||||
CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g $(SHCXXFLAGS) ${DEBUG_dynamic_rep}
|
||||
|
||||
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_COMMON) -O -g ${STLDEBUG_static_rep} -D_STLP_DEBUG
|
||||
CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g $(SHCXXFLAGS) ${STLDEBUG_dynamic_rep} -D_STLP_DEBUG
|
||||
|
||||
LDFLAGS_RELEASE_static = ${CXXFLAGS_RELEASE_static}
|
||||
LDFLAGS_RELEASE_dynamic = ${CXXFLAGS_RELEASE_dynamic}
|
||||
LDLIBS_RELEASE_dynamic = -lm
|
||||
LDLIBS_RELEASE_static = -lm
|
||||
|
||||
LDFLAGS_DEBUG_static = ${CXXFLAGS_DEBUG_static}
|
||||
LDFLAGS_DEBUG_dynamic = ${CXXFLAGS_DEBUG_dynamic}
|
||||
LDLIBS_DEBUG_dynamic = -lm
|
||||
LDLIBS_DEBUG_static = -lm
|
||||
|
||||
LDFLAGS_STLDEBUG_static = ${CXXFLAGS_STLDEBUG_static}
|
||||
LDFLAGS_STLDEBUG_dynamic = ${CXXFLAGS_STLDEBUG_dynamic}
|
||||
LDLIBS_STLDEBUG_dynamic = -lm
|
||||
LDLIBS_STLDEBUG_static = -lm
|
||||
|
||||
INSTALL_STEP = install_unix
|
||||
|
||||
include common_percent_rules.mak
|
||||
include common_rules.mak
|
||||
|
||||
|
||||
%.i : %.cpp
|
||||
$(CXX) $(CXXFLAGS) $*.cpp -v -E > $@
|
||||
|
||||
%.s: %.cpp
|
||||
$(CXX) $(CXXFLAGS) -O4 -S -pto $< -o $@
|
||||
|
||||
72
STLPORT/src/djgpp.mak
Normal file
72
STLPORT/src/djgpp.mak
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
#
|
||||
# This is makefile for compiling with DJGPP.
|
||||
# Since DJGPP is used to create DOS protected mode, it has no
|
||||
# dynamic link library. Only static libraries are created.
|
||||
# With DJGPP, gcc is used to compile c++. It will know the
|
||||
# language being compiled automatically from file extension of
|
||||
# the source code being compiled.
|
||||
#
|
||||
# Tanes Sriviroolchai (tanes73@yahoo.com)
|
||||
# Jan 4, 2001
|
||||
#
|
||||
|
||||
#
|
||||
# compiler
|
||||
#
|
||||
CC = gcc
|
||||
CXX = gcc
|
||||
|
||||
#
|
||||
# Basename for libraries
|
||||
#
|
||||
LIB_BASENAME = libstlport_djgpp
|
||||
|
||||
#
|
||||
# guts for common stuff
|
||||
#
|
||||
#
|
||||
LINK=ar crv
|
||||
|
||||
OBJEXT=o
|
||||
STEXT=a
|
||||
RM=rm -rf
|
||||
PATH_SEP=/
|
||||
MKDIR=mkdir -p
|
||||
COMP=DJGPP
|
||||
|
||||
STATIC_SUFFIX=_static
|
||||
|
||||
all: all_static
|
||||
|
||||
include common_macros.mak
|
||||
|
||||
RESFILE=$(RELEASE_OBJDIR_dynamic)$(PATH_SEP)stlport.o
|
||||
RESFILE_debug=$(DEBUG_OBJDIR_dynamic)$(PATH_SEP)stlport.o
|
||||
RESFILE_stldebug=$(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)stlport.o
|
||||
|
||||
WARNING_FLAGS= -W -Wno-sign-compare -Wno-unused -Wno-uninitialized
|
||||
|
||||
CXXFLAGS_COMMON = -I${STLPORT_DIR} ${WARNING_FLAGS} -ftemplate-depth-32 -mbnu210
|
||||
|
||||
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -O2
|
||||
|
||||
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
|
||||
|
||||
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
|
||||
|
||||
LDFLAGS_RELEASE_static =
|
||||
|
||||
LDFLAGS_DEBUG_static =
|
||||
|
||||
LDFLAGS_STLDEBUG_static =
|
||||
|
||||
|
||||
include common_percent_rules.mak
|
||||
include common_rules.mak
|
||||
|
||||
|
||||
#%.s: %.cpp
|
||||
# $(CXX) $(CXXFLAGS) -O4 -S -pto $< -o $@
|
||||
|
||||
|
||||
257
STLPORT/src/dll_main.cpp
Normal file
257
STLPORT/src/dll_main.cpp
Normal file
@@ -0,0 +1,257 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1997
|
||||
* Moscow Center for SPARC Technology
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
# define __PUT_STATIC_DATA_MEMBERS_HERE
|
||||
# define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
|
||||
|
||||
# include "stlport_prefix.h"
|
||||
|
||||
# if !defined(_STLP_DEBUG) && ! defined (_STLP_ASSERTIONS)
|
||||
# define _STLP_ASSERTIONS 1
|
||||
# endif
|
||||
|
||||
#include <utility>
|
||||
|
||||
#include <stl/debug/_debug.h>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <list>
|
||||
#include <slist>
|
||||
#include <stl/_hashtable.h>
|
||||
#include <limits>
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <bitset>
|
||||
|
||||
# if ( _STLP_STATIC_TEMPLATE_DATA < 1 )
|
||||
// for rope, locale static members
|
||||
# include <rope>
|
||||
# include <locale>
|
||||
# endif
|
||||
|
||||
# if defined (_STLP_UNIX)
|
||||
# define _STLP_HAS_PERTHREAD_ALLOCATOR
|
||||
# include <stl/_pthread_alloc.h>
|
||||
# endif
|
||||
|
||||
// boris : this piece of code duplicated from _range_errors.h
|
||||
#undef _STLP_THROW_MSG
|
||||
#if defined(_STLP_THROW_RANGE_ERRORS)
|
||||
# ifndef _STLP_STDEXCEPT
|
||||
# include <stdexcept>
|
||||
# endif
|
||||
# ifndef _STLP_STRING
|
||||
# include <string>
|
||||
# endif
|
||||
# define _STLP_THROW_MSG(ex,msg) throw ex(string(msg))
|
||||
#else
|
||||
# if defined (_STLP_WINCE)
|
||||
# define _STLP_THROW_MSG(ex,msg) TerminateProcess(GetCurrentProcess(), 0)
|
||||
# else
|
||||
# include <cstdlib>
|
||||
# include <cstdio>
|
||||
# define _STLP_THROW_MSG(ex,msg) puts(msg),_STLP_ABORT()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _STLP_MSVC
|
||||
#pragma optimize("g",off)
|
||||
#endif
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
void _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg) {
|
||||
_STLP_THROW_MSG(range_error, __msg);
|
||||
}
|
||||
|
||||
void _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg) {
|
||||
_STLP_THROW_MSG(out_of_range, __msg);
|
||||
}
|
||||
|
||||
void _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg) {
|
||||
_STLP_THROW_MSG(length_error, __msg);
|
||||
}
|
||||
|
||||
void _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg) {
|
||||
_STLP_THROW_MSG(invalid_argument, __msg);
|
||||
}
|
||||
|
||||
void _STLP_DECLSPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg) {
|
||||
_STLP_THROW_MSG(overflow_error, __msg);
|
||||
}
|
||||
|
||||
_STLP_DECLSPEC const char* _STLP_CALL
|
||||
__get_c_string(const string& __str) {
|
||||
return __str.c_str();
|
||||
}
|
||||
|
||||
|
||||
# if defined (_STLP_NO_EXCEPTION_HEADER) || defined(_STLP_BROKEN_EXCEPTION_CLASS)
|
||||
exception::exception() _STLP_NOTHROW {}
|
||||
exception::~exception() _STLP_NOTHROW {}
|
||||
bad_exception::bad_exception() _STLP_NOTHROW {}
|
||||
bad_exception::~bad_exception() _STLP_NOTHROW {}
|
||||
const char* exception::what() const _STLP_NOTHROW {return "class exception";}
|
||||
const char* bad_exception::what() const _STLP_NOTHROW {return "class bad_exception";}
|
||||
# endif
|
||||
|
||||
# ifdef _STLP_OWN_STDEXCEPT
|
||||
__Named_exception::__Named_exception(const string& __str) {
|
||||
strncpy(_M_name, __get_c_string(__str), _S_bufsize);
|
||||
_M_name[_S_bufsize - 1] = '\0';
|
||||
}
|
||||
|
||||
const char* __Named_exception::what() const _STLP_NOTHROW_INHERENTLY { return _M_name; }
|
||||
|
||||
// boris : those are needed to force typeinfo nodes to be created in here only
|
||||
__Named_exception::~__Named_exception() _STLP_NOTHROW_INHERENTLY {}
|
||||
|
||||
logic_error::~logic_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
runtime_error::~runtime_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
domain_error::~domain_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
invalid_argument::~invalid_argument() _STLP_NOTHROW_INHERENTLY {}
|
||||
length_error::~length_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
out_of_range::~out_of_range() _STLP_NOTHROW_INHERENTLY {}
|
||||
range_error::~range_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
overflow_error::~overflow_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
underflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {}
|
||||
|
||||
# endif
|
||||
|
||||
# ifdef _STLP_NO_BAD_ALLOC
|
||||
const nothrow_t nothrow /* = {} */;
|
||||
# endif
|
||||
|
||||
# ifndef _STLP_NO_FORCE_INSTANTIATE
|
||||
|
||||
# if defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS)
|
||||
template struct _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>;
|
||||
# endif
|
||||
|
||||
template class _STLP_CLASS_DECLSPEC __node_alloc<false,0>;
|
||||
template class _STLP_CLASS_DECLSPEC __node_alloc<true,0>;
|
||||
template class _STLP_CLASS_DECLSPEC __debug_alloc< __node_alloc<true,0> >;
|
||||
template class _STLP_CLASS_DECLSPEC __debug_alloc< __node_alloc<false,0> >;
|
||||
template class _STLP_CLASS_DECLSPEC __debug_alloc<__new_alloc>;
|
||||
template class _STLP_CLASS_DECLSPEC __malloc_alloc<0>;
|
||||
|
||||
# if defined (_STLP_THREADS) && ! defined ( _STLP_ATOMIC_EXCHANGE ) && (defined(_STLP_PTHREADS) || defined (_STLP_UITHREADS) || defined (_STLP_OS2THREADS))
|
||||
template class _STLP_CLASS_DECLSPEC _Swap_lock_struct<0>;
|
||||
# endif
|
||||
|
||||
template class allocator<void*>;
|
||||
template class _STLP_alloc_proxy<void**, void*, allocator<void*> >;
|
||||
template class _Vector_base<void*,allocator<void*> >;
|
||||
# if defined (_STLP_DEBUG) && ! defined (__SUNPRO_CC)
|
||||
template class __WORKAROUND_DBG_RENAME(vector) <void*,allocator<void*> >;
|
||||
# endif
|
||||
template class __vector__<void*,allocator<void*> >;
|
||||
|
||||
template class _Rb_global<bool>;
|
||||
template class _List_global<bool>;
|
||||
template class _Sl_global<bool>;
|
||||
template class _Stl_prime<bool>;
|
||||
template class _LimG<bool>;
|
||||
template class _Bs_G<bool>;
|
||||
|
||||
template class _STLP_CLASS_DECLSPEC allocator<char>;
|
||||
template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<char *,char, allocator<char> >;
|
||||
template class _STLP_CLASS_DECLSPEC _String_base<char, allocator<char> >;
|
||||
|
||||
# if defined (_STLP_DEBUG) && ! defined (__SUNPRO_CC)
|
||||
template class _STLP_CLASS_DECLSPEC _Nondebug_string<char, char_traits<char>, allocator<char> >;
|
||||
# endif
|
||||
|
||||
template class basic_string<char, char_traits<char>, allocator<char> >;
|
||||
# endif
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
#define FORCE_SYMBOL extern
|
||||
|
||||
# if defined (_WIN32) && defined (_STLP_USE_DECLSPEC) && ! defined (_STLP_USE_STATIC_LIB) && ! defined (_STLP_USE_STATICX_LIB)
|
||||
// stlportmt.cpp : Defines the entry point for the DLL application.
|
||||
//
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
|
||||
#undef FORCE_SYMBOL
|
||||
#define FORCE_SYMBOL APIENTRY
|
||||
|
||||
extern "C" {
|
||||
|
||||
BOOL APIENTRY DllMain( HANDLE hModule,
|
||||
DWORD ul_reason_for_call,
|
||||
LPVOID lpReserved
|
||||
)
|
||||
{
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls((HINSTANCE)hModule);
|
||||
case DLL_THREAD_ATTACH:
|
||||
case DLL_THREAD_DETACH:
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
} /* extern "C" */
|
||||
|
||||
_STLP_BEGIN_NAMESPACE
|
||||
|
||||
void FORCE_SYMBOL
|
||||
force_link()
|
||||
{
|
||||
float f;
|
||||
f = numeric_limits<float>::infinity();
|
||||
f = numeric_limits<float>::quiet_NaN();
|
||||
f = numeric_limits<float>::signaling_NaN();
|
||||
double d;
|
||||
d = numeric_limits<double>::infinity();
|
||||
d = numeric_limits<double>::quiet_NaN();
|
||||
d = numeric_limits<double>::signaling_NaN();
|
||||
#ifndef _STLP_NO_LONG_DOUBLE
|
||||
long double ld;
|
||||
ld = numeric_limits<long double>::infinity();
|
||||
ld = numeric_limits<long double>::quiet_NaN();
|
||||
ld = numeric_limits<long double>::signaling_NaN();
|
||||
#endif
|
||||
|
||||
set<int>::iterator iter;
|
||||
// _M_increment; _M_decrement instantiation
|
||||
++iter;
|
||||
--iter;
|
||||
|
||||
// force bitset globals to be instantiated
|
||||
unsigned char uc = _Bs_G<bool>::_S_bit_count[0];
|
||||
uc += _Bs_G<bool>::_S_first_one[0];
|
||||
}
|
||||
|
||||
_STLP_END_NAMESPACE
|
||||
|
||||
# endif
|
||||
1178
STLPORT/src/facets_byname.cpp
Normal file
1178
STLPORT/src/facets_byname.cpp
Normal file
File diff suppressed because it is too large
Load Diff
1179
STLPORT/src/fstream.cpp
Normal file
1179
STLPORT/src/fstream.cpp
Normal file
File diff suppressed because it is too large
Load Diff
54
STLPORT/src/fstream_impl.h
Normal file
54
STLPORT/src/fstream_impl.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 1999
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Copyright (c) 1999
|
||||
* Boris Fomitchev
|
||||
*
|
||||
* This material is provided "as is", with absolutely no warranty expressed
|
||||
* or implied. Any use is at your own risk.
|
||||
*
|
||||
* Permission to use or copy this software for any purpose is hereby granted
|
||||
* without fee, provided the above notices are retained on all copies.
|
||||
* Permission to modify the code and to distribute modified code is granted,
|
||||
* provided the above notices are retained, and a notice that the code was
|
||||
* modified is included with the above copyright notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef FSTREAM_IMPL_H
|
||||
# define FSTREAM_IMPL_H
|
||||
|
||||
#include <stl/_stdio_file.h>
|
||||
|
||||
# ifdef _STLP_HAS_NO_NAMESPACES
|
||||
# define __SGI_BEGIN_NAMESPACE
|
||||
# define __SGI_END_NAMESPACE
|
||||
# define _SgI
|
||||
# else
|
||||
# define __SGI_BEGIN_NAMESPACE namespace _SgI {
|
||||
# define __SGI_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
__SGI_BEGIN_NAMESPACE
|
||||
|
||||
# ifndef _STLP_HAS_NO_NAMESPACES
|
||||
using _STLP_STD::streamoff;
|
||||
using _STLP_STD::ios_base;
|
||||
using _STLP_STD::streamsize;
|
||||
using _STLP_STD::streamoff;
|
||||
using _STLP_STD::char_traits;
|
||||
# ifndef _STLP_USE_UNIX_IO
|
||||
using _STLP_VENDOR_CSTD::FILE;
|
||||
using _STLP_VENDOR_CSTD::ftell;
|
||||
# endif
|
||||
|
||||
using _STLP_STD::_FILE_fd;
|
||||
# endif
|
||||
|
||||
extern bool __is_regular_file(_STLP_fd fd);
|
||||
extern streamoff __file_size(_STLP_fd fd);
|
||||
|
||||
__SGI_END_NAMESPACE
|
||||
|
||||
#endif /* FSTREAM_IMPL_H */
|
||||
66
STLPORT/src/gcc-99r1-sun.mak
Normal file
66
STLPORT/src/gcc-99r1-sun.mak
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
# Note : this makefile is for gcc-2.95 and later !
|
||||
#
|
||||
|
||||
#
|
||||
# compiler
|
||||
#
|
||||
CC = gcc
|
||||
CXX = c++ -pthreads
|
||||
|
||||
#
|
||||
# Basename for libraries
|
||||
#
|
||||
LIB_BASENAME = libstlport_gcc99r1
|
||||
|
||||
#
|
||||
# guts for common stuff
|
||||
#
|
||||
#
|
||||
LINK=ar cr
|
||||
# 2.95 flag
|
||||
DYN_LINK=c++ -pthreads -shared -o
|
||||
|
||||
OBJEXT=o
|
||||
DYNEXT=so
|
||||
STEXT=a
|
||||
RM=rm -rf
|
||||
PATH_SEP=/
|
||||
MKDIR=mkdir -p
|
||||
COMP=GCC-99r1
|
||||
INSTALL_STEP = install_unix
|
||||
|
||||
all: all_dynamic all_static symbolic_links
|
||||
|
||||
include common_macros.mak
|
||||
|
||||
WARNING_FLAGS= -Wall -W -Wno-sign-compare -Wno-unused -Wno-uninitialized
|
||||
|
||||
CXXFLAGS_COMMON = -nostdinc++ -fexceptions -ftemplate-depth-32 -D_STLP_HAS_NO_NAMESPACES -shared -I${STLPORT_DIR} ${WARNING_FLAGS}
|
||||
|
||||
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -O2
|
||||
CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -O2 -fPIC
|
||||
|
||||
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -gstabs
|
||||
CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -gstabs -fPIC
|
||||
|
||||
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
|
||||
CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG
|
||||
|
||||
LDFLAGS_RELEASE_dynamic = ${CXXFLAGS_RELEASE_dynamic}
|
||||
|
||||
LDFLAGS_DEBUG_dynamic = ${CXXFLAGS_DEBUG_dynamic}
|
||||
|
||||
LDFLAGS_STLDEBUG_dynamic = ${CXXFLAGS_STLDEBUG_dynamic}
|
||||
|
||||
LDLIBS_RELEASE_dynamic = -lposix4
|
||||
|
||||
LDLIBS_STLDEBUG_dynamic = -lposix4
|
||||
|
||||
include common_percent_rules.mak
|
||||
include common_rules.mak
|
||||
|
||||
#%.s: %.cpp
|
||||
# $(CXX) $(CXXFLAGS) -O4 -S -pto $< -o $@
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user