OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [README.configure] - Blame information for rev 1773

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
#
2
#  README.configure,v 1.30 2002/01/20 17:03:51 joel Exp
3
#
4
 
5
1. Autoconf support
6
===================
7
 
8
This version of RTEMS is configured with GNU autoconf. RTEMS can be
9
configured and built either standalone or together with the compiler
10
tools in the Cygnus one-tree structure. Using autoconf also means
11
that RTEMS now can be built in a separate build directory.
12
 
13
2. Installation
14
===============
15
 
16
2.1 Standalone build
17
 
18
To configure RTEMS for a specific target, run configure in the build
19
directory. In addition to the standard configure options, the following
20
RTEMS-specific option are supported:
21
 
22
        --disable-rtems-inlines
23
        --disable-posix
24
        --disable-itron
25
        --disable-networking
26
        --enable-cxx
27
        --enable-bare-cpu-model=
28
        --enable-bare-cpu-cflags=
29
        --enable-gcc28               (also use enable-libcdir when disabled)
30
        --enable-libcdir=      (do not use if gcc 2.8 is enabled)
31
        --enable-multiprocessing
32
        --enable-rtemsbsp="bsp1 bsp2 ..."
33
        --enable-tests
34
        --enable-rdbg            (only valid for i386 and some PowerPC BSPs)
35
        --enable-docs
36
 
37
In addition, the following standard autoconf options are frequently
38
used when configuring RTEMS installations:
39
 
40
        --prefix=INSTALL_DIRECTORY
41
        --program-prefix=
42
 
43
By default, inline routines are used instead of macros where possible.
44
Macros can be selected using the --disable-inlines option.  [NOTE:
45
Some APIs may not support macro versions of their inline routines.]
46
 
47
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
48
it. It can be disabled with the --disable-posix option.
49
 
50
By default, the RTEMS uITRON interface is built for targets that support
51
it. It can be disabled with the --disable-itron option.
52
 
53
By default, the RTEMS networking support is built for targets which
54
support it.  It can be specifically disabled for those targets
55
with the --disable-networking option.
56
 
57
By default, the RTEMS remote debugger server support is not built.
58
It can be specifically enabled for the targets that support it.
59
with the --enable-rdbg option. NB : the RTEMS networking support
60
must be enabled to support the remote debugger server.
61
 
62
By default, the RTEMS support of C++ is disabled.  It can be enabled
63
with the --enable-cxx option. If the rtems++ C++ library is installed
64
it will also be build.
65
 
66
By default, the RTEMS test suites are NOT configured -- only the
67
sample tests are built.  The --enable-tests will not configure
68
the RTEMS test suite. The default speeds up the build
69
and configure process when the tests are not desired.
70
 
71
By default, RTEMS is built using arguments and build rules which are
72
NOT compatible with gcc 2.7.2.2.  If using a gcc which supports the
73
-specs option, then the --enable-gcc28 option may be used to enable
74
this feature.  You should use the --enable-gcc28 option when using
75
either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
76
If you --disable-gcc28, then you MUST  specify the location of the
77
Standard C Library with the --enable-libcdir option.   [NOTE: These
78
options are considered obsolete and may be removed in a future
79
RTEMS release.]
80
 
81
By default, multiprocessing is is not built.  It can be enabled
82
for those BSPs supporting it by the --enable-multiprocessing option.
83
 
84
By default, all bsps for a target are built. The bare BSP is not built
85
unless directly specified. There are  two ways of changing this:
86
 
87
  + use the --enable-rtemsbsp option which will set the specified
88
    bsps as the default bsps, or
89
  + set the RTEMS_BSP variable during make (see below).
90
 
91
The --enable-rtemsbsp= option configures RTEMS for a specific board
92
within a target architecture.  Remember that the target specifies the
93
CPU family while the BSP specifies the precise board you will be using.
94
The following targets are supported:
95
 
96
        (none)                  will build the host-based version on Linux,
97
                                Solaris and HPUX.
98
 
99
        a29k-rtems              only standalone, uses non-gnu compiler
100
        arm-rtems
101
        h8300-rtems
102
        i386-rtems
103
        i960-rtems
104
        hppa1.1-rtems
105
        m68k-rtems
106
        mips-rtems
107
        mips64orion-rtems
108
        no_cpu-rtems
109
        powerpc-rtems
110
        sh-rtems
111
        sparc-rtems
112
        bare                    see notes
113
 
114
The cross-compiler is set to $(target)-gcc by default. This can be
115
overridden by:
116
 
117
  + using the --program-prefix option to configure to specify the
118
    string which will prepended to the tool names.  Be sure to include
119
    a trailing "-".  For example, to use a m68k-coff toolset, use the
120
    --program-prefix=m68k-coff- option.
121
 
122
To build, run make in the build directory. To specify which bsps to build,
123
add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
124
BSPs to build only works from the top level build directory.
125
 
126
Installation is done under $(prefix)/rtems.
127
 
128
As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
129
 
