forked from Imagelibrary/rtems
* README.configure, aclocal/bsp-alias.m4, aclocal/check-bsps.m4: Recognize the the GDB SuperH simulator is just an architectural simulator and does not include devices. Rename existing simulator BSP configurations to simsh1 and simsh2 and add simsh4.
264 lines
8.5 KiB
Plaintext
264 lines
8.5 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.59 and automake-1.8 are required.
|
|
|
|
2. Installation
|
|
===============
|
|
|
|
2.1 Standalone build
|
|
|
|
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
|
|
--disable-itron
|
|
--disable-networking
|
|
--enable-cxx
|
|
--enable-bare-cpu-model=<MODEL>
|
|
--enable-bare-cpu-cflags=<FLAGS>
|
|
--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:
|
|
|
|
(none) will build the host-based version on Linux, Solaris and HPUX.
|
|
|
|
arm-rtems4.9
|
|
tic4x-rtems4.9
|
|
h8300-rtems4.9
|
|
i386-rtems4.9
|
|
m68k-rtems4.9
|
|
mips-rtems4.9
|
|
no_cpu-rtems4.9
|
|
powerpc-rtems4.9
|
|
sh-rtems4.9
|
|
sparc-rtems4.9
|
|
bare see notes
|
|
|
|
The cross-compiler is set to $(target)-gcc by default. This can be
|
|
overridden by:
|
|
|
|
+ using the --program-prefix option to configure to specify the
|
|
string which will prepended to the tool names. Be sure to include
|
|
a trailing "-". For example, to use a m68k-coff toolset, use the
|
|
--program-prefix=m68k-coff- option.
|
|
|
|
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-rtems
|
|
|
|
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.
|
|
|
|
2.2 Target Dependent Notes
|
|
|
|
bare:
|
|
|
|
1. See the README in the bare bsp source directory. This should
|
|
contain all info you need.
|
|
2. The bare bsp source contains a script to show how to build it.
|
|
3. The configure flags must be used to get the bare bsp to work.
|
|
The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
|
|
only pieces of information. The module is usually a gcc module
|
|
such as m68302 or mcpu32. The flags are passed directly to gcc.
|
|
Use "" if more than one option is specified.
|
|
|
|
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:
|
|
|
|
host-based : posix (on Linux, FreeBSD, Cygwin, Solaris, and HPUX)
|
|
|
|
arm : csb336 csb337 edb7312 gba gp32 nds rtl22x rtl22xx_t
|
|
smdk2410
|
|
|
|
avr: : none
|
|
|
|
bfin : eZKit533 bf537Stamp
|
|
|
|
c4x : c3xsim c4xsim
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
any : bare
|
|
|
|
The following ports were considered obsoleted after the 4.6 releases
|
|
and were removed: a29k, hppa, i960, mips64orion, and or32.
|
|
|
|
|
|
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.
|
|
|
|
The native (posix) ports have been built and run only on Linux.
|
|
|
|
The following configurations have NOT been tested:
|
|
|
|
+ Anything on Nextstep, HPUX and Irix.
|
|
+ The C4x and OR32 ports (requires specially patched toolchain)
|
|
|
|
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.
|