source: rtems/README.configure @ fb327db3

4.104.114.84.95
Last change on this file since fb327db3 was f9e72d3, checked in by Joel Sherrill <joel.sherrill@…>, on 09/01/00 at 07:19:16

2000-08-31 Ralf Corsepius <corsepiu@…>

  • LICENSE.NET, README, README.configure: Spelling corrections.
  • 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
132. Installation
14===============
15
162.1 Standalone build
17
18To configure RTEMS for a specific target, run configure in the build
19directory. In addition to the standard configure options, the following
20RTEMS-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=<MODEL>
28        --enable-bare-cpu-cflags=<FLAGS>
29        --enable-gcc28               (also use enable-libcdir when disabled)
30        --enable-libcdir=<DIRECTORY>      (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
36In addition, the following standard autoconf options are frequently
37used when configuring RTEMS installations:
38
39        --prefix=INSTALL_DIRECTORY
40        --program-prefix=
41
42By default, inline routines are used instead of macros where possible.
43Macros can be selected using the --disable-inlines option.  [NOTE:
44Some APIs may not support macro versions of their inline routines.]
45
46By default, the RTEMS POSIX 1003.1b interface is built for targets that support
47it. It can be disabled with the --disable-posix option.
48
49By default, the RTEMS uITRON interface is built for targets that support
50it. It can be disabled with the --disable-itron option.
51
52By default, the RTEMS networking support is built for targets which
53support it.  It can be specifically disabled for those targets
54with the --disable-networking option.
55
56By default, the RTEMS remote debugger server support is not built.
57It can be specifically enabled for the targets that support it.
58with the --enable-rdbg option. NB : the RTEMS networking support
59must be enabled to support the remote debugger server.
60
61By default, the RTEMS support of C++ is disabled.  It can be enabled
62with the --enable-cxx option. If the rtems++ C++ library is installed
63it will also be build.
64
65By default, the RTEMS test suites are NOT configured -- only the
66sample tests are built.  The --enable-tests will not configure
67the RTEMS test suite. The default speeds up the build
68and configure process when the tests are not desired.
69
70By default, RTEMS is built using arguments and build rules which are
71NOT 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
73this feature.  You should use the --enable-gcc28 option when using
74either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
75If you --disable-gcc28, then you MUST  specify the location of the
76Standard C Library with the --enable-libcdir option.   [NOTE: These
77options are considered obsolete and may be removed in a future
78RTEMS release.]
79
80By default, multiprocessing is is not built.  It can be enabled
81for those BSPs supporting it by the --enable-multiprocessing option.
82
83By default, all bsps for a target are built. The bare BSP is not built
84unless directly specified. There are  two ways of changing this:
85
86  + use the --enable-rtemsbsp option which will set the specified
87    bsps as the default bsps, or
88  + set the RTEMS_BSP variable during make (see below).
89
90The --enable-rtemsbsp= option configures RTEMS for a specific target
91architecture.  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       
107The cross-compiler is set to $(target)-gcc by default. This can be
108overridden 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
115To build, run make in the build directory. To specify which bsps to build,
116add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
117BSPs to build only works from the top level build directory.
118
119Installation is done under $(prefix)/rtems.
120
121As 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
129The sample tests are built by 'make all', do a 'make test' to build the full
130test suite.
131
1322.2 Build with Cygnus one-tree release
133
134To build and install RTEMS with the one-tree structure, just copy the rtems
135directory to the tree. The one-tree configure.in and Makefile.in has to be
136replaced with the RTEMS-aware versions. The build options are the same as
137for the standalone build.
138
1392.3 Target Dependent Notes
140
141bare:
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
1523. To use the installed RTEMS library
153=====================================
154
155To use the installed RTEMS bsps to build applications, the application
156makefile has to include a bsp-specific makefile that will define the
157RTEMS variables necessary to find include files and libraries. The
158bsp-specific makefile is installed at
159
160        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
161
162For the erc32 bsp installed at /usr/local/cross, the environment
163variable RTEMS_MAKEFILE_PATH would be set as follows to the
164following:
165
166/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
167
1684. Supported target bsps
169========================
170
171The following bsps are supported:
172
173host-based      : posix (on Linux, Solaris and HPUX)
174
175a29k            : portsw
176i386            : i386ex pc386
177i960            : cvme961
178hppa1.1         : simhppa
179m68k            : dmv152 efi332 efi68k gen68302 gen68340 gen68360
180                  gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
181no_cpu          : no_bsp
182mips64orion     : p4600 p4650 (p4000 port with either R4600 or R4650)
183powerpc         : papyrus psim helas403
184sh              : gensh1
185sparc           : erc32
186any             : bare
187
1885. Makefile structure
189=====================
190
191The makefiles have been re-organized. Most gnu-based bsps now use three
192main makefiles:
193    + custom/default.cfg,
194    + custom/bsp.cfg and
195    + compilers/gcc-target-default.cfg.
196
197Default.cfg sets the default values of certain common build options.
198
199Bsp.cfg set bsp-specific build options and can also override the
200default settings.
201
202Gcc-target-default.cfg contains the common gcc definitions. Some targets
203(a29k, no_cpu, and posix) still use the old structure.
204
2056. Adding a bsp
206===============
207
208The top-level configure.in has to be modified if a new target is added
209or if a new bsp is to be built by default. The additions required is
210basically to add which makefiles are to be created by configure and
211to add the target to the selection statement. To re-generate
212configure, autoconf-2.13 and automake-1.14 are needed.
213
2147. Tested configurations
215========================
216
217All gnu-based bsps have been built on Linux.
218The native (posix) ports have been built and run only on Linux.
219
220The following configurations have NOT been tested:
221
222    + Anything on Nextstep, HPUX and Irix.
223    + The a29k port.
224
2258. Pre-requisites
226=================
227
228Gawk version 2 or higher.
229GNU make version 3.72 or higher.
230Bash.
231gcc version ???
232
233TODO
234====
235
236The install-if-change script requires bash. On Solaris systems, this should
237be changed to ksh, since ksh is provided with Solaris (bash not).
238
239A fairly recent version of gawk is needed to build RTEMS. This should be
240changed so that a plain vanilla awk also works. [NOTE: This dependency
241should disappear when the "gcc 2.8 -specs" is finished.]
242
243'make install' should only install necessary files, not the full
244PROJECT_RELEASE directory as now.
245
246Posix port on Solaris-2.5 fails due to undefined built-in functions
247(gcc-2.7.2, might be my installation).
248
249Improve support for 'make CFLAGS=xxx'.
250
Note: See TracBrowser for help on using the repository browser.