source: rtems/README.configure @ 48e02af

4.115
Last change on this file since 48e02af was 7b31534, checked in by Ralf Corsepius <ralf.corsepius@…>, on 09/27/10 at 04:12:24

2010-09-27 Ralf Corsépius <ralf.corsepius@…>

  • README.configure: Further cleanup.
  • Property mode set to 100644
File size: 7.1 KB
RevLine 
[6f9c75c3]1#
2#  $Id$
3#
[254b4450]4
51. Autoconf support
6===================
7
8This version of RTEMS is configured with GNU autoconf. RTEMS can be
9configured and built either standalone or together with the compiler
10tools in the Cygnus one-tree structure. Using autoconf also means
11that RTEMS now can be built in a separate build directory.
12
[6f6cde6f]13To re-generate auto*tool generated files (configure, Makefile.in etc),
[7b31534]14autoconf-2.68 and automake-1.11.1 are required.
[6f6cde6f]15
[254b4450]162. Installation
17===============
18
19To configure RTEMS for a specific target, run configure in the build
20directory. In addition to the standard configure options, the following
21RTEMS-specific option are supported:
22
[1a63b528]23      --disable-rtems-inlines
24      --disable-posix
25      --disable-networking
26      --enable-cxx
27      --enable-multiprocessing
28      --enable-rtemsbsp="bsp1 bsp2 ..."
29      --enable-tests
30      --enable-rdbg            (only valid for i386 and some PowerPC BSPs)
31      --enable-docs
[254b4450]32
[ede9a691]33In addition, the following standard autoconf options are frequently
34used when configuring RTEMS installations:
35
[1a63b528]36      --prefix=INSTALL_DIRECTORY
[ede9a691]37
[70d27f9]38By default, inline routines are used instead of macros where possible.
39Macros can be selected using the --disable-inlines option.  [NOTE:
40Some APIs may not support macro versions of their inline routines.]
41
42By default, the RTEMS POSIX 1003.1b interface is built for targets that support
[83e39b26]43it. It can be disabled with the --disable-posix option.
44
[f205fe6d]45By default, the RTEMS networking support is built for targets which
46support it.  It can be specifically disabled for those targets
47with the --disable-networking option.
[1f0f3e35]48
[55b8fef2]49By default, the RTEMS remote debugger server support is not built.
50It can be specifically enabled for the targets that support it.
51with the --enable-rdbg option. NB : the RTEMS networking support
52must be enabled to support the remote debugger server.
53
[91333c2]54By default, the RTEMS support of C++ is disabled.  It can be enabled
[e81ef51]55with the --enable-cxx option. If the rtems++ C++ library is installed
[91333c2]56it will also be build.
57
[70d27f9]58By default, the RTEMS test suites are NOT configured -- only the
[6f6cde6f]59sample tests are built.  --enable-tests will configure
[70d27f9]60the RTEMS test suite. The default speeds up the build
[85d8eb2]61and configure process when the tests are not desired.
[83e39b26]62
[6f6cde6f]63By default, RTEMS is built using arguments and build rules which require a
64gcc supporting the -specs option, ie. a gcc >= 2.8.
65[The --disable-gcc28 option, which has been present in former releases, has
66been removed.]
[70d27f9]67
68By default, multiprocessing is is not built.  It can be enabled
69for those BSPs supporting it by the --enable-multiprocessing option.
[58ae19a]70
[cf65c408]71By default, all bsps for a target are built. The bare BSP is not built
[f9e72d3]72unless directly specified. There are  two ways of changing this:
[254b4450]73
[1a63b528]74+ use the --enable-rtemsbsp option which will set the specified
75  bsps as the default bsps, or
76+ set the RTEMS_BSP variable during make (see below).
[254b4450]77
[003d4da]78The --enable-rtemsbsp= option configures RTEMS for a specific board
79within a target architecture.  Remember that the target specifies the
80CPU family while the BSP specifies the precise board you will be using.
81The following targets are supported:
[254b4450]82
[a2a4027]83      arm-rtems4.10
[f6860278]84      avr-rtems4.10
[a2a4027]85      bfin-rtems4.10
86      h8300-rtems4.10
87      i386-rtems4.10
[f6860278]88      lm32-rtems4.10
[a2a4027]89      m32c-rtems4.10
[3fc13ac9]90      m32r-rtems4.10
[a2a4027]91      m68k-rtems4.10
92      mips-rtems4.10
93      no_cpu-rtems4.10
94      powerpc-rtems4.10
95      sh-rtems4.10
96      sparc-rtems4.10
[003d4da]97
[a2a4027]98The cross-compiler is set to $(target)-gcc by default.
[58ae19a]99
[254b4450]100To build, run make in the build directory. To specify which bsps to build,
[9e86f6d6]101add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
102BSPs to build only works from the top level build directory.
[254b4450]103
[84b0f7c9]104Installation is done under $(prefix)/rtems.
[254b4450]105
[17228d13]106As an example, to build and install the mvme136 and mvme162 bsps for m68k do:
[254b4450]107
[7b31534]108      (path_to_rtems_src)/configure --target=m68k-rtems4.11
[254b4450]109
[1a63b528]110      make RTEMS_BSP="mvme136 mvme162"
111     
112      make install RTEMS_BSP="mvme136 mvme162"
[254b4450]113
[5aa1855]114The sample tests are built by 'make all' when configured with
115--enable-tests=samples.  Use --enable-tests=all to build the full
[254b4450]116test suite.
117
[5aa1855]118Documentation is built separately from the source code.
[003d4da]119
[254b4450]1203. To use the installed RTEMS library
121=====================================
122
123To use the installed RTEMS bsps to build applications, the application
124makefile has to include a bsp-specific makefile that will define the
125RTEMS variables necessary to find include files and libraries. The
126bsp-specific makefile is installed at
127
[1a63b528]128      $(RTEMS_MAKEFILE_PATH)/Makefile.inc
[254b4450]129
[f05f704]130For the erc32 bsp installed at /usr/local/cross, the environment
131variable RTEMS_MAKEFILE_PATH would be set as follows to the
132following:
[254b4450]133
[f05f704]134/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
[254b4450]135
1364. Supported target bsps
137========================
138
139The following bsps are supported:
140
[5aa1855]141arm             : csb336 csb337 edb7312 gba gp32 nds rtl22x rtl22xx_t
142                  smdk2410
[1a63b528]143
[f6860278]144avr:            : avrtest
[1a63b528]145
[41319435]146bfin            : eZKit533 bf537Stamp
[254b4450]147
[4cb89cc9]148h8300           : h8sim
[08c6c10]149
[5aa1855]150i386            : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
[1a63b528]151                NOTE: The "pc386" BSP can be compiled to support a
152                      variety of PC configurations including PC-104
153                      based solutions.
[08c6c10]154
[f6860278]155lm32:           : lm32_evr
156
[a2a4027]157m32c            : m32csim
158
[3fc13ac9]159m32r            : m32rsim
160
[5aa1855]161m68k            : av5282 csb360 gen68302 gen68360 gen68360_040
162                genmcf548x idp mcf5206elite mcf52235 mcf5235 mcf5239
163                m5484FireEngine mrm332 mvme136 mvme147s mvme162 mvme162lx
[bb2266e4]164                mvme167 ods68302 pgh360 sim68000 simcpu32 uC5282 COBRA5475
[08c6c10]165
166no_cpu          : no_bsp  (porting example)
167
[1a63b528]168mips            : csb350 genmongoosev hurricane jmr3904 rbtx4925 rbtx4938
[5aa1855]169                p4600 p4650
[08c6c10]170
[5aa1855]171powerpc         : brs5l ep1a gen5200 gen83xx haleakala hsc_cm01 icecube
172                mbx821_001 mbx821_002 mbx821_002b mbx860_001b mbx860_002
173                mbx860_005b mcp750 mvme2100 mvme2307 mtx603e
174                mvme5500 mpc55xxevb mpc8260ads mpc8313erdb mpc8349eamds
175                pghplus pm520_cr825 pm520_ze30 psim score603e ss555
176                tqm8xx_stk8xx virtex
[08c6c10]177
178                  NOTE: The "motorola_powerpc" BSP is a single BSP which
179                  can be conditionally compiled to support most Motorola
180                  VMEbus, CompactPCI, and MTX boards.)
181
[5aa1855]182                  NOTE: The mbx8xx, gen5200, gen83xx, and tqm8xx BSPs are
183                  designed to handle a variety of boards based on the same
184                  family of system on chips CPUs
[18481be3]185
[f1cb4fc]186sh              : gensh1 gensh2 gensh4 simsh1 simsh2 simsh4
[08c6c10]187
[1a63b528]188sparc           : erc32 sis leon2 leon3
[08c6c10]189
[254b4450]1905. Makefile structure
191=====================
192
[f9e72d3]193The makefiles have been re-organized. Most gnu-based bsps now use three
[254b4450]194main makefiles:
195    + custom/default.cfg,
196    + custom/bsp.cfg and
[f9e72d3]197    + compilers/gcc-target-default.cfg.
[254b4450]198
[f9e72d3]199Default.cfg sets the default values of certain common build options.
[254b4450]200
201Bsp.cfg set bsp-specific build options and can also override the
202default settings.
203
[08c6c10]204Gcc-target-default.cfg contains the common gcc definitions.
[254b4450]205
2066. Adding a bsp
207===============
208
[08c6c10]209Please refer to the BSP and Device Driver Guide.
[6f6cde6f]210
[254b4450]211
2127. Tested configurations
213========================
214
215All gnu-based bsps have been built on Linux.
[08c6c10]216
2178. Prerequisites
218================
[254b4450]219
220Gawk version 2 or higher.
221GNU make version 3.72 or higher.
222Bash.
[6f6cde6f]223gcc version > 2.8
[254b4450]224
[08c6c10]225NOTE: These prerequisites are probably out of date but autoconf should detect
226      any problems.
Note: See TracBrowser for help on using the repository browser.