diff --git a/README.md b/README.md index 357bbb195d8..46e5014e36e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ The Servo Parallel Browser Project -Servo is a prototype web browser engine written in the [Rust](https://github.com/mozilla/rust) -language. It is currently developed on 64bit OS X and 64bit Linux. +Servo is a prototype web browser engine written in the +[Rust](https://github.com/mozilla/rust) language. It is currently developed on +64bit OS X, 64bit Linux, and Android. Servo welcomes contribution from everyone. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for help getting started. @@ -11,30 +12,29 @@ Servo welcomes contribution from everyone. See On OS X (homebrew): ``` sh -brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb -brew install automake libtool pkg-config python +brew install automake pkg-config python pip install virtualenv ``` On OS X (MacPorts): ``` sh -sudo port install autoconf213 python27 py27-virtualenv +sudo port install python27 py27-virtualenv ``` On Debian-based Linuxes: ``` sh -sudo apt-get install autoconf2.13 curl freeglut3-dev libtool \ +sudo apt-get install curl freeglut3-dev \ libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \ - msttcorefonts gperf g++ automake cmake python-virtualenv \ + msttcorefonts gperf g++ cmake python-virtualenv \ libssl-dev ``` On Fedora: ``` sh -sudo yum install autoconf213 curl freeglut-devel libtool gcc-c++ libXi-devel \ +sudo yum install curl freeglut-devel libtool gcc-c++ libXi-devel \ freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \ fontconfig-devel cabextract ttmkfdir python python-virtualenv expat-devel \ rpm-build openssl-devel @@ -49,33 +49,31 @@ popd On Arch Linux: ``` sh -sudo pacman -S base-devel autoconf2.13 git gperf python2 \ +sudo pacman -S base-devel git gperf python2 \ python2-virtualenv mesa libxrandr libxi libgl glu ttf-font ``` -Note: autoconf 2.13 is required for SpiderMonkey; the autoconf project did not -preserve backwards compatibility after version 2.13, and changing the Firefox -build to work with a newer version is not considered a good use of developers' -time. - Cross-compilation for Android: -Basically, pre-installed Android tools are needed. -See wiki for [details](https://github.com/mozilla/servo/wiki/Building-for-Android) +Pre-installed Android tools are needed. See wiki for +[details](https://github.com/mozilla/servo/wiki/Building-for-Android) ## The Rust compiler -Servo builds its own copy of Rust, so there is no need to provide a Rust -compiler. -If you'd like to know the snapshot revision of Rust which we use, see `./rust-snapshot-hash`. +Servo uses a snapshot Rust compiler to build itself. This is normally a +specific revision of Rust upstream, but sometimes has a backported patch or +two. If you'd like to know the snapshot revision of Rust which we use, see +`./rust-snapshot-hash`. ## Building -Servo cannot be built in-tree; you must create a directory in which to run -configure and make and place the build artifacts. +Servo is built with Cargo, the Rust package manager. We also use Mozilla's +Mach tools to orchestrate the build and other tasks. + +### Normal build ``` sh -git clone https://github.com/servo/servo.git +git clone https://github.com/servo/servo cd servo ./mach build ./mach run tests/html/about-mozilla.html @@ -84,7 +82,7 @@ cd servo ### Building for Android target ``` sh -git clone https://github.com/servo/servo.git +git clone https://github.com/servo/servo cd servo ANDROID_TOOLCHAIN=/path/to/toolchain ANDROID_NDK=/path/to/ndk PATH=$PATH:/path/to/toolchain/bin ./mach build --target arm-linux-androideabi cd ports/android @@ -112,4 +110,5 @@ ANDROID_SDK=/path/to/sdk make install ## Developing -There are lots of mach commands you can use. You can list them with `./mach --help`. +There are lots of mach commands you can use. You can list them with `./mach +--help`.