summaryrefslogtreecommitdiffstats
path: root/doc/develenv/direct.t
diff options
context:
space:
mode:
Diffstat (limited to 'doc/develenv/direct.t')
-rw-r--r--doc/develenv/direct.t696
1 files changed, 696 insertions, 0 deletions
diff --git a/doc/develenv/direct.t b/doc/develenv/direct.t
new file mode 100644
index 0000000000..50de20f42c
--- /dev/null
+++ b/doc/develenv/direct.t
@@ -0,0 +1,696 @@
+@c
+@c COPYRIGHT (c) 1988-2002.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@chapter Directory Structure
+
+The RTEMS directory structure is designed to meet
+the following requirements:
+
+@itemize @bullet
+@item encourage development of modular components.
+
+@item isolate processor and target dependent code, while
+allowing as much common source code as possible to be shared
+across multiple processors and target boards.
+
+@item allow multiple RTEMS users to perform simultaneous
+compilation of RTEMS and its support facilities for different
+processors and targets.
+@end itemize
+
+The resulting directory structure has processor and
+board dependent source files isolated from generic files. When
+RTEMS is configured and built, object directories and
+an install point will be automatically created based upon
+the target CPU family and BSP selected.
+
+The placement of object files based upon the selected BSP name
+ensures that object files are not mixed across CPUs or targets.
+This in combination with the makefiles allows the specific
+compilation options to be tailored for a particular target
+board. For example, the efficiency of the memory subsystem for
+a particular target board may be sensitive to the alignment of
+data structures, while on another target board with the same
+processor memory may be very limited. For the first target, the
+options could specify very strict alignment requirements, while
+on the second the data structures could be @i{packed} to conserve
+memory. It is impossible to achieve this degree of flexibility
+without providing source code.
+
+The RTEMS source tree is organized based on the following variables:
+
+@itemize @bullet
+
+@item functionality,
+@item target processor family,
+@item target processor model,
+@item peripherals, and
+@item target board.
+
+@end itemize
+
+Each of the following sections will describe the
+contents of the directories in the RTEMS source
+tree. The top of the tree will be referenced
+as @code{$@{RTEMS_ROOT@}} in this discussion.
+
+@c
+@c Top Level Tree
+@c
+
+@c @ifset use-ascii
+@example
+@group
+ rtems-VERSION
+ |
+ +--------+----+----+----+--+-----+---+------+-----+
+ | | | | | | | | |
+aclocal automake c contrib cpukit doc make scripts tools
+@end group
+@end example
+@c @end ifset
+
+@ifset use-tex
+@end ifset
+
+@ifset use-html
+@html
+@end html
+@end ifset
+
+@table @code
+@item $@{RTEMS_ROOT@}/aclocal/
+This directory contains the custom M4 macros which are available to
+the various GNU autoconf @code{configure.ac} scripts throughout
+the RTEMS source tree. GNU autoconf interprets @code{configure.ac}
+files to produce the @code{configure} files used to tailor
+RTEMS build for a particular host and target environment. The
+contents of this directory will not be discussed further in this
+document.
+
+@item $@{RTEMS_ROOT@}/automake/
+This directory contains the custom GNU automake fragments
+which are used to support the various @code{Makefile.am}
+files throughout the RTEMS source tree. The
+contents of this directory will not be discussed
+further in this document.
+
+@item $@{RTEMS_ROOT@}/c/
+This directory is the root of the portions of the RTEMS source
+tree which must be built tailored for a particular CPU model
+or BSP. The contents of this directory will be discussed
+in the @ref{Directory Structure c/ Directory} section.
+
+@item $@{RTEMS_ROOT@}/contrib/
+This directory contains contributed support software. Currently
+this directory contains the RPM specifications for cross-compilers
+hosted on GNU/Linux that target Cygwin and Solaris. The
+cross-compilers produced using these specifications are then
+used in a Canadian cross build procedure to produce the Cygwin
+and Solaris hosted RTEMS toolsets on a GNU/Linux host. This
+directory will not be discussed further in this document.
+
+@item $@{RTEMS_ROOT@}/cpukit/
+This directory is the root for all of the "multilib'able"
+portions of RTEMS. This is a GNU way of saying the the
+contents of this directory can be compiled like the
+C Library (@code{libc.a}) and the functionality is
+neither CPU model nor BSP specific. The source code
+for most RTEMS services reside under this directory.
+The contents of this directory will be discussed
+in the @ref{Directory Structure CPUKit Directory} section.
+
+@item $@{RTEMS_ROOT@}/doc/
+This directory is the root for all RTEMS documentation.
+The source for RTEMS is written in GNU TeXinfo and
+used to produce HTML, PDF, and "info" files.
+The RTEMS documentation is configured, built,
+and installed separately from the RTEMS executive and tests.
+The contents of this directory will be discussed
+in the @ref{Directory Structure Documentation Directory} section.
+
+@item $@{RTEMS_ROOT@}/make/
+This directory contains files which support the
+RTEMS Makefile's. From a user's perspective, the
+most important parts are found in the @code{custom/}
+subdirectory. Each ".cfg" file in this directory
+is associated with a specific BSP and describes
+the CPU model, compiler flags, and procedure to
+a produce an executable for the target board.
+These files are described in detail in the
+@b{RTEMS BSP and Device Driver Development Guide}
+and will not be discussed further in this document.
+
+@item $@{RTEMS_ROOT@}/scripts/
+This directory contains the RPM specifications for the
+prebuilt cross-compilation toolsets provided by the
+RTEMS project. There are separate subdirectories
+for each of the components in the RTEMS Cross Compilation
+Environment including @code{binutils/}, @code{gcc3newlib/},
+and @code{gdb/}. This directory is configured, built,
+and installed separately from the RTEMS executive
+and tests. This directory will not be discussed further
+in this document.
+
+@item $@{RTEMS_ROOT@}/tools/
+This directory contains RTEMS specific support utilities which
+execute on the development host. These utilities are divided
+into subdirectories based upon whether they are used in the process
+of building RTEMS and applications, are CPU specific, or are
+used to assist in updating the RTEMS source tree and applications.
+The support utilities used in the process of building RTEMS are
+described in @ref{RTEMS Specific Utilities}. These are the
+only components of this subtree that will be discussed in this
+document.
+
+@end table
+
+
+
+@c
+@c c/ Directions
+@c
+@section c/ Directory
+
+The @code{$@{RTEMS_ROOT@}/c/} directory was formerly
+the root directory of all RTEMS source code. At this time, it contains
+the root directory for only those RTEMS components
+which must be compiled or linked in a way that is specific to a
+particular CPU model or board. This directory contains the
+following subdirectories:
+
+@table @code
+@item $@{RTEMS_ROOT@}/c/src/
+This directory is logically the root for the RTEMS components
+which are CPU model or board dependent. Thus this directory
+is the root for the BSPs and the various Test Suites as well
+as CPU model and BSP dependent libraries. The contents of
+this directory are discussed in the
+@ref{Directory Structure c/src/ Directory} section.
+
+@item $@{RTEMS_ROOT@}/c/make/
+This directory is used to generate the file @code{target.cfg}
+which is installed as part of the Application Makefiles. This
+file contains settings for various Makefile variables to
+tailor them to the particular CPU model and BSP configured.
+
+@end table
+
+@c
+@c c/src/ Directory
+@c
+@subsection c/src/ Directory
+
+As mentioned previously, this directory is logically
+the root for the RTEMS components
+which are CPU model or board dependent. The
+following is a list of the subdirectories in this
+directorie and a description of each.
+
+@table @code
+@item $@{RTEMS_ROOT@}/c/src/ada-tests/
+This directory contains the test suite for the Ada
+language bindings to the Classic API.
+
+@item $@{RTEMS_ROOT@}/c/src/lib/
+This directory contains the directories @code{libbsp}
+and @code{libcpu/} which contain the source code for
+the Board Support Packages (BSPs) and CPU Model
+specific source code for RTEMS.
+
+The @code{libbsp/} is organized based upon the CPU
+family and boards BSPs. The contents of @code{libbsp/}
+are discussed briefly in
+@ref{Directory Structure c/src/lib/libbsp BSP Directory}
+and presented in detail in the
+@b{RTEMS BSP and Device Driver Development Guide}.
+
+The @code{libcpu/} directory is also organized by
+CPU family with further divisions based upon CPU
+model and features that are shared across CPU models
+such as caching and DMA.
+
+@item $@{RTEMS_ROOT@}/c/src/libchip/
+This directory contains device drivers for various
+peripheral chips which are designed to be CPU and
+board dependent. This directory contains a variety
+of drivers for serial devices, network interface
+controllers, and real-time clocks.
+
+@item $@{RTEMS_ROOT@}/c/src/libmisc/
+This directory contains support facilities which
+are RTEMS specific but otherwise unclassified. In
+general, they do not adhere to a standard API.
+Among the support facilities in this directory are
+a @code{/dev/null} device driver, the Stack
+Overflow Checker, a mini-shell, the CPU and
+rate monotonic period usage monitoring libraries,
+and a utility to "dump a buffer" in a nicely
+formatted way similar to many ROM monitors.
+
+@item $@{RTEMS_ROOT@}/c/src/libnetworking/
+This directory contains the networking components which
+might be tailored based upon the particular BSP. This
+includes the RTEMS telnetd, httpd, and ftpd servers.
+
+@item $@{RTEMS_ROOT@}/c/src/librdbg/
+This directory contains the Ethernet-based remote debugging
+stub. This software must be built to be intimately aware
+of a particular CPU model.
+
+@item $@{RTEMS_ROOT@}/c/src/librtems++/
+This directory contains C++ classes which map to the RTEMS
+Classic API.
+
+@item $@{RTEMS_ROOT@}/c/src/make/
+This directory is used to generate the bulk of the supporting
+rules files which are installed as part of the Application Makefiles.
+This file contains settings for various Makefile variables to
+tailor them to the particular CPU model and BSP configured.
+
+@item $@{RTEMS_ROOT@}/c/src/optman/
+This directory contains stubs for the RTEMS Classic API
+Managers which are considered optional and whose use
+may be explicitly forbidden by an application. All of the
+directive implementations in this Optional Managers
+return @code{E_NOTCONFIGURED}.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/
+This directory contains the test suites for the
+various RTEMS APIs and support libraries. This
+contents of this directory are discussed in the
+@ref{Directory Structure c/src/tests/ Test Suites} section.
+
+@item $@{RTEMS_ROOT@}/c/src/wrapup/
+This directory is responsible for taking the individual
+libraries and objects built in each of the components
+in the RTEMS source tree and bundling them together to form
+the single RTEMS library @code{librtemsbsp.a}. This
+library contains all BSP and CPU model specific software.
+
+@end table
+
+@c
+@c c/src/lib/libbsp BSP Directory
+@c
+
+@subsubsection c/src/lib/libbsp BSP Directory
+
+The "libbsp" directory contains a directory for each CPU family supported
+by RTEMS. Beneath each CPU directory is a directory for each BSP for that
+processor family.
+
+@c
+@c Tree 7 - C BSP Library
+@c
+
+The "libbsp" directory provides all the BSPs provided with this
+release of the RTEMS executive. The subdirectories are
+divided, as discussed previously, based on specific processor
+family, then further breaking down into specific target board
+environments. The "shmdr" subdirectory provides the
+implementation of a shared memory driver which supports the
+multiprocessing portion of the executive. In addition, two
+starting point subdirectories are provided for reference. The
+"no_cpu" subdirectory provides a template BSP which can be used
+to develop a specific BSP for an unsupported target board. The
+"stubdr" subdirectory provides stubbed out BSPs. These files
+may aid in preliminary testing of the RTEMS development
+environment that has been built for no particular target in mind.
+
+Below each CPU dependent directory is a directory for each target BSP
+supported in this release.
+
+Each BSP provides the modules which comprise an RTEMS BSP. The
+modules are separated into the subdirectories "clock", "console",
+"include", "shmsupp", "startup", and "timer" as shown in the following
+figure:
+
+@c
+@c Tree 8 - Each BSP
+@c
+
+@c @ifset use-ascii
+@example
+@group
+ Each BSP
+ |
+ +-----------+----------+-----+-----+----------+----------+
+ | | | | | |
+clock console include shmsupp startup timer
+@end group
+@end example
+@c @end ifset
+
+@c
+@c c/src/tests/ Test Suites
+@c
+@subsection c/src/tests/ Test Suites
+
+This directory provides all of the RTEMS Test Suite
+except those for the Classic API Ada95 binding
+This includes the single processor tests, multiprocessor tests,
+timing tests, library tests, and sample tests. Additionally,
+subdirectories for support functions and test related header
+files are provided. The following table lists the test suites
+currently included with the RTEMS and the directory in which
+they may be located:
+
+@table @code
+
+@item $@{RTEMS_ROOT@}/c/src/tests/itrontests/
+This directory contains the test suite for the
+RTEMS ITRON API.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/libtests/
+This directory contains the test suite for the
+various RTEMS support components.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/mptests/
+This directory contains the test suite for the
+multiprocessor support in the Classic API.
+The tests provided address two node configurations
+and provide coverage for the multiprocessor code found
+in RTEMS.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/psxtests/
+This directory contains the test suite for the
+RTEMS POSIX API.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/samples/
+This directory provides sample application tests
+which aid in the testing a newly built RTEMS environment, a new
+BSP, or as starting points for the development of an application
+using the RTEMS executive. They are discussed in
+@ref{Sample Applications}.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/sptests/
+This directory contains the test suite for the RTEMS
+Classic API when executing on a single processor.
+The tests were originally designed to provide
+near complete test coverage for the the entire
+executive code. With the addition of multiple APIs,
+this is no longer the case as some SuperCore functionality
+is not available through the Classic API. Thus
+some functionality in the SuperCore is only covered
+by tests in the POSIX API and ITRON API Test Suites.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/support/
+This directory contains support software and header files
+for the various test suites.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/tmitrontests/
+This directory contains the timing test suite for
+the RTEMS ITRON API.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/tmtests/
+This directory contains the timing test suite for
+the RTEMS Classic API. This include tests that
+benchmark each directive in the Classic API
+as well as a set of critical SuperCore functions.
+These tests are important for helping to verify
+that RTEMS performs as expected on your target hardware.
+It is not uncommon to discover mistakes in board
+initialization such as caching being disabled as
+a side-effect of analyzing the results of these tests.
+
+@item $@{RTEMS_ROOT@}/c/src/tests/tools/
+This directory contains tools which execute on
+the development host and aid in executing and
+evaluating the results of the test suite. The
+tools @code{difftest} compares the output of one
+or more tests with the expected output. If you
+place the output of all the @code{tmtests/} in
+a single file, then the utility @code{sorttimes}
+will be able to produce a report organizing the
+execution times by manager.
+
+@end table
+
+
+@c
+@c CPUKit Directory
+@c
+@section CPUKit Directory
+
+@c The @code{cpukit/} directory structure is as follows:
+
+@c
+@c CPUKit Tree
+@c
+
+@c @ifset use-ascii
+@c @example
+@c @group
+@c CPUKit
+@c |
+@c +-----------+----------+-----------+----------+
+@c | | | | |
+@c posix rtems sapi score wrapup
+@c @end group
+@c @end example
+@c @end ifset
+
+The @code{cpukit/} directory contains a set of subdirectories which
+contains the source files comprising the executive portion of
+the RTEMS development environment as well as portable support
+libraries such as support for the C Library and filesystems.
+The API specific and "SuperCore" (e.g. @code{score/} directory)
+source code files are separated into distinct directory trees.
+
+The following is a description of each of the subdirectories
+under @code{cpukit/}:
+
+@table @code
+
+@item $@{RTEMS_ROOT@}/cpukit/aclocal/
+This directory contains the custom M4 macros which are available to
+the various GNU autoconf @code{configure.ac} scripts throughout
+the CPU Kit portion of the RTEMS source tree.
+GNU autoconf interprets @code{configure.ac}
+files to produce the @code{configure} files used to tailor
+RTEMS build for a particular host and target environment. The
+contents of this directory will not be discussed further in this
+document.
+
+@item $@{RTEMS_ROOT@}/cpukit/ada/
+This directory contains the Ada95 language bindings to the
+RTEMS Classic API.
+
+@item $@{RTEMS_ROOT@}/cpukit/automake/
+This directory contains files which are "Makefile fragments."
+They are included as required by the various @code{Makefile.am}
+files throughout the CPU Kit portion of the RTEMS source tree.
+
+@item $@{RTEMS_ROOT@}/cpukit/include/
+This directory contains header files which are private to
+RTEMS and not considered to be owned by any other component
+in the CPU Kit.
+
+@item $@{RTEMS_ROOT@}/cpukit/itron/
+This directory contains the implementation of the
+ITRON API.
+
+@item $@{RTEMS_ROOT@}/cpukit/libblock/
+This directory contains support code for using
+Block Devices such as hard drives, floppies, and
+CD-ROMs. It includes the generic IO primitives
+for block device drivers, disk caching support,
+and a RAM disk block device driver.
+
+@item $@{RTEMS_ROOT@}/cpukit/libcsupport/
+This directory contains the RTEMS specific support routines
+for the Newlib C Library. This includes what are referred
+to as system calls and found in section 2 of the traditional
+UNIX manual. In addition, it contains a thread-safe
+implementation of the Malloc family of routines as well
+as BSD and POSIX services not found in Newlib.
+
+@item $@{RTEMS_ROOT@}/cpukit/libfs/
+This directory contains the various non-networked
+filesystem implementations for RTEMS. It includes
+the In-Memory FileSystem (IMFS), the mini-IMFS,
+and FAT filesystems.
+
+@item $@{RTEMS_ROOT@}/cpukit/libnetworking/
+This directory contains the port of the FreeBSD
+TCP/IP stack to RTEMS.
+
+@item $@{RTEMS_ROOT@}/cpukit/librpc/
+This directory contains the port of the FreeBSD
+RPC/XDR source to RTEMS.
+
+@item $@{RTEMS_ROOT@}/cpukit/posix/
+This directory contains the RTEMS implementation
+of the threading portions of the POSIX API.
+
+@item $@{RTEMS_ROOT@}/cpukit/rtems/
+This directory contains the implementation of the
+Classic API.
+
+@item $@{RTEMS_ROOT@}/cpukit/sapi/
+This directory contains the implementation of RTEMS
+services which are required but beyond the realm
+of any standardization efforts. It includes
+initialization, shutdown, and IO services.
+
+@item $@{RTEMS_ROOT@}/cpukit/score/
+This directory contains the "SuperCore" of RTEMS.
+All APIs are implemented in terms of SuperCore services.
+For example, Classic API tasks, POSIX threads, and ITRON
+tasks are all implemented in terms of SuperCore threads.
+This provides a common infrastructure and a high degree
+of interoperability between the APIs. For example,
+services from all APIs may be used by any task/thread
+independent of the API used to create it.
+
+Within the @code{score/} directory the CPU dependent modules are found.
+The @code{score/cpu/} subdirectory contains a subdirectory for each
+target CPU supported by the @value{RELEASE} release of the RTEMS
+executive. Each processor directory contains the CPU dependent
+code necessary to host RTEMS. The @code{no_cpu} directory provides a
+starting point for developing a new port to an unsupported
+processor. The files contained within the @code{no_cpu} directory
+may also be used as a reference for the other ports to specific
+processors.
+
+@item $@{RTEMS_ROOT@}/cpukit/wrapup/
+This directory is responsible for taking the individual
+libraries and objects built in each of the components
+in the RTEMS CPU Kit source tree and bundling them
+together to form the single RTEMS library @code{librtemscpu.a}. This
+library contains all BSP and CPU model specific software.
+
+@end table
+
+@c
+@c Documentation Directory
+@c
+@section Documentation Directory
+
+This directory contains the source code for all RTEMS documentation
+in @code{TexInfo} format as well as utilities used in the generation
+of the RTEMS documentation set. This source code is used to produce
+the RTEMS documentation in various formats including PDF, HTML,
+and PostScript.
+
+@table @code
+
+@item $@{RTEMS_ROOT@}/doc/FAQ/
+This directory contains the source code for the @cite{RTEMS Frequently Asked
+Questions (FAQ) Collection}.
+
+@item $@{RTEMS_ROOT@}/doc/user/
+This directory contains the source code for the @cite{RTEMS
+Applications C User's Guide} which documents the Classic API.
+
+@item $@{RTEMS_ROOT@}/doc/ada_user/
+This directory contains the source code for the @cite{RTEMS
+Applications Ada User's Guide} which documents the Ada95
+binding to the Classic API. This manual is produced from
+from the same source base as the @cite{RTEMS Application
+C User's Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/bsp_howto/
+This directory contains the source code for the
+@cite{RTEMS BSP and Device Driver Development Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/common/
+This directory contains the source code for the files which
+are shared across multiple manuals in the RTEMS Documentation Set.
+This includes the copyright page as well as the timing
+tables which can be filled in on a per BSP basis in the
+CPU supplements.
+
+@item $@{RTEMS_ROOT@}/doc/develenv/
+This directory contains the source code for the
+@cite{RTEMS Development Environment Guide}. This is
+the document you are currently reading.
+
+@item $@{RTEMS_ROOT@}/doc/filesystem/
+This directory contains the source code for the
+@cite{RTEMS Filesystem Design Guide}. This manual
+is a continuous work in process as it attempts to
+capture the design of the interface between system
+calls and filesystem implementations as well as the
+information required by those implementing filesystems.
+
+@item $@{RTEMS_ROOT@}/doc/gnu_docs/
+This directory contains the scripts which assist in
+generating HTML for the GNU tools in the RTEMS Cross
+Development Environment set.
+
+@item $@{RTEMS_ROOT@}/doc/images/
+This directory contains the source code for the graphics
+used in the HTML version of the RTEMS Documentation.
+
+@item $@{RTEMS_ROOT@}/doc/itron3.0/
+This directory contains the source code for the
+@cite{RTEMS ITRON 3.0 API User's Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/networking/
+This directory contains the source code for the
+@cite{RTEMS Network Supplement}.
+
+@item $@{RTEMS_ROOT@}/doc/new_chapters/
+This directory contains the source code for the new documentation
+components which have not yet been collected into a new manual or
+merged into an existing document. Currently, this primarily
+contains draft documentation for some portions of
+the facilities implemented in @code{$@{RTEMS_ROOT@}/c/src/libmisc/}.
+
+@item $@{RTEMS_ROOT@}/doc/porting/
+This directory contains the source code for the
+@cite{RTEMS Porting Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/posix1003.1/
+This directory contains the source code for the
+@cite{RTEMS POSIX 1003.1 Compliance Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/posix_users/
+This directory contains the source code for the
+@cite{RTEMS POSIX API User's Guide}. It is important to
+note that RTEMS' support for POSIX is a combination of
+functionality provided by RTEMS and the Newlib C Library
+so some functionality is documented by Newlib.
+
+@item $@{RTEMS_ROOT@}/doc/relnotes/
+This directory contains the source code for a formally
+release notes document. This has not been used for
+recent RTEMS releases.
+
+@item $@{RTEMS_ROOT@}/doc/rgdb_specs/
+This directory contains the source code for the
+@cite{RTEMS Remote Debugger Server Specifications}.
+
+@item $@{RTEMS_ROOT@}/doc/rtems_gdb/
+This directory contains the source code for the
+@cite{RTEMS/GDB User's Guide}.
+
+@item $@{RTEMS_ROOT@}/doc/started/
+This directory contains the source code for the
+@cite{Getting Started with RTEMS for C/C++ Users} manual.
+
+@item $@{RTEMS_ROOT@}/doc/started_ada/
+This directory contains the source code for the
+@cite{Getting Started with RTEMS for Ada Users} manual.
+
+@item $@{RTEMS_ROOT@}/doc/supplements/
+This directory contains the source code for the various
+RTEMS CPU Supplements.
+the
+
+@item $@{RTEMS_ROOT@}/doc/tools/
+This directory contains the source code for the tools
+used on the development host to assist in producing the
+RTEMS Documentation. The most important of these tools
+is @code{bmenu} which generates the hierarchical node
+linking commands based upon chapter, section, and
+subsection organization.
+
+@end table