OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems/] [README.configure] - Diff between revs 208 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 208 Rev 1765
#
#
#  $Id: README.configure,v 1.2 2001-09-27 11:59:04 chris Exp $
#  $Id: README.configure,v 1.2 2001-09-27 11:59:04 chris Exp $
#
#
1. Autoconf support
1. Autoconf support
===================
===================
This version of RTEMS is configured with GNU autoconf. RTEMS can be
This version of RTEMS is configured with GNU autoconf. RTEMS can be
configured and built either standalone or together with the compiler
configured and built either standalone or together with the compiler
tools in the Cygnus one-tree structure. Using autoconf also means
tools in the Cygnus one-tree structure. Using autoconf also means
that RTEMS now can be built in a separate build directory.
that RTEMS now can be built in a separate build directory.
2. Installation
2. Installation
===============
===============
2.1 Standalone build
2.1 Standalone build
To configure RTEMS for a specific target, run configure in the build
To configure RTEMS for a specific target, run configure in the build
directory. In addition to the standard configure options, the following
directory. In addition to the standard configure options, the following
RTEMS-specific option are supported:
RTEMS-specific option are supported:
        --disable-rtems-inlines
        --disable-rtems-inlines
        --disable-posix
        --disable-posix
        --disable-itron
        --disable-itron
        --disable-networking
        --disable-networking
        --enable-cxx
        --enable-cxx
        --enable-bare-cpu-model=
        --enable-bare-cpu-model=
        --enable-bare-cpu-cflags=
        --enable-bare-cpu-cflags=
        --enable-gcc28               (also use enable-libcdir when disabled)
        --enable-gcc28               (also use enable-libcdir when disabled)
        --enable-libcdir=      (do not use if gcc 2.8 is enabled)
        --enable-libcdir=      (do not use if gcc 2.8 is enabled)
        --enable-multiprocessing
        --enable-multiprocessing
        --enable-rtemsbsp="bsp1 bsp2 ..."
        --enable-rtemsbsp="bsp1 bsp2 ..."
        --enable-tests
        --enable-tests
        --enable-rdbg            (only valid for i386 and some PowerPC BSPs)
        --enable-rdbg            (only valid for i386 and some PowerPC BSPs)
In addition, the following standard autoconf options are frequently
In addition, the following standard autoconf options are frequently
used when configuring RTEMS installations:
used when configuring RTEMS installations:
        --prefix=INSTALL_DIRECTORY
        --prefix=INSTALL_DIRECTORY
        --program-prefix=
        --program-prefix=
By default, inline routines are used instead of macros where possible.
By default, inline routines are used instead of macros where possible.
Macros can be selected using the --disable-inlines option.  [NOTE:
Macros can be selected using the --disable-inlines option.  [NOTE:
Some APIs may not support macro versions of their inline routines.]
Some APIs may not support macro versions of their inline routines.]
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
it. It can be disabled with the --disable-posix option.
it. It can be disabled with the --disable-posix option.
By default, the RTEMS uITRON interface is built for targets that support
By default, the RTEMS uITRON interface is built for targets that support
it. It can be disabled with the --disable-itron option.
it. It can be disabled with the --disable-itron option.
By default, the RTEMS networking support is built for targets which
By default, the RTEMS networking support is built for targets which
support it.  It can be specifically disabled for those targets
support it.  It can be specifically disabled for those targets
with the --disable-networking option.
with the --disable-networking option.
By default, the RTEMS remote debugger server support is not built.
By default, the RTEMS remote debugger server support is not built.
It can be specifically enabled for the targets that support it.
It can be specifically enabled for the targets that support it.
with the --enable-rdbg option. NB : the RTEMS networking support
with the --enable-rdbg option. NB : the RTEMS networking support
must be enabled to support the remote debugger server.
must be enabled to support the remote debugger server.
By default, the RTEMS support of C++ is disabled.  It can be enabled
By default, the RTEMS support of C++ is disabled.  It can be enabled
with the --enable-cxx option. If the rtems++ C++ library is installed
with the --enable-cxx option. If the rtems++ C++ library is installed
it will also be build.
it will also be build.
By default, the RTEMS test suites are NOT configured -- only the
By default, the RTEMS test suites are NOT configured -- only the
sample tests are built.  The --enable-tests will not configure
sample tests are built.  The --enable-tests will not configure
the RTEMS test suite. The default speeds up the build
the RTEMS test suite. The default speeds up the build
and configure process when the tests are not desired.
and configure process when the tests are not desired.
By default, RTEMS is built using arguments and build rules which are
By default, RTEMS is built using arguments and build rules which are
NOT compatible with gcc 2.7.2.2.  If using a gcc which supports the
NOT compatible with gcc 2.7.2.2.  If using a gcc which supports the
-specs option, then the --enable-gcc28 option may be used to enable
-specs option, then the --enable-gcc28 option may be used to enable
this feature.  You should use the --enable-gcc28 option when using
this feature.  You should use the --enable-gcc28 option when using
either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
If you --disable-gcc28, then you MUST  specify the location of the
If you --disable-gcc28, then you MUST  specify the location of the
Standard C Library with the --enable-libcdir option.   [NOTE: These
Standard C Library with the --enable-libcdir option.   [NOTE: These
options are considered obsolete and may be removed in a future
options are considered obsolete and may be removed in a future
RTEMS release.]
RTEMS release.]
By default, multiprocessing is is not built.  It can be enabled
By default, multiprocessing is is not built.  It can be enabled
for those BSPs supporting it by the --enable-multiprocessing option.
for those BSPs supporting it by the --enable-multiprocessing option.
By default, all bsps for a target are built. The bare BSP is not built
By default, all bsps for a target are built. The bare BSP is not built
unless directlty specified. There are  two ways of changing this:
unless directlty specified. There are  two ways of changing this:
  + use the --enable-rtemsbsp otion which will set the specified
  + use the --enable-rtemsbsp otion which will set the specified
    bsps as the default bsps, or
    bsps as the default bsps, or
  + set the RTEMS_BSP variable during make (see below).
  + set the RTEMS_BSP variable during make (see below).
