mirror of
https://github.com/t-crest/rtems.git
synced 2025-11-16 12:34:47 +00:00
231 lines
7.2 KiB
Plaintext
231 lines
7.2 KiB
Plaintext
#
|
|
# $Id$
|
|
#
|
|
|
|
1. Autoconf support
|
|
===================
|
|
|
|
This version of RTEMS is configured with GNU autoconf. RTEMS can be
|
|
configured and built either standalone or together with the compiler
|
|
tools in the Cygnus one-tree structure. Using autoconf also means
|
|
that RTEMS now can be built in a separate build directory.
|
|
|
|
To re-generate auto*tool generated files (configure, Makefile.in etc),
|
|
autoconf-2.68 and automake-1.11.1 are required.
|
|
|
|
2. Installation
|
|
===============
|
|
|
|
To configure RTEMS for a specific target, run configure in the build
|
|
directory. In addition to the standard configure options, the following
|
|
RTEMS-specific option are supported:
|
|
|
|
--disable-rtems-inlines
|
|
--disable-posix
|
|
--enable-itron
|
|
--disable-networking
|
|
--enable-cxx
|
|
--enable-multiprocessing
|
|
--enable-rtemsbsp="bsp1 bsp2 ..."
|
|
--enable-tests
|
|
--enable-rdbg (only valid for i386 and some PowerPC BSPs)
|
|
--enable-docs
|
|
|
|
In addition, the following standard autoconf options are frequently
|
|
used when configuring RTEMS installations:
|
|
|
|
--prefix=INSTALL_DIRECTORY
|
|
|
|
By default, inline routines are used instead of macros where possible.
|
|
Macros can be selected using the --disable-inlines option. [NOTE:
|
|
Some APIs may not support macro versions of their inline routines.]
|
|
|
|
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
|
|
it. It can be disabled with the --disable-posix option.
|
|
|
|
By default, the RTEMS uITRON interface is built for targets that support
|
|
it. It can be disabled with the --disable-itron option.
|
|
|
|
By default, the RTEMS networking support is built for targets which
|
|
support it. It can be specifically disabled for those targets
|
|
with the --disable-networking option.
|
|
|
|
By default, the RTEMS remote debugger server support is not built.
|
|
It can be specifically enabled for the targets that support it.
|
|
with the --enable-rdbg option. NB : the RTEMS networking support
|
|
must be enabled to support the remote debugger server.
|
|
|
|
By default, the RTEMS support of C++ is disabled. It can be enabled
|
|
with the --enable-cxx option. If the rtems++ C++ library is installed
|
|
it will also be build.
|
|
|
|
By default, the RTEMS test suites are NOT configured -- only the
|
|
sample tests are built. --enable-tests will configure
|
|
the RTEMS test suite. The default speeds up the build
|
|
and configure process when the tests are not desired.
|
|
|
|
By default, RTEMS is built using arguments and build rules which require a
|
|
gcc supporting the -specs option, ie. a gcc >= 2.8.
|
|
[The --disable-gcc28 option, which has been present in former releases, has
|
|
been removed.]
|
|
|
|
By default, multiprocessing is is not built. It can be enabled
|
|
for those BSPs supporting it by the --enable-multiprocessing option.
|
|
|
|
By default, all bsps for a target are built. The bare BSP is not built
|
|
unless directly specified. There are two ways of changing this:
|
|
|
|
+ use the --enable-rtemsbsp option which will set the specified
|
|
bsps as the default bsps, or
|
|
+ set the RTEMS_BSP variable during make (see below).
|
|
|
|
The --enable-rtemsbsp= option configures RTEMS for a specific board
|
|
within a target architecture. Remember that the target specifies the
|
|
CPU family while the BSP specifies the precise board you will be using.
|
|
The following targets are supported:
|
|
|
|
arm-rtems4.10
|
|
avr-rtems4.10
|
|
bfin-rtems4.10
|
|
h8300-rtems4.10
|
|
i386-rtems4.10
|
|
lm32-rtems4.10
|
|
m32c-rtems4.10
|
|
m32r-rtems4.10
|
|
m68k-rtems4.10
|
|
mips-rtems4.10
|
|
no_cpu-rtems4.10
|
|
powerpc-rtems4.10
|
|
sh-rtems4.10
|
|
sparc-rtems4.10
|
|
|
|
The cross-compiler is set to $(target)-gcc by default.
|
|
|
|
To build, run make in the build directory. To specify which bsps to build,
|
|
add the RTEMS_BSP="bsp1 bsp2 .." to the make command. Specifying multiple
|
|
BSPs to build only works from the top level build directory.
|
|
|
|
Installation is done under $(prefix)/rtems.
|
|
|
|
As an example, to build and install the mvme136 and mvme162 bsps for m68k do:
|
|
|
|
(path_to_rtems_src)/configure --target=m68k-rtems4.10
|
|
|
|
make RTEMS_BSP="mvme136 mvme162"
|
|
|
|
make install RTEMS_BSP="mvme136 mvme162"
|
|
|
|
The sample tests are built by 'make all' when configured with
|
|
--enable-tests=samples. Use --enable-tests=all to build the full
|
|
test suite.
|
|
|
|
Documentation is built separately from the source code.
|
|
|
|
3. To use the installed RTEMS library
|
|
=====================================
|
|
|
|
To use the installed RTEMS bsps to build applications, the application
|
|
makefile has to include a bsp-specific makefile that will define the
|
|
RTEMS variables necessary to find include files and libraries. The
|
|
bsp-specific makefile is installed at
|
|
|
|
$(RTEMS_MAKEFILE_PATH)/Makefile.inc
|
|
|
|
For the erc32 bsp installed at /usr/local/cross, the environment
|
|
variable RTEMS_MAKEFILE_PATH would be set as follows to the
|
|
following:
|
|
|
|
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
|
|
|
|
4. Supported target bsps
|
|
========================
|
|
|
|
The following bsps are supported:
|
|
|
|
arm : csb336 csb337 edb7312 gba gp32 nds rtl22x rtl22xx_t
|
|
smdk2410
|
|
|
|
avr: : avrtest
|
|
|
|
bfin : eZKit533 bf537Stamp
|
|
|
|
h8300 : h8sim
|
|
|
|
i386 : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
|
|
NOTE: The "pc386" BSP can be compiled to support a
|
|
variety of PC configurations including PC-104
|
|
based solutions.
|
|
|
|
lm32: : lm32_evr
|
|
|
|
m32c : m32csim
|
|
|
|
m32r : m32rsim
|
|
|
|
m68k : av5282 csb360 gen68302 gen68360 gen68360_040
|
|
genmcf548x idp mcf5206elite mcf52235 mcf5235 mcf5239
|
|
m5484FireEngine mrm332 mvme136 mvme147s mvme162 mvme162lx
|
|
mvme167 ods68302 pgh360 sim68000 simcpu32 uC5282 COBRA5475
|
|
|
|
no_cpu : no_bsp (porting example)
|
|
|
|
mips : csb350 genmongoosev hurricane jmr3904 rbtx4925 rbtx4938
|
|
p4600 p4650
|
|
|
|
powerpc : brs5l ep1a gen5200 gen83xx haleakala hsc_cm01 icecube
|
|
mbx821_001 mbx821_002 mbx821_002b mbx860_001b mbx860_002
|
|
mbx860_005b mcp750 mvme2100 mvme2307 mtx603e
|
|
mvme5500 mpc55xxevb mpc8260ads mpc8313erdb mpc8349eamds
|
|
pghplus pm520_cr825 pm520_ze30 psim score603e ss555
|
|
tqm8xx_stk8xx virtex
|
|
|
|
NOTE: The "motorola_powerpc" BSP is a single BSP which
|
|
can be conditionally compiled to support most Motorola
|
|
VMEbus, CompactPCI, and MTX boards.)
|
|
|
|
NOTE: The mbx8xx, gen5200, gen83xx, and tqm8xx BSPs are
|
|
designed to handle a variety of boards based on the same
|
|
family of system on chips CPUs
|
|
|
|
sh : gensh1 gensh2 gensh4 simsh1 simsh2 simsh4
|
|
|
|
sparc : erc32 sis leon2 leon3
|
|
|
|
5. Makefile structure
|
|
=====================
|
|
|
|
The makefiles have been re-organized. Most gnu-based bsps now use three
|
|
main makefiles:
|
|
+ custom/default.cfg,
|
|
+ custom/bsp.cfg and
|
|
+ compilers/gcc-target-default.cfg.
|
|
|
|
Default.cfg sets the default values of certain common build options.
|
|
|
|
Bsp.cfg set bsp-specific build options and can also override the
|
|
default settings.
|
|
|
|
Gcc-target-default.cfg contains the common gcc definitions.
|
|
|
|
6. Adding a bsp
|
|
===============
|
|
|
|
Please refer to the BSP and Device Driver Guide.
|
|
|
|
|
|
7. Tested configurations
|
|
========================
|
|
|
|
All gnu-based bsps have been built on Linux.
|
|
|
|
8. Prerequisites
|
|
================
|
|
|
|
Gawk version 2 or higher.
|
|
GNU make version 3.72 or higher.
|
|
Bash.
|
|
gcc version > 2.8
|
|
|
|
NOTE: These prerequisites are probably out of date but autoconf should detect
|
|
any problems.
|