source: rtems/README.configure @ 9ab15f1a

4.104.114.84.95
Last change on this file since 9ab15f1a was 6f6cde6f, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/07/02 at 10:16:27

2002-11-07 Ralf Corsepius <corsepiu@…>

  • configure.ac: Remove make/Templates/Makefile.
  • README.configure: Minor massaging.
  • Property mode set to 100644
File size: 8.7 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.52 and automake-1.6.* 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        a29k-rtems              only standalone, uses non-gnu compiler
95        arm-rtems
96        h8300-rtems
97        i386-rtems
98        i960-rtems
99        hppa1.1-rtems
100        m68k-rtems
101        mips-rtems
102        mips64orion-rtems
103        no_cpu-rtems
104        powerpc-rtems
105        sh-rtems
106        sparc-rtems
107        bare                    see notes
108
109The cross-compiler is set to $(target)-gcc by default. This can be
110overridden by:
111
112  + using the --program-prefix option to configure to specify the
113    string which will prepended to the tool names.  Be sure to include
114    a trailing "-".  For example, to use a m68k-coff toolset, use the
115    --program-prefix=m68k-coff- option.
116
117To build, run make in the build directory. To specify which bsps to build,
118add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
119BSPs to build only works from the top level build directory.
120
121Installation is done under $(prefix)/rtems.
122
123As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
124
125        (path_to_rtems_src)/configure --target=m68k-rtems
126
127        make RTEMS_BSP="mvme136 dmv152"
128       
129        make install RTEMS_BSP="mvme136 dmv152"
130
131The sample tests are built by 'make all', do a 'make test' to build the full
132test suite.
133
134By default, --enable-docs is disabled and documentation is not built.
135
1362.2 Build with Cygnus one-tree release
137
138[NOTE: This section does not apply anymore.]
139
140To build and install RTEMS with the one-tree structure, just copy the rtems
141directory to the tree. The one-tree configure.in and Makefile.in has to be
142replaced with the RTEMS-aware versions. The build options are the same as
143for the standalone build.
144
1452.3 Target Dependent Notes
146
147bare:
148
149  1.  See the README in the bare bsp source directory. This should
150      contain all info you need.
151  2.  The bare bsp source contains a script to show how to build it.
152  3.  The configure flags must be used to get the bare bsp to work.
153      The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
154      only pieces of information. The module is usually a gcc module
155      such as m68302 or mcpu32. The flags are passed directly to gcc.
156      Use "" if more than one option is specified.
157
1583. To use the installed RTEMS library
159=====================================
160
161To use the installed RTEMS bsps to build applications, the application
162makefile has to include a bsp-specific makefile that will define the
163RTEMS variables necessary to find include files and libraries. The
164bsp-specific makefile is installed at
165
166        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
167
168For the erc32 bsp installed at /usr/local/cross, the environment
169variable RTEMS_MAKEFILE_PATH would be set as follows to the
170following:
171
172/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
173
1744. Supported target bsps
175========================
176
177The following bsps are supported:
178
179host-based      : posix (on Linux, Solaris and HPUX)
180
181a29k            : portsw
182arm             : arm_bare_bsp armulator vegaplus
183c4x             : c4xsim
184h8300           : h8sim
185i386            : i386ex pc386 ts_386ex
186i960            : cvme961 i960sim rxgen960
187hppa1.1         : simhppa
188m68k            : dmv152 efi332 efi68k gen68302 gen68340 gen68360
189                  gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
190                  mrm332
191no_cpu          : no_bsp
192mips            : p4600 p4650 (p4000 port with either R4600 or R4650)
193                  jmr3904 genmongoosev
194mips64orion     : (deprecated)
195                  p4600 p4650 (p4000 port with either R4600 or R4650)
196powerpc         : dmv177 eth_comm helas403 gen405 mbx8xx motorola_powerpc (covers
197                  most Motorola VMEbus and CompactPCI boards) ppcn_60x
198                  psim score603e
199sh              : gensh1 gensh2
200sparc           : erc32 erc32nfp leon1 leon2
201any             : bare
202
2035. Makefile structure
204=====================
205
206The makefiles have been re-organized. Most gnu-based bsps now use three
207main makefiles:
208    + custom/default.cfg,
209    + custom/bsp.cfg and
210    + compilers/gcc-target-default.cfg.
211
212Default.cfg sets the default values of certain common build options.
213
214Bsp.cfg set bsp-specific build options and can also override the
215default settings.
216
217Gcc-target-default.cfg contains the common gcc definitions. Some targets
218(a29k, no_cpu, and posix) still use the old structure.
219
2206. Adding a bsp
221===============
222
223[OBSOLETE: This section below does not apply anymore.]
224The top-level configure.in has to be modified if a new target is added
225or if a new bsp is to be built by default. The additions required is
226basically to add which makefiles are to be created by configure and
227to add the target to the selection statement.
228
229
2307. Tested configurations
231========================
232
233All gnu-based bsps have been built on Linux.
234The native (posix) ports have been built and run only on Linux.
235
236The following configurations have NOT been tested:
237
238    + Anything on Nextstep, HPUX and Irix.
239    + The a29k port.
240
2418. Pre-requisites
242=================
243
244Gawk version 2 or higher.
245GNU make version 3.72 or higher.
246Bash.
247gcc version > 2.8
248
249TODO
250====
251
252The install-if-change script requires bash. On Solaris systems, this should
253be changed to ksh, since ksh is provided with Solaris (bash not). This
254script is not used by RTEMS and only is provided for convenience.
255
256A fairly recent version of gawk is needed to build RTEMS. This should be
257changed so that a plain vanilla awk also works. [NOTE: This dependency
258should disappear when the "gcc 2.8 -specs" is finished.]
259
260Posix port on Solaris-2.5 fails due to undefined built-in functions
261(gcc-2.7.2, might be my installation).
262
263Improve support for 'make CFLAGS=xxx'.
264
Note: See TracBrowser for help on using the repository browser.