ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/doc/html/node25.html
Revision: 1.1
Committed: Mon Nov 18 17:50:01 2002 UTC (22 years, 6 months ago) by sashby
Content type: text/html
Branch: MAIN
CVS Tags: V1_pre0, V0_19_7
Branch point for: SCRAM_V1_BRANCH
Log Message:
Generated and added HTML documentation.

File Contents

# User Rev Content
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     &nbsp <B> <A NAME="tex2html686"
60     HREF="node2.html">Contents</A></B>
61     &nbsp <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>&nbsp;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>&nbsp;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>&nbsp;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>&lt;<TT>bin</TT> file=<I>filename</I> [name=<I>name</I>]&gt; </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>&lt;<TT>module</TT> file=<I>filename</I> [name=<I>name</I>]&gt; </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>&lt;<TT>environment</TT>&gt; &lt;/<TT>environment</TT>&gt; </STRONG></DT>
102     <DD>
103     <BR>
104     Define an environment specification. Any binary tag enclosed within
105     these tags will have that environment. The &lt;<TT>Environment</TT>&gt;
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>&lt;<TT>export</TT> [autoexport=<I>true</I>|<I>false</I>]&gt; &lt;/<TT>export</TT>&gt; </STRONG></DT>
110     <DD>
111     <BR>
112     A software unit can be declared and exported in any
113     &lt;<TT>Environment</TT>&gt; 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>&lt;<TT>external</TT> ref=<I>name</I> [use=<I>subsystem</I>]&gt; </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>&lt;<TT>lib</TT> name=<I>libname</I>&gt; </STRONG></DT>
125     <DD>
126     <BR>
127     Add a library to the list of libraries passed to the linker.
128     </DD>
129     <DT><STRONG>&lt;<TT>use</TT> name=<I>unitname</I>&gt; </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>&lt;<TT>group</TT> name=<I>groupname</I>&gt; </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>&lt;<TT>include_path</TT> path=<I>path</I>&gt; </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>&lt;<TT>ignore</TT>&gt;&nbsp;&lt;/<TT>ignore</TT>&gt; </STRONG></DT>
149     <DD>
150     <BR>
151     Any tags enclosed between &lt;<TT>ignore</TT>&gt; tags will be ignored.
152     Note that this should <I>n</I>ot be used for comments.
153     </DD>
154     <DT><STRONG>&lt;<TT>libtype</TT> type=<I>type</I>&gt; &lt;/<TT>libtype</TT>&gt; </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     &nbsp <B> <A NAME="tex2html686"
212     HREF="node2.html">Contents</A></B>
213     &nbsp <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>