mozilla

Compare Revisions

Setting up Boot to Gecko Build Environment for Mac OS X

Change Revisions

Revision 217213:

Revision 217213 by marshall_law on

Revision 7296:

Revision 7296 by marshall_law on

Title:
Setting up Boot to Gecko Build Environment for Mac OS X
Setting up Boot to Gecko Build Environment for Mac OS X
Slug:
Mozilla/Boot_to_Gecko/Setting_up_Boot_to_Gecko_Build_Environment_for_Mac_OS_X
Mozilla/Boot_to_Gecko/Setting_up_Boot_to_Gecko_Build_Environment_for_Mac_OS_X
Tags:
"Mac OS X", B2G
"Mac OS X", B2G
Content:

Revision 217213
Revision 7296
t7    <div>t7    REDIRECT <a class="redirect" href="/docs/en/Mozilla/Boot_to_G
 >ecko/B2G_build_prerequisites">en/Mozilla/Boot_to_Gecko/B2G_build_
 >prerequisites</a>
8      <span style="background-color:#ffff00;">This document is cu
>rrently a WIP</span> 
9    </div>
10    <h4>
11      Command Line Tools
12    </h4>
13    <p>
14      To get started, you will need to download and install the <
>a class="external" href="http://developer.apple.com/downloads" ti 
>tle="http://developer.apple.com/downloads">Command Line Tools for 
> Xcode (late March 2012)</a> package from Apple (require an Apple 
> ID, but it is free) 
15    </p>
16    <p>
17      Alternatively, you can install <a class="link-https" href="
>https://developer.apple.com/xcode/" title="https://developer.appl 
>e.com/xcode/">Xcode 4</a> from the Mac App Store, and download th 
>e Command Line Utilities from Xcode. 
18    </p>
19    <h4>
20      Homebrew and gcc-4.2
21    </h4>
22    <p>
23      Most of the requirements needed by B2G are directly install
>able by the <a class="external" href="http://mxcl.github.com/home 
>brew/" title="http://mxcl.github.com/homebrew/">Homebrew</a> pack 
>age manager. To install Homebrew, just run the following in a she 
>ll (copied from the <a class="link-https" href="https://github.co 
>m/mxcl/homebrew/wiki/installation" title="https://github.com/mxcl 
>/homebrew/wiki/installation">Homebrew Installation Wiki</a>): 
24    </p>
25    <pre>
26<code>$ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.githu
>b.com/mxcl/homebrew/master/Library/Contributions/install_homebrew 
>.rb)"</code> 
27</pre>
28    <p>
29      Since B2G requires vanilla gcc to build, and Apple has stop
>ped shipping vanilla gcc with Xcode 4, you will most likely also  
>need to install the gcc-4.2 package from homebrew. This step is o 
>nly necessary if your system does <strong>not</strong> already ha 
>ve vanilla gcc installed. The quickest way to check is to look fo 
>r either <code>/usr/bin/gcc-4.2</code> or <code>/usr/local/bin/gc 
>c-4.2</code> 
30    </p>
31    <p>
32      <strong>Installing apple-gcc42 with homebrew</strong>
33    </p>
34    <p>
35      To install apple-gcc42 with homebrew, the "dupes" source mu
>st be tapped, and then used for installation: 
36    </p>
37    <pre>
38<code>$ brew tap homebrew/dupes
39$ brew install homebrew/dupes/apple-gcc42 </code>
40</pre>
41    <p>
42      You should now see <code>/usr/local/bin/gcc-4.2</code> and 
><code>/usr/local/bin/g++-4.2</code> installed in your system 
43    </p>
44    <h4>
45      Homebrew packages
46    </h4>
47    <p>
48      These packages are also required for building B2G:
49    </p>
50    <pre>
51<code>$ brew install git gpg ccache
52 
53# autoconf-2.13
54$ brew install https://raw.github.com/Homebrew/homebrew-versions/
>master/autoconf213.rb 
55</code>
56</pre>
57    <h4>
58      Creating a Case-sensitive Volume
59    </h4>
60    <p>
61      B2G is currently dependent on the Android Open Source Proje
>ct build system, which requires that the filesystem it is built o 
>n allows for case sensitive file names. Unfortunately, by default 
>, Apple's drives are formatted with HFS+ <strong>without</strong> 
> case sensitivity. If you fall into this category (most Macs will 
>), there are a few routes you can take: 
62    </p>
63    <ol>
64      <li>Create and mount a sparse disk image on your current dr
>ive (recommended) 
65      </li>
66      <li>Use a separate drive or partition that you can format w
>ith HFS+ w/ Case sensitivity (recommended if you have it) 
67      </li>
68      <li>Re-format your current drive and re-install OS X (not r
>ecommended) 
69      </li>
70    </ol>
71    <p>
72      In this guide, we will focus on creating a sparse disk imag
>e, and mounting it. <strong>Note: this step will require 40GB of  
>disk space</strong> 
73    </p>
74    <p>
75      <strong>Create a case-sensitive sparse disk image</strong>
76    </p>
77    <pre>
78<code>$ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled
> HFS+' -size 40g ~/Boot2Gecko.dmg</code> 
79</pre>
80    <p>
81      The sparse dmg should now live at <code>~/Boot2Gecko.dmg.sp
>arseimage</code> 
82    </p>
83    <p>
84      <strong>Automount the sparse disk image</strong>
85    </p>
86    <p>
87      Add the following to the bottom of your <code>~/.profile</c
>ode> (or equivalent <code>~/.bash_profile</code>, <code>~/.zshrc< 
>/code>, etc) 
88    </p>
89    <pre>
90<code>if [ ! -d "/Volumes/Boot2Gecko" ]; then
91    hdiutil attach ~/Boot2Gecko.dmg.sparseimage -mountpoint /Volu
>mes/Boot2Gecko 
92fi
93</code>
94</pre>
95    <p>
96      This automatically mounts the Boot2Gecko volume when a shel
>l session is opened, but only if it hasn't already been mounted.  
>You can now have your Volume mounted by opening a new shell or ru 
>nning <code>source ~/.profile</code> 
97    </p>
98    <h4>
99      Cloning and Building B2G
100    </h4>
101    <p>
102      <span style="font-weight: bold;">M</span><strong>ake sure y
>ou clone into the case-sensitive volume</strong>. If you followed 
> the steps from above, you would simply use these commands: 
103    </p>
104    <pre>
105<code>$ cd /Volumes/Boot2Gecko
106$ git clone git://github.com/mozilla-b2g/B2G.git
107</code>
108</pre>
109    <p>
110      If your needed to install apple-gcc42 from above, you will 
>now need to set&nbsp; <code>HOST_CC</code> and <code>HOST_CXX</co 
>de> in the <code>.userconfig</code> file under your B2G directory 
>: 
111    </p>
112    <pre>
113<code>MAKE_FLAGS+=" HOST_CC=/usr/local/bin/gcc-4.2 HOST_CXX=/usr/
>local/bin/g++-4.2"</code> 
114</pre>
115    <p>
116      Now, you can configure and build B2G as normal. See the <a 
>class="link-https" href="https://github.com/mozilla-b2g/B2G/blob/ 
>master/README.md" title="https://github.com/mozilla-b2g/B2G/blob/ 
>master/README.md">B2G README.md</a> for more details 
117    </p>

Back to History