/Termite

The Termite driver synthesis tool

Primary LanguageShell

The Termite driver synthesis tool

http://www.termite2.org

Termite must be built on a Linux system. The build process has been tested on 64 bit versions of Ubuntu and Arch Linux.
A working Haskell installation is required. You will need to install ghc version 7.8 or greater and cabal-install version 1.20 or greater using your system's package manager.

You will need to install several other dependencies.  On Ubuntu, the following packages are needed:

libglib2.0-dev 
libcairo2-dev
libpangocairo-1.0
libgtk2.0-dev
libpango1.0-dev
libgtksourceview2.0-dev
graphviz

Finally, you will need to build from sources and install Z3 SMT solver from Microsoft Research, available at https://z3.codeplex.com.  Note that Z3 is free for non-commercial academic purposes only.

To clone the needed git subrepos and setup a cabal sandbox:
    $ ./setup.sh

To build:
    $ ./build.sh

Copy the language definition to a place where GTKSourceView can find it:
    $ sudo cp lib/tsl/tools/tsl.lang /usr/share/gtksourceview-2.0/language-specs/

To run:
    $ source ./envs.sh
    $ cd documentation/GPIO
    $ ../../bin/termite -i main.tsl -s

Or, if you prefer to build CUDD separately:

To build CUDD: 
    $ pushd lib/cudd
    $ cp Makefile.64bit Makefile # or Makefile.32bit if you are on a 32 bit system
    $ make libso
    $ popd

To build Termite:
    $ export LD_LIBRARY_PATH=`pwd`/lib/cudd/libso
    $ cabal update
    $ cabal install termite --extra-include-dirs=`pwd`/lib/cudd/include --extra-lib-dirs=`pwd`/lib/cudd/libso --bindir=`pwd`/bin