130
        (path_to_rtems_src)/configure --target=m68k-rtems
131
 
132
        make RTEMS_BSP="mvme136 dmv152"
133
 
134
        make install RTEMS_BSP="mvme136 dmv152"
135
 
136
The sample tests are built by 'make all', do a 'make test' to build the full
137
test suite.
138
 
139
By default, --enable-docs is disabled and documentation is not built.
140
 
141
2.2 Build with Cygnus one-tree release
142
 
143
To build and install RTEMS with the one-tree structure, just copy the rtems
144
directory to the tree. The one-tree configure.in and Makefile.in has to be
145
replaced with the RTEMS-aware versions. The build options are the same as
146
for the standalone build.
147
 
148
2.3 Target Dependent Notes
149
 
150
bare:
151
 
152
  1.  See the README in the bare bsp source directory. This should
153
      contain all info you need.
154
  2.  The bare bsp source contains a script to show how to build it.
155
  3.  The configure flags must be used to get the bare bsp to work.
156
      The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
157
      only pieces of information. The module is usually a gcc module
158
      such as m68302 or mcpu32. The flags are passed directly to gcc.
159
      Use "" if more than one option is specified.
160
 
161
3. To use the installed RTEMS library
162
=====================================
163
 
164
To use the installed RTEMS bsps to build applications, the application
165
makefile has to include a bsp-specific makefile that will define the
166
RTEMS variables necessary to find include files and libraries. The
167
bsp-specific makefile is installed at
168
 
169
        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
170
 
171
For the erc32 bsp installed at /usr/local/cross, the environment
172
variable RTEMS_MAKEFILE_PATH would be set as follows to the
173
following:
174
 
175
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
176
 
177
4. Supported target bsps
178
========================
179
 
180
The following bsps are supported:
181
 
182
host-based      : posix (on Linux, Solaris and HPUX)
183
 
184
a29k            : portsw
185
arm             : arm_bare_bsp armulator vegaplus
186
c4x             : c4xsim
187
h8300           : h8sim
188
i386            : i386ex pc386 ts_386ex
189
i960            : cvme961 i960sim rxgen960
190
hppa1.1         : simhppa
191
m68k            : dmv152 efi332 efi68k gen68302 gen68340 gen68360
192
                  gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
193
                  mrm332
194
no_cpu          : no_bsp
195
mips            : p4600 p4650 (p4000 port with either R4600 or R4650)
196
                  jmr3904 genmongoosev
197
mips64orion     : (deprecated)
198
                  p4600 p4650 (p4000 port with either R4600 or R4650)
199
powerpc         : dmv177 eth_comm helas403 gen405 mbx8xx motorola_powerpc (covers
200
                  most Motorola VMEbus and CompactPCI boards) ppcn_60x
201
                  psim score603e
202
sh              : gensh1 gensh2
203
sparc           : erc32 erc32nfp leon1 leon2
204
any             : bare
205
 
206
5. Makefile structure
207
=====================
208
 
209
The makefiles have been re-organized. Most gnu-based bsps now use three
210
main makefiles:
211
    + custom/default.cfg,
212
    + custom/bsp.cfg and
213
    + compilers/gcc-target-default.cfg.
214
 
215
Default.cfg sets the default values of certain common build options.
216
 
217
Bsp.cfg set bsp-specific build options and can also override the
218
default settings.
219
 
220
Gcc-target-default.cfg contains the common gcc definitions. Some targets
221
(a29k, no_cpu, and posix) still use the old structure.
222
 
223
6. Adding a bsp
224
===============
225
 
226
The top-level configure.in has to be modified if a new target is added
227
or if a new bsp is to be built by default. The additions required is
228
basically to add which makefiles are to be created by configure and
229
to add the target to the selection statement. To re-generate
230
configure, autoconf-2.13 and automake-1.14 are needed.
231
 
232
7. Tested configurations
233
========================
234
 
235
All gnu-based bsps have been built on Linux.
236
The native (posix) ports have been built and run only on Linux.
237
 
238
The following configurations have NOT been tested:
239
 
240
    + Anything on Nextstep, HPUX and Irix.
241
    + The a29k port.
242
 
243
8. Pre-requisites
244
=================
245
 
246
Gawk version 2 or higher.
247
GNU make version 3.72 or higher.
248
Bash.
249
gcc version ???
250
 
251
TODO
252
====
253
 
254
The install-if-change script requires bash. On Solaris systems, this should
255
be changed to ksh, since ksh is provided with Solaris (bash not).
256
 
257
A fairly recent version of gawk is needed to build RTEMS. This should be
258
changed so that a plain vanilla awk also works. [NOTE: This dependency
259
should disappear when the "gcc 2.8 -specs" is finished.]
260
 
261
'make install' should only install necessary files, not the full
262
PROJECT_RELEASE directory as now.
263
 
264
Posix port on Solaris-2.5 fails due to undefined built-in functions
265
(gcc-2.7.2, might be my installation).
266
 
267
Improve support for 'make CFLAGS=xxx'.
268
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.