ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/doc/html/node17.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. Creating and Maintaining SCRAM-Managed Projects</TITLE>
13     <META NAME="description" CONTENT="3. Creating and Maintaining SCRAM-Managed Projects">
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="node47.html">
25     <LINK REL="previous" HREF="node12.html">
26     <LINK REL="up" HREF="SCRAM.html">
27     <LINK REL="next" HREF="node18.html">
28     </HEAD>
29    
30     <BODY bgcolor="beige" >
31     <!--Navigation Panel-->
32     <A NAME="tex2html547"
33     HREF="node18.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="tex2html541"
37     HREF="SCRAM.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="tex2html535"
41     HREF="node16.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="tex2html543"
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="tex2html545"
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="tex2html548"
54     HREF="node18.html">3.1 SCRAM Configuration Documents</A>
55     <B> Up:</B> <A NAME="tex2html542"
56     HREF="SCRAM.html">SCRAM</A>
57     <B> Previous:</B> <A NAME="tex2html536"
58     HREF="node16.html">2.4 The SCRAM Database</A>
59     &nbsp <B> <A NAME="tex2html544"
60     HREF="node2.html">Contents</A></B>
61     &nbsp <B> <A NAME="tex2html546"
62     HREF="node85.html">Index</A></B>
63     <BR>
64     <BR>
65     <!--End of Navigation Panel-->
66    
67     <H1><A NAME="SECTION00400000000000000000"></A><A NAME="ch:creating"></A><A NAME="415"></A>
68     <A NAME="416"></A>
69     <A NAME="417"></A>
70     <BR>
71     3. Creating and Maintaining SCRAM-Managed Projects
72     </H1>
73     A <SMALL>SCRAM</SMALL>&nbsp;project is a releasable unit covering a particular software
74     domain: for example, separate projects could exist for a basic
75     analysis framework, simulation, reconstruction or visualisation.
76     Build products like libraries and executables can have separate
77     storage areas and a configuration directory contains all the
78     files necessary to allow <SMALL>SCRAM</SMALL>&nbsp;to configure a dedicated project
79     release area for a version of the project. External requirements are
80     configured automatically. Local conventions impose the structure
81     of the project but this can be chosen arbitrarily-
82     <SMALL>SCRAM</SMALL>&nbsp;does not impose any restrictions on project structure and it is
83     easy to modify <SMALL>SCRAM</SMALL>&nbsp;build behaviour to suit. However, past
84     experience has resulted in the following conventions and the ensuing
85     text is based on this experience.<A NAME="418"></A><A NAME="419"></A>
86     A project is subdivided into <TT>subsystems</TT> and
87     <TT>packages</TT> according to the tree structure of the source code
88     directory. Typically, a package is built into a library but
89     the build products that correspond to a certain set of source files in
90     a certain location can be freely modified to suit the project. Source
91     files and header files have separate directories <TT>src</TT> and
92     <TT>interface</TT> respectively. An additional directory called
93     <TT>test</TT> can be used as a location to build binary executables
94     for testing.
95    
96     <DIV ALIGN="CENTER"><A NAME="fig:recprojstruct"></A><A NAME="1827"></A>
97     <TABLE>
98     <CAPTION ALIGN="BOTTOM"><STRONG>Figure 3.1:</STRONG>
99     Recommended <SMALL>SCRAM</SMALL>&nbsp;project structure. The directories
100     <TT>tmp</TT> and <TT>logs</TT> are created
101     automatically and directories for build products
102     like <TT>lib</TT> and <TT>bin</TT>
103     are created as appropriate given instructions
104     read from a project build file.</CAPTION>
105     <TR><TD><IMG
106     WIDTH="526" HEIGHT="308" BORDER="0"
107     SRC="img1.png"
108     ALT="\begin{figure}\index{project structure!recommended}
109     \begin{center}
110     \leavevmode...
111     ...ig{file=images/projectstructure.eps, width=\linewidth}
112     \end{center}\end{figure}"></TD></TR>
113     </TABLE>
114     </DIV>
115     The corresponding <SMALL>SCRAM</SMALL>&nbsp;project structure
116     consists of a directory tree like that shown in
117     Figure&nbsp;<A HREF="node17.html#fig:recprojstruct">3.1</A>.
118    
119     <P>
120     There are several steps to initialising a <SMALL>SCRAM</SMALL>&nbsp;project area: creating
121     <SMALL>SCRAM</SMALL>&nbsp;project configuration files, creating external tool description files
122     and importing both the project files (including source code) and
123     tool files into dedicated CVS repositories.
124     This chapter describes some of the important internal configuration aspects of
125     <SMALL>SCRAM</SMALL>&nbsp;that are used to define projects and should provide all the
126     information required for administrators to configure and maintain a
127     <SMALL>SCRAM</SMALL>-managed project. Some examples are also given.
128     Creating the CVS repositories for the project and the toolbox is
129     described in Chapter&nbsp;<A HREF="node47.html#ch:configuringCVSinf">4</A>.
130    
131     <P>
132     <BR><HR>
133     <!--Table of Child-Links-->
134     <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
135    
136     <UL>
137     <LI><A NAME="tex2html549"
138     HREF="node18.html">3.1 SCRAM Configuration Documents</A>
139     <UL>
140     <LI><A NAME="tex2html550"
141     HREF="node19.html">3.1.1 The BootStrapProject Class</A>
142     <UL>
143     <LI><A NAME="tex2html551"
144     HREF="node20.html">3.1.1.0.1 <I>Example</I>:</A>
145     </UL>
146     <LI><A NAME="tex2html552"
147     HREF="node21.html">3.1.2 The RequirementsDoc Class</A>
148     <UL>
149     <LI><A NAME="tex2html553"
150     HREF="node22.html">3.1.2.0.1 <I>Example</I>:</A>
151     </UL>
152     <LI><A NAME="tex2html554"
153     HREF="node23.html">3.1.3 The ToolDoc Class</A>
154     <UL>
155     <LI><A NAME="tex2html555"
156     HREF="node24.html">3.1.3.0.1 <I>Example</I>:</A>
157     </UL>
158     </UL>
159     <BR>
160     <LI><A NAME="tex2html556"
161     HREF="node25.html">3.2 The SCRAM Build System and the BuildFile</A>
162     <UL>
163     <LI><A NAME="tex2html557"
164     HREF="node26.html">3.2.1 The Project BuildFile</A>
165     <UL>
166     <LI><A NAME="tex2html558"
167     HREF="node27.html">3.2.1.0.1 <I>ClassPath Example</I>:</A>
168     <LI><A NAME="tex2html559"
169     HREF="node28.html">3.2.1.0.2 <I>ProductStore Example</I>:</A>
170     </UL>
171     <LI><A NAME="tex2html560"
172     HREF="node29.html">3.2.2 Compiler Support</A>
173     </UL>
174     <BR>
175     <LI><A NAME="tex2html561"
176     HREF="node30.html">3.3 Defining and Exporting Software Units</A>
177     <UL>
178     <LI><A NAME="tex2html562"
179     HREF="node31.html">3.3.1 Defining the Interface</A>
180     <LI><A NAME="tex2html563"
181     HREF="node32.html">3.3.2 Defining Groups</A>
182     <LI><A NAME="tex2html564"
183     HREF="node33.html">3.3.3 Package Applications</A>
184     </UL>
185     <BR>
186     <LI><A NAME="tex2html565"
187     HREF="node34.html">3.4 Using External Libraries</A>
188     <UL>
189     <LI><A NAME="tex2html566"
190     HREF="node35.html">3.4.0.0.1 <I>Example 1</I>:</A>
191     <LI><A NAME="tex2html567"
192     HREF="node36.html">3.4.0.0.2 <I>Example 2</I>:</A>
193     <LI><A NAME="tex2html568"
194     HREF="node37.html">3.4.1 Forcing Library Order</A>
195     </UL>
196     <BR>
197     <LI><A NAME="tex2html569"
198     HREF="node38.html">3.5 Building Binary Executables</A>
199     <UL>
200     <LI><A NAME="tex2html570"
201     HREF="node39.html">3.5.1 Describing a Binary Using a BuildFile</A>
202     <UL>
203     <LI><A NAME="tex2html571"
204     HREF="node40.html">3.5.1.0.1 <I>Example Binary BuildFile</I>:</A>
205     </UL>
206     <LI><A NAME="tex2html572"
207     HREF="node41.html">3.5.2 Describing a Module Using a BuildFile</A>
208     <UL>
209     <LI><A NAME="tex2html573"
210     HREF="node42.html">3.5.2.0.1 <I>Example Module BuildFile</I>:</A>
211     </UL>
212     </UL>
213     <BR>
214     <LI><A NAME="tex2html574"
215     HREF="node43.html">3.6 Defining Additional Build Rules</A>
216     <UL>
217     <LI><A NAME="tex2html575"
218     HREF="node44.html">3.6.0.0.1 <I>Adding a New Rule</I>:</A>
219     </UL>
220     <BR>
221     <LI><A NAME="tex2html576"
222     HREF="node45.html">3.7 Advanced Use of the SCRAM Build Command</A>
223     <LI><A NAME="tex2html577"
224     HREF="node46.html">3.8 Creating SCRAM Project Files</A>
225     </UL>
226     <!--End of Table of Child-Links-->
227     <HR>
228     <!--Navigation Panel-->
229     <A NAME="tex2html547"
230     HREF="node18.html">
231     <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
232     SRC="file:/usr/share/latex2html/icons/next.png"></A>
233     <A NAME="tex2html541"
234     HREF="SCRAM.html">
235     <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
236     SRC="file:/usr/share/latex2html/icons/up.png"></A>
237     <A NAME="tex2html535"
238     HREF="node16.html">
239     <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
240     SRC="file:/usr/share/latex2html/icons/prev.png"></A>
241     <A NAME="tex2html543"
242     HREF="node2.html">
243     <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
244     SRC="file:/usr/share/latex2html/icons/contents.png"></A>
245     <A NAME="tex2html545"
246     HREF="node85.html">
247     <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
248     SRC="file:/usr/share/latex2html/icons/index.png"></A>
249     <BR>
250     <B> Next:</B> <A NAME="tex2html548"
251     HREF="node18.html">3.1 SCRAM Configuration Documents</A>
252     <B> Up:</B> <A NAME="tex2html542"
253     HREF="SCRAM.html">SCRAM</A>
254     <B> Previous:</B> <A NAME="tex2html536"
255     HREF="node16.html">2.4 The SCRAM Database</A>
256     &nbsp <B> <A NAME="tex2html544"
257     HREF="node2.html">Contents</A></B>
258     &nbsp <B> <A NAME="tex2html546"
259     HREF="node85.html">Index</A></B>
260     <!--End of Navigation Panel-->
261     <ADDRESS>
262     scram-developers@cern.ch
263     </ADDRESS>
264     </BODY>
265     </HTML>