Setting up your local environment

From
Jump to: navigation, search

For convenience, MPSI provides a self-contained local folder structure for building WhizniumSBE and WhizniumDBE projects. The paths are configured such that no modifications to the workstation's file system outside of this folder structure are necessary.

Four tested configurations are available, two of which are catering to Yocto/PetaLinux cross-compile environments:

1. apalis: for Toradex's Apalis iMX6 board featuring dual/quad Cortex-A9 ARM cores

2. arty: for the Digilent Arty Z7 board which is built around Xilinx's Z7010/Z7020 Zynq All-Programmable SOC, featuring dual Cortex-A9 ARM cores and FPGA fabric

3. linux: for ubuntu workstations, tested for 16.04 and 18.04

4. mac: for Apple computers

Prerequisites[edit]

1. apalis: have your Yocto project set up on your workstation

2. arty: have your PetaLinux project set up on your workstation

3. linux: the following packages are required:

sudo apt install make gcc libxml2-dev mysql-client mysql-server libmysqlclient-dev postgresql postgresql-contrib libpq-dev sqlite3 libsqlite3-dev libmicrohttpd-dev libcurl3-dev libjpeg-dev

4. mac: the following installations are required (you may consider using Homebrew instead of building from source):

MySQL from https://dev.mysql.com/downloads/mysql/ 8.0.16, use Legacy Password Encryption

libcurl: https://curl.haxx.se/download.html, installation should end up in /usr/include and /usr/lib

libxml2: ftp://xmlsoft.org/libxml2, installation should end up in /usr/local/include/libxml2 and /usr/local/lib

libmicrohttpd: https://ftp.gnu.org/gnu/libmicrohttpd, installation should end up in /usr/local/include and /usr/local/lib

libjpeg-turbo: https://sourceforge.net/projects/libjpeg-turbo/files, installation should end up in /opt/libjpeg-turbo/include and /opt/libjpeg-turbo/lib

Download and configure[edit]

The Whiznium local folder structure is available at https://mpsitech-public.s3.amazonaws.com/whiznium_root.tgz. Download it and unpack it at your location of choice. The unpacked folder will be your Whiznium root directory and a shell variable ${WHIZROOT} will be defined for it.

Build essentials[edit]

Carefully follow the instructions in ${WHIZROOT}/setup_<machine type>.sh: this file contains shell command snippets but is not meant to be executed as a whole.

A note on the 'manually edit ${WHIZROOT}/srcrep/sbecore/config.h' task: in this header file you define which DBMS types are available on your system. The options include MariaDB (SBECORE_MAR), MySQL (SBECORE_MY), PostgreSQL (SBECORE_PG) and SQLite3 (SBECORE_LITE).

The default configuration is 1. apalis SBECORE_LITE, 2. arty SBECORE_LITE, 3. linux SBECORE_MY + SBECORE_PG, 4. mac SBECORE_MY.