From 6dc98fefa9f7d0507c5d83216b34c02145a79b94 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 31 Oct 2012 20:13:28 +0000 Subject: Add apps/examples/cxxtest from Qiang Yu git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5284 42af7a65-404d-4744-a932-0658087f49c3 --- misc/uClibc++/README.txt | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ misc/uClibc++/install.sh | 4 +-- 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100755 misc/uClibc++/README.txt (limited to 'misc') diff --git a/misc/uClibc++/README.txt b/misc/uClibc++/README.txt new file mode 100755 index 000000000..d11efa650 --- /dev/null +++ b/misc/uClibc++/README.txt @@ -0,0 +1,85 @@ +misc/uClib++ README +^^^^^^^^^^^^^^^^^^^ + +This directory contains a version of the uClibc++ C++ library. This code +originates from http://cxx.uclibc.org/ and has been adapted for NuttX by the +RGMP team (http://rgmp.sourceforge.net/wiki/index.php/Main_Page). + +uClibc++ resides in the misc/ directory rather than in the main NuttX source +tree due to licensing issues: NuttX is licensed under the permissiv + modified BSD License; uClibc, on the other hand, islicensed under the + stricter GNU LGPL Version 3 license. + +Installation of uClibc++ +^^^^^^^^^^^^^^^^^^^^^^^^ + +If you wish to use uClibc++ with NuttX, you will be required to comply with +the licensing requires of the GNU LGPL Version 3 license. A simple +installation script is provided at misc/uClibc++/install.sh that can be used +to install the uClibc++ components into the NuttX source tree. + +The install script takes only a single arguement: The path to the nuttx +directory. If your directory structure is the same as the SVN structure +(with misc/ and nuttx/ at the same level), then uClibc++ can be installed +using this command executed from the misc/uClibc++ directory: + + ./install.sh ../../nuttx + +If you run the install.sh like this, then it will (1) make sure you +understand that you have tainted the NuttX BSD license with LGPLv3, and (2) +copy the uClibc++ sources files into nuttx/libxx/uClibc++, include/, and +include/cxx. + +Building NuttX with uClibc++ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +After installing uClibc++ in this way, no additional steps should be +required to build NuttX with the uClibc++ library incorporated: + + $ cd ../../nuttx + $ . ./setenv.sh + $ make + +Here is how it works: + +There is a new file called Make.defs in misc/uClibc/libxx/uClibc++. After +installation, it will reside at nuttx/libxx/uClibc++. The +nuttx/libxx/Makefile will (conditionally) include this Make.defs file: + +-include uClibc++/Make.defs + +This Make.defs file, if present, will add the uClibc++ source files to the +build, add the uClibc++ subdirectory to the dependency list, and add the +uClibc++ subdirectory to the VPATH. That should, in principle, be all it +takes. + +Dependencies +^^^^^^^^^^^^ + +In order to build libxx (and hence libxx/uClibc++), CONFIG_HAVE_CXX must be +defined in your NuttX configuration file. + +The C++ runtime support is provided by GCC libgcc_eh.a and libsupc++.a +libraries. + +RGMP +^^^^ + +The target platform is RGMP X86, it is also updated for TLS support which is +needed by these two libraries. So application can also use TLS on RGMP NuttX +port. + +Command to compile and install RGMP: + + $ make + $ make install + $ /usr/rgmp/setup + $ exit + +Command to compile and run NUTTX: + + $ cd nuttx/tools + $ ./configure rgmp/x86/cxxtest + $ cd .. + $ make + $ rgmp_run diff --git a/misc/uClibc++/install.sh b/misc/uClibc++/install.sh index 9f612bc41..001a71bfe 100755 --- a/misc/uClibc++/install.sh +++ b/misc/uClibc++/install.sh @@ -264,8 +264,8 @@ fi # Licensing echo "You are about to install the uClibc++ library into the NuttX source" -echo "tree. NuttX is licensed under a modified BSD License; uClibc is" -echo "licensed under the GNU LGPL Version 3 license. When you install" +echo "tree. NuttX is licensed under the permissive, modified BSD License; uClibc" +echo "is licensed under the GNU LGPL Version 3 license. When you install" echo "uClibc++ into the NuttX source tree, you must then comply with uClibc's" echo "stricter GNU LGPL Version 3 license." echo "" -- cgit v1.2.3