summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2003-01-28 18:44:38 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2003-01-28 18:44:38 +0000
commit4896576c49c5bf696f5f916452d59127e70c3b19 (patch)
tree6f3bc237ff1c43134f73e95c1321c79784c82350 /doc
parent2003-01-28 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-4896576c49c5bf696f5f916452d59127e70c3b19.tar.bz2
2003-01-28 Joel Sherrill <joel@OARcorp.com>
* makefiles.t, support.t: Updated to reflect use of automake in addition to autoconf.
Diffstat (limited to 'doc')
-rw-r--r--doc/bsp_howto/ChangeLog5
-rw-r--r--doc/bsp_howto/makefiles.t83
-rw-r--r--doc/bsp_howto/support.t4
3 files changed, 44 insertions, 48 deletions
diff --git a/doc/bsp_howto/ChangeLog b/doc/bsp_howto/ChangeLog
index 75368f0e8a..636cf95660 100644
--- a/doc/bsp_howto/ChangeLog
+++ b/doc/bsp_howto/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-28 Joel Sherrill <joel@OARcorp.com>
+
+ * makefiles.t, support.t: Updated to reflect use of automake in
+ addition to autoconf.
+
2003-01-25 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_howto.texi: Set @setfilename bsp_howto.info.
diff --git a/doc/bsp_howto/makefiles.t b/doc/bsp_howto/makefiles.t
index b6e1bff991..f27c77cf32 100644
--- a/doc/bsp_howto/makefiles.t
+++ b/doc/bsp_howto/makefiles.t
@@ -35,19 +35,30 @@ phases may be removed.
@section Makefiles Used During The BSP Building Process
-There is a file named @code{Makefile.in} in each directory of a BSP.
-RTEMS uses the @b{GNU autoconf} automatic configuration package.
-This tool specializes the @code{Makefile.in} files at the time that RTEMS
+RTEMS uses the @b{GNU automake} and @b{GNU autoconf} automatic
+configuration package. Consequently, there are a number of
+automatically generated files in each directory in the RTEMS
+source tree. The @code{bootstrap} script found in the top level
+directory of the RTEMS source tree is executed to produce the
+automatically generated files. That script must be run from
+a directory with a @code{configure.ac} file in it.
+
+There is a file named @code{Makefile.am} in each directory of a BSP.
+This file is used by @b{automake} to produce the file
+named @code{Makefile.in} which is also found in each directory of a BSP.
+The configure process specializes the @code{Makefile.in} files at
+the time that RTEMS
is configured for a specific development host and target. Makefiles
are automatically generated from the @code{Makefile.in} files. It is
-necessary for the BSP developer to provide these files. Most of the
-time, it is possible to copy the @code{Makefile.in} from another
+necessary for the BSP developer to provide the @code{Makefile.am}
+files and generate the @code{Makefile.in} files. Most of the
+time, it is possible to copy the @code{Makefile.am} from another
similar directory and edit it.
-The @code{Makefile} files generated are processed when building
-RTEMS for a given BSP.
+The @code{Makefile} files generated are processed when configuring
+and building RTEMS for a given BSP.
-The BSP developer is responsible for generating @code{Makefile.in}
+The BSP developer is responsible for generating @code{Makefile.am}
files which properly build all the files associated with their BSP.
There are generally three types of Makefiles in a BSP source tree:
@@ -63,45 +74,37 @@ There are generally three types of Makefiles in a BSP source tree:
The Directory class of Makefiles directs the build process through
a set of subdirectories in a particular order. This order is usually
chosen to insure that build dependencies are properly processed.
-Most BSPs only have one Directory class Makefile. The @code{Makefile.in}
+Most BSPs only have one Directory class Makefile. The @code{Makefile.am}
in the BSP root directory (@code{c/src/lib/libbsp/CPU/BSP}) specifies
-which directories are to be built for this BSP. For example, the
-following Makefile fragment shows how a BSP would only build the
-networking device driver if HAS_NETWORKING was defined:
+following Makefile fragment shows how a BSP would specify the
+directories to be built and their order:
@example
-NETWORKING_DRIVER_yes_V = network
-NETWORKING_DRIVER = $(NETWORKING_DRIVER_$(HAS_NETWORKING)_V)
-
-[...]
-
SUB_DIRS=include start340 startup clock console timer \
- $(NETWORKING_DRIVER) wrapup
+ network wrapup
@end example
-This fragment states that all the directories have to be processed,
-except for the @code{network} directory which is included only if the
-user configured networking.
-
@subsection Source Directory Makefiles
-There is a @code{Makefile.in} in most of the directories in a BSP. This
+There is a @code{Makefile.am} in most of the directories in a BSP. This
class of Makefile lists the files to be built as part of the driver.
When adding new files to an existing directory, Do not forget to add
-the new files to the list of files to be built in the @code{Makefile.in}.
+the new files to the list of files to be built in the @code{Makefile.am}
+and run @code{bootstrap}.
-@b{NOTE:} The @code{Makefile.in} files are ONLY processed during the configure
+@b{NOTE:} The @code{Makefile.am} files are ONLY processed by
+@code{bootstrap} and the resulting @code{Makefile.in} files are
+only processed during the configure
process of a RTEMS build. Therefore, when developing
-a BSP and adding a new file to a @code{Makefile.in}, the
-already generated @code{Makefile} will not include the new references.
-This results in the new file not being be taken into account!
-The @code{configure} script must be run again or the @code{Makefile}
-(the result of the configure process) modified by hand. This file will
-be in a directory such as the following:
+a BSP and adding a new file to a @code{Makefile.am}, the
+already generated @code{Makefile} will not automatically
+include the new references unless you configured RTEMS with the
+@code{--enable-maintainer-mode} option.
+Otherwise, the new file not being be taken into account!
-@example
-MY_BUILD_DIR/c/src/lib/libbsp/CPU/BSP/DRIVER
-@end example
+If adding a new directory, be sure to add it to the list of
+automatically generated files in the BSP's @code{configure.ac}
+script.
@subsection Wrapup Makefile
@@ -192,22 +195,10 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer
# part of the BSP which executes.
START_BASE=start340
-[...]
-
# This make-exe macro is used in template makefiles to build the
# final executable. Any other commands to follow, just as using
# objcopy to build a PROM image or converting the executable to binary.
-ifeq ($(RTEMS_USE_GCC272),yes)
-# This has rules to link an application if an older version of GCC is
-# to be used with this BSP. It is not required for a BSP to support
-# older versions of GCC. This option is supported in some of the
-# BSPs which already had this support.
-[...]
-else
-# This has rules to link an application using gcc 2.8 or newer.
-# All BSPs should support this. This version is required to support
-# GNAT/RTEMS.
define make-exe
$(CC) $(CFLAGS) $(CFLAGS_LD) -o $(basename $@@).exe $(LINK_OBJS)
$(NM) -g -n $(basename $@@).exe > $(basename $@@).num
diff --git a/doc/bsp_howto/support.t b/doc/bsp_howto/support.t
index 85b137322a..f9548d2b96 100644
--- a/doc/bsp_howto/support.t
+++ b/doc/bsp_howto/support.t
@@ -189,11 +189,11 @@ There is a default implementation which returns an error to indicate
that the heap can not be extended. This implementation can be
found in @code{c/src/lib/libbsp/shared/sbrk.c}. Many of the BSPs
use this shared implementation. In order to use this implementation,
-the file @code{Makefile.in} in the BSP's @code{startup} directory
+the file @code{Makefile.am} in the BSP's @code{startup} directory
must be modified so that the @code{$VPATH} variable searches
both the @code{startup} directory and the shared directory. The following
illustates the @code{VPATH} setting in the PowerPC psim BSP's
-@code{startup/Makefile.in}:
+@code{startup/Makefile.am}:
@example
VPATH = @@srcdir@@:@@srcdir@@/../../../shared