Introduction

KasoVerb software GUI is built on the Fast Light Toolkit (FLTK) 1.3.x branch. Therefore, Building KasoVerb from source will be a multi-step process.

The first step will be to setup a development environment with the GNU toolchain, such as compilers, make and automake.

The second step will be to either obtain FLTK 1.3.x headers and libraries or obtain the source and build it. At this time, building FLTK from source is the recommended method.

The third step is to obtain the KasoVerb source and build it, statically linking against FLTK and any of it's dependencies.

KasoVerb does not yet contain any packaging or installation tools. The result of the build is a standalone binary capable of running on the host system. This document does not describe how to cross compile for other targets.

synopsis

  1. Obtain GNU tool chain (development environment)
  2. Build FLTK
  3. Build KasoVerb

GNU tool chain

The GNU toolchain includes such things as compilers, make, and automake that are used to build FLTK, and thus KasoVerb.

There are many *nix based operating systems and distributions. To obtain the GNU toolchain, refer to the specific operating system documentation for the packages you will need to install.

For Windows Minimalist GNU for Windows (MinGW) provides an environment for building software based on the GNU toolchain. The resulting binaries can run natively on Windows without dependencies of additional runtime libraries.

Cygwin is also another environment that contains the GNU toolchain and emulates a *nix operating system. However, building under Cygwin will require runtime libraries to be present for the binary to run properly.

Also refer to official FLTK documention for specific capabilities and compiling for other architectures and operating systems.

Build FLTK

KasoVerb typically uses the FLTK 1.3.x snapshot/development branch. It appears the 1.3.x development branch does not contain feature creep and primarily contains bug fixes. Using the 1.3.x branch also benifits FLTK team members by reporting bugs when changes break other software that use it.

Obtaining source

There are a few methods for obtaining FLTK source pre:

  1. svn
  2. tarball
  3. other

svn

For testing and development purposes, using svn is the easiest method to sync and keep up to date with the latest branch.

FLTK has a decent svn page howto. However, if you do not wish to use svn, then you can use the tarball option.

The following command is used to download the FLTK 1.3.x svn source pre repository:


    cd ~; mkdir freesoftware; cd freesoftware && svn co http://svn.easysw.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3
  

tarball

FLTk official software/source download page can be found at http://fltk.org/software.php.

FLTK source tarballs can also be obtained through their FTP ( ftp://ftp.easysw.com/pub/fltk/) site


    wget ftp://ftp.easysw.com/pub/fltk/1.3.0/fltk-1.3.0-source.tar.gz
  

FLTK 1.3.x snapshot changes almost weekly. For the current branch you will need to go to their web page or ftp site and search for it.

After getting FLTK source, you will need to unpack it using a tool such as tar. However, before you unpack it you may want to create a development or temporary directory to store the free software.


    cd ~; mkdir freesoftware; cd freesoftware && tar -zxvf ~/Downloads/fltk-1.3.0-source.tar.gz
  

Other sources

Trusted operating system distributions and vendors supplying FLTK packages/tarballs. Use the packagement tool of your operating system to see if FLTK is available.

Compiling FLTK

Once FLTK source has been obtained, the compilation process is straight forward:


    cd ~; cd freesoftware && ./configure && make
  

To configure the system with custom options specific to your operating system distribution, you can run


    ./configure --help
  

Following, run configure again with those specific options


    ./configure --with-archflags=-arch x86_64
  

Build KasoVerb

Before building KasoVerb, first download and build FLTK.

At the time of writing this document, KasoVerb has not adopted an official build or packaging policy. Currently, KasoVerb source has makefiles for GNU make and GNU C/C++ compilers. However, compatible compilers that can use the GNU C/C++ compiler flags should also work (source pre is ANSI C/C++ compliant). MinGW is recommended to build binaries for Windows.

Obtaining source

The recommended method is to obtain the source through the Bazaar repository hosted on Savannah. Savannah has a write up https://savannah.nongnu.org/bzr/?group=kasoverb on how to use Bazaar to obtain the source repository.

To learn more about Bazzar visit Canonical's web site http://bazaar.canonical.com/en/.

KasoVerb has two branches: (1) alpha0, and (2) delta0. The alpha0 branch will eventually become deprecated in favor of the delta0 branch. However, at this time, it is the only working branch. Unless you plan on contributing to the project, delta0 is not recommended.

bzr

For testing and development purposes, using bzr is the easiest method to sync and keep up to date with the latest branch.

The following command is used to download the KasoVerb bzr source pre repository:


    cd ~; mkdir -p freesoftware/kasoverb; cd freesoftware/kasoverb && 
    bzr branch bzr://bzr.savannah.nongnu.org/kasoverb/alpha0
  

tarball

KasoVerb tarballs (and pre-built binaries) can be downloaded from Savannah http://download.savannah.gnu.org/releases/kasoverb/


    wget http://download.savannah.gnu.org/releases/kasoverb/kasoverb_alpha0-03.15.2011.src.tar.gz
  

For the current alpha0 branch you will need to go to the web page.

After getting KasoVerb source, you will need to unpack it using a tool such as tar. However, before you unpack it you may want to create a development or temporary directory to store the free software.


    cd ~; mkdir -p freesoftware/kasoverb; cd freesoftware/kasoverb && tar -zxvf ~/Downloads/kasoverb_alpha0-03.15.2011.src.tar.gz
  

Compiling KasoVerb

Windows compilation under MinGW does not work at this time without modifying gmakeit.sh

Once KasoVerb source has been obtained, source can be compiled as follows:


    export FLTK=~/freesoftware/fltk-1.3; cd ~/freesoftware/kasoverb/alpha0/source && ./gmakeit.sh
  

Depending if your building from a bzr repository or tarball, the paths may be different. As seen above, a valid path to FLTK must be exported. The build script gmakeit.sh, uses FLTK makeinclude to extract the required libraries for linking.

With a little luck, everything will go accordingly and the resulting kvc binary will exist in


    ~/freesoftware/kasoverb/alpha0/source/kvc/kvc_app/kvc_binary/kvc
  

The database is located in


    ~/freesoftware/kasoverb/alpha0/database
  

Summary

The following commands summarize how to download and build a current branch of KasoVerb and FLTK


    mkdir -p ~/freesoftware/kasoverb
    cd ~/freesoftware
    svn co http://svn.easysw.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3 
    cd fltk-1.3 && make
    cd ~/freesoftware/kasoverb 
    bzr branch bzr://bzr.savannah.nongnu.org/kasoverb/alpha0 
    cd alpha0/alpha0/source
    export FLTK=~/freesoftware/fltk-1.3    
    ./gmakeit.sh
    ./kvc/kvc_app/bin_binary/kvc
    # the database is located in ../database
  

To synchronize and rebuild issue the following commands


    cd ~/freesoftware/fltk-1.3 
    svn update
    make
    cd ~/freesoftware/kasoverb/alpha0/alpha0/source && bzr update
    ./gmakeit.sh