diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html index b55dc6fd9..4f9b0694f 100644 --- a/nuttx/Documentation/NuttxPortingGuide.html +++ b/nuttx/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@
Last Updated: April 7, 2011
+Last Updated: April 14, 2011
@@ -981,7 +981,11 @@ include/tools/ |-- Makefile.host +|-- README.txt |-- configure.sh +|-- cfgparser.c +|-- cfgparser.h +|-- define.sh |-- incdir.sh |-- indent.sh |-- link.sh @@ -990,11 +994,19 @@ tools/ |-- mkimage.sh |-- mknulldeps.sh |-- mkromfsimg.sh +|-- mksyscall.c +|-- mkversion.c |-- unlink.sh +|-- version.sh |-- winlink.sh -`-- zipme +`-- zipme.sh+
+ Refer to the README file in the tools
directory for more information about the individual files.
+ Some of these tools are discussed below as well in the discussion of configuring and building NuttX.
+
The top-level Makefile
in the ${TOPDIR}
directory contains all of the top-level control
@@ -1105,13 +1117,58 @@ netutils/
And if configs/
<board-name>/[
<config-dir>/appconfig
exists and your application directory is not in the standard loction (
cd tools ./configure.sh -a <app-dir> <board-name>[/<config-dir>]+
+ Version Files.
+ The NuttX build expects to find a version file located in the top-level NuttX build directory.
+ That version file is called .version
.
+ The correct version file is installed in each versioned NuttX released.
+ However, if you are working from an SVN snapshot, then there will be no version file.
+ If there is no version file, the top-level Makefile
will create a dummy .version
file on the first make.
+ This dummy version file will contain all zeroes for version information.
+ If that is not what you want, they you should run the version.sh
script to create a better .version
file.
+
+ You can get help information from the version.sh
script using the -h
option.
+ For example:
+
+$ tools/version.sh -h +tools/version.sh is a tool for generation of proper version files for the NuttX build + +USAGE: tools/version.sh [-d|-h] [-b build] -v <major.minor> <outfile-path> + +Where: + -d + Enable script debug + -h + show this help message and exit + -v <major.minor> + The NuttX version number expressed a major and minor number separated + by a period + <outfile-path> + The full path to the version file to be created ++ +
+ As an example, the following command will generate a version file for version 6.1 using the current SVN revision number: +
++tools/version.h -v 6.1 .version ++ +
+ The .version
file is also used during the build process to create a C header file at include/nuttx/version.h
that contains the same version information.
+ That version file may be used by your C applications for, as an example, reporting version information.
+
Additional Configuration Steps.
The remainder of configuration steps will be performed by ${TOPDIR}/Makefile
@@ -1154,7 +1211,8 @@ The system can be re-made subsequently by just typing make
.
These additional steps include:
include/nuttx/config.
using the ${TOPDIR}/.config
file.
+ include/nuttx/config.h
using the ${TOPDIR}/.config
file.
+ include/nuttx/version.h
using the ${TOPDIR}/.version
file.
${TOPDIR}/arch/
<arch-name>/include
at ${TOPDIR}/include/arch
.
${TOPDIR}/configs/
<board-name>/include
at ${TOPDIR}/include/arch/board
.
${TOPDIR}/configs/
<board-name>/src
at ${TOPDIR}/arch/
<arch-name>/src/board
diff --git a/nuttx/tools/README.txt b/nuttx/tools/README.txt
index 76ec3a66f..14783ae56 100755
--- a/nuttx/tools/README.txt
+++ b/nuttx/tools/README.txt
@@ -17,20 +17,33 @@ configure.sh
target board. See configs/README.txt or Documentation/NuttxPortingGuide.html
for a description of how to configure NuttX with this script.
-mkconfig.c
+mkconfig.c, cfgparser.c, and cfgparser.h
This is C file that is used to build mkconfig program. The mkconfig
program is used during the initial NuttX build.
When you configure NuttX, you will copy a configuration file called .config
- into the top level NuttX directory (See configs/README.txt or
+ in the top level NuttX directory (See configs/README.txt or
Documentation/NuttxPortingGuide.html). The first time you make NuttX,
the top-level makefile will build the mkconfig executable from mkconfig.c
- (using Makefile.mkconfig). The top-level Makefile will then execute the
+ (using Makefile.host). The top-level Makefile will then execute the
mkconfig program to convert the .config file in the top level directory
into include/nuttx/config.h. config.h is a another version of the
NuttX configuration that can be included by C files.
+mkversion.c, cfgparser.c, and cfgparser.h
+
+ This is C file that is used to build mkversion program. The mkversion
+ program is used during the initial NuttX build.
+
+ When you build NuttX there should be a version file called .version in
+ the top level NuttX directory (See Documentation/NuttxPortingGuide.html).
+ The first time you make NuttX, the top-level makefile will build th
+ mkversion executable from mkversion.c (using Makefile.host). The top-
+ level Makefile will then execute the mkversion program to convert the
+ .version file in the top level directory into include/nuttx/version.h.
+ version.h provides version information that can be included by C files.
+
mksyscall.c
This is C file that is used to build mksyscall program. The mksyscall
@@ -56,7 +69,8 @@ mksyscall.c
Makefile.host
This is the makefile that is used to make the mkconfig program from
- the mkconfig.c C file or the mksyscall program from the mksyscall.c file.
+ the mkconfig.c C file, the mkversion program from the mkconfig.c C file,
+ or the mksyscall program from the mksyscall.c file.
mkromfsimg.sh
@@ -80,7 +94,13 @@ mknulldeps.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The mknulldeps.sh is a stub script that does essentially nothing.
-
+
+define.sh
+
+ Different compilers have different conventions for specifying pre-
+ processor definitions on the compiler command line. This bash
+ script allows the build system to create create command line definitions
+ without concern for the particular compiler in use.
incdir.sh
diff --git a/nuttx/tools/version.sh b/nuttx/tools/version.sh
index e098695a7..7cad7ee03 100755
--- a/nuttx/tools/version.sh
+++ b/nuttx/tools/version.sh
@@ -57,8 +57,7 @@ while [ ! -z "$1" ]; do
VERSION=$1
;;
-h )
- echo "$progname is a tool for flexible generation of include path arguments for a"
- echo "variety of different compilers in a variety of compilation environments"
+ echo "$0 is a tool for generation of proper version files for the NuttX build"
echo ""
echo $USAGE
echo ""