source: rtems/README.configure @ 3a7782b

4.104.114.84.95
Last change on this file since 3a7782b was ede9a691, checked in by Joel Sherrill <joel.sherrill@…>, on 12/22/97 at 22:40:59

Removed reference to CC_FOR_TARGET since I don't want anyone overriding
it anyway. :)

Added hints about --prefix and --program-prefix options.

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