diff -r 7f305778ab05 -r ae6b7b791db5 .hgignore
--- a/.hgignore	Mon Nov 14 18:12:55 2011 +0100
+++ b/.hgignore	Wed Nov 16 10:06:21 2011 +1300
@@ -27,3 +27,4 @@
 .build/
 # .. and the legacy location
 targets/
+builds/
\ No newline at end of file
diff -r 7f305778ab05 -r ae6b7b791db5 config/global/paths.in
--- a/config/global/paths.in	Mon Nov 14 18:12:55 2011 +0100
+++ b/config/global/paths.in	Wed Nov 16 10:06:21 2011 +1300
@@ -90,6 +90,14 @@
       Remove the installed documentation (man and info pages).
       Gains around 8MiB for a uClibc-based, C and C++ compiler.
 
+config BUILD_MANUALS
+    bool
+    prompt "Build the manuals"
+    default n
+    help
+      Build the PDF and HTML manuals for the main components such as
+      binutils, GCC, GDB, and the C library.
+
 config INSTALL_DIR_RO
     bool
     prompt "Render the toolchain read-only"
diff -r 7f305778ab05 -r ae6b7b791db5 scripts/build/binutils/binutils.sh
--- a/scripts/build/binutils/binutils.sh	Mon Nov 14 18:12:55 2011 +0100
+++ b/scripts/build/binutils/binutils.sh	Wed Nov 16 10:06:21 2011 +1300
@@ -90,6 +90,12 @@
     CT_DoLog EXTRA "Installing binutils"
     CT_DoExecLog ALL make install
 
+    if [ "${CT_BUILD_MANUALS}" = "y" ]; then
+        CT_DoLog EXTRA "Building and installing the binutils manuals"
+        CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
+        CT_DoExecLog ALL make install-{pdf,html}-{gas,binutils,ld,gold,gprof}
+    fi
+
     # Install the wrapper if needed
     if [ "${CT_BINUTILS_LD_WRAPPER}" = "y" ]; then
         CT_DoLog EXTRA "Installing ld wrapper"
diff -r 7f305778ab05 -r ae6b7b791db5 scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh	Mon Nov 14 18:12:55 2011 +0100
+++ b/scripts/build/cc/gcc.sh	Wed Nov 16 10:06:21 2011 +1300
@@ -79,9 +79,9 @@
     case "${CT_BARE_METAL},${CT_CANADIAN},${CT_THREADS}" in
         y,*,*)
             if [ "${CT_STATIC_TOOLCHAIN}" = "y" ]; then
-                do_cc_core mode=baremetal build_libgcc=yes build_libstdcxx=yes build_staticlinked=yes
+                do_cc_core mode=baremetal build_libgcc=yes build_libstdcxx=yes build_staticlinked=yes build_manuals=yes
             else
-                do_cc_core mode=baremetal build_libgcc=yes build_libstdcxx=yes
+                do_cc_core mode=baremetal build_libgcc=yes build_libstdcxx=yes build_manuals=yes
             fi
             ;;
         ,y,*)   ;;
@@ -114,6 +114,7 @@
     local build_libgcc=no
     local build_libstdcxx=no
     local build_staticlinked=no
+    local build_manuals=no
     local core_prefix_dir
     local lang_opt
     local tmp
@@ -381,6 +382,12 @@
     CT_DoLog EXTRA "Installing ${mode} core C compiler"
     CT_DoExecLog ALL make ${JOBSFLAGS} "${core_targets[@]/#/install-}"
 
+    if [ "${CT_BUILD_MANUALS}" = "y" -a "${build_manuals}" = "yes" ]; then
+        CT_DoLog EXTRA "Building and installing the GCC manuals"
+        CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
+        CT_DoExecLog ALL make install-{pdf,html}-gcc
+    fi
+
     # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
     # to call the C compiler with the same, somewhat canonical name.
     # check whether compiler has an extension
@@ -625,6 +632,12 @@
     CT_DoLog EXTRA "Installing final compiler"
     CT_DoExecLog ALL make ${JOBSFLAGS} install
 
+    if [ "${CT_BUILD_MANUALS}" = "y" ]; then
+        CT_DoLog EXTRA "Building and installing the GCC manuals"
+        CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
+        CT_DoExecLog ALL make install-{pdf,html}-gcc
+    fi
+
     # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
     # to call the C compiler with the same, somewhat canonical name.
     # check whether compiler has an extension
diff -r 7f305778ab05 -r ae6b7b791db5 scripts/build/debug/300-gdb.sh
--- a/scripts/build/debug/300-gdb.sh	Mon Nov 14 18:12:55 2011 +0100
+++ b/scripts/build/debug/300-gdb.sh	Wed Nov 16 10:06:21 2011 +1300
@@ -155,6 +155,12 @@
         CT_DoLog EXTRA "Installing cross-gdb"
         CT_DoExecLog ALL make install
 
+        if [ "${CT_BUILD_MANUALS}" = "y" ]; then
+            CT_DoLog EXTRA "Building and installing the cross-GDB manuals"
+            CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
+            CT_DoExecLog ALL make install-{pdf,html}-gdb
+        fi
+
         if [ "${CT_GDB_INSTALL_GDBINIT}" = "y" ]; then
             CT_DoLog EXTRA "Install '.gdbinit' template"
             # See in scripts/build/internals.sh for why we do this
diff -r 7f305778ab05 -r ae6b7b791db5 scripts/build/libc/glibc-eglibc.sh-common
--- a/scripts/build/libc/glibc-eglibc.sh-common	Mon Nov 14 18:12:55 2011 +0100
+++ b/scripts/build/libc/glibc-eglibc.sh-common	Wed Nov 16 10:06:21 2011 +1300
@@ -303,6 +303,18 @@
                               install_root="${CT_SYSROOT_DIR}"  \
                               install
 
+        if [ "${CT_BUILD_MANUALS}" = "y" ]; then
+            CT_DoLog EXTRA "Building and installing the C library manual"
+            # Omit JOBSFLAGS as GLIBC has problems building the
+            # manuals in parallel
+            CT_DoExecLog ALL make pdf html
+            # EGLIBC doesn't have a install-{pdf.html} and leaves the manuals
+            # in the source directory
+            CT_DoExecLog ALL mkdir -p ${CT_PREFIX_DIR}/share/doc
+            CT_DoExecLog ALL cp -av ${src_dir}/manual/*.pdf ${src_dir}/manual/libc \
+                ${CT_PREFIX_DIR}/share/doc
+        fi
+
         if [ "${CT_LIBC_LOCALES}" = "y" ]; then
             do_libc_locales
         fi
