diff --git a/README.md b/README.md index 72f1f03814..8437c2cf35 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,39 @@ -UAVCAN - CAN bus for aerospace and robotics -=========================================== +UAVCAN stack in C++ +=================== [![Coverity Scan](https://scan.coverity.com/projects/1513/badge.svg)](https://scan.coverity.com/projects/1513) -Reference implementation of the [UAVCAN protocol stack](http://uavcan.org/). +Portable reference implementation of the [UAVCAN protocol stack](http://uavcan.org) in C++ for embedded systems +and Linux. ## Documentation -* [UAVCAN specification](http://uavcan.org/UAVCAN_specification) +* [UAVCAN website](http://uavcan.org) +* [UAVCAN discussion group](https://groups.google.com/forum/#!forum/uavcan) * [Libuavcan overview](http://uavcan.org/Libuavcan) * [List of platforms officially supported by libuavcan](http://uavcan.org/List_of_platforms_officially_supported_by_libuavcan) * [Libuavcan tutorials](http://uavcan.org/Libuavcan_tutorials) -* [UAVCAN discussion group](https://groups.google.com/forum/#!forum/uavcan) + +## Cloning the repository + +```bash +git clone https://github.com/UAVCAN/libuavcan +git submodule update --init --recursive +``` + +When using this repository as a git submodule in your project, make sure to use `--recursive` when updating it. ## Library development -Despite the fact that the library itself can be used on virtually any platform that has a standard-compliant C++03 or C++11 compiler, the library development process assumes that the host OS is Linux. +Despite the fact that the library itself can be used on virtually any platform that has a standard-compliant +C++03 or C++11 compiler, the library development process assumes that the host OS is Linux. Prerequisites: * Google test library for C++ - gtest (see [how to install on Debian/Ubuntu](http://stackoverflow.com/questions/13513905/how-to-properly-setup-googletest-on-linux)) * C++03 *and* C++11 capable compiler with GCC-like interface (e.g. GCC, Clang) * CMake 2.8+ -* Optional: static analysis tool for C++ - cppcheck (use Debian/Ubuntu package `cppcheck`) +* Optional: static analysis tool for C++ - cppcheck (on Debian/Ubuntu use package `cppcheck`) Building the debug version and running the unit tests: ```bash @@ -47,15 +58,17 @@ cmake ../../uavcan -G"Eclipse CDT4 - Unix Makefiles" \ -DCMAKE_CXX_COMPILER_ARG1=-std=c++11 ``` -Path `../../uavcan` in the command above points at the directory where the top-level `CMakeLists.txt` is located; you may need to adjust this per your environment. Note that the directory where Eclipse project is generated must not be a descendant of the source directory. +Path `../../uavcan` in the command above points at the directory where the top-level `CMakeLists.txt` is located; +you may need to adjust this per your environment. +Note that the directory where Eclipse project is generated must not be a descendant of the source directory. -### Submitting a coverity build +### Submitting a Coverity Scan build First, [get the Coverity build tool](https://scan.coverity.com/download?tab=cxx). Then build the library with it: ```bash export PATH=$PATH:/bin/ -mkdir debug && cd debug +mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Debug cov-build --dir cov-int make -j8 tar czvf uavcan.tgz cov-int