summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bauereiss2018-02-17 21:49:17 +0000
committerThomas Bauereiss2018-02-17 21:49:17 +0000
commit51c122d99a1a481bc916f766ae6bd2a6a66de6d2 (patch)
tree322e8b54661839580bc06f483828c97f20c6424d
parent96211c216102d6dec5e0fa3dd5999dc13e1b4748 (diff)
parent4b863918820fb7f632e7f34f29ca2ab82391d933 (diff)
Merge branch sail2
-rw-r--r--INSTALL.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..a9d7d060
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,94 @@
+Installing Sail on Ubuntu
+=========================
+
+This note lists the commands needed to get Sail and all dependencies
+working on a new Ubuntu install. I recently (2018-02-17) tested these
+on Xubuntu 16.04 LTS in a virtual machine, so they should
+work. Hopefully this will be useful as a reference.
+
+Basics
+------
+
+First we need some basic packages if they're not already installed.
+```
+sudo apt-get install build-essential git
+```
+
+OCaml and sail expect some packages. m4 is for OPAM, libgmp-dev is for
+zarith which most of our tools rely on. Sail uses Z3 as a constraint
+solver.
+```
+sudo apt-get install m4 libgmp-dev z3
+```
+
+OCaml and OPAM
+--------------
+
+Install OPAM. Either directly from [https://opam.ocaml.org] or from
+the package manager - both should work, but I used the install script
+from the website. This should install OCaml 4.05.
+
+We now need ocamlbuild, zarith, and menhir from OPAM.
+```
+opam install ocamlbuild
+opam install zarith
+opem install menhir
+```
+
+Ott
+---
+
+Before cloning the repositories you may need to set up ssh keys with
+github or use https. Create a directory to install the various REMS
+tools and cd into it.
+```
+git clone git@github.com:ott-lang/ott.git
+cd ott
+make
+cd ..
+```
+
+Lem
+---
+
+```
+git clone git@github.com:rems-project/lem.git
+cd lem
+make
+cd ocaml-lib
+make install
+cd ../..
+```
+
+Linksem
+-------
+
+```
+git clone git@github.com:rems-project/linksem.git
+cd linksem
+make && make install
+```
+
+Sail
+----
+
+Sail depends on lem and ott, so make sure lem and ott executables
+exist in $PATH.
+```
+git clone git@github.com:rems-project/sail.git
+cd sail
+make
+```
+To build Sail with interactive support we need two more commands
+```
+opam install linenoise
+make isail
+```
+To test Sail is installed correctly, execute the following from the
+root directory of the sail repository. You may also need to set
+$LEM_DIR to the root of the lem repository for the lem tests. Some of
+the C backend tests will fail if valgrind isn't installed.
+```
+export SAIL_DIR=$PWD
+test/run_tests.sh
+```