mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
* started/buildc.t, started/buildrt.t, started/nt.t, started/require.t, started/sample.t: Review and improve.
220 lines
7.0 KiB
Perl
220 lines
7.0 KiB
Perl
@c
|
|
@c COPYRIGHT (c) 1988-2002.
|
|
@c On-Line Applications Research Corporation (OAR).
|
|
@c All rights reserved.
|
|
@c
|
|
@c $Id$
|
|
@c
|
|
|
|
@chapter Requirements
|
|
|
|
This chapter describes the build-host system requirements and initial steps
|
|
in installing the GNU Cross Compiler Tools and RTEMS on a build-host.
|
|
|
|
@section Disk Space
|
|
|
|
A fairly large amount of disk space is required to perform the build of the
|
|
GNU C/C++ Cross Compiler Tools for RTEMS. The following table may help in
|
|
assessing the amount of disk space required for your installation:
|
|
|
|
@example
|
|
+------------------------------------+--------------------------+
|
|
| Component | Disk Space Required |
|
|
+------------------------------------+--------------------------+
|
|
| archive directory | 55 Mbytes |
|
|
| tools src unarchived | 350 Mbytes |
|
|
| each individual build directory | up to 750 Mbytes |
|
|
| each installation directory | 20-200 Mbytes |
|
|
+------------------------------------+--------------------------+
|
|
@end example
|
|
|
|
It is important to understand that the above requirements only address
|
|
the GNU C/C++ Cross Compiler Tools themselves. Adding additional
|
|
languages such as Fortran or Objective-C can increase the size
|
|
of the build and installation directories. Also, the unarchived
|
|
source and build directories can be removed after the tools are
|
|
installed.
|
|
|
|
After the tools themselves are installed, RTEMS must be built
|
|
and installed for each Board Support Package that you wish
|
|
to use. Thus the precise amount of disk space required
|
|
for each installation directory depends highly on the number
|
|
of RTEMS BSPs which are to be installed. If a single BSP is
|
|
installed, then the additional size of each install directory
|
|
will tend to be in the 40-60 Mbyte range.
|
|
|
|
There are a number of factors which must be taken into
|
|
account in order to estimate the amount of disk space required
|
|
to build RTEMS itself. Attempting to build multiple BSPs in
|
|
a single step increases the disk space requirements. Similarly
|
|
enabling optional features increases the build and install
|
|
space requirements. In particular, enabling and building
|
|
the RTEMS tests results in a significant increase in build
|
|
space requirements but since the tests are not installed has,
|
|
enabling them has no impact on installation requirements.
|
|
|
|
@section General Host Software Requirements
|
|
|
|
The instructions in this manual should work on any computer running
|
|
a UNIX variant. Some native GNU tools are used by this procedure
|
|
including:
|
|
|
|
@itemize @bullet
|
|
@item GCC
|
|
@item GNU make
|
|
@item GNU makeinfo
|
|
@end itemize
|
|
|
|
In addition, some native utilities may be deficient for building
|
|
the GNU tools.
|
|
|
|
@subsection GCC
|
|
|
|
Although RTEMS itself is intended to execute on an embedded target,
|
|
there is source code for some native programs included with the RTEMS
|
|
distribution. Some of these programs are used to assist in the building
|
|
of RTEMS itself, while others are BSP specific tools. Regardless,
|
|
no attempt has been made to compile these programs with a non-GNU
|
|
compiler.
|
|
|
|
@subsection GNU Make
|
|
|
|
Both NEWLIB and RTEMS use GNU make specific features and can only be built
|
|
using GNU make. Many systems include a make utility that is not GNU make.
|
|
The safest way to meet this requirement is to ensure that when you invoke
|
|
the command @code{make}, it is GNU make. This can be verified by
|
|
attempting to print the GNU make version information:
|
|
|
|
@example
|
|
make --version
|
|
@end example
|
|
|
|
If you have GNU make and another make on your system, it is common to put
|
|
the directory containing GNU make before the directory containing other
|
|
implementations of make.
|
|
|
|
@subsection GNU makeinfo Version Requirements
|
|
|
|
In order to build gcc 2.9.x or newer versions, the GNU @code{makeinfo} program
|
|
installed on your system must be at least version 1.68. The appropriate
|
|
version of @code{makeinfo} is distributed with @code{gcc}.
|
|
|
|
The following demonstrates how to determine the version of @code{makeinfo}
|
|
on your machine:
|
|
|
|
@example
|
|
makeinfo --version
|
|
@end example
|
|
|
|
@c
|
|
@c Host Specific Notes
|
|
@c
|
|
|
|
@section Host Specific Notes
|
|
|
|
@subsection Solaris 2.x
|
|
|
|
The following problems have been reported by Solaris 2.x users:
|
|
|
|
@itemize @bullet
|
|
|
|
@item The build scripts are written in "shell". The program @code{/bin/sh}
|
|
on Solaris 2.x is not robust enough to execute these scripts. If you
|
|
are on a Solaris 2.x host, then use the @code{/bin/ksh} or
|
|
@code{/bin/bash} shell instead.
|
|
|
|
@item The native @code{patch} program is broken. Install the GNU version.
|
|
|
|
@item The native @code{m4} program is deficient. Install the GNU version.
|
|
|
|
@end itemize
|
|
|
|
@subsection Linux
|
|
|
|
The following problems have been reported by Linux users:
|
|
|
|
@itemize @bullet
|
|
|
|
@item Certain versions of GNU fileutils include a version of
|
|
@code{install} which does not work properly. Please perform
|
|
the following test to see if you need to upgrade:
|
|
|
|
@example
|
|
install -c -d /tmp/foo/bar
|
|
@end example
|
|
|
|
If this does not create the specified directories your install
|
|
program will not install RTEMS properly. You will need to upgrade
|
|
to at least GNU fileutils version 3.16 to resolve this problem.
|
|
|
|
@end itemize
|
|
|
|
@section Archive and Build Directories
|
|
|
|
If you are using RPM or another packaging format that supports
|
|
building a package from source, then there is probably a directory
|
|
structure assumed by that packaging format. Otherwise, you
|
|
are free to use whatever organization you like. However, this
|
|
document will use the directory organization described
|
|
in @ref{Archive and Build Directory Format}.
|
|
|
|
@subsection RPM Archive and Build Directory Format
|
|
|
|
For RPM, it is assumed that the following subdirectories
|
|
are under a root directory such as @code{/usr/src/redhat}:
|
|
|
|
@example
|
|
BUILD
|
|
RPMS
|
|
SOURCES
|
|
SPECS
|
|
SRPMS
|
|
@end example
|
|
|
|
For the purposes of this document, the RPM @code{SOURCES} directory
|
|
is the directory into which all tool source and patches are
|
|
assumed to reside. The @code{BUILD} directory is where the actual
|
|
build is performed when building binaries from a source RPM.
|
|
The @code{SOURCES} and @code{BUILD} are logically equivalent to
|
|
the @code{archive} and @code{tools} directory discussed in the
|
|
next section.
|
|
|
|
@subsection Archive and Build Directory Format
|
|
|
|
When no packaging format requirements are present, the root directory for
|
|
the storage of source archives and patches as well as for building the
|
|
tools is up to the user. The only concern is that there be enough
|
|
disk space to complete the build. In this document, the following
|
|
organization will be used.
|
|
|
|
Make an @code{archive} directory to contain the downloaded
|
|
source code and a @code{tools} directory to be used as a build
|
|
directory. The command sequence to do this is shown
|
|
below:
|
|
|
|
@example
|
|
mkdir archive
|
|
mkdir tools
|
|
@end example
|
|
|
|
This will result in an initial directory structure similar to the
|
|
one shown in the following figure:
|
|
|
|
@example
|
|
@group
|
|
/whatever/prefix/you/choose/
|
|
archive/
|
|
tools/
|
|
|
|
@end group
|
|
@end example
|
|
|
|
@c @ifset use-html
|
|
@c @html
|
|
@c <IMG SRC="sfile12c.jpg" WIDTH=417 HEIGHT=178
|
|
@c ALT="Starting Directory Organization">
|
|
@c @end html
|
|
@c @end ifset
|
|
|
|
|