source: rtems/README.configure @ 69537ca9

4.104.114.84.95
Last change on this file since 69537ca9 was 30f7ff9, checked in by Joel Sherrill <joel.sherrill@…>, on 10/05/99 at 19:11:57

Removed targets and configurations that are no longer functional
and not likely to become so. Comments on each configuration
are below.

+ Force CPU386 - This BSP was developed as part of the initial

port of RTEMS to the i386. This board has been unavailable
for a long time now.

+ GO32 - This BSP and some CPU code supported djgpp v1.x. This

version is now quite old. No one has stepped forward to
update the code to v2.x which may be technically impossible
anyway. More importantly, go32 has been superceded by the pc386 BSP.

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