--- layout: page title: How To permalink: /how-to/ --- # How to Get the Sources This step should be simple: ```bash git clone https://github.com/Samsung/jerryscript.git cd jerryscript ``` # How to Setup Recommended Prerequisites Currently, we are using Ubuntu Linux 14.04+ as our development environment, so this tutorial was written based on this assumption. Additionaly, it'd be useful to read [Prerequisites]({{ site.baseurl }}/wiki/Prerequisites) wiki page, also. There are dependencies, that should be installed manually. The following list is required for building: - `gcc` or `g++` higher than `4.8.2` - native - arm-none-eabi - `cmake` higher than `2.8.12.2` - `make` higher than `3.81` - `bash` higher than `4.3.11` These tools are required for development: - `cppcheck` requires `libpcre` - `vera++` requires `tcl`, `tk` and `boost` ```bash sudo apt-get install gcc g++ sudo apt-get install gcc-arm-none-eabi g++-arm-none-eabi sudo apt-get install cmake sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install tcl8.6 tcl8.6-dev tk8.6-dev libboost-all-dev ``` To make our scripts run correctly, several shell utilities should be available the system: - `find` - `bc` - `awk` - `sed` - `sha256sum` - `wget` # How to Build After setting up prerequisites, let's built the engine: ``` make ``` Upon first build, `make` would try to setup prerequisites, required for further development and pre-commit testing: - stm32f3 and stm32f4 libraries - nuttx's headers - cppcheck 1.66 - vera++ 1.2.1 It may take time, so go grab some coffee: ```bash Setting up prerequisites... (log file: ./build/prerequisites/prerequisites.log) ``` ## How to Build Debug Version To build debug version for Linux: ```bash make debug.linux ``` To build debug version for Linux without LTO (Link Time Optimization): ```bash LTO=off make debug.linux ``` # How to Run Unittests ```bash make unittests ``` # How to Check the Patch ```bash make precommit -j ``` Sometimes pre-commit testing fails, in that case you'll see message like that: ```bash Build failed. See ./build/bin/unittests/make.log for details. ```