source: rtems/README.configure @ f6f9ad4

4.104.114.84.95
Last change on this file since f6f9ad4 was f6f9ad4, checked in by Joel Sherrill <joel.sherrill@…>, on Jan 7, 2004 at 9:25:23 PM

2004-01-07 Joel Sherrill <joel@…>

  • README.configure: Remove efi68k and efi332 references as they are no longer in the tree.
  • Property mode set to 100644
File size: 8.4 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.59 and automake-1.8 are required.
15
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
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
37
38In addition, the following standard autoconf options are frequently
39used when configuring RTEMS installations:
40
41        --prefix=INSTALL_DIRECTORY
42
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
48it. It can be disabled with the --disable-posix option.
49
50By default, the RTEMS uITRON interface is built for targets that support
51it. It can be disabled with the --disable-itron option.
52
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.
56
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
62By default, the RTEMS support of C++ is disabled.  It can be enabled
63with the --enable-cxx option. If the rtems++ C++ library is installed
64it will also be build.
65
66By default, the RTEMS test suites are NOT configured -- only the
67sample tests are built.  --enable-tests will configure
68the RTEMS test suite. The default speeds up the build
69and configure process when the tests are not desired.
70
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.]
75
76By default, multiprocessing is is not built.  It can be enabled
77for those BSPs supporting it by the --enable-multiprocessing option.
78
79By default, all bsps for a target are built. The bare BSP is not built
80unless directly specified. There are  two ways of changing this:
81
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).
85
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:
90
91        (none)                  will build the host-based version on Linux,
92                                Solaris and HPUX.
93
94        arm-rtems
95        c4x-rtems
96        h8300-rtems
97        i386-rtems
98        i960-rtems
99        m68k-rtems
100        mips-rtems
101        no_cpu-rtems
102        or32-rtems
103        powerpc-rtems
104        sh-rtems
105        sparc-rtems
106        bare                    see notes
107
108The cross-compiler is set to $(target)-gcc by default. This can be
109overridden by:
110
111  + using the --program-prefix option to configure to specify the
112    string which will prepended to the tool names.  Be sure to include
113    a trailing "-".  For example, to use a m68k-coff toolset, use the
114    --program-prefix=m68k-coff- option.
115
116To build, run make in the build directory. To specify which bsps to build,
117add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
118BSPs to build only works from the top level build directory.
119
120Installation is done under $(prefix)/rtems.
121
122As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
123
124        (path_to_rtems_src)/configure --target=m68k-rtems
125
126        make RTEMS_BSP="mvme136 dmv152"
127       
128        make install RTEMS_BSP="mvme136 dmv152"
129
130The sample tests are built by 'make all', do a 'make test' to build the full
131test suite.
132
133By default, --enable-docs is disabled and documentation is not built.
134
1352.2 Build with Cygnus one-tree release
136
137[NOTE: This section does not apply anymore.]
138
139To build and install RTEMS with the one-tree structure, just copy the rtems
140directory to the tree. The one-tree configure.in and Makefile.in has to be
141replaced with the RTEMS-aware versions. The build options are the same as
142for the standalone build.
143
1442.3 Target Dependent Notes
145
146bare:
147
148  1.  See the README in the bare bsp source directory. This should
149      contain all info you need.
150  2.  The bare bsp source contains a script to show how to build it.
151  3.  The configure flags must be used to get the bare bsp to work.
152      The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
153      only pieces of information. The module is usually a gcc module
154      such as m68302 or mcpu32. The flags are passed directly to gcc.
155      Use "" if more than one option is specified.
156
1573. To use the installed RTEMS library
158=====================================
159
160To use the installed RTEMS bsps to build applications, the application
161makefile has to include a bsp-specific makefile that will define the
162RTEMS variables necessary to find include files and libraries. The
163bsp-specific makefile is installed at
164
165        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
166
167For the erc32 bsp installed at /usr/local/cross, the environment
168variable RTEMS_MAKEFILE_PATH would be set as follows to the
169following:
170
171/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
172
1734. Supported target bsps
174========================
175
176The following bsps are supported:
177
178host-based      : posix (on Linux, FreeBSD, Cygwin, Solaris, and HPUX)
179
180arm             : arm_bare_bsp armulator edb7312 vegaplus
181
182c4x             : c4xsim
183
184h8300           : h8sim
185
186i386            : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
187                  NOTE: The "pc386" BSP can be compiled to support a
188                        variety of PC configurations including PC-104
189                        based solutions.
190
191i960            : cvme961 i960sim rxgen960
192
193m68k            : dmv152 gen68302 gen68340 gen68360 gen68360_040
194                  idp mcf5206elite mrm332 mvme136 mvme147
195                  mvme147s mvme162 mvme162lx ods68302
196
197no_cpu          : no_bsp  (porting example)
198
199mips            : p4600 p4650 (p4000 port with either R4600 or R4650)
200                  jmr3904 genmongoosev
201
202or32:           : orp
203
204powerpc         : dmv177 eth_comm gen405 helas403 mcp750 mbx8xx mtx603e
205                  mvme230x ppcn_60x psim score603e
206
207                  NOTE: The "motorola_powerpc" BSP is a single BSP which
208                  can be conditionally compiled to support most Motorola
209                  VMEbus, CompactPCI, and MTX boards.)
210
211sh              : gensh1 gensh2 shsim simsh4 gensh4
212
213sparc           : erc32 erc32nfp leon1 leon2
214
215any             : bare
216
217The following ports were considered obsoleted after the 4.6 releases
218and were removed: a29k, hppa, and mips64orion.
219
220
2215. Makefile structure
222=====================
223
224The makefiles have been re-organized. Most gnu-based bsps now use three
225main makefiles:
226    + custom/default.cfg,
227    + custom/bsp.cfg and
228    + compilers/gcc-target-default.cfg.
229
230Default.cfg sets the default values of certain common build options.
231
232Bsp.cfg set bsp-specific build options and can also override the
233default settings.
234
235Gcc-target-default.cfg contains the common gcc definitions.
236
2376. Adding a bsp
238===============
239
240Please refer to the BSP and Device Driver Guide.
241
242
2437. Tested configurations
244========================
245
246All gnu-based bsps have been built on Linux.
247
248The native (posix) ports have been built and run only on Linux.
249
250The following configurations have NOT been tested:
251
252    + Anything on Nextstep, HPUX and Irix.
253    + The C4x and OR32 ports (requires specially patched toolchain)
254
2558. Prerequisites
256================
257
258Gawk version 2 or higher.
259GNU make version 3.72 or higher.
260Bash.
261gcc version > 2.8
262
263NOTE: These prerequisites are probably out of date but autoconf should detect
264      any problems.
Note: See TracBrowser for help on using the repository browser.