1 |
sashby |
1.1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
2 |
|
|
|
3 |
|
|
<!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4
|
4 |
|
|
patched version by: Kenshi Muto, Debian Project.
|
5 |
|
|
LaTeX2HTML 2002 (1.62),
|
6 |
|
|
original version by: Nikos Drakos, CBLU, University of Leeds
|
7 |
|
|
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
8 |
|
|
* with significant contributions from:
|
9 |
|
|
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
10 |
|
|
<HTML>
|
11 |
|
|
<HEAD>
|
12 |
|
|
<TITLE>3.2 The SCRAM Build System and the BuildFile</TITLE>
|
13 |
|
|
<META NAME="description" CONTENT="3.2 The SCRAM Build System and the BuildFile">
|
14 |
|
|
<META NAME="keywords" CONTENT="SCRAM">
|
15 |
|
|
<META NAME="resource-type" CONTENT="document">
|
16 |
|
|
<META NAME="distribution" CONTENT="global">
|
17 |
|
|
|
18 |
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
19 |
|
|
<META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4">
|
20 |
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
21 |
|
|
|
22 |
|
|
<LINK REL="STYLESHEET" HREF="SCRAM.css">
|
23 |
|
|
|
24 |
|
|
<LINK REL="next" HREF="node30.html">
|
25 |
|
|
<LINK REL="previous" HREF="node18.html">
|
26 |
|
|
<LINK REL="up" HREF="node17.html">
|
27 |
|
|
<LINK REL="next" HREF="node26.html">
|
28 |
|
|
</HEAD>
|
29 |
|
|
|
30 |
|
|
<BODY bgcolor="beige" >
|
31 |
|
|
<!--Navigation Panel-->
|
32 |
|
|
<A NAME="tex2html689"
|
33 |
|
|
HREF="node26.html">
|
34 |
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
35 |
|
|
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
36 |
|
|
<A NAME="tex2html683"
|
37 |
|
|
HREF="node17.html">
|
38 |
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
39 |
|
|
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
40 |
|
|
<A NAME="tex2html677"
|
41 |
|
|
HREF="node24.html">
|
42 |
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
43 |
|
|
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
44 |
|
|
<A NAME="tex2html685"
|
45 |
|
|
HREF="node2.html">
|
46 |
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
47 |
|
|
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
48 |
|
|
<A NAME="tex2html687"
|
49 |
|
|
HREF="node85.html">
|
50 |
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
51 |
|
|
SRC="file:/usr/share/latex2html/icons/index.png"></A>
|
52 |
|
|
<BR>
|
53 |
|
|
<B> Next:</B> <A NAME="tex2html690"
|
54 |
|
|
HREF="node26.html">3.2.1 The Project BuildFile</A>
|
55 |
|
|
<B> Up:</B> <A NAME="tex2html684"
|
56 |
|
|
HREF="node17.html">3. Creating and Maintaining</A>
|
57 |
|
|
<B> Previous:</B> <A NAME="tex2html678"
|
58 |
|
|
HREF="node24.html">3.1.3.0.1 Example:</A>
|
59 |
|
|
  <B> <A NAME="tex2html686"
|
60 |
|
|
HREF="node2.html">Contents</A></B>
|
61 |
|
|
  <B> <A NAME="tex2html688"
