1 <pre><code> Getting started with the Userland Consolidation |
1 # Getting started with the Userland Consolidation |
2 </code></pre> |
2 |
3 <p>Getting Started</p> |
3 ## Getting Started |
4 <pre><code>This README provides a very brief overview of the gate, how to retrieve |
4 This README provides a very brief overview of the gate, how to retrieve |
5 a copy, and how to build it. Detailed documentation about the Userland |
5 a copy, and how to build it. Detailed documentation about the Userland |
6 gate can be found in the 'doc' directory. |
6 gate can be found in the 'doc' directory. |
7 </code></pre> |
7 |
8 <p>Overview</p> |
8 ## Overview |
9 <pre><code>The Userland consolidation maintains a project at |
9 The Userland consolidation maintains a project at |
10 |
10 |
11 https://github.com/oracle/solaris-userland |
11 https://github.com/oracle/solaris-userland |
12 |
12 |
13 That repo contains build recipes, patches, IPS manifests, etc. necessary |
13 That repo contains build recipes, patches, IPS manifests, etc. necessary |
14 to download, prep, build, test, package and publish open source software. |
14 to download, prep, build, test, package and publish open source software. |
15 The build infrastructure is similar to that of the SFW consolidation in |
15 The build infrastructure is similar to that of the SFW consolidation in |
16 that it makes use of hierarchical Makefiles which provide dependency and |
16 that it makes use of hierarchical Makefiles which provide dependency and |
17 recipe information for building the components. In order to build the |
17 recipe information for building the components. In order to build the |
18 contents of the Userland gate, you need to clone it. Since you are |
18 contents of the Userland gate, you need to clone it. Since you are |
19 reading this, you probably already have. |
19 reading this, you probably already have. |
20 </code></pre> |
20 |
21 <p>Getting the Bits</p> |
21 ## Getting the Bits |
22 <pre><code>As mentioned, the gate is stored in a Mercurial repository. In order to |
22 As mentioned, the gate is stored in a Mercurial repository. In order to |
23 build or develop in the gate, you will need to clone it. You can do so |
23 build or develop in the gate, you will need to clone it. You can do so |
24 with the following command |
24 with the following command |
25 |
25 |
26 $ git clone https://github.com/oracle/solaris-userland.git /scratch/clone |
26 $ git clone https://github.com/oracle/solaris-userland.git /scratch/clone |
27 |
27 |
42 can cause gmake(1) to perform it's work in parallel by adding '-j (jobs)' |
42 can cause gmake(1) to perform it's work in parallel by adding '-j (jobs)' |
43 to the command line. Second, if you are only interested in working on a |
43 to the command line. Second, if you are only interested in working on a |
44 particular component, you can change directories to that component's |
44 particular component, you can change directories to that component's |
45 directory and use 'gmake download' from that to only get it's source |
45 directory and use 'gmake download' from that to only get it's source |
46 archive. |
46 archive. |
47 </code></pre> |
47 |
48 <p>Building the Bits.</p> |
48 ## Building the Bits. |
49 <pre><code>You can build individual components or the contents of the entire gate. |
49 You can build individual components or the contents of the entire gate. |
50 </code></pre> |
50 |
51 <p>Component build</p> |
51 ### Component build |
52 <pre><code>If you are only working on a single component, you can just build it using |
52 If you are only working on a single component, you can just build it using |
53 following: |
53 following: |
54 |
54 |
55 setup the workspace for building components |
55 setup the workspace for building components |
56 |
56 |
57 $ cd (your-workspace)/components ; gmake setup |
57 $ cd (your-workspace)/components ; gmake setup |
58 |
58 |
59 build the individual component |
59 build the individual component |
60 |
60 |
61 $ cd (component-dir) ; gmake publish |
61 $ cd (component-dir) ; gmake publish |
62 </code></pre> |
62 |
63 <p>Complete Top Down build </p> |
63 ### Complete Top Down build |
64 <pre><code>Complete top down builds are also possible by simply running |
64 Complete top down builds are also possible by simply running |
65 |
65 |
66 $ cd (your-workspace)/components |
66 $ cd (your-workspace)/components |
67 $ gmake publish |
67 $ gmake publish |
68 |
68 |
69 The 'publish' target will build each component and publish it to the |
69 The 'publish' target will build each component and publish it to the |
73 networking enabled, you can pre-download any community source archives into |
73 networking enabled, you can pre-download any community source archives into |
74 your workspace from the global with: |
74 your workspace from the global with: |
75 |
75 |
76 $ cd (your-workspace)/components |
76 $ cd (your-workspace)/components |
77 $ gmake download |
77 $ gmake download |
78 </code></pre> |
78 |
79 <p>You can add parallelism to your builds by adding '-j (jobs)' to your gmake |
79 - You can add parallelism to your builds by adding '-j (jobs)' to your gmake |
80 command line arguments.</p> |
80 command line arguments. |
81 <p>The gate should only incrementally build what it needs to based on what has |
81 - The gate should only incrementally build what it needs to based on what has |
82 changed since you last built it.</p> |
82 changed since you last built it. |