source: rtems/README.configure @ 83e39b26

4.104.114.84.95
Last change on this file since 83e39b26 was 83e39b26, checked in by Joel Sherrill <joel.sherrill@…>, on 04/16/97 at 17:31:52

Added --disable-tcpip option.

Add discussion of the pecularities of the i386-go32-rtems configuration.

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