The --enable-rtemsbsp= option configures RTEMS for a specific target
The --enable-rtemsbsp= option configures RTEMS for a specific target
architecture.  The following targets are supported:
architecture.  The following targets are supported:
        (none)                  will build the host-based version on Linux,
        (none)                  will build the host-based version on Linux,
                                Solaris and HPUX.
                                Solaris and HPUX.
        a29k-rtems              only standalone, uses non-gnu compiler
        a29k-rtems              only standalone, uses non-gnu compiler
        i386-rtems
        i386-rtems
        i960-rtems
        i960-rtems
        hppa1.1-rtems
        hppa1.1-rtems
        m68k-rtems
        m68k-rtems
        mips64orion-rtems
        mips64orion-rtems
        no_cpu-rtems
        no_cpu-rtems
        powerpc-rtems
        powerpc-rtems
        sparc-rtems
        sparc-rtems
        bare                    see notes
        bare                    see notes
The cross-compiler is set to $(target)-gcc by default. This can be
The cross-compiler is set to $(target)-gcc by default. This can be
overriden by:
overriden by:
  + using the --program-prefix option to configure to specify the
  + using the --program-prefix option to configure to specify the
    string which will prepended to the tool names.  Be sure to include
    string which will prepended to the tool names.  Be sure to include
    a trailing "-".  For example, to use a m68k-coff toolset, use the
    a trailing "-".  For example, to use a m68k-coff toolset, use the
    --program-prefix=m68k-coff- option.
    --program-prefix=m68k-coff- option.
To build, run make in the build directory. To specify which bsps to build,
To build, run make in the build directory. To specify which bsps to build,
add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
add the RTEMS_BSP="bsp1 bsp2 .." to the make command.  Specifying multiple
BSPs to build only works from the top level build directory.
BSPs to build only works from the top level build directory.
Installation is done under $(prefix)/rtems.
Installation is done under $(prefix)/rtems.
As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
        (path_to_rtems_src)/configure --target=m68k-rtems
        (path_to_rtems_src)/configure --target=m68k-rtems
        make RTEMS_BSP="mvme136 dmv152"
        make RTEMS_BSP="mvme136 dmv152"
        make install RTEMS_BSP="mvme136 dmv152"
        make install RTEMS_BSP="mvme136 dmv152"
The sample tests are built by 'make all', do a 'make test' to build the full
The sample tests are built by 'make all', do a 'make test' to build the full
test suite.
test suite.
2.2 Build with Cygnus one-tree release
2.2 Build with Cygnus one-tree release
To build and install RTEMS with the one-tree structure, just copy the rtems
To build and install RTEMS with the one-tree structure, just copy the rtems
directory to the tree. The one-tree configure.in and Makefile.in has to be
directory to the tree. The one-tree configure.in and Makefile.in has to be
replaced with the RTEMS-aware versions. The build options are the same as
replaced with the RTEMS-aware versions. The build options are the same as
for the standalone build.
for the standalone build.
2.3 Target Dependent Notes
2.3 Target Dependent Notes
bare:
bare:
  1.  See the README in the bare bsp source directory. This should
  1.  See the README in the bare bsp source directory. This should
      contain all info you need.
      contain all info you need.
  2.  The bare bsp source contains a script to show how to build it.
  2.  The bare bsp source contains a script to show how to build it.
  3.  The configure flags must be used to get the bare bsp to work.
  3.  The configure flags must be used to get the bare bsp to work.
      The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
      The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
      only pieces of information. The module is usually a gcc module
      only pieces of information. The module is usually a gcc module
      such as m68302 or mcpu32. The flags are passed directly to gcc.
      such as m68302 or mcpu32. The flags are passed directly to gcc.
      Use "" if more than one option is specified.
      Use "" if more than one option is specified.
