Recent Changes - Search:



Deprecated

Software

Prev Edit this page to change styles

--- Boxes and outlines ---

--- Headers beyond ordinary "!" level headers

--- Stegi specific stylings ---

--- Text warnings, notices, hilights ---

--- Directory paths ---

--- Calendar specific ---

Jarvis: The IoT Butler

The information on this page describes the build and runtime systems for Jarvis.

Basic Build Process

  1. Configure the shell environment
  2. Setup build system prerequisites
  3. Compile Jarvis
  4. Compile and run unit tests
  5. Run Jarvis from build system
  6. Generate packaged version

Configure Shell Environment

Under development

To use the build system, you should load the cdtools shell function.

Configure environment for Jarvis builds
cp docs/jarvis.sh ~/bin/env/jarvish.sh
vi ~/bin/env/jarvish.sh
<edit lines as appropriate>
source ~/bin/env/jarvish.sh
jarvis

If you don't already have the source tree cloned then you can grab the shell function directly from gitorious' raw blob data.

To get help with the build system and the many available targets, use ant to print the list of available targets.

Getting Build Help
$ ant -p
Buildfile: /home/mjhammel/src/ximba/jarvis/src/build.xml
Trying to override old definition of task javac

Main targets:

 all             Same as jarvis target.
 clean           Cleans up the build directory.
 clobber         Cleans up everything.
 common          Compile common library only.
 common.clean    Clean up from common library compile.
 init            Initialize build directories
 jarvis          Compile jarvis source code, including common library.
 jarvis.clean    Clean up jarvis build, including common library artifacts.
 jarvis.run      Run Jarvis.
 javadoc         Generates API Documentation
 javadoc.clean   Deletes generated Javadocs
 javadoc.pkg     Package API Documentation into tar.gz
 pkg             Same as rpm target.
 rpm             Build RPM package, including jarvis target
 rpm.clean       Clean up the RPM packaging.
 rpm.showconfig  Show configuration for RPM packaging.
 taskdefs        Builds a jar of taskdefs used by the build environment
 taskdefs.clean  Delete all generated files (but not the jar file)
 test            Development use only.
 tests           Compile tests source code.
 tests.clean     Clean up after the tests files compile.
 tests.run       Run unit tests.
Default target: all

Build system prerequisites

Oracle Java JDK 7 is required to build and test the system. OpenJDK has not been tested.

The ant and ant-contrib packages from Fedora or CentOS are also required.

Java Version
$ java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Ant version
$ ant -version
Apache Ant(TM) version 1.8.4 compiled on February 13 2013

$ rpm -qi ant-contrib
Name        : ant-contrib
Version     : 1.0
Release     : 0.21.b3.fc19
Architecture: noarch
Install Date: Tue Aug 13 14:37:12 2013
Group       : Development/Libraries
Size        : 456725
License     : ASL 2.0 and ASL 1.1
Signature   : RSA/SHA256, Thu Mar 14 19:22:54 2013, Key ID 07477e65fb4b18e6
Source RPM  : ant-contrib-1.0-0.21.b3.fc19.src.rpm
Build Date  : Wed Feb 13 14:42:04 2013
Build Host  : buildvm-21.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://ant-contrib.sourceforge.net/
Summary     : Collection of tasks for Ant
Description :
The Ant-Contrib project is a collection of tasks
(and at one point maybe types and other tools)
for Apache Ant.

Compile Jarvis

To compile Jarvis, use the jarvis target


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

This will generate a pkg directory under the build tree. The default build is for 64 bit Linux. If you are running 32 bit Linux you will want to set the BIT environment variable.


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

Why do you have to specify your BIT configuration? Because that's how the build system chooses which version of the SWT UI library to use.


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

Compile and run unit tests

After compiling you should run the unit tests to make sure the system is basically sane.


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

Note that there are failures here. You can view these by loading the results into a browser.


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

In this example the following url would be loaded into the browser to view the tests results.

  file:/home/mjhammel/src/ximba/jarvis/bld/jarvis/tests/results/index.html

Run Jarvis from build system

Once unit tests are working you can run Jarvis from the build system.


GeSHi Error: GeSHi could not find the language sh (using path /home/httpd/home-muse/html/wiki/cookbook/geshi/geshi/) (code 2)

This will open the UI. Once the UI is open you can say the following to test Jarvis.

  1. Jarvis, are you there?
  2. Jarvis, are you awake?
  3. Jarvis, quit.
  4. Jarvis, exit.

That's all it does right now. But these show the core components that allow it to perform future actions are in place.

Generate packaged version

TBD - eventually there will be RPM packaging to allow installation without compilation.

Edit - History - Print - Recent Changes - Search
Page last modified on April 01, 2014, at 10:32 PM