diff --git a/Documentation/README.html b/Documentation/README.html index 686ed824b4dadcc11a28297734f5127cf39e62aa..885deaccf07216bb43ce837ecf637d92e31f096e 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -143,6 +143,8 @@ | `- <a href="graphics/README.txt"><b><i>README.txt</i></b></a> |- libxx/ | `- <a href="libxx/README.txt"><b><i>README.txt</i></b></a> - `- netutils/ - |- <a href="netutils/telnetd/README.txt">telnetd/README.txt</a> - `- <a href="netutils/README"><b><i>README</a></a> + |- netutils/ + | |- <a href="netutils/telnetd/README.txt">telnetd/README.txt</a> + | `- <a href="netutils/README"><b><i>README</i></b></a> + `- tools/ + `- <a href="tols/README.txt"><b><i>README.txt</i></b></a> \ No newline at end of file diff --git a/README.txt b/README.txt index 3222bad92367a3167bd9b83d62b0a8f41583c43f..4c2fb772e0b264a6bb3ab0060e63edcb391a76dd 100755 --- a/README.txt +++ b/README.txt @@ -234,6 +234,8 @@ Below is a guide to the available README files in the NuttX source tree: | `- README.txt |- libxx/ | `- README.txt - `- netutils/ - |- telnetd/README.txt - `- README + |- netutils/ + | |- telnetd/README.txt + | `- README + `- tools/ + `- README.txt diff --git a/tools/README.txt b/tools/README.txt new file mode 100755 index 0000000000000000000000000000000000000000..ea13db9a0da27acf2ea591459f47475c0b1fadf2 --- /dev/null +++ b/tools/README.txt @@ -0,0 +1,112 @@ +tools/README.txt +^^^^^^^^^^^^^^^^ + +This README file addresses the contents of the NuttX tools/ directory. + +The tools/ directory contains miscellaneous scripts and host C programs +that are necessary parts of the the NuttX build system. These files +include: + +README.txt + + This file + +configure.sh + + This is a bash script that is used to configure NuttX for a given + target board. See configs/README.txt or Documentation/NuttxPortingGuide.html + for a description of how to configure NuttX with this script. + +mkconfig.c + + This is C file that is used to build mkconfig program. The mkconfig + program is used during the intial 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 + 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 + 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. + +Makefile.mkconfig + + This is the makefile that is used to make the mkconfig program from + the mkconfig.c C file. + +mkdeps.sh +mknulldeps.sh + + NuttX uses the GCC compilers capabilities to create Makefile dependencies. + The bash script mkdeps.sh is used to run GCC in order to create the + dependencies. If a NuttX configuration uses the GCC toolchain, its Make.defs + file (see configs/README.txt) will include a line like: + + MKDEP = $(TOPDIR)/tools/mkdeps.sh + + If the NuttX configuration does not use a GCC compatible toolchain, then + it cannot use the dependencies and instead it uses mknulldeps.sh: + + MKDEP = $(TOPDIR)/tools/mknulldeps.sh + + The mknulldeps.sh is a stub script that does essentially nothing. + + +incdir.sh + + Different compilers have different conventions for specifying lists + of include file paths on the the compiler command line. This bash + script allows the build system to create include file paths without + concern for the particular compiler in use. + +link.sh +winlink.sh +unlink.sh + + Different file system have different capabilities for symbolic links. + Some windows file systems have no native support for symbolic links. + Cygwin running under windows has special links built in that work with + all cygwin tools. However, they do not work when Windows native tools + are used with cygwin. In that case something different must be done. + + If you are building under Linux or under cygwin with a cygwin tool + chain, then your Make.defs file may have definitions like the + following: + + DIRLINK = $(TOPDIR)/tools/link.sh + DIRUNLINK = (TOPDIR)/tools/unlink.sh + + The first definition is not always present because link.sh is the + default. link.sh is a bash script that performs a normal, Linux-style + symbolic link; unlink.sh is a do-it-all unlinking script. + + But if you are building under cygwin using a Windows native toolchain, + then you will need something like the following in you Make.defs file: + + DIRLINK = $(TOPDIR)/tools/winlink.sh + DIRUNLINK = (TOPDIR)/tools/unlink.sh + + winlink.sh will copy the whole directory instead of linking it. + + NOTE: I have been told that some NuttX users have been able to build + successfully using the GnuWin32 tools and modifying the link.sh + script so that it uses the NTFS mklink command. But I have never + tried that + +mkimage.sh + + The creates a downloadable image as needed with the rrload bootloader. + +indent.sh + + This script can be used to indent .c and .h files in a manner similar + to my coding NuttX coding style. It doesn't do a really good job, + however (see the comments at the top of the indent.sh file). + +zipme.sh + + I use this script to create the nutt-xx.yy.tar.gz tarballs for + release on SourceForge. It is handy because it also does the + kind of clean that you need to do to make a clean code release.