1 |
<! Style Sheet Header>
|
2 |
<html>
|
3 |
<head>
|
4 |
<title>binary.html</title>
|
5 |
<body bgcolor="beige">
|
6 |
<! End Style Sheet Header -----------Insert Text Here --------------------->
|
7 |
<center>
|
8 |
<H1>Building Binaries</H1>
|
9 |
<font color=red>S</font>oftware <font color=red>C</font>onfiguration,
|
10 |
<font color=red>R</font>elease <font color=red>A</font>nd
|
11 |
<font color=red>M</font>anagement
|
12 |
</center>
|
13 |
Contents<br>
|
14 |
<ul>
|
15 |
<li><a href=#QS>Quick-Start Build</a>
|
16 |
<li><a href=#BOP>Alternative Build Operations</a>
|
17 |
<li><a href=#Dep>Constructing BuildFiles</a>
|
18 |
</ul>
|
19 |
<hr>
|
20 |
<ol>
|
21 |
<a name=QS>
|
22 |
<h1>Building Operations</h2></a>
|
23 |
<li><h2>Quick-Start -- for PreDefined Builds</h2>
|
24 |
Goto the directory of the binary source files
|
25 |
<font +1>
|
26 |
<p>
|
27 |
<b>cd <em>binary_dir</em></b>
|
28 |
<p>
|
29 |
</font>
|
30 |
Start the build process
|
31 |
<p>
|
32 |
<font +1>
|
33 |
<b>scram build</b>
|
34 |
</font>
|
35 |
<p>
|
36 |
Setup your environment
|
37 |
<p>
|
38 |
<font +1>
|
39 |
<b>eval `scram runtime -csh`</b>
|
40 |
</font>
|
41 |
For csh like shells
|
42 |
<br>
|
43 |
or<br>
|
44 |
<font +1>
|
45 |
<b>eval `scram runtime -sh`</b>
|
46 |
</font>
|
47 |
For sh like shells
|
48 |
<p>
|
49 |
rehash for your shell.
|
50 |
<p>
|
51 |
<font +1>
|
52 |
<b>rehash</b>
|
53 |
</font>
|
54 |
<p>
|
55 |
Just type the executable name to run ...
|
56 |
<p>
|
57 |
<li><a name=BOP><h2>Alternative Build Operations</h2></a>
|
58 |
There are a number of targets available to help you specify exactly what you
|
59 |
wish to build. <br>
|
60 |
If no target is specified a default action is performed
|
61 |
which is defined according to the policy of the given project.
|
62 |
<p>
|
63 |
<h3>General Invocation</h3>
|
64 |
<font +1>
|
65 |
<b>scram build <em>target_name</em></b>
|
66 |
</font>
|
67 |
<p>
|
68 |
The target names available will be listed with the <b>scram build help</b> command
|
69 |
</ol>
|
70 |
<a name=Def>
|
71 |
<h1>Constructing a BuildFile to describe a binary</h1>
|
72 |
<ol>
|
73 |
<li><h2>The <bin> tag</h2>
|
74 |
Syntax
|
75 |
<pre>
|
76 |
<bin file=<em>filename</em> [name=alternativename]>
|
77 |
You can add some descriptive documentation for your executable here - how about a href?
|
78 |
</bin>
|
79 |
</pre>
|
80 |
Every executable to be made must have a corresponding bin tag in the BuildFile. <p>
|
81 |
The optional <b>name=</b>
|
82 |
argument allows you to change the name from the default (which is the filename
|
83 |
less the subscript)
|
84 |
<p>
|
85 |
<li><a name=Dep><h2>Specifying Dependencies</h2></a>
|
86 |
A binary can depend on many other elements. Currently scram supports the concepts and associated
|
87 |
tags as given in the table below :
|
88 |
<table>
|
89 |
<tr>
|
90 |
<td><font color=green>
|
91 |
<external ref=<em>external_product_ref</em>></font></td>
|
92 |
<td>
|
93 |
Specify that the build requires some external product
|
94 |
(e.g. libraries, header files etc.). Currently the only supported ref is
|
95 |
a simple name label set at the project level. Such names are part of the project configuration.
|
96 |
</td>
|
97 |
</tr>
|
98 |
<tr>
|
99 |
<td><font color=green>
|
100 |
<lib name=<em>libname</em>></font></td>
|
101 |
<td>Add a library name to the link line. It is assumed that the libraries can be found in the
|
102 |
standard scram search paths</td>
|
103 |
</tr>
|
104 |
<tr>
|
105 |
<td><font color=green>
|
106 |
<Use name=<em>unit_name</em>></font></td>
|
107 |
<td>Inform build system that we require package <em>unit_name</em> in
|
108 |
the build. A package is a unit within the current source code and requires that an appropriate
|
109 |
interface has been defined in the appropriate BuildFile with the
|
110 |
<a href=export.html><export> tags</a>
|
111 |
</td>
|
112 |
</tr>
|
113 |
<tr>
|
114 |
<td><font color=green>
|
115 |
<Group name=<em>group_name</em>></font></td>
|
116 |
<td>Inform build system to set a specific group.
|
117 |
Groups are either containers of other groups (defined at the project configuration level)
|
118 |
, or can be used to switch in/out functionality
|
119 |
from an <a href=export.html><export> interface</a>
|
120 |
</td>
|
121 |
</table>
|
122 |
Each of these tags can be put in the BuildFile to build up an 'Environment' in which the
|
123 |
binary is to be built. The BuildFile itself provides the base environment, however more control
|
124 |
can be achieved using the <Environment> </Environment> tags, to determine its extent.
|
125 |
Any <bin> tag inside the <Environment> delimiters will be associated with that (and any other enclosing) environment.
|
126 |
Note that since the BuildFile is an Environment in itself - it encloses all other Environments and as such any dependency specified outside of an <Environment> tag will apply to all binaries.
|
127 |
<p>
|
128 |
<a href=BuildFileExamples.html>Example BuildFile</a>
|
129 |
</ol>
|
130 |
<! Style Sheet Footer ---------------Do not change anything after this line-->
|
131 |
<hr>
|
132 |
<table border=1 width=100%>
|
133 |
<td align=left>
|
134 |
<a href=mailto:Christopher.Williams@cern.ch
|
135 |
>Chris Williams</a>
|
136 |
</td>
|
137 |
<td align=center>
|
138 |
Last Updated Wed Oct 13 16:20:58 1999
|
139 |
</td>
|
140 |
<td align=right><a href=/cgi-cmc/pagestat>Show Stats</a>
|
141 |
</td>
|
142 |
</table>
|
143 |
</body> </html>
|
144 |
<! End Style Sheet Footer>
|