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