commit | c93071caec674a080e569d8a9688f3f638ce8db6 | [log] [tgz] |
---|---|---|
author | Alex Vakulenko <avakulenko@google.com> | Thu Apr 07 10:15:45 2016 -0700 |
committer | Alex Vakulenko <avakulenko@google.com> | Thu Apr 07 18:03:36 2016 +0000 |
tree | ff42d82f8ac368cf22b7d8205fbd4964cd5cca93 | |
parent | c507804da0da985c39c798720d36610503bc7cff [diff] |
libweave: Always fetch commands from server, even if XMPP delivers JSON XMPP notification may include the command payload in its message. If it it does, we normally don't go to the cloud server and fetch the current command queue. However if XMPP notification is missed, there is no easy way of obtaining the missed command. If we use the notification as a cue to pull the current command queue from the server, we would also pull any missed commands from earlier missed notifications. BUG: None Change-Id: I85f0c2e58df7c2e6d2ce1be034d3c367870f7f7a Reviewed-on: https://weave-review.googlesource.com/3170 Reviewed-by: Robert Ginda <rginda@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 \ g++ \ hostapd \ libavahi-client-dev \ libcurl4-openssl-dev \ libevent-dev \ libexpat1-dev \ libnl-3-dev \ libnl-route-3-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.