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>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> |