source: rtems/README.configure @ ad9250cf

4.104.114.84.95
Last change on this file since ad9250cf was 978a9ba0, checked in by Joel Sherrill <joel.sherrill@…>, on 08/01/97 at 20:22:57

Added --enable-gmake-print-directory option and ods68302 bsp.

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