commit | 5e67ce2496fc5fc3655ac1c728e94626c3e8f6c9 | [log] [tgz] |
---|---|---|
author | Alex Vakulenko <avakulenko@google.com> | Wed Apr 06 12:11:09 2016 -0700 |
committer | Alex Vakulenko <avakulenko@google.com> | Thu Apr 21 17:46:18 2016 +0000 |
tree | f8c9dcc1c2887926f8caea24e8b1e834debda62b | |
parent | 22ca81ad3a68f5bc93bcce2abd4c37f3dae55bfd [diff] |
libweave: Split "base" trait into "device" and "privet". The original "base" trait has been split into two and those traits have slightly different definitions (e.g. now device name, description and location are part of "device" trait's state, instead of the global device resource). Updated tests to reflect the new traits. BUG: None Change-Id: I9a1a1bfc3c01d67dd0ac519106c5d20c25a62f38 Reviewed-on: https://weave-review.googlesource.com/3146 Reviewed-by: Alex Vakulenko <avakulenko@google.com>
libWeave is the library with device side implementation of Weave protocol.
Sources are located in git repository at https://weave.googlesource.com/weave/libweave/
Make sure you have a bin/ directory in your home directory and that it is included in your path:
mkdir ~/bin PATH=~/bin:$PATH
Download the Repo tool and ensure that it is executable:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
mkdir ~/weave cd ~/weave repo init -u https://weave.googlesource.com/weave/manifest repo sync
This checks out libweave and its dependencies into the ~/weave directory.
Path | Description |
---|---|
include/ | Includes to be used by device code |
src/ | Implementation sources |
examples/ | Example of device code |
third_party/ | Dependencies |
Makefile, *.mk files | Build files |
sudo apt-get update sudo apt-get install \ autoconf \ automake \ binutils \ cmake \ g++ \ hostapd \ libavahi-client-dev \ libcurl4-openssl-dev \ libevent-dev \ libexpat1-dev \ libssl-dev \ libtool
From the libweave
directory:
The make --jobs/-j
flag is encouraged, to speed up build time. For example
make -j
which happens to be the same as
make all -j
make out/Debug/libweave.so
make all-examples
See the examples README for details.
In order to cross-compile, all you need to configure is CC/CXX/AR.
make CC=your-cc CXX=your-cxx AR=your-ar
So if you have a toolchain in a path like /opt/vendor/bin/arm-linux-gcc
, do:
make \ CC=/opt/vendor/bin/arm-linux-gcc \ CXX=/opt/vendor/bin/arm-linux-g++ \ AR=/opt/vendor/bin/arm-linux-ar
The build supports transparently downloading & using a few cross-compilers. Just add cross-<arch>
to the command line in addition to the target you want to actually build.
This will cross-compile for an armv7 (hard float) target:
make cross-arm all-libs
This will cross-compile for a mips (little endian) target:
make cross-mipsel all-libs
make test make export-test
or
make testall
The build supports using qemu to run non-native tests.
This will run armv7 tests through qemu:
make cross-arm testall
The Android Developing site has a lot of good tips for working with git and repo in general. The tips below are meant as a quick cheat sheet rather than diving deep into relevant topics.
Make sure to have correct user in local or global config e.g.:
git config --local user.name "User Name" git config --local user.email user.name@example.com
repo start <branch name> .
git commit -a -v
repo upload .
Go to the url from the output of repo upload
and add reviewers.