# Get the code: check out, build, and run Chromium. 

Chromium supports building on Windows, Mac and Linux host systems.

Linux is required for building Android, and a Mac is required for building iOS.

The process for building Chrome is generally the same on all platforms, but
each platform has a few quirks. In order to keep you from having to jump
all over the place, we have a self-contained page for each configuration
you might want to build:

* [Android](android_build_instructions.md)
* [Android Cast](android_cast_build_instructions.md)
* [Chrome OS](chromeos_build_instructions.md)
* [Fuchsia](fuchsia_build_instructions.md)
* [iOS](ios/build_instructions.md)
* [Linux](linux_build_instructions.md)
* [Linux Cast](linux_cast_build_instructions.md)
* [Mac](mac_build_instructions.md)
* [Windows](windows_build_instructions.md)