3. To use the installed RTEMS library
3. To use the installed RTEMS library
=====================================
=====================================
To use the installed RTEMS bsps to build applications, the application
To use the installed RTEMS bsps to build applications, the application
makefile has to include a bsp-specific makefile that will define the
makefile has to include a bsp-specific makefile that will define the
RTEMS variables necessary to find include files and libraries. The
RTEMS variables necessary to find include files and libraries. The
bsp-specific makefile is installed at
bsp-specific makefile is installed at
        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
        $(RTEMS_MAKEFILE_PATH)/Makefile.inc
For the erc32 bsp installed at /usr/local/cross, the environment
For the erc32 bsp installed at /usr/local/cross, the environment
variable RTEMS_MAKEFILE_PATH would be set as follows to the
variable RTEMS_MAKEFILE_PATH would be set as follows to the
following:
following:
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
4. Supported target bsps
4. Supported target bsps
========================
========================
The following bsps are supported:
The following bsps are supported:
host-based      : posix (on linux, solaris and hpux)
host-based      : posix (on linux, solaris and hpux)
a29k            : portsw
a29k            : portsw
i386            : i386ex pc386
i386            : i386ex pc386
i960            : cvme961
i960            : cvme961
hppa1.1         : simhppa
hppa1.1         : simhppa
m68k            : dmv152 efi332 efi68k gen68302 gen68340 gen68360
m68k            : dmv152 efi332 efi68k gen68302 gen68340 gen68360
                  gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
                  gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
no_cpu          : no_bsp
no_cpu          : no_bsp
mips64orion     : p4600 p4650 (p4000 port with either R4600 or R4650)
mips64orion     : p4600 p4650 (p4000 port with either R4600 or R4650)
powerpc         : papyrus psim helas403
powerpc         : papyrus psim helas403
sh              : gensh1
sh              : gensh1
sparc           : erc32
sparc           : erc32
any             : bare
any             : bare
5. Makefile structure
5. Makefile structure
=====================
=====================
The makefiles have been re-organised. Most gnu-based bsps now use three
The makefiles have been re-organised. Most gnu-based bsps now use three
main makefiles:
main makefiles:
    + custom/default.cfg,
    + custom/default.cfg,
    + custom/bsp.cfg and
    + custom/bsp.cfg and
    + ompilers/gcc-target-default.cfg.
    + ompilers/gcc-target-default.cfg.
Default.cfg sets the deafult values of certain common build options.
Default.cfg sets the deafult values of certain common build options.
Bsp.cfg set bsp-specific build options and can also override the
Bsp.cfg set bsp-specific build options and can also override the
default settings.
default settings.
Gcc-target-default.cfg contains the common gcc definitions. Some targets
Gcc-target-default.cfg contains the common gcc definitions. Some targets
(a29k, no_cpu, and posix) still use the old structure.
(a29k, no_cpu, and posix) still use the old structure.
6. Adding a bsp
6. Adding a bsp
===============
===============
The top-level configure.in has to be modified if a new target is added
The top-level configure.in has to be modified if a new target is added
or if a new bsp is to be built by default. The additions required is
or if a new bsp is to be built by default. The additions required is
basically to add which makefiles are to be created by configure and
basically to add which makefiles are to be created by configure and
to add the target to the selection statement. To re-generate
to add the target to the selection statement. To re-generate
configure, autoconf-2.12 is needed.
configure, autoconf-2.12 is needed.
7. Tested configurations
7. Tested configurations
========================
========================
All gnu-based bsps have been built on Linux.
All gnu-based bsps have been built on Linux.
The native (posix) ports have been built and run only on Linux.
The native (posix) ports have been built and run only on Linux.
The following configurations have NOT been tested:
The following configurations have NOT been tested:
    + Anything on Nextstep, HPUX and Irix.
    + Anything on Nextstep, HPUX and Irix.
    + The a29k port.
    + The a29k port.
8. Pre-requisites
8. Pre-requisites
=================
=================
Gawk version 2 or higher.
Gawk version 2 or higher.
GNU make version 3.72 or higher.
GNU make version 3.72 or higher.
Bash.
Bash.
gcc version ???
gcc version ???
TODO
TODO
====
====
The install-if-change script requires bash. On solaris systems, this should
The install-if-change script requires bash. On solaris systems, this should
be changed to ksh, since ksh is provided with solaris (bash not).
be changed to ksh, since ksh is provided with solaris (bash not).
A fairly rescent version of gawk is needed to build RTEMS. This should be
A fairly rescent version of gawk is needed to build RTEMS. This should be
changed so that a plain vanilla awk also works. [NOTE: This dependency
changed so that a plain vanilla awk also works. [NOTE: This dependency
should disappear when the "gcc 2.8 -specs" is finished.]
should disappear when the "gcc 2.8 -specs" is finished.]
'make install' should only install necessary files, not the full
'make install' should only install necessary files, not the full
PROJECT_RELEASE directory as now.
PROJECT_RELEASE directory as now.
Posix port on solaris-2.5 fails due to undefined built-in functions
Posix port on solaris-2.5 fails due to undefined built-in functions
(gcc-2.7.2, might be my installation).
(gcc-2.7.2, might be my installation).
Improve support for 'make CFLAGS=xxx'.
Improve support for 'make CFLAGS=xxx'.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.