Code Monkey home page Code Monkey logo

icecc-osx-moztor's Introduction

Icecream Setup for Mac OS X (Mozilla Toronto Office)

Want to build a clobber of Firefox in 5 minutes on your Mac laptop in the Toronto office? Here are the instructions for you!

Instructions

Install the prerequisites (I recommend using homebrew)

$ xcode-select --install
$ brew install lzo

Clone this repository, this will take a while because it contains a binary copy of a clang toolchain (which is a gross thing to keep in git, I know)

$ git clone https://github.com/mystor/icecc-osx-moztor ~/icecream

Install the daemon. This will create a launchd plist which will be run on startup. The argument passed to the install.sh script is the scheduler to connect to.

$ sudo ~/icecream/install.sh 10.242.24.68

Update your mozconfig to point cc and c++ to the compiler wrappers

CC="$HOME/icecream/cc"
CXX="$HOME/icecream/c++"

Build firefox with sufficient jobs to saturate your network! (NOTE: If you get failures due to posix_spawn failing, use a lower job count, as your computer is failing to create more processes).

$ ./mach build -j100

Important Notes

Use a wired connection when building with icecream. Performance over WiFi is not nearly as good as performance over a wired LAN connection. On the same note, I also discourage you from building over the VPN due to latency issues.

If your builds seem to be hanging without building, you can try restarting your iceccd. The easiest way to do that is to find it in Activity Monitor and kill it, the launchd should restart it automatically.

Using with non-firefox builds

Setting the CC and CXX environment variables like in the mozconfig will probably do the right thing for just about any build system. Just make sure to set the job count high enough.

Work in Progress

Currently the version of iceccd running locally doesn't dispatch objective-c files to the network, instead building them locally. This greatly slows down the build, at least partially because many of the jobs are taken up with waiting objective-c builds. To fix this, the icecream daemons on every computer in the office will need to be patched with Benoit's patch, but this hasn't been done yet.

How do I watch it work?

Either ask someone on a linux computer to run icemon to get pretty graphics, or telnet into the server,

$ telnet 10.242.24.68 8766

icecc-osx-moztor's People

Contributors

legnaleurc avatar mystor avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.