source: rtems/README.configure @ 9ffcaa4a

4.104.114.84.95
Last change on this file since 9ffcaa4a was 254b4450, checked in by Joel Sherrill <joel.sherrill@…>, on 04/01/97 at 23:07:52

This set of changes is the build of what was required to convert to
GNU autoconf. This is the first large step in allowing an RTEMS
user to perform a one-tree build (per crossgcc FAQ) including RTEMS
in the build process. With this change RTEMS is configured in
built in the same style as the GNU tools, yet retains the basic
structure of its traditional Makefiles (ala Tony Bennett).
Jiri Gaisler (jgais@…) deserves (and received)
a big thank you for doing this.

There are still issues to be resolved but as of this commit, all target
which can be built on a linux host have been using a modified version
of the source Jiri submitted. This source was merged and most targets
built in the tree before this commit.

There are some issues which remain to be resolved but they are primarily
related to host OS dependencies, script issues, the use of gawk
for hack_specs, and the dependence on gcc snapshots. These will
be resolved.

  • Property mode set to 100644
File size: 5.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        --enable-rtemsbsp="bsp1 bsp2 ..."
23
24By default, the RTEMS posix interface is built for targets that support
25it. It can be disabled with the --disable-posix option. The --disable-tests
26will not configure the RTEMS test suite. This is used only to speed-up
27configuration in case building the tests are not necessary. By default,
28all bsps for a target are built. There is two ways of changing this:
29
30  + use the --enable-rtemsbsp otion which will set the specified
31    bsps as the default bsps, or
32  + set the RTEMSBSP variable during make (see below).
33
34The cross-compiler is set to $(target)-gcc by default. This can be
35overriden by one of the following methods:
36
37  + running make with CC_FOR_TARGET=compiler_to_use. The same applies to
38    all the target specific tools (AS, AR, NM, OBJCOPY, SIZE, LD), or
39  + by using the --program-prefix option to configure to specify the
40    string which will prepended to the tool names.  Be sure to include
41    a trailing "-".  For example, to use a m68k-coff toolset, use the
42    --program-prefix=m68k-coff- option.
43
44The --target= option configures RTEMS for a specific target architecture.
45The following targets are supported:
46
47        (none)                  will build the host-based version on Linux,
48                                Solaris and HPUX.
49
50        a29k-rtems              only standalone, uses non-gnu compiler
51        i386-rtems
52        i960-rtems
53        hppa1_1-rtems
54        m68k-rtems
55        mips64orion-rtems
56        no_cpu-rtems
57        powerpc-rtems
58        sparc-rtems
59       
60To build, run make in the build directory. To specify which bsps to build,
61add the RTEMSBSP="bsp1 bsp2 .." to the make command.
62
63Installation is done under $(prefix)/$(target)/rtems.
64
65As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
66
67        (path_to_rtems_src)/configure --target=m68k-rtems
68
69        make RTEMSBSP="mvme136 dmv152"
70       
71        make install RTEMSBSP="mvme136 dmv152"
72
73
74The sample tests are built by 'make all', do a 'make test' to build the full
75test suite.
76
772.2 Build with Cygnus one-tree release
78
79To build and install RTEMS with the one-tree structure, just copy the rtems
80directory to the tree. The one-tree configure.in and Makefile.in has to be
81replaced with the RTEMS-aware versions. The build options are the same as
82for the standalone build.
83
843. To use the installed RTEMS library
85=====================================
86
87To use the installed RTEMS bsps to build applications, the application
88makefile has to include a bsp-specific makefile that will define the
89RTEMS variables necessary to find include files and libraries. The
90bsp-specific makefile is installed at
91
92        $(prefix)/$(target)/rtmes/$(RTEMS_BSP)/Makefile.inc
93
94For the erc32 bsp installed at /usr/local/cross, the line would read:
95
96include /usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
97
98
994. Supported target bsps
100========================
101
102The following bsps are supported:
103
104host-based      : posix (on linux, solaris and hpux)
105
106a29k            : portsw
107i386            : force386 i386ex
108i960            : cvme961
109hppa1_1         : simhppa
110m68k            : efi332 gen68302 idp mvme147 mvme162 dmv152 efi68k gen68360
111                  mvme136 mvme147s go32
112no_cpu          : no_bsp
113mips64orion     : p4600 p4650 (p4000 port with either R4600 or R4650)
114powerpc         : papyrus
115sparc           : erc32
116
1175. Makefile structure
118=====================
119
120The makefiles have been re-organised. Most gnu-based bsps now use three
121main makefiles:
122    + custom/default.cfg,
123    + custom/bsp.cfg and
124    + ompilers/gcc-target-default.cfg.
125
126Default.cfg sets the deafult values of certain common build options.
127
128Bsp.cfg set bsp-specific build options and can also override the
129default settings.
130
131Gcc-target-default.cfg contains the common gcc definitions. Some targets
132(a29k, no_cpu, and posix) still use the old structure.
133
1346. Adding a bsp
135===============
136
137The top-level configure.in has to be modified if a new target is added
138or if a new bsp is to be built by default. The additions required is
139basically to add which makefiles are to be created by configure and
140to add the target to the selection statement. To re-generate
141configure, autoconf-2.12 is needed.
142
1437. Tested configurations
144========================
145
146All gnu-based bsps have been built on Linux.
147The native (posix) ports have been built and run on Linux ans Solaris.
148The sparc port has been tested on SunOS and Linux.
149
150The following configurations have NOT been tested:
151
152    + Anything on Nextstep, HPUX and Irix.
153    + The a29k port.
154
1558. Pre-requisites
156=================
157
158Gawk version 2 or higher.
159GNU make version 3.72 or higher.
160Bash.
161gcc version ???
162
163TODO
164====
165
166The install-if-change script requires bash. On solaris systems, this should
167be changed to ksh, since ksh is provided with solaris (bash not).
168
169A fairly rescent version of gawk is needed to build RTEMS. This should be
170changed so that a plain vanilla awk also works.
171
172'make install' should only install necessary files, not the full
173PROJECT_RELEASE directory as now.
174
175Posix port on solaris-2.5 fails due to undefined built-in functions
176(gcc-2.7.2, might be my installation).
177
178Improve support for 'make CFLAGS=xxx'.
179
Note: See TracBrowser for help on using the repository browser.