GithubHelp home page GithubHelp logo

sahib / legato-af Goto Github PK

View Code? Open in Web Editor NEW

This project forked from legatoproject/legato-af

0.0 3.0 0.0 35.91 MB

Legato Application Framework

License: Mozilla Public License 2.0

CMake 0.78% Makefile 0.29% Shell 2.10% C 75.35% Python 3.70% HTML 0.02% CSS 0.01% Java 0.58% Objective-C 6.47% C++ 9.61% PHP 0.01% Batchfile 0.01% Perl 0.03% TLA 0.07% GAP 0.12% TypeScript 0.87% XSLT 0.02%

legato-af's Introduction

Legato


Build Status

Legato Open Source Project is an initiative by Sierra Wireless Inc. which provides an open, secure and easy to use Application Framework for embedded devices. The project enables developers who are not experienced in traditional embedded programming to participate in the exponential growth of the "Internet of Things". Visit legato.io to learn more or visit the Legato forum.

Prerequisites

  • A maintained Long Term Support (LTS) version of Ubuntu
  • Install required packages:
$ sudo apt-get install -y build-essential \
                          python python-jinja2 python-pkg-resources python-git \
                          cmake git libsdl-dev diffstat texinfo gawk chrpath \
                          wget cpio bash ninja-build bc unzip libxml2-utils gcovr \
                          libcurl4-gnutls-dev zlib1g-dev libbz2-dev \
                          bsdiff libssl-dev autoconf automake iputils-ping \
                          libtool flex bison gperf libncursesw5-dev libncurses5-dev

Optional packages: openjdk-8-jdk (for Java support, at least Java 8 is required), doxygen graphviz (for doc generation), xsltproc (for running tests)

Installation

Clone from GitHub

Legato uses git-repo as it is distributed as multiple repositories.

  1. Install repo:

(on Ubuntu >= 16.04)

$ sudo apt-get install -y repo

OR (on Ubuntu < 16.04)

$ sudo apt-get install -y phablet-tools

OR

$ wget -O ~/bin/repo https://storage.googleapis.com/git-repo-downloads/repo
$ chmod a+x ~/bin/repo
  1. Clone the environment:
$ mkdir workspace
$ cd workspace
$ repo init -u git://github.com/legatoproject/manifest
$ repo sync

You can also clone a specific release:

$ repo init -u git://github.com/legatoproject/manifest -m legato/releases/16.07.0.xml
$ repo sync

Install the Legato framework on your development PC

  1. Clone it from GitHub or untar a release archive into a directory

  2. cd into that directory

  3. Run make

Configure your bash shell's environment for the Legato application build tools

Source bin/configlegatoenv:

$ . bin/configlegatoenv

OR, run the interactive bash shell bin/legs:

$ bin/legs

Run on Target Devices

Build support for cross-build targets, run make <target>.

For example, to enable support for the Sierra Wireless WP85xx devices, run make wp85.
Of course, each of these depends on the cross-build toolchain for that target, so ensure that you have the appropriate toolchain installed first.

The path to your toolchain and the prefix of the name of the tools in the toolchain are specified using the xxxxxx_TOOLCHAIN_DIR and xxxxxx_TOOLCHAIN_PREFIX environment variables (where xxxxxx is replaced with the target platform's ID, such as WP85).

If your toolchain is installed somewhere other than the default location under /opt/swi, ensure that the appropriate environment variables are set to tell the build tools where to find your toolchain and what its prefix is.
For example, for Sierra Wireless WP85xx devices, WP85_TOOLCHAIN_DIR must be set to the path of the directory that contains the file arm-poky-linux-gnueabi-gcc, and WP85_TOOLCHAIN_PREFIX must be set to arm-poky-linux-gnueabi--.

Following is a list of supported cross-build targets:

Target Description Environment variables
ar7 Sierra Wireless AR755x module AR7_TOOLCHAIN_DIR,AR7_TOOLCHAIN_PREFIX
ar758x Sierra Wireless AR758x module AR758X_TOOLCHAIN_DIR,AR758X_TOOLCHAIN_PREFIX
ar759x Sierra Wireless AR759x module AR759X_TOOLCHAIN_DIR,AR759X_TOOLCHAIN_PREFIX
ar86 Sierra Wireless AR86xx module AR86_TOOLCHAIN_DIR,AR86_TOOLCHAIN_PREFIX
wp85 Sierra Wireless WP85xx module WP85_TOOLCHAIN_DIR,WP85_TOOLCHAIN_PREFIX
wp750x Sierra Wireless WP750x module WP750X_TOOLCHAIN_DIR,WP750X_TOOLCHAIN_PREFIX
wp76xx Sierra Wireless WP76xx module WP76XX_TOOLCHAIN_DIR,WP76XX_TOOLCHAIN_PREFIX
wp77xx Sierra Wireless WP77xx module WP77XX_TOOLCHAIN_DIR,WP77XX_TOOLCHAIN_PREFIX
raspi Raspberry Pi RASPI_TOOLCHAIN_DIR,RASPI_TOOLCHAIN_PREFIX

Directory Structure

The top level directory structure is as follows:

./apps - contains source code for apps.

./bin - created by build system and populated with executable files that run on the development host (the host that ran the build).

./build - contains the results of the build. Will be created by the build system.

./build/tools - contains build tools that are built and then used by the build system on the build host to build other things.

./build/<target> - contains the output of a build for a specific target (e.g., ./build/wp85).

./cmake - contains CMake scripts used by the build system to build samples and unit tests.

./components - contains platform-independent components that are used in apps.

./framework - contains the source code for the Legato application framework itself.

./targetFiles - contains some files for installation on target devices that don't need to be built.

./platformAdaptor - contains components that are specific to certain platforms.

./modules - contains other repositories that are extending Legato.

Documentation

Once you have completed the first three installation steps above, you will find a set of HTML documentation under the "Documentation" directory.
Point your web browser at Documentation/index.html to view it:

xdg-open Documentatation/index.html

The latest release documentation is available at: https://docs.legato.io/latest/

Uninstallation

To uninstall Legato from your development PC:

  • Delete the directory you unzipped Legato under
  • Revert any changes you may have made to your .bashrc, etc. to set up xxxxxx_TOOLCHAIN_DIR environment variables.

_Copyright (C) Sierra Wireless Inc. _

legato-af's People

Contributors

sarraly avatar kdunwoody avatar oabid avatar cgottheimer avatar nushcone avatar ekral85 avatar nshafiswi avatar jethswi avatar jchien-sw avatar ppalanicha avatar raswi avatar dpfrey avatar stan-podin avatar shristi-pradhan avatar adoussain avatar tpensel avatar awm avatar ajiang-swi avatar kevincaocanada avatar apelete avatar gwilga avatar bcmitchells avatar zhaoxin39913 avatar fdur avatar janice-sierra avatar zmarkovic avatar ju-peng avatar corfr avatar dclark75 avatar kiranhemmadi avatar

Watchers

Chris Pahl avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.