source: rtems/README.configure @ 22fa9d61

4.104.115
Last change on this file since 22fa9d61 was f6860278, checked in by Joel Sherrill <joel.sherrill@…>, on 12/04/08 at 23:04:58

2008-12-04 Jukka Pietarinen <jukka.pietarinen@…>

  • README.configure: Add Lattice Mico32 support.
  • Property mode set to 100644
File size: 8.4 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),
[3d0f7c8]14autoconf-2.59 and automake-1.8 are required.
[6f6cde6f]15
[254b4450]162. Installation
17===============
18
192.1 Standalone build
20
21To configure RTEMS for a specific target, run configure in the build
22directory. In addition to the standard configure options, the following
23RTEMS-specific option are supported:
24
[1a63b528]25      --disable-rtems-inlines
26      --disable-posix
27      --disable-itron
28      --disable-networking
29      --enable-cxx
30      --enable-bare-cpu-model=<MODEL>
31      --enable-bare-cpu-cflags=<FLAGS>
32      --enable-multiprocessing
33      --enable-rtemsbsp="bsp1 bsp2 ..."
34      --enable-tests
35      --enable-rdbg            (only valid for i386 and some PowerPC BSPs)
36      --enable-docs
[254b4450]37
[ede9a691]38In addition, the following standard autoconf options are frequently
39used when configuring RTEMS installations:
40
[1a63b528]41      --prefix=INSTALL_DIRECTORY
[ede9a691]42
[70d27f9]43By default, inline routines are used instead of macros where possible.
44Macros can be selected using the --disable-inlines option.  [NOTE:
45Some APIs may not support macro versions of their inline routines.]
46
47By default, the RTEMS POSIX 1003.1b interface is built for targets that support
[83e39b26]48it. It can be disabled with the --disable-posix option.
49
[70d27f9]50By default, the RTEMS uITRON interface is built for targets that support
51it. It can be disabled with the --disable-itron option.
52
[f205fe6d]53By default, the RTEMS networking support is built for targets which
54support it.  It can be specifically disabled for those targets
55with the --disable-networking option.
[1f0f3e35]56
[55b8fef2]57By default, the RTEMS remote debugger server support is not built.
58It can be specifically enabled for the targets that support it.
59with the --enable-rdbg option. NB : the RTEMS networking support
60must be enabled to support the remote debugger server.
61
[91333c2]62By default, the RTEMS support of C++ is disabled.  It can be enabled
[e81ef51]63with the --enable-cxx option. If the rtems++ C++ library is installed
[91333c2]64it will also be build.
65
[70d27f9]66By default, the RTEMS test suites are NOT configured -- only the
[6f6cde6f]67sample tests are built.  --enable-tests will configure
[70d27f9]68the RTEMS test suite. The default speeds up the build
[85d8eb2]69and configure process when the tests are not desired.
[83e39b26]70
[6f6cde6f]71By default, RTEMS is built using arguments and build rules which require a
72gcc supporting the -specs option, ie. a gcc >= 2.8.
73[The --disable-gcc28 option, which has been present in former releases, has
74been removed.]
[70d27f9]75
76By default, multiprocessing is is not built.  It can be enabled
77for those BSPs supporting it by the --enable-multiprocessing option.
[58ae19a]78
[cf65c408]79By default, all bsps for a target are built. The bare BSP is not built
[f9e72d3]80unless directly specified. There are  two ways of changing this:
[254b4450]81
[1a63b528]82+ use the --enable-rtemsbsp option which will set the specified
83  bsps as the default bsps, or
84+ set the RTEMS_BSP variable during make (see below).
[254b4450]85
[003d4da]86The --enable-rtemsbsp= option configures RTEMS for a specific board
87within a target architecture.  Remember that the target specifies the
88CPU family while the BSP specifies the precise board you will be using.
89The following targets are supported:
[254b4450]90
[5aa1855]91      (none)    will build the host-based version on Linux, Solaris and HPUX.
92
[a2a4027]93      arm-rtems4.10
[f6860278]94      avr-rtems4.10
[a2a4027]95      bfin-rtems4.10
96      h8300-rtems4.10
97      i386-rtems4.10
[f6860278]98      lm32-rtems4.10
[a2a4027]99      m32c-rtems4.10
[3fc13ac9]100      m32r-rtems4.10
[a2a4027]101      m68k-rtems4.10
102      mips-rtems4.10
103      no_cpu-rtems4.10
104      powerpc-rtems4.10
105      sh-rtems4.10
106      sparc-rtems4.10
[1a63b528]107      bare                    see notes
[003d4da]108
[a2a4027]109The cross-compiler is set to $(target)-gcc by default.
[58ae19a]110
[254b4450]111To build, run make in the build directory. To specify which bsps to build,
[9e86f6d6]112add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
113BSPs to build only works from the top level build directory.
[254b4450]114
[84b0f7c9]115Installation is done under $(prefix)/rtems.
[254b4450]116
[17228d13]117As an example, to build and install the mvme136 and mvme162 bsps for m68k do:
[254b4450]118
[1a63b528]119      (path_to_rtems_src)/configure --target=m68k-rtems
[254b4450]120
[1a63b528]121      make RTEMS_BSP="mvme136 mvme162"
122     
123      make install RTEMS_BSP="mvme136 mvme162"
[254b4450]124
[5aa1855]125The sample tests are built by 'make all' when configured with
126--enable-tests=samples.  Use --enable-tests=all to build the full
[254b4450]127test suite.
128
[5aa1855]129Documentation is built separately from the source code.
[003d4da]130
[5aa1855]1312.2 Target Dependent Notes
[83e39b26]132
[cf65c408]133bare:
134
[1a63b528]1351.  See the README in the bare bsp source directory. This should
136    contain all info you need.
1372.  The bare bsp source contains a script to show how to build it.
1383.  The configure flags must be used to get the bare bsp to work.
139    The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
140    only pieces of information. The module is usually a gcc module
141    such as m68302 or mcpu32. The flags are passed directly to gcc.
142    Use "" if more than one option is specified.
[83e39b26]143
[254b4450]1443. To use the installed RTEMS library
145=====================================
146
147To use the installed RTEMS bsps to build applications, the application
148makefile has to include a bsp-specific makefile that will define the
149RTEMS variables necessary to find include files and libraries. The
150bsp-specific makefile is installed at
151
[1a63b528]152      $(RTEMS_MAKEFILE_PATH)/Makefile.inc
[254b4450]153
[f05f704]154For the erc32 bsp installed at /usr/local/cross, the environment
155variable RTEMS_MAKEFILE_PATH would be set as follows to the
156following:
[254b4450]157
[f05f704]158/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
[254b4450]159
1604. Supported target bsps
161========================
162
163The following bsps are supported:
164
[08c6c10]165host-based      : posix (on Linux, FreeBSD, Cygwin, Solaris, and HPUX)
166
[5aa1855]167arm             : csb336 csb337 edb7312 gba gp32 nds rtl22x rtl22xx_t
168                  smdk2410
[1a63b528]169
[f6860278]170avr:            : avrtest
[1a63b528]171
[41319435]172bfin            : eZKit533 bf537Stamp
[254b4450]173
[c7f8bbea]174c4x             : c3xsim c4xsim
[08c6c10]175
[4cb89cc9]176h8300           : h8sim
[08c6c10]177
[5aa1855]178i386            : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
[1a63b528]179                NOTE: The "pc386" BSP can be compiled to support a
180                      variety of PC configurations including PC-104
181                      based solutions.
[08c6c10]182
[f6860278]183lm32:           : lm32_evr
184
[a2a4027]185m32c            : m32csim
186
[3fc13ac9]187m32r            : m32rsim
188
[5aa1855]189m68k            : av5282 csb360 gen68302 gen68360 gen68360_040
190                genmcf548x idp mcf5206elite mcf52235 mcf5235 mcf5239
191                m5484FireEngine mrm332 mvme136 mvme147s mvme162 mvme162lx
192                mvme167 ods68302 pgh360 sim68000 simcpu32 uC5282
[08c6c10]193
194no_cpu          : no_bsp  (porting example)
195
[1a63b528]196mips            : csb350 genmongoosev hurricane jmr3904 rbtx4925 rbtx4938
[5aa1855]197                p4600 p4650
[08c6c10]198
[5aa1855]199powerpc         : brs5l ep1a gen5200 gen83xx haleakala hsc_cm01 icecube
200                mbx821_001 mbx821_002 mbx821_002b mbx860_001b mbx860_002
201                mbx860_005b mcp750 mvme2100 mvme2307 mtx603e
202                mvme5500 mpc55xxevb mpc8260ads mpc8313erdb mpc8349eamds
203                pghplus pm520_cr825 pm520_ze30 psim score603e ss555
204                tqm8xx_stk8xx virtex
[08c6c10]205
206                  NOTE: The "motorola_powerpc" BSP is a single BSP which
207                  can be conditionally compiled to support most Motorola
208                  VMEbus, CompactPCI, and MTX boards.)
209
[5aa1855]210                  NOTE: The mbx8xx, gen5200, gen83xx, and tqm8xx BSPs are
211                  designed to handle a variety of boards based on the same
212                  family of system on chips CPUs
[18481be3]213
[f1cb4fc]214sh              : gensh1 gensh2 gensh4 simsh1 simsh2 simsh4
[08c6c10]215
[1a63b528]216sparc           : erc32 sis leon2 leon3
[08c6c10]217
[cf65c408]218any             : bare
[254b4450]219
[5e8552a4]220The following ports were considered obsoleted after the 4.6 releases
[17228d13]221and were removed: a29k, hppa, i960, mips64orion, and or32.
[08c6c10]222
223
[254b4450]2245. Makefile structure
225=====================
226
[f9e72d3]227The makefiles have been re-organized. Most gnu-based bsps now use three
[254b4450]228main makefiles:
229    + custom/default.cfg,
230    + custom/bsp.cfg and
[f9e72d3]231    + compilers/gcc-target-default.cfg.
[254b4450]232
[f9e72d3]233Default.cfg sets the default values of certain common build options.
[254b4450]234
235Bsp.cfg set bsp-specific build options and can also override the
236default settings.
237
[08c6c10]238Gcc-target-default.cfg contains the common gcc definitions.
[254b4450]239
2406. Adding a bsp
241===============
242
[08c6c10]243Please refer to the BSP and Device Driver Guide.
[6f6cde6f]244
[254b4450]245
2467. Tested configurations
247========================
248
249All gnu-based bsps have been built on Linux.
[08c6c10]250
[f05f704]251The native (posix) ports have been built and run only on Linux.
[254b4450]252
253The following configurations have NOT been tested:
254
255    + Anything on Nextstep, HPUX and Irix.
[08c6c10]256    + The C4x and OR32 ports (requires specially patched toolchain)
[254b4450]257
[08c6c10]2588. Prerequisites
259================
[254b4450]260
261Gawk version 2 or higher.
262GNU make version 3.72 or higher.
263Bash.
[6f6cde6f]264gcc version > 2.8
[254b4450]265
[08c6c10]266NOTE: These prerequisites are probably out of date but autoconf should detect
267      any problems.
Note: See TracBrowser for help on using the repository browser.