summaryrefslogtreecommitdiff
path: root/libstdc++-v3/doc/html/manual/setup.html
blob: e0b5caee6e0be8c1ae89a9c70b451af06b75b9e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="Part I.  Introduction"/><link rel="prev" href="bugs.html" title="Bugs"/><link rel="next" href="configure.html" title="Configure"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I. 
  Introduction
  
</th><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 2. Setup"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"/>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
   and properly built binaries useful for linking to other software is
   a multi-step process. Steps include getting the sources,
   configuring and building the sources, testing, and installation.
   </p><p>The general outline of commands is something like:
   </p><pre class="programlisting">
   <span class="emphasis"><em>get gcc sources</em></span>
   <span class="emphasis"><em>extract into gccsrcdir</em></span>
   mkdir <span class="emphasis"><em>gccbuilddir</em></span>
   cd <span class="emphasis"><em>gccbuilddir</em></span>
   <span class="emphasis"><em>gccsrcdir</em></span>/configure --prefix=<span class="emphasis"><em>destdir</em></span> --other-opts...
   make
   make check
   make install
   </pre><p>
     Each step is described in more detail in the following sections.
   </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.prereq"/>Prerequisites</h2></div></div></div><p>
  Because libstdc++ is part of GCC, the primary source for
   installation instructions is
   <a class="link" href="http://gcc.gnu.org/install/">the GCC install page</a>.
   In particular, list of prerequisite software needed to build the library
   <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">
   starts with those requirements.</a> The same pages also list
   the tools you will need if you wish to modify the source.
</p><p>
   Additional data is given here only where it applies to libstdc++.
  </p><p>As of GCC 4.0.1 the minimum version of binutils required to build
      libstdc++ is <code class="code">2.15.90.0.1.1</code>. You can get snapshots
      (as well as releases) of binutils from
      <a class="link" href="ftp://sources.redhat.com/pub/binutils/">
      ftp://sources.redhat.com/pub/binutils</a>.
      Older releases of libstdc++ do not require such a recent version,
      but to take full advantage of useful space-saving features and
      bug-fixes you should use a recent binutils whenever possible.
      The configure process will automatically detect and use these
      features if the underlying support is present.
   </p><p>
     To generate the API documentation from the sources you will need
     Doxygen, see <a class="link" href="documentation_hacking.html" title="Writing and Generating Documentation">Documentation
     Hacking</a> in the appendix for full details.
   </p><p>
   Finally, a few system-specific requirements:
   </p><div class="variablelist"><dl><dt><span class="term">linux</span></dt><dd><p>
	  If gcc 3.1.0 or later on is being used on linux, an attempt
	  will be made to use "C" library functionality necessary for
	  C++ named locale support.  For gcc 4.6.0 and later, this
	  means that glibc 2.3 or later is required.
	</p><p>
	  If the 'gnu' locale model is being used, the following
	  locales are used and tested in the libstdc++ testsuites.
	  The first column is the name of the locale, the second is
	  the character set it is expected to use.
	</p><pre class="programlisting">
de_DE               ISO-8859-1
de_DE@euro          ISO-8859-15
en_GB               ISO-8859-1
en_HK               ISO-8859-1
en_PH               ISO-8859-1
en_US               ISO-8859-1
en_US.ISO-8859-1    ISO-8859-1
en_US.ISO-8859-15   ISO-8859-15
en_US.UTF-8         UTF-8
es_ES               ISO-8859-1
es_MX               ISO-8859-1
fr_FR               ISO-8859-1
fr_FR@euro          ISO-8859-15
is_IS               UTF-8
it_IT               ISO-8859-1
ja_JP.eucjp         EUC-JP
ru_RU.ISO-8859-5    ISO-8859-5
ru_RU.UTF-8         UTF-8
se_NO.UTF-8         UTF-8
ta_IN               UTF-8
zh_TW               BIG5
</pre><p>Failure to have installed the underlying "C" library
      locale information for any of the above regions means that
      the corresponding C++ named locale will not work:  because of
      this, the libstdc++ testsuite will skip named locale tests
      which need missing information.  If this isn't an issue, don't
      worry about it.  If a named locale is needed, the underlying
      locale information must be installed.  Note that rebuilding
      libstdc++ after "C" locales are installed is not necessary.
      </p><p>
	To install support for locales, do only one of the following:
      </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>install all locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with RedHat Linux:
	      </p><p> <code class="code"> export LC_ALL=C </code>
	      </p><p> <code class="code"> rpm -e glibc-common --nodeps </code>
	      </p><p>
		<code class="code"> rpm -i --define "_install_langs all"
		 glibc-common-2.2.5-34.i386.rpm
		</code>
	      </p></li><li class="listitem"><p>
	       Instructions for other operating systems solicited.
	     </p></li></ul></div></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with Debian Linux:</p><p> Add the above list, as shown, to the file
	      <code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li class="listitem"><p>on most Unix-like operating systems:</p><p><code class="code"> localedef -i de_DE -f ISO-8859-1 de_DE </code></p><p>(repeat for each entry in the above list) </p></li><li class="listitem"><p>
	       Instructions for other operating systems solicited.
	    </p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td align="left" valign="top">Bugs </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top"> Configure</td></tr></table></div></body></html>