summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/docs/html/17_intro/configury.html
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-18 08:16:51 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2008-01-18 08:16:51 +0000
commit0aeadebf36eab6d537b67b38c5dcacf648f2f69f (patch)
tree0fd3dc60ac26e2ec9502783b72d38867bcb418d8 /libstdc++-v3/docs/html/17_intro/configury.html
parent9e61be0719e3f9d3bda483eaaf71ee67f02e81ae (diff)
downloadppe42-gcc-0aeadebf36eab6d537b67b38c5dcacf648f2f69f.tar.gz
ppe42-gcc-0aeadebf36eab6d537b67b38c5dcacf648f2f69f.zip
2008-01-18 Benjamin Kosnik <bkoz@redhat.com>
* docs/*: To... * doc/*: ...here. * testsuite/Makefile.am: Move doc-performance to... * Makefile.am: Add doc to SUBDIRS, move doxygen-* rules to... * doc/Makefile.am: Consolidate documentation creation here. (doc-doxygen-html): New. (doc-doxygen-man): New. (doc-performance): New. * doc/Makefile.in: New. * acinclude.m4 (glibcxx_SUBDIRS): Add doc directory. * doc/doxygen/guide.html: Edit for unified html configuration. * doc/doxygen/mainpage.html: Same. * doc/doxygen/run_doxygen: Same, more namespace fixups for man generation. * doc/doxygen/user.cfg.in: Update for doxygen 1.5.4. * include/tr1_impl/random: Remove maint from doxygen markup. * include/tr1_impl/functional: Same. * include/std/tuple: Same. * include/std/streambuf: Same. * include/std/bitset: Same. * include/std/limits: Same. * include/std/fstream: Same. * include/std/istream: Same. * include/std/sstream: Same. * include/ext/pool_allocator.h: Same. * include/ext/rc_string_base.h: Same. * include/bits/basic_ios.h: Same. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/locale_classes.h: Same. * include/bits/stl_set.h: Same. * include/bits/stl_iterator_base_types.h: Same. * include/bits/basic_string.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_vector.h: Same. * include/bits/ios_base.h: Same. * include/bits/stl_deque.h: Same. * include/bits/postypes.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/stl_algo.h: Same. * include/bits/stl_iterator.h: Same. * include/bits/stl_tempbuf.h: Same. * include/bits/stl_construct.h: Same. * include/bits/stl_relops.h: Same. * include/tr1/tuple: Same. * include/backward/auto_ptr.h: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Fixups for line number changes. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/20_util/auto_ptr/assign_neg.cc: Same. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * libmath/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * scripts/make_graphs.py: Correct paths for new layout. 2008-01-17 Benjamin Kosnik <bkoz@redhat.com> * acinclude.m4 (AC_LC_MESSAGES): Remove serial. * linkage.m4 (AC_REPLACE_MATHFUNCS): Same. * configure: Regenerate. * aclocal.m4: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131625 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/docs/html/17_intro/configury.html')
-rw-r--r--libstdc++-v3/docs/html/17_intro/configury.html305
1 files changed, 0 insertions, 305 deletions
diff --git a/libstdc++-v3/docs/html/17_intro/configury.html b/libstdc++-v3/docs/html/17_intro/configury.html
deleted file mode 100644
index a35ccf23996..00000000000
--- a/libstdc++-v3/docs/html/17_intro/configury.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <meta name="AUTHOR" content="pme@gcc.gnu.org (Phil Edwards)" />
- <meta name="DESCRIPTION" content="configury for libstdc++" />
- <meta name="GENERATOR" content="vi and eight fingers" />
- <title>libstdc++ configury</title>
-<link rel="StyleSheet" href="../lib3styles.css" type='text/css' />
-<link rel="Start" href="../documentation.html" type="text/html"
- title="GNU C++ Standard Library" />
-</head>
-<body>
-
-<h1><code>&gt; open configury door</code></h1>
-<h1><code>&gt; look</code></h1>
-
-<p class="larger"><code>You are in a maze of twisty passages, all
-different.</code></p>
-<p class="larger"><code>It is dark. You are likely to be eaten by a
-Canadian cross build.</code></p>
-
-
-<hr />
-<h2>Notes on libstdc++ configury</h2>
-<blockquote>
-No problem is insoluble in all conceivable circumstances.<br />
--- The Cosmic AC,
-<a href="http://mit.edu/tylerc/www/twt/LQ1.htm">The
-Last Question</a>, by Isaac Asimov
-</blockquote>
-<ul>
- <li><a href="#prereq">Prerequisites for configure and make hacking</a></li>
- <li><a href="#deps">Overview: what comes from where</a></li>
- <li><a href="#breakout">Storing information in non-AC files, like
- configure.host</a></li>
- <li><a href="#general">Coding and commenting conventions</a></li>
- <li><a href="#aclayout">The acinclude.m4 layout</a></li>
- <li><a href="#enable"><code>GLIBCXX_ENABLE, the --enable</code> howto</a></li>
-</ul>
-
-<hr />
-<h3><a name="prereq">Prerequisites for configure and make hacking</a></h3>
-
-<p> As
-noted <a href="http://gcc.gnu.org/install/prerequisites.html">previously</a>,
-certain other tools are necessary for hacking on files that control
-configure (<code>configure.ac</code>, <code>acinclude.m4</code>) and
-make (<code>Makefile.am</code>). These additional tools
-(<code>automake</code>, and <code>autoconf</code>) are further
-described in detail in their respective manuals. All the libraries in GCC try to stay in sync with each other in terms of versions of the auto-tools used, so please try to play nicely with the neighbors.
-</p>
-
-
-<hr />
-<h3><a name="deps">Overview: what comes from where</a></h3>
-<p class="centered"><img src="confdeps.png"
- alt="Dependency graph in PNG graphics format. (Get a better browser!)" /></p>
-
-<p>Regenerate all generated files by using the command sequence
- <code>"autoreconf"</code> at the top level of the libstdc++ source
- directory. The following will also work, but is much more complex:
- <code>"aclocal-1.7 &amp;&amp; autoconf-2.59 &amp;&amp;
- autoheader-2.59 &amp;&amp; automake-1.7"</code> The version numbers
- may be absent entirely or otherwise vary depending on
- <a href="http://gcc.gnu.org/install/prerequisites.html">the current
- requirements</a> and your vendor's choice of installation names.
-</p>
-
-
-<hr />
-<h3><a name="breakout">Storing information in non-AC files, like
- configure.host</a></h3>
-<p>Until that glorious day when we can use AC_TRY_LINK with a cross-compiler,
- we have to hardcode the results of what the tests would have shown if
- they could be run. So we have an inflexible mess like crossconfig.m4.
-</p>
-
-<p>Wouldn't it be nice if we could store that information in files like
- configure.host, which can be modified without needing to regenerate
- anything, and can even be tweaked without really knowing how the configury
- all works? Perhaps break the pieces of crossconfig.m4 out and place them in
- their appropriate config/{cpu,os} directory.
-</p>
-
-<p>Alas, writing macros like "<code>AC_DEFINE(HAVE_A_NICE_DAY)</code>" can
- only be done inside files which are passed through autoconf. Files which
- are pure shell script can be source'd at configure time. Files which
- contain autoconf macros must be processed with autoconf. We could still
- try breaking the pieces out into "config/*/cross.m4" bits, for instance,
- but then we would need arguments to aclocal/autoconf to properly find
- them all when generating configure. I would discourage that.
-</p>
-
-
-<hr />
-<h3><a name="general">Coding and commenting conventions</a></h3>
-<p>Lots of stuff got thrown out because the new autotools kindly generate
- the same (or better) shell code for us.
-</p>
-
-<p>Most comments should use {octothorpes, shibboleths, hash marks, pound
- signs, whatevers} rather than "dnl". Nearly all comments in configure.ac
- should. Comments inside macros written in ancilliary .m4 files should.
- About the only comments which should <em>not</em> use #, but use dnl
- instead, are comments <em>outside</em> our own macros in the ancilliary
- files. The difference is that # comments show up in <code>configure</code>
- (which is most helpful for debugging), while dnl'd lines just vanish.
- Since the macros in ancilliary files generate code which appears in odd
- places, their "outside" comments tend to not be useful while reading
- <code>configure</code>.
-</p>
-
-<p>Do not use any <code>$target*</code> variables, such as
- <code>$target_alias</code>. The single exception is in configure.ac,
- for automake+dejagnu's sake.
-</p>
-
-<p>
-</p>
-
-<hr />
-<h3><a name="aclayout">The acinclude.m4 layout</a></h3>
-<p>The nice thing about acinclude.m4/aclocal.m4 is that macros aren't actually
- performed/called/expanded/whatever here, just loaded. So we can arrange
- the contents however we like. As of this writing, acinclude.m4 is arranged
- as follows:
-</p>
-<pre>
- GLIBCXX_CHECK_HOST
- GLIBCXX_TOPREL_CONFIGURE
- GLIBCXX_CONFIGURE
-</pre>
-<p>All the major variable "discovery" is done here. CXX, multilibs, etc.
-</p>
-<pre>
- fragments included from elsewhere
-</pre>
-<p>Right now, "fragments" == "the math/linkage bits".
-</p>
-<pre>
- GLIBCXX_CHECK_COMPILER_FEATURES
- GLIBCXX_CHECK_LINKER_FEATURES
- GLIBCXX_CHECK_WCHAR_T_SUPPORT
-</pre>
-<p>Next come extra compiler/linker feature tests. Wide character support
- was placed here because I couldn't think of another place for it. It will
- probably get broken apart like the math tests, because we're still disabling
- wchars on systems which could actually support them.
-</p>
-<pre>
- GLIBCXX_CHECK_SETRLIMIT_ancilliary
- GLIBCXX_CHECK_SETRLIMIT
- GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
- GLIBCXX_CHECK_POLL
- GLIBCXX_CHECK_WRITEV
-
- GLIBCXX_CONFIGURE_TESTSUITE
-</pre>
-<p>Feature tests which only get used in one place. Here, things used only in
- the testsuite, plus a couple bits used in the guts of I/O.
-</p>
-<pre>
- GLIBCXX_EXPORT_INCLUDES
- GLIBCXX_EXPORT_FLAGS
- GLIBCXX_EXPORT_INSTALL_INFO
-</pre>
-<p>Installation variables, multilibs, working with the rest of the compiler.
- Many of the critical variables used in the makefiles are set here.
-</p>
-<pre>
- GLIBGCC_ENABLE
- GLIBCXX_ENABLE_C99
- GLIBCXX_ENABLE_CHEADERS
- GLIBCXX_ENABLE_CLOCALE
- GLIBCXX_ENABLE_CONCEPT_CHECKS
- GLIBCXX_ENABLE_CSTDIO
- GLIBCXX_ENABLE_CXX_FLAGS
- GLIBCXX_ENABLE_C_MBCHAR
- GLIBCXX_ENABLE_DEBUG
- GLIBCXX_ENABLE_DEBUG_FLAGS
- GLIBCXX_ENABLE_LONG_LONG
- GLIBCXX_ENABLE_PCH
- GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
- GLIBCXX_ENABLE_SYMVERS
- GLIBCXX_ENABLE_THREADS
-</pre>
-<p>All the features which can be controlled with enable/disable configure
- options. Note how they're alphabetized now? Keep them like that. :-)
-</p>
-<pre>
- AC_LC_MESSAGES
- libtool bits
-</pre>
-<p>Things which we don't seem to use directly, but just has to be present
- otherwise stuff magically goes wonky.
-</p>
-
-
-<hr />
-<h3><a name="enable">GLIBCXX_ENABLE, the <code>--enable</code> howto</a></h3>
-<p>All the GLIBCXX_ENABLE_FOO macros use a common helper, GLIBCXX_ENABLE.
- (You don't have to use it, but it's easy.) The helper does two things
- for us:
-</p>
-
-<ol>
- <li>Builds the call to the AC_ARG_ENABLE macro, with --help text properly
- quoted and aligned. (Death to changequote!)</li>
- <li>Checks the result against a list of allowed possibilities, and signals
- a fatal error if there's no match. This means that the rest of the
- GLIBCXX_ENABLE_FOO macro doesn't need to test for strange arguments,
- nor do we need to protect against empty/whitespace strings with the
- <code>"x$foo" = "xbar"</code> idiom.</li>
-</ol>
-
-<p>Doing these things correctly takes some extra autoconf/autom4te code,
- which made our macros nearly illegible. So all the ugliness is factored
- out into this one helper macro.
-</p>
-
-<p>Many of the macros take an argument, passed from when they are expanded
- in configure.ac. The argument controls the default value of the
- enable/disable switch. Previously, the arguments themselves had defaults.
- Now they don't, because that's extra complexity with zero gain for us.
-</p>
-
-<p>There are three "overloaded signatures". When reading the descriptions
- below, keep in mind that the brackets are autoconf's quotation characters,
- and that they will be stripped. Examples of just about everything occur
- in acinclude.m4, if you want to look.
-</p>
-
-<pre>
- GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING)
- GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, permit a|b|c)
- GLIBCXX_ENABLE (FEATURE, DEFAULT, HELP-ARG, HELP-STRING, SHELL-CODE-HANDLER)
-</pre>
-
-<ul>
- <li><p>FEATURE is the string that follows --enable. The results of the test
- (such as it is) will be in the variable $enable_FEATURE, where FEATURE
- has been squashed. Example: <code>[extra-foo]</code>, controlled by the
- --enable-extra-foo option and stored in $enable_extra_foo.</p></li>
- <li><p>DEFAULT is the value to store in $enable_FEATURE if the user does not
- pass --enable/--disable. It should be one of the permitted values
- passed later. Examples: <code>[yes]</code>, or <code>[bar]</code>, or
- <code>[$1]</code> (which passes the argument given to the
- GLIBCXX_ENABLE_FOO macro as the default).</p>
- <p>For cases where we need to probe for particular models
- of things, it is useful to have an undocumented "auto" value here (see
- GLIBCXX_ENABLE_CLOCALE for an example).</p></li>
- <li><p>HELP-ARG is any text to append to the option string itself in the
- --help output. Examples: <code>[]</code> (i.e., an empty string,
- which appends nothing),
- <code>[=BAR]</code>, which produces
- <code>--enable-extra-foo=BAR</code>, and
- <code>[@&lt;:@=BAR@:&gt;@]</code>, which produces
- <code>--enable-extra-foo[=BAR]</code>. See the difference? See what
- it implies to the user?</p>
- <p>If you're wondering what that line noise in the last example was,
- that's how you embed autoconf special characters in output text.
- They're called
-<a
-href="http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_node/autoconf_95.html#SEC95"><em>quadrigraphs</em></a>
- and you should use them whenever necessary.</p></li>
- <li><p>HELP-STRING is what you think it is. Do not include the "default"
- text like we used to do; it will be done for you by GLIBCXX_ENABLE.
- By convention, these are not full English sentences.
- Example: [turn on extra foo]</p></li>
-</ul>
-
-<p>With no other arguments, only the standard autoconf patterns are
- allowed: "<code>--{enable,disable}-foo[={yes,no}]</code>" The
- $enable_FEATURE variable is guaranteed to equal either "yes" or "no"
- after the macro. If the user tries to pass something else, an
- explanatory error message will be given, and configure will halt.
-</p>
-
-<p>The second signature takes a fifth argument,
- "<code>[permit <em>a</em>|<em>b</em>|<em>c</em>|<em>...</em>]</code>"
- This allows <em>a</em> or <em>b</em> or ... after the equals sign in the
- option, and $enable_FEATURE is guaranteed to equal one of them after the
- macro. Note that if you want to allow plain --enable/--disable with no
- "=whatever", you must include "yes" and "no" in the list of permitted
- values. Also note that whatever you passed as DEFAULT must be in the list.
- If the user tries to pass something not on the list, a semi-explanatory
- error message will be given, and configure will halt.
- Example: <code>[permit generic|gnu|ieee_1003.1-2001|yes|no|auto]</code>
-</p>
-
-<p>The third signature takes a fifth argument. It is arbitrary shell code
- to execute if the user actually passes the enable/disable option. (If
- the user does not, the default is used. Duh.) No argument checking at
- all is done in this signature. See GLIBCXX_ENABLE_CXX_FLAGS for an
- example of handling, and an error message.
-</p>
-
-<hr />
-</body>
-</html>
OpenPOWER on IntegriCloud