source: rtems/README.configure @ 48e02af

4.11
Last change on this file since 48e02af was 7b31534, checked in by Ralf Corsepius <ralf.corsepius@…>, on Sep 27, 2010 at 4:12:24 AM

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

  • README.configure: Further cleanup.
  • Property mode set to 100644
File size: 7.1 KB
Line 
1#
2#  $Id$
3#
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
13To re-generate auto*tool generated files (configure, Makefile.in etc),
14autoconf-2.68 and automake-1.11.1 are required.
15
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
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
32
33In addition, the following standard autoconf options are frequently
34used when configuring RTEMS installations:
35
36      --prefix=INSTALL_DIRECTORY
37
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
43it. It can be disabled with the --disable-posix option.
44
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.
48
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
54By default, the RTEMS support of C++ is disabled.  It can be enabled
55with the --enable-cxx option. If the rtems++ C++ library is installed
56it will also be build.
57
58By default, the RTEMS test suites are NOT configured -- only the
59sample tests are built.  --enable-tests will configure
60the RTEMS test suite. The default speeds up the build
61and configure process when the tests are not desired.
62
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.]
67
68By default, multiprocessing is is not built.  It can be enabled
69for those BSPs supporting it by the --enable-multiprocessing option.
70
71By default, all bsps for a target are built. The bare BSP is not built
72unless directly specified. There are  two ways of changing this:
73
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).
77
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:
82
83      arm-rtems4.10
84      avr-rtems4.10
85      bfin-rtems4.10
86      h8300-rtems4.10
87      i386-rtems4.10
88      lm32-rtems4.10
89      m32c-rtems4.10
90      m32r-rtems4.10
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
97
98The cross-compiler is set to $(target)-gcc by default.
99
100To build, run make in the build directory. To specify which bsps to build,
101add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
102BSPs to build only works from the top level build directory.
103
104Installation is done under $(prefix)/rtems.
105
106As an example, to build and install the mvme136 and mvme162 bsps for m68k do:
107
108      (path_to_rtems_src)/configure --target=m68k-rtems4.11
109
110      make RTEMS_BSP="mvme136 mvme162"
111     
112      make install RTEMS_BSP="mvme136 mvme162"
113
114The sample tests are built by 'make all' when configured with
115--enable-tests=samples.  Use --enable-tests=all to build the full
116test suite.
117
118Documentation is built separately from the source code.
119
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
128      $(RTEMS_MAKEFILE_PATH)/Makefile.inc
129
130For the erc32 bsp installed at /usr/local/cross, the environment
131variable RTEMS_MAKEFILE_PATH would be set as follows to the
132following:
133
134/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
135
1364. Supported target bsps
137========================
138
139The following bsps are supported:
140
141arm             : csb336 csb337 edb7312 gba gp32 nds rtl22x rtl22xx_t
142                  smdk2410
143
144avr:            : avrtest
145
146bfin            : eZKit533 bf537Stamp
147
148h8300           : h8sim
149
150i386            : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
151                NOTE: The "pc386" BSP can be compiled to support a
152                      variety of PC configurations including PC-104
153                      based solutions.
154
155lm32:           : lm32_evr
156
157m32c            : m32csim
158
159m32r            : m32rsim
160
161m68k            : av5282 csb360 gen68302 gen68360 gen68360_040
162                genmcf548x idp mcf5206elite mcf52235 mcf5235 mcf5239
163                m5484FireEngine mrm332 mvme136 mvme147s mvme162 mvme162lx
164                mvme167 ods68302 pgh360 sim68000 simcpu32 uC5282 COBRA5475
165
166no_cpu          : no_bsp  (porting example)
167
168mips            : csb350 genmongoosev hurricane jmr3904 rbtx4925 rbtx4938
169                p4600 p4650
170
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
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
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
185
186sh              : gensh1 gensh2 gensh4 simsh1 simsh2 simsh4
187
188sparc           : erc32 sis leon2 leon3
189
1905. Makefile structure
191=====================
192
193The makefiles have been re-organized. Most gnu-based bsps now use three
194main makefiles:
195    + custom/default.cfg,
196    + custom/bsp.cfg and
197    + compilers/gcc-target-default.cfg.
198
199Default.cfg sets the default values of certain common build options.
200
201Bsp.cfg set bsp-specific build options and can also override the
202default settings.
203
204Gcc-target-default.cfg contains the common gcc definitions.
205
2066. Adding a bsp
207===============
208
209Please refer to the BSP and Device Driver Guide.
210
211
2127. Tested configurations
213========================
214
215All gnu-based bsps have been built on Linux.
216
2178. Prerequisites
218================
219
220Gawk version 2 or higher.
221GNU make version 3.72 or higher.
222Bash.
223gcc version > 2.8
224
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.