source: rtems/README.configure @ f5bd03c

4.104.114.84.95
Last change on this file since f5bd03c was f5bd03c, checked in by Joel Sherrill <joel.sherrill@…>, on 05/23/97 at 21:44:19

KA9Q stack removed prior to testing for 4.0.0 public release.

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