# How to build from source?

Both development environment and GCS are supported on Windows, Linux and Mac OS X

## Install prerequisites

The first step is to Install all OS specific prerequisites.

### Mac OS X

Install XCode and its relatated command line tools (follow Apple documentation). Install git, curl and p7zip.

You can use brew with `brew install git curl p7zip` or macport with `sudo port install git curl p7zip`.


### Ubuntu

    sudo apt-get install git build-essential curl gdb wget debhelper p7zip-full unzip flex bison libsdl1.2-dev libudev-dev libusb-1.0-0-dev libc6-i386 mesa-common-dev


### Windows

Install [Msys2](https://msys2.github.io/) following the instructions on the web site. You can either install the i686 (32 bit) or x86_64 (64 bit) version.

Start a *MinGW-w64 Win32 Shell* or *MinGW-w64 Win64 Shell* (but **not** a *MSYS2 Shell*).

Install the dependent packages that match your MinGW shell.

For 32 bit:

    pacman -S --needed git unzip tar mingw-w64-i686-toolchain mingw-w64-i686-qt5 mingw-w64-i686-SDL mingw-w64-i686-mesa mingw-w64-i686-openssl mingw-w64-i686-OpenSceneGraph mingw-w64-i686-osgearth

For 64 bit:

    pacman -S --needed git unzip tar mingw-w64-x86_64-toolchain mingw-w64-x86_64-qt5 mingw-w64-x86_64-SDL mingw-w64-x86_64-mesa mingw-w64-x86_64-openssl mingw-w64-x86_64-OpenSceneGraph mingw-w64-x86_64-osgearth

**NOTE** On Windows you need to run the mingw version of make, which is `mingw32-make`


## Setup the build environment and build

The `all_sdk_install` target will automatically retrieve and install all needed tools (qt, arm gcc, etc.) in a local folder `/path/to/LibrePilot_root/tools`

### Ubuntu / Mac OS X

    make all_sdk_install
    make package

### Windows

    mingw32-make all_sdk_install
    mingw32-make package

The `package` target will build the complete installable package for the current platform.

You can build the `all` target to just build the software.

Run `make` with no arguments to show the complete list of supported targets.