source: rtems/doc/started/require.t @ 6449498

4.104.114.84.95
Last change on this file since 6449498 was 6449498, checked in by Joel Sherrill <joel.sherrill@…>, on 01/17/02 at 21:47:47

2001-01-17 Joel Sherrill <joel@…>

  • SUPPORT, LICENSE: New files.
  • Numerous files touched as part of merging the 4.5 branch onto the mainline development trunk and ensuring that the script that cuts snapshots and releases works on the documentation.
  • Property mode set to 100644
File size: 7.0 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-2002.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@chapter Requirements
10
11This chapter describes the build-host system requirements and initial steps
12in installing the GNU C/C++ Cross Compiler Tools and RTEMS on a build-host.
13
14@section Disk Space
15
16A fairly large amount of disk space is required to perform the build of the
17GNU C/C++ Cross Compiler Tools for RTEMS. The following table may help in
18assessing the amount of disk space required for your installation:
19
20@example
21+------------------------------------+--------------------------+
22|              Component             |   Disk Space Required    |
23+------------------------------------+--------------------------+
24|        archive directory           |        35 Mbytes         |
25|        tools src unarchived        |       150 Mbytes         |
26|  each individual build directory   |     up to 500 Mbytes     |
27|     each installation directory    |      20-200 Mbytes       |
28+------------------------------------+--------------------------+
29@end example
30
31It is important to understand that the above requirements only address
32the GNU C/C++ Cross Compiler Tools themselves.  Adding additional
33languages such as Fortran or Objective-C can increase the size
34of the build and installation directories.  Also, the unarchived
35source and build directories can be removed after the tools are
36installed.
37
38After the tools themselves are installed, RTEMS must be built
39and installed for each Board Support Package that you wish
40to use.  Thus the precise amount of disk space required
41for each installation directory depends highly on the number
42of RTEMS BSPs which are to be installed.  If a single BSP is
43installed, then the additional size of each install directory
44will tend to be in the 40-60 Mbyte range.
45
46There are a number of factors which must be taken into
47account in order to estimate the amount of disk space required
48to build RTEMS itself.  Attempting to build multiple BSPs in
49a single step increases the disk space requirements.  Similarly
50enabling optional features increases the build and install
51space requirements.  In particular, enabling and building
52the RTEMS tests results in a significant increase in build
53space requirements but since the tests are not installed has,
54enabling them has no impact on installation requirements.
55
56@section General Host Software Requirements
57
58The instructions in this manual should work on any computer running
59a UNIX variant.  Some native GNU tools are used by this procedure
60including:
61
62@itemize @bullet
63@item GCC
64@item GNU make
65@item GNU makeinfo
66@end itemize
67
68In addition, some native utilities may be deficient for building
69the GNU tools.
70
71@subsection GCC
72
73Although RTEMS itself is intended to execute on an embedded target,
74there is source code for some native programs included with the RTEMS
75distribution.  Some of these programs are used to assist in the building
76of RTEMS itself, while others are BSP specific tools.  Regardless,
77no attempt has been made to compile these programs with a non-GNU
78compiler.
79
80@subsection GNU Make
81
82Both NEWLIB and RTEMS use GNU make specific features and can only be built
83using GNU make.  Many systems include a make utility that is not GNU make.
84The safest way to meet this requirement is to ensure that when you invoke
85the command @code{make}, it is GNU make.  This can be verified by
86attempting to print the GNU make version information:
87
88@example
89make --version
90@end example
91
92If you have GNU make and another make on your system, it is common to put
93the directory containing GNU make before the directory containing other
94implementations of make.
95
96@subsection GNU makeinfo Version Requirements
97
98In order to build gcc 2.9.x or newer versions, the GNU @code{makeinfo} program
99installed on your system must be at least version 1.68.  The appropriate
100version of @code{makeinfo} is distributed with @code{gcc}.
101
102The following demonstrates how to determine the version of @code{makeinfo}
103on your machine:
104
105@example
106makeinfo --version
107@end example
108
109@c
110@c  Host Specific Notes
111@c
112
113@section Host Specific Notes
114
115@subsection Solaris 2.x
116
117The following problems have been reported by Solaris 2.x users:
118
119@itemize @bullet
120
121@item The build scripts are written in "shell".  The program @code{/bin/sh}
122on Solaris 2.x is not robust enough to execute these scripts.  If you
123are on a Solaris 2.x host, then change the first line of the files
124@code{bit}, @code{bit_gdb}, and @code{bit_rtems} to use the
125@code{/bin/ksh} shell instead.
126
127@item The native @code{patch} program is broken.  Install the GNU version.
128
129@item The native @code{m4} program is deficient.  Install the GNU version.
130
131@end itemize
132
133@subsection Linux
134
135The following problems have been reported by Linux users:
136
137@itemize @bullet
138
139@item Certain versions of GNU fileutils include a version of
140@code{install} which does not work properly.  Please perform
141the following test to see if you need to upgrade:
142
143@example
144install -c -d /tmp/foo/bar
145@end example
146
147If this does not create the specified directories your install
148program will not install RTEMS properly.   You will need to upgrade
149to at least GNU fileutils version 3.16 to resolve this problem.
150
151@end itemize
152
153@section Archive and Build Directories
154
155If you are using RPM or another packaging format that supports
156building a package from source, then there is probably a directory
157structure assumed by that packaging format.  Otherwise, you
158are free to use whatever organization you like.  However, this
159document will use the directory organization described
160in @ref{Archive and Build Directory Format}.
161
162@subsection RPM Archive and Build Directory Format
163
164For RPM, it is assumed that the following subdirectories
165are under a root directory such as @code{/usr/src/redhat}:
166
167@example
168BUILD
169RPMS
170SOURCES
171SPECS
172SRPMS
173@end example
174
175For the purposes of this document, the RPM @code{SOURCES} directory
176is the directory into which all tool source and patches are
177assumed to reside.  The @code{BUILD} directory is where the actual
178build is performed when building binaries from a source RPM.
179The @code{SOURCES} and @code{BUILD} are logically equivalent to
180the @code{archive} and @code{tools} directory discussed in the
181next section.
182
183@subsection Archive and Build Directory Format
184
185When no packaging format requirements are present, the root directory for
186the storage of source archives and patches as well as for building the
187tools is up to the user.  The only concern is that there be enough
188disk space to complete the build.
189
190Make an @code{archive} directory to contain the downloaded
191source code and a @code{tools} directory to be used as a build
192directory.  The command sequence to do this is shown
193below:
194
195@example
196mkdir archive
197mkdir tools
198@end example
199
200This will result in an initial directory structure similar to the
201one shown in the following figure:
202
203@example
204@group
205/whatever/prefix/you/choose/
206        archive/
207        tools/
208
209@end group
210@end example
211
212@c @ifset use-html
213@c @html
214@c <IMG SRC="sfile12c.jpg" WIDTH=417 HEIGHT=178
215@c      ALT="Starting Directory Organization">
216@c @end html
217@c @end ifset
218
219
Note: See TracBrowser for help on using the repository browser.