URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [README.configure] - Rev 785
Go to most recent revision | Compare with Previous | Blame | View Log
## $Id: README.configure,v 1.2 2001-09-27 11:59:04 chris Exp $#1. Autoconf support===================This version of RTEMS is configured with GNU autoconf. RTEMS can beconfigured and built either standalone or together with the compilertools in the Cygnus one-tree structure. Using autoconf also meansthat RTEMS now can be built in a separate build directory.2. Installation===============2.1 Standalone buildTo configure RTEMS for a specific target, run configure in the builddirectory. In addition to the standard configure options, the followingRTEMS-specific option are supported:--disable-rtems-inlines--disable-posix--disable-itron--disable-networking--enable-cxx--enable-bare-cpu-model=<MODEL>--enable-bare-cpu-cflags=<FLAGS>--enable-gcc28 (also use enable-libcdir when disabled)--enable-libcdir=<DIRECTORY> (do not use if gcc 2.8 is enabled)--enable-multiprocessing--enable-rtemsbsp="bsp1 bsp2 ..."--enable-tests--enable-rdbg (only valid for i386 and some PowerPC BSPs)In addition, the following standard autoconf options are frequentlyused when configuring RTEMS installations:--prefix=INSTALL_DIRECTORY--program-prefix=By default, inline routines are used instead of macros where possible.Macros can be selected using the --disable-inlines option. [NOTE:Some APIs may not support macro versions of their inline routines.]By default, the RTEMS POSIX 1003.1b interface is built for targets that supportit. It can be disabled with the --disable-posix option.By default, the RTEMS uITRON interface is built for targets that supportit. It can be disabled with the --disable-itron option.By default, the RTEMS networking support is built for targets whichsupport it. It can be specifically disabled for those targetswith the --disable-networking option.By default, the RTEMS remote debugger server support is not built.It can be specifically enabled for the targets that support it.with the --enable-rdbg option. NB : the RTEMS networking supportmust be enabled to support the remote debugger server.By default, the RTEMS support of C++ is disabled. It can be enabledwith the --enable-cxx option. If the rtems++ C++ library is installedit will also be build.By default, the RTEMS test suites are NOT configured -- only thesample tests are built. The --enable-tests will not configurethe RTEMS test suite. The default speeds up the buildand configure process when the tests are not desired.By default, RTEMS is built using arguments and build rules which areNOT 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 enablethis feature. You should use the --enable-gcc28 option when usingeither the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.If you --disable-gcc28, then you MUST specify the location of theStandard C Library with the --enable-libcdir option. [NOTE: Theseoptions are considered obsolete and may be removed in a futureRTEMS release.]By default, multiprocessing is is not built. It can be enabledfor those BSPs supporting it by the --enable-multiprocessing option.By default, all bsps for a target are built. The bare BSP is not builtunless directlty specified. There are two ways of changing this:+ use the --enable-rtemsbsp otion which will set the specifiedbsps as the default bsps, or+ set the RTEMS_BSP variable during make (see below).The --enable-rtemsbsp= option configures RTEMS for a specific targetarchitecture. The following targets are supported:(none) will build the host-based version on Linux,Solaris and HPUX.a29k-rtems only standalone, uses non-gnu compileri386-rtemsi960-rtemshppa1.1-rtemsm68k-rtemsmips64orion-rtemsno_cpu-rtemspowerpc-rtemssparc-rtemsbare see notesThe cross-compiler is set to $(target)-gcc by default. This can beoverriden by:+ using the --program-prefix option to configure to specify thestring which will prepended to the tool names. Be sure to includea trailing "-". For example, to use a m68k-coff toolset, use the--program-prefix=m68k-coff- option.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 multipleBSPs to build only works from the top level build directory.Installation is done under $(prefix)/rtems.As an example, to build and install the mvme136 and dmv152 bsps for m68k do:(path_to_rtems_src)/configure --target=m68k-rtemsmake 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 fulltest suite.2.2 Build with Cygnus one-tree releaseTo build and install RTEMS with the one-tree structure, just copy the rtemsdirectory to the tree. The one-tree configure.in and Makefile.in has to bereplaced with the RTEMS-aware versions. The build options are the same asfor the standalone build.2.3 Target Dependent Notesbare:1. See the README in the bare bsp source directory. This shouldcontain all info you need.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.The --enable-bare-cpu-model and --enable-bare-cpu-cflags are theonly pieces of information. The module is usually a gcc modulesuch as m68302 or mcpu32. The flags are passed directly to gcc.Use "" if more than one option is specified.3. To use the installed RTEMS library=====================================To use the installed RTEMS bsps to build applications, the applicationmakefile has to include a bsp-specific makefile that will define theRTEMS variables necessary to find include files and libraries. Thebsp-specific makefile is installed at$(RTEMS_MAKEFILE_PATH)/Makefile.incFor the erc32 bsp installed at /usr/local/cross, the environmentvariable RTEMS_MAKEFILE_PATH would be set as follows to thefollowing:/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc4. Supported target bsps========================The following bsps are supported:host-based : posix (on linux, solaris and hpux)a29k : portswi386 : i386ex pc386i960 : cvme961hppa1.1 : simhppam68k : dmv152 efi332 efi68k gen68302 gen68340 gen68360gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302no_cpu : no_bspmips64orion : p4600 p4650 (p4000 port with either R4600 or R4650)powerpc : papyrus psim helas403sh : gensh1sparc : erc32any : bare5. Makefile structure=====================The makefiles have been re-organised. Most gnu-based bsps now use threemain makefiles:+ custom/default.cfg,+ custom/bsp.cfg and+ ompilers/gcc-target-default.cfg.Default.cfg sets the deafult values of certain common build options.Bsp.cfg set bsp-specific build options and can also override thedefault settings.Gcc-target-default.cfg contains the common gcc definitions. Some targets(a29k, no_cpu, and posix) still use the old structure.6. Adding a bsp===============The top-level configure.in has to be modified if a new target is addedor if a new bsp is to be built by default. The additions required isbasically to add which makefiles are to be created by configure andto add the target to the selection statement. To re-generateconfigure, autoconf-2.12 is needed.7. Tested configurations========================All gnu-based bsps have been built on Linux.The native (posix) ports have been built and run only on Linux.The following configurations have NOT been tested:+ Anything on Nextstep, HPUX and Irix.+ The a29k port.8. Pre-requisites=================Gawk version 2 or higher.GNU make version 3.72 or higher.Bash.gcc version ???TODO====The install-if-change script requires bash. On solaris systems, this shouldbe changed to ksh, since ksh is provided with solaris (bash not).A fairly rescent version of gawk is needed to build RTEMS. This should bechanged so that a plain vanilla awk also works. [NOTE: This dependencyshould disappear when the "gcc 2.8 -specs" is finished.]'make install' should only install necessary files, not the fullPROJECT_RELEASE directory as now.Posix port on solaris-2.5 fails due to undefined built-in functions(gcc-2.7.2, might be my installation).Improve support for 'make CFLAGS=xxx'.
Go to most recent revision | Compare with Previous | Blame | View Log
