source: rtems/README.configure @ b4be04e

4.104.114.84.95
Last change on this file since b4be04e was 1f0f3e35, checked in by Joel Sherrill <joel.sherrill@…>, on 05/27/97 at 23:39:29

added ka9q stack

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