source: rtems/README.configure @ 3f70e3c

4.104.114.84.95
Last change on this file since 3f70e3c was 91333c2, checked in by Joel Sherrill <joel.sherrill@…>, on 07/31/97 at 22:04:17

Merged very large and much appreciated patch from Chris Johns
<cjohns@…>. This patch includes the ods68302 bsp,
the RTEMS++ class library, and the rtems++ test.

  • Property mode set to 100644
File size: 7.6 KB
Line 
1
21. Autoconf support
3===================
4
5This version of RTEMS is configured with GNU autoconf. RTEMS can be
6configured and built either standalone or together with the compiler
7tools in the Cygnus one-tree structure. Using autoconf also means
8that RTEMS now can be built in a separate build directory.
9
102. Installation
11===============
12
132.1 Standalone build
14
15To configure RTEMS for a specific target, run configure in the build
16directory. In addition to the standard configure options, the following
17RTEMS-specific option are supported:
18
19        --disable-rtems-inlines
20        --disable-posix
21        --disable-tests
22        --disable-ka9q
23        --enable-cpp
24        --enable-gcc28
25        --enable-libcdir=<DIRECTORY>
26        --enable-rtemsbsp="bsp1 bsp2 ..."
27
28By default, the RTEMS posix interface is built for targets that support
29it. It can be disabled with the --disable-posix option.
30
31By default, the RTEMS port of the KA9Q TCP/IP stack is build for targets
32that support it.  It can be disabled with the --disable-ka9q option.
33
34By default, the RTEMS support of C++ is disabled.  It can be enabled
35with the --enable-cpp option. If the rtems++ C++ library is installed
36it will also be build.
37
38By default, the RTEMS test suites are configured.  The --disable-tests
39will not configure the RTEMS test suite. This is used only to speed-up
40configuration in case building the tests are not necessary.
41
42By default, RTEMS is built using arguments and build rules which are
43compatible with gcc 2.7.2.2.  This requires that the user specify
44the location of the Standard C Library with the --enable-libcdir
45option.  If using a gcc which supports the -specs option, then
46the --enable-gcc28 option may be used to enable this feature.
47
48By default, all bsps for a target are built. There are  two ways of
49changing this:
50
51  + use the --enable-rtemsbsp otion which will set the specified
52    bsps as the default bsps, or
53  + set the RTEMSBSP variable during make (see below).
54
55The --enable-rtemsbsp= option configures RTEMS for a specific target
56architecture.  The following targets are supported:
57
58        (none)                  will build the host-based version on Linux,
59                                Solaris and HPUX.
60
61        a29k-rtems              only standalone, uses non-gnu compiler
62        i386-rtems
63        i386-go32-rtems         see notes
64        i960-rtems
65        hppa1_1-rtems
66        m68k-rtems
67        mips64orion-rtems
68        no_cpu-rtems
69        powerpc-rtems
70        sparc-rtems
71       
72The cross-compiler is set to $(target)-gcc by default. This can be
73overriden by one of the following methods:
74
75  + running make with CC_FOR_TARGET=compiler_to_use. The same applies to
76    all the target specific tools (AS, AR, NM, OBJCOPY, SIZE, LD), or
77  + by using the --program-prefix option to configure to specify the
78    string which will prepended to the tool names.  Be sure to include
79    a trailing "-".  For example, to use a m68k-coff toolset, use the
80    --program-prefix=m68k-coff- option.
81
82To build, run make in the build directory. To specify which bsps to build,
83add the RTEMSBSP="bsp1 bsp2 .." to the make command.
84
85Installation is done under $(prefix)/$(target)/rtems.
86
87As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
88
89        (path_to_rtems_src)/configure --target=m68k-rtems
90
91        make RTEMSBSP="mvme136 dmv152"
92       
93        make install RTEMSBSP="mvme136 dmv152"
94
95
96The sample tests are built by 'make all', do a 'make test' to build the full
97test suite.
98
992.2 Build with Cygnus one-tree release
100
101To build and install RTEMS with the one-tree structure, just copy the rtems
102directory to the tree. The one-tree configure.in and Makefile.in has to be
103replaced with the RTEMS-aware versions. The build options are the same as
104for the standalone build.
105
1062.3 Target Dependent Notes
107
108i386-go32-rtems:
109
110  1.  This is based on djgpp v1.xx.  It needs to be updated to v2.xx.
111  2.  This cannot be built one-tree style since RTEMS requires some
112      files which must be obtained from the binary distribution of the
113      djgpp library.  DJGPP can be obtained from
114      http://www.delorie.com/djgpp/dl/ofc.
115  3.  You will need to manually install a number of files from the
116      binary distribution of the DJGPP library doing something
117      like the following:
118
119      # unzip the djgpp distribution
120      cd include
121      cp dpmi.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
122      cp go32.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
123      cp dos.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
124      cp pc.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
125
126      cd ../lib
127      cp crt* INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2
128      cp libpc* INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2
129
130      # Make sure about destination on the next lines.  It keeps the newlib
131      # libc.a and the binary djgpp libc.a from conflicting.
132      cp libc.a INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/libcgo32.a
133      cp libc_p.a INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/libcgo32_p.a
134
135
1363. To use the installed RTEMS library
137=====================================
138
139To use the installed RTEMS bsps to build applications, the application
140makefile has to include a bsp-specific makefile that will define the
141RTEMS variables necessary to find include files and libraries. The
142bsp-specific makefile is installed at
143
144        $(prefix)/$(target)/rtmes/$(RTEMS_BSP)/Makefile.inc
145
146For the erc32 bsp installed at /usr/local/cross, the line would read:
147
148include /usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
149
150
1514. Supported target bsps
152========================
153
154The following bsps are supported:
155
156host-based      : posix (on linux, solaris and hpux)
157
158a29k            : portsw
159i386            : force386 i386ex
160i386-go32       : go32 go32_p5
161i960            : cvme961
162hppa1_1         : simhppa
163m68k            : dmv152 efi332 efi68k gen68302 gen68360 gen68360_040 idp
164                  mvme136 mvme147 mvme147s mvme162
165no_cpu          : no_bsp
166mips64orion     : p4600 p4650 (p4000 port with either R4600 or R4650)
167powerpc         : papyrus
168sparc           : erc32
169
1705. Makefile structure
171=====================
172
173The makefiles have been re-organised. Most gnu-based bsps now use three
174main makefiles:
175    + custom/default.cfg,
176    + custom/bsp.cfg and
177    + ompilers/gcc-target-default.cfg.
178
179Default.cfg sets the deafult values of certain common build options.
180
181Bsp.cfg set bsp-specific build options and can also override the
182default settings.
183
184Gcc-target-default.cfg contains the common gcc definitions. Some targets
185(a29k, no_cpu, and posix) still use the old structure.
186
1876. Adding a bsp
188===============
189
190The top-level configure.in has to be modified if a new target is added
191or if a new bsp is to be built by default. The additions required is
192basically to add which makefiles are to be created by configure and
193to add the target to the selection statement. To re-generate
194configure, autoconf-2.12 is needed.
195
1967. Tested configurations
197========================
198
199All gnu-based bsps have been built on Linux.
200The native (posix) ports have been built and run on Linux ans Solaris.
201The sparc port has been tested on SunOS and Linux.
202
203The following configurations have NOT been tested:
204
205    + Anything on Nextstep, HPUX and Irix.
206    + The a29k port.
207
2088. Pre-requisites
209=================
210
211Gawk version 2 or higher.
212GNU make version 3.72 or higher.
213Bash.
214gcc version ???
215
216TODO
217====
218
219The install-if-change script requires bash. On solaris systems, this should
220be changed to ksh, since ksh is provided with solaris (bash not).
221
222A fairly rescent version of gawk is needed to build RTEMS. This should be
223changed so that a plain vanilla awk also works. [NOTE: This dependency
224should disappear when the "gcc 2.8 -specs" is finished.]
225
226'make install' should only install necessary files, not the full
227PROJECT_RELEASE directory as now.
228
229Posix port on solaris-2.5 fails due to undefined built-in functions
230(gcc-2.7.2, might be my installation).
231
232Improve support for 'make CFLAGS=xxx'.
233
Note: See TracBrowser for help on using the repository browser.