1 |
742 |
jeremybenn |
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3 |
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing"/><link rel="next" href="source_code_style.html" title="Coding Style"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A.
|
4 |
|
|
Contributing
|
5 |
|
|
|
6 |
|
|
</th><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr/></div><div class="section" title="Directory Layout and Source Conventions"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.organization"/>Directory Layout and Source Conventions</h2></div></div></div><p>
|
7 |
|
|
The unpacked source directory of libstdc++ contains the files
|
8 |
|
|
needed to create the GNU C++ Library.
|
9 |
|
|
</p><div class="literallayout"><p><br/>
|
10 |
|
|
It has subdirectories:<br/>
|
11 |
|
|
<br/>
|
12 |
|
|
doc<br/>
|
13 |
|
|
Files in HTML and text format that document usage, quirks of the<br/>
|
14 |
|
|
implementation, and contributor checklists.<br/>
|
15 |
|
|
<br/>
|
16 |
|
|
include<br/>
|
17 |
|
|
All header files for the C++ library are within this directory,<br/>
|
18 |
|
|
modulo specific runtime-related files that are in the libsupc++<br/>
|
19 |
|
|
directory.<br/>
|
20 |
|
|
<br/>
|
21 |
|
|
include/std<br/>
|
22 |
|
|
Files meant to be found by #include <name> directives in<br/>
|
23 |
|
|
standard-conforming user programs.<br/>
|
24 |
|
|
<br/>
|
25 |
|
|
include/c<br/>
|
26 |
|
|
Headers intended to directly include standard C headers.<br/>
|
27 |
|
|
[NB: this can be enabled via --enable-cheaders=c]<br/>
|
28 |
|
|
<br/>
|
29 |
|
|
include/c_global<br/>
|
30 |
|
|
Headers intended to include standard C headers in<br/>
|
31 |
|
|
the global namespace, and put select names into the std::<br/>
|
32 |
|
|
namespace. [NB: this is the default, and is the same as<br/>
|
33 |
|
|
--enable-cheaders=c_global]<br/>
|
34 |
|
|
<br/>
|
35 |
|
|
include/c_std<br/>
|
36 |
|
|
Headers intended to include standard C headers<br/>
|
37 |
|
|
already in namespace std, and put select names into the std::<br/>
|
38 |
|
|
namespace. [NB: this is the same as --enable-cheaders=c_std]<br/>
|
39 |
|
|
<br/>
|
40 |
|
|
include/bits<br/>
|
41 |
|
|
Files included by standard headers and by other files in<br/>
|
42 |
|
|
the bits directory.<br/>
|
43 |
|
|
<br/>
|
44 |
|
|
include/backward<br/>
|
45 |
|
|
Headers provided for backward compatibility, such as <iostream.h>.<br/>
|
46 |
|
|
They are not used in this library.<br/>
|
47 |
|
|
<br/>
|
48 |
|
|
include/ext<br/>
|
49 |
|
|
Headers that define extensions to the standard library. No<br/>
|
50 |
|
|
standard header refers to any of them.<br/>
|
51 |
|
|
<br/>
|
52 |
|
|
scripts<br/>
|
53 |
|
|
Scripts that are used during the configure, build, make, or test<br/>
|
54 |
|
|
process.<br/>
|
55 |
|
|
<br/>
|
56 |
|
|
src<br/>
|
57 |
|
|
Files that are used in constructing the library, but are not<br/>
|
58 |
|
|
installed.<br/>
|
59 |
|
|
<br/>
|
60 |
|
|
testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]<br/>
|
61 |
|
|
Test programs are here, and may be used to begin to exercise the<br/>
|
62 |
|
|
library. Support for "make check" and "make check-install" is<br/>
|
63 |
|
|
complete, and runs through all the subdirectories here when this<br/>
|
64 |
|
|
command is issued from the build directory. Please note that<br/>
|
65 |
|
|
"make check" requires DejaGNU 1.4 or later to be installed. Please<br/>
|
66 |
|
|
note that "make check-script" calls the script mkcheck, which<br/>
|
67 |
|
|
requires bash, and which may need the paths to bash adjusted to<br/>
|
68 |
|
|
work properly, as /bin/bash is assumed.<br/>
|
69 |
|
|
<br/>
|
70 |
|
|
Other subdirectories contain variant versions of certain files<br/>
|
71 |
|
|
that are meant to be copied or linked by the configure script.<br/>
|
72 |
|
|
Currently these are:<br/>
|
73 |
|
|
<br/>
|
74 |
|
|
config/abi<br/>
|
75 |
|
|
config/cpu<br/>
|
76 |
|
|
config/io<br/>
|
77 |
|
|
config/locale<br/>
|
78 |
|
|
config/os<br/>
|
79 |
|
|
<br/>
|
80 |
|
|
In addition, a subdirectory holds the convenience library libsupc++.<br/>
|
81 |
|
|
<br/>
|
82 |
|
|
libsupc++<br/>
|
83 |
|
|
Contains the runtime library for C++, including exception<br/>
|
84 |
|
|
handling and memory allocation and deallocation, RTTI, terminate<br/>
|
85 |
|
|
handlers, etc.<br/>
|
86 |
|
|
<br/>
|
87 |
|
|
Note that glibc also has a bits/ subdirectory. We will either<br/>
|
88 |
|
|
need to be careful not to collide with names in its bits/<br/>
|
89 |
|
|
directory; or rename bits to (e.g.) cppbits/.<br/>
|
90 |
|
|
<br/>
|
91 |
|
|
In files throughout the system, lines marked with an "XXX" indicate<br/>
|
92 |
|
|
a bug or incompletely-implemented feature. Lines marked "XXX MT"<br/>
|
93 |
|
|
indicate a place that may require attention for multi-thread safety.<br/>
|
94 |
|
|
</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><td align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr><tr><td align="left" valign="top">Appendix A.
|
95 |
|
|
Contributing
|
96 |
|
|
|
97 |
|
|
</td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Coding Style</td></tr></table></div></body></html>
|