ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/doc/html/binary.html
Revision: 1.4
Committed: Wed May 15 14:23:32 2002 UTC (23 years ago) by sashby
Content type: text/html
Branch: MAIN
CVS Tags: V0_19_6, V0_19_6p1, V0_19_5, SFATEST, V0_19_4, V0_19_4_pre3
Branch point for: V0_19_4_B
Changes since 1.3: +15 -14 lines
Log Message:
Updated documentation.

File Contents

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