Update build instructions for Linux and Windows.

Removes redundant instructions from the platform-specific plages and the main "get the code" page on the sites page. The platform pages should have only non-redundant platform-specific information.

When I did this the Linux page was basically empty with a link the the prerequistes page, so I consolidated these two pages, leaving a placeholder in the old prerequisites page for now to avoid breaking links.

There was a lot of out-of-date information removed.

Review-Url: https://codereview.chromium.org/2014753002
Cr-Commit-Position: refs/heads/master@{#396071}
diff --git a/docs/linux_build_instructions.md b/docs/linux_build_instructions.md
index 11a3b23..4f97bf2 100644
--- a/docs/linux_build_instructions.md
+++ b/docs/linux_build_instructions.md
@@ -1,133 +1,152 @@
 # Linux-specific build instructions
 
-[TOC]
+## Common checkout instructions
 
-## Get the code
-
-[Get the Code](https://www.chromium.org/developers/how-tos/get-the-code). The
-general instructions on the "Get the code" page cover basic Linux build setup
-and configuration.
-
-This page documents some additional Linux-specific build issues.
+This page covers Linux-specific setup and configuration. The
+[general checkout
+instructions](http://dev.chromium.org/developers/how-tos/get-the-code) cover
+installing depot tools and checking out the code via git.
 
 ## Overview
 
-Due its complexity, Chromium uses a set of custom tools to check out and build.
-Here's an overview of the steps you'll run:
+Due its complexity, Chromium uses a set of custom tools to check out and build
+rather than configure/make like most projects. You _must_ use gclient and
+ninja, and there is no "install" step provided.
 
-1.  **gclient**. A checkout involves pulling nearly 100 different SVN
-    repositories of code. This process is managed with a tool called `gclient`.
-1.  **GN**. Cross-platform build configuration system.  It generates ninja
-    build files. Running `gn` is analogous to the `./configure` step seen in
-    most other software.
-1.  **ninja**. The actual build itself uses `ninja`. A prebuilt binary is in
-    `depot_tools` and should already be in your path if you followed the steps
-    to check out Chromium.
-1.  We don't provide any sort of "install" step.
-1.  You may want to
-    [use a chroot](using_a_linux_chroot.md) to
-    isolate yourself from versioning or packaging conflicts (or to run the
-    layout tests).
+### System requirements
 
-## Getting a checkout
+*   **64-bits**: x86 builds are not supported on Linux.
+*   **Memory**: >16GB is highly recommended.
+*   **Disk space**: Expect a full checkout and build to take nearly 100GB.
+*   **Distribution**: You should be able to build Chromium on any reasonably modern Linux
+    distribution, but there are a lot of distributions and we sometimes break
+    things on one or another. Internally, our development platform has been a
+    variant of Ubuntu 14.04 (Trusty Tahr); we expect you will have the most
+    luck on this platform.
 
-[Prerequisites](linux_build_instructions_prerequisites.md): what you need before
-you build.
+## Software setup
 
-**Note**. If you are working on Chromium OS and already have sources in
-`chromiumos/chromium`, you **must** run `chrome_set_ver --runhooks` to set the
-correct dependencies. This step is otherwise performed by `gclient` as part of
-your checkout.
+Non-Ubuntu distributions are not officially supported for building and the
+instructions below might be outdated.
 
-## Compilation
+### Ubuntu
 
-The "`src/`" directory is an artifact of `gclient`. Start with:
+Once you have checked out the code, run
+[build/install-build-deps.sh](/build/install-build-deps.sh) The script only
+supports current releases as listed on https://wiki.ubuntu.com/Releases.
+This script is used to set up the canonical builders, and as such is the most
+up to date reference for the required prerequisites.
 
-    $ cd src
+### Debian
 
-### Faster builds
+Follow the Ubuntu instructions above. If you want to install the build-deps
+manually, note that the original packages are for Ubuntu. Here are the Debian
+equivalents:
 
-See [Linux Faster Builds](linux_faster_builds.md)
+*   libexpat-dev -> libexpat1-dev
+*   freetype-dev -> libfreetype6-dev
+*   libbzip2-dev -> libbz2-dev
+*   libcupsys2-dev -> libcups2-dev
 
-### Build every test
+Additionally, if you're building Chromium components for Android, you'll need to
+install the package: lib32z1
 
-    $ ninja -C out/Debug
+### openSUSE
 
-The above builds all libraries and tests in all components. **It will take
-hours.**
+For openSUSE 11.0 and later, see
+[Linux openSUSE Build Instructions](linux_open_suse_build_instructions.md).
 
-Specifying other target names to restrict the build to just what you're
-interested in. To build just the simplest unit test:
+### Fedora
 
-    $ ninja -C out/Debug base_unittests
+Recent systems:
 
-### Clang builds
+    su -c 'yum install subversion pkgconfig python perl gcc-c++ bison flex \
+    gperf nss-devel nspr-devel gtk2-devel glib2-devel freetype-devel atk-devel \
+    pango-devel cairo-devel fontconfig-devel GConf2-devel dbus-devel \
+    alsa-lib-devel libX11-devel expat-devel bzip2-devel dbus-glib-devel \
+    elfutils-libelf-devel libjpeg-devel mesa-libGLU-devel libXScrnSaver-devel \
+    libgnome-keyring-devel cups-devel libXtst-devel libXt-devel pam-devel httpd \
+    mod_ssl php php-cli wdiff'
 
-Information about building with Clang can be found [here](clang.md).
+The msttcorefonts packages can be obtained by following the instructions
+present [here](http://www.fedorafaq.org/#installfonts). For the optional
+packages:
 
-### Output
+*   php-cgi is provided by the php-cli package
+*   wdiff doesn't exist in Fedora repositories, a possible alternative would be
+    dwdiff
+*   sun-java6-fonts doesn't exist in Fedora repositories, needs investigating
 
-Executables are written in `src/out/Debug/` for Debug builds, and
-`src/out/Release/` for Release builds.
+### Arch Linux
 
-### Release mode
+Most of these packages are probably already installed since they're often used,
+and the parameter --needed ensures that packages up to date are not reinstalled.
 
-Pass `-C out/Release` to the ninja invocation:
+    sudo pacman -S --needed python perl gcc gcc-libs bison flex gperf pkgconfig \
+    nss alsa-lib gconf glib2 gtk2 nspr ttf-ms-fonts freetype2 cairo dbus \
+    libgnome-keyring
 
-    $ ninja -C out/Release chrome
+For the optional packages on Arch Linux:
 
-### Seeing the commands
+*   php-cgi is provided with pacman
+*   wdiff is not in the main repository but dwdiff is. You can get wdiff in
+    AUR/yaourt
+*   sun-java6-fonts do not seem to be in main repository or AUR.
 
-If you want to see the actual commands that ninja is invoking, add `-v` to the
-ninja invocation.
+### Mandriva
 
-    $ ninja -v -C out/Debug chrome
+    urpmi lib64fontconfig-devel lib64alsa2-devel lib64dbus-1-devel \
+    lib64GConf2-devel lib64freetype6-devel lib64atk1.0-devel lib64gtk+2.0_0-devel \
+    lib64pango1.0-devel lib64cairo-devel lib64nss-devel lib64nspr-devel g++ python \
+    perl bison flex subversion gperf
 
-This is useful if, for example, you are debugging gyp changes, or otherwise need
-to see what ninja is actually doing.
+*   msttcorefonts are not available, you will need to build your own (see
+instructions, not hard to do, see
+[mandriva_msttcorefonts.md](mandriva_msttcorefonts.md)) or use drakfont to
+import the fonts from a windows installation
+*  These packages are for 64 bit, to download the 32 bit packages,
+substitute lib64 with lib
+*  Some of these packages might not be explicitly necessary as they come as
+   dependencies, there is no harm in including them however.
 
-### Clean builds
+### Gentoo
 
-You can clean the build directory (`out/Default` in this example):
+    emerge www-client/chromium
 
-    gn clean out/Default
-
-This will delete all files except a bootstrap ninja file necessary for
-recreating the build.
-
-Ninja can also be used to clean a build with `ninja -C out/Debug -t clean` but
-this will not be as complete as the above methods.
+## Troubleshooting
 
 ### Linker Crashes
 
 If, during the final link stage:
 
-    LINK(target) out/Debug/chrome
+    LINK out/Debug/chrome
 
 You get an error like:
 
-```
-collect2: ld terminated with signal 6 Aborted terminate called after throwing an
-instance of 'std::bad_alloc'
+    collect2: ld terminated with signal 6 Aborted terminate called after throwing an
+    instance of 'std::bad_alloc'
 
-collect2: ld terminated with signal 11 [Segmentation fault], core dumped
-```
-you are probably running out of memory when linking.  Try one of:
+    collect2: ld terminated with signal 11 [Segmentation fault], core dumped
 
-1.  Use the `gold` linker
-1.  Build on a 64-bit computer
-1.  Build in Release mode (debugging symbols require a lot of memory)
-1.  Build as shared libraries (note: this build is for developers only, and may
-    have broken functionality)
+you are probably running out of memory when linking. You *must* use a 64-bit
+system to build. Try the following build settings (see [GN build
+configuration](https://www.chromium.org/developers/gn-build-configuration) for
+setting):
 
-Most of these are described on the [Linux Faster Builds](linux_faster_builds.md)
-page.
+*   Build in release mode (debugging symbols require more memory).
+    `is_debug = false`
+*   Turn off symbols. `symbol_level = 0`
+*   Build in component mode (this is for developers only, it will be slower and
+    may have broken functionality). `is_component_build = true`
 
-## Advanced Features
+## More links
 
-*   Want to use the (in development) GN build workflow? See
-    [GN Quick Start](../tools/gn/docs/quick_start.md).
-*   Building frequently? See [LinuxFasterBuilds](linux_faster_builds.md).
+*   [Faster builds on Linux](linux_faster_builds.md)
+*   Information about [building with Clang](clang.md).
+*   You may want to
+    [use a chroot](using_a_linux_chroot.md) to
+    isolate yourself from versioning or packaging conflicts (or to run the
+    layout tests).
 *   Cross-compiling for ARM? See [LinuxChromiumArm](linux_chromium_arm.md).
 *   Want to use Eclipse as your IDE? See
     [LinuxEclipseDev](linux_eclipse_dev.md).