|
62 |
|
|
HREF="node85.html">Index</A></B>
|
63 |
|
|
<BR>
|
64 |
|
|
<BR>
|
65 |
|
|
<!--End of Navigation Panel-->
|
66 |
|
|
|
67 |
|
|
<H1><A NAME="SECTION00420000000000000000"></A><A NAME="sec:scrambuildsystem"></A><A NAME="658"></A>
|
68 |
|
|
<A NAME="659"></A>
|
69 |
|
|
<BR>
|
70 |
|
|
3.2 The SCRAM Build System and the BuildFile
|
71 |
|
|
</H1>
|
72 |
|
|
In addition to configuration management, <SMALL>SCRAM</SMALL> is a build tool. The
|
73 |
|
|
build system compiles source code into pre-defined build products
|
74 |
|
|
which can be binary executables, shared or archive libraries (with or
|
75 |
|
|
without debugging information), plug-in modules or documentation. The
|
76 |
|
|
<SMALL>SCRAM</SMALL> compilation behaviour is controlled using a <TT>BuildFile</TT>
|
77 |
|
|
document.<A NAME="1848"></A><A NAME="662"></A>
|
78 |
|
|
This particular kind of document does not start with a class
|
79 |
|
|
statement: <SMALL>SCRAM</SMALL> knows about build files from their name, which must
|
80 |
|
|
be <TT>BuildFile</TT> (note the uppercase letters!). A
|
81 |
|
|
<TT>BuildFile</TT> only has a significance in a project area.
|
82 |
|
|
|
83 |
|
|
<P>
|
84 |
|
|
The valid tags that can be used in a <TT>BuildFile</TT> are-
|
85 |
|
|
<A NAME="1849"></A>
|
86 |
|
|
<DL>
|
87 |
|
|
<DT><STRONG><<TT>bin</TT> file=<I>filename</I> [name=<I>name</I>]> </STRONG></DT>
|
88 |
|
|
<DD>
|
89 |
|
|
<BR>
|
90 |
|
|
Specify an executable to build. The name of the executable can be
|
91 |
|
|
changed using the optional <I>name</I> argument, otherwise the
|
92 |
|
|
name will be the same as <I>filename</I>, less the file ending
|
93 |
|
|
(typically `.cpp').
|
94 |
|
|
</DD>
|
95 |
|
|
<DT><STRONG><<TT>module</TT> file=<I>filename</I> [name=<I>name</I>]> </STRONG></DT>
|
96 |
|
|
<DD>
|
97 |
|
|
<BR>
|
98 |
|
|
Specify a plug-in module to build. The name of the module can be
|
99 |
|
|
changed using the optional <I>name</I> argument.
|
100 |
|
|
</DD>
|
101 |
|
|
<DT><STRONG><<TT>environment</TT>> </<TT>environment</TT>> </STRONG></DT>
|
102 |
|
|
<DD>
|
103 |
|
|
<BR>
|
104 |
|
|
Define an environment specification. Any binary tag enclosed within
|
105 |
|
|
these tags will have that environment. The <<TT>Environment</TT>>
|
106 |
|
|
tags in a <TT>BuildFile</TT> have similar behaviour to those in a
|
107 |
|
|
<TT>ToolDoc</TT>. Environments can be cascaded.
|
108 |
|
|
</DD>
|
109 |
|
|
<DT><STRONG><<TT>export</TT> [autoexport=<I>true</I>|<I>false</I>]> </<TT>export</TT>> </STRONG></DT>
|
110 |
|
|
<DD>
|
111 |
|
|
<BR>
|
112 |
|
|
A software unit can be declared and exported in any
|
113 |
|
|
<<TT>Environment</TT>> block. The interface is defined by listing
|
114 |
|
|
the libraries (for example, those corresponding to a complete
|
115 |
|
|
subsystem) that are to be exported.
|
116 |
|
|
</DD>
|
117 |
|
|
<DT><STRONG><<TT>external</TT> ref=<I>name</I> [use=<I>subsystem</I>]> </STRONG></DT>
|
118 |
|
|
<DD>
|
119 |
|
|
<BR>
|
120 |
|
|
Specify that there is a dependency on an external product. The
|
121 |
|
|
libraries exported by the subsystem <I>subsystem</I> can be
|
122 |
|
|
included by using the optional `use=<I>subsystem</I>' argument.
|
123 |
|
|
</DD>
|
124 |
|
|
<DT><STRONG><<TT>lib</TT> name=<I>libname</I>> </STRONG></DT>
|
125 |
|
|
<DD>
|
126 |
|
|
<BR>
|
127 |
|
|
Add a library to the list of libraries passed to the linker.
|
128 |
|
|
</DD>
|
129 |
|
|
<DT><STRONG><<TT>use</TT> name=<I>unitname</I>> </STRONG></DT>
|
130 |
|
|
<DD>
|
131 |
|
|
<BR>
|
132 |
|
|
Inform the build system that all libraries contained within the
|
133 |
|
|
exported unit <I>unitname</I> should be used. The interface to
|
134 |
|
|
<I>unitname</I> must be defined.
|
135 |
|
|
</DD>
|
136 |
|
|
<DT><STRONG><<TT>group</TT> name=<I>groupname</I>> </STRONG></DT>
|
137 |
|
|
<DD>
|
138 |
|
|
<BR>
|
139 |
|
|
Specify that all products defined within the group
|
140 |
|
|
<I>groupname</I> should be used.
|
141 |
|
|
</DD>
|
142 |
|
|
<DT><STRONG><<TT>include_path</TT> path=<I>path</I>> </STRONG></DT>
|
143 |
|
|
<DD>
|
144 |
|
|
<BR>
|
145 |
|
|
Add the path <I>path</I> to the global <TT>INCLUDE</TT> path
|
146 |
|
|
passed to the compiler.
|
147 |
|
|
</DD>
|
148 |
|
|
<DT><STRONG><<TT>ignore</TT>> </<TT>ignore</TT>> </STRONG></DT>
|
149 |
|
|
<DD>
|
150 |
|
|
<BR>
|
151 |
|
|
Any tags enclosed between <<TT>ignore</TT>> tags will be ignored.
|
152 |
|
|
Note that this should <I>n</I>ot be used for comments.
|
153 |
|
|
</DD>
|
154 |
|
|
<DT><STRONG><<TT>libtype</TT> type=<I>type</I>> </<TT>libtype</TT>> </STRONG></DT>
|
155 |
|
|
<DD>
|
156 |
|
|
<BR>
|
157 |
|
|
Specify the type of library that should be built. The <I>type</I>
|
158 |
|
|
can be <I>shared</I>, <I>archive</I>, <I>debug_shared</I> or
|
159 |
|
|
<I>debug_archive</I>. This option overrides the project defaults.
|
160 |
|
|
</DD>
|
161 |
|
|
</DL>
|
162 |
|
|
|
163 |
|
|
<P>
|
164 |
|
|
<BR><HR>
|
165 |
|
|
<!--Table of Child-Links-->
|
166 |
|
|
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
167 |
|
|
|
168 |
|
|
<UL>
|
169 |
|
|
<LI><A NAME="tex2html691"
|
170 |
|
|
HREF="node26.html">3.2.1 The Project BuildFile</A>
|
171 |
|
|
<UL>
|
172 |
|
|
<LI><A NAME="tex2html692"
|
173 |
|
|
HREF="node27.html">3.2.1.0.1 <I>ClassPath Example</I>:</A>
|
174 |
|
|
<LI><A NAME="tex2html693"
|
175 |
|
|
HREF="node28.html">3.2.1.0.2 <I>ProductStore Example</I>:</A>
|
176 |
|
|
</UL>
|
177 |
|
|
<BR>
|
178 |
|
|
<LI><A NAME="tex2html694"
|
179 |
|
|
HREF="node29.html">3.2.2 Compiler Support</A>
|
180 |
|
|
</UL>
|
181 |
|
|
<!--End of Table of Child-Links-->
|
182 |
|
|
<HR>
|
183 |
|
|
<!--Navigation Panel-->
|
184 |
|
|
<A NAME="tex2html689"
|
185 |
|
|
HREF="node26.html">
|
186 |
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
187 |
|
|
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
188 |
|
|
<A NAME="tex2html683"
|
189 |
|
|
HREF="node17.html">
|
190 |
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
191 |
|
|
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
192 |
|
|
<A NAME="tex2html677"
|
193 |
|
|
HREF="node24.html">
|
194 |
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
195 |
|
|
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
196 |
|
|
<A NAME="tex2html685"
|
197 |
|
|
HREF="node2.html">
|
198 |
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
199 |
|
|
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
200 |
|
|
<A NAME="tex2html687"
|
201 |
|
|
HREF="node85.html">
|
202 |
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
203 |
|
|
SRC="file:/usr/share/latex2html/icons/index.png"></A>
|
204 |
|
|
<BR>
|
205 |
|
|
<B> Next:</B> <A NAME="tex2html690"
|
206 |
|
|
HREF="node26.html">3.2.1 The Project BuildFile</A>
|
207 |
|
|
<B> Up:</B> <A NAME="tex2html684"
|
208 |
|
|
HREF="node17.html">3. Creating and Maintaining</A>
|
209 |
|
|
<B> Previous:</B> <A NAME="tex2html678"
|
210 |
|
|
HREF="node24.html">3.1.3.0.1 Example:</A>
|
211 |
|
|
  <B> <A NAME="tex2html686"
|
212 |
|
|
HREF="node2.html">Contents</A></B>
|
213 |
|
|
  <B> <A NAME="tex2html688"
|
214 |
|
|
HREF="node85.html">Index</A></B>
|
215 |
|
|
<!--End of Navigation Panel-->
|
216 |
|
|
<ADDRESS>
|
217 |
|
|
scram-developers@cern.ch
|
218 |
|
|
</ADDRESS>
|
219 |
|
|
</BODY>
|
220 |
|
|
</HTML>
|