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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [README.configure] - Blame information for rev 294

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

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

powered by: WebSVN 2.1.0

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