Overview

There are multiple targets available for building the Deviation firmware:

devo8:  This is the default target for the Walkera Devention 'DEVO8' transmitter
        It requires the gnu arm toolchain including gcc, and newlib
        To build, use:
           make

emu_devo8: This will build on the native platform (no cross-compiler needed)
           The main purpose of this target is to facilitate GUI development.
           This target requires FLTK to be installed.  See below for
           installing build enviornments
           For Linux:
             make TARGET=emu_devo8
           For Windows:
             make TARGET=emu_devo8 WINDOWS=1
           Cross-compile for Windows on Linux:
             make TARGET=emu_devo8 WINDOWS=1 CROSS=i586-mingw32msvc-

the default target is 'devo8'

Installing the build environment:

#################################
    Only the official embedded-arm build system is supported now
    Get the most recent release from here:
    https://launchpad.net/gcc-arm-embedded
    Current build version: gcc-arm-none-eabi-4_8-2013q4-20131204
#################################

Building for ARM (on Linux):
    1) download and install the precompiled linux compiler from here:
       https://launchpad.net/gcc-arm-embedded
    2) Add path to 'bin' directory to your PATH
Building for ARM (on Windows):
    Install the arm toolchain:
    1) download and install the precompiled windows compiler from here:
       https://launchpad.net/gcc-arm-embedded
    1a) add path to 'bin' directory to your PATH (I like to put this into ~/.profile
        so it is there each time I start msys)
        export PATH=/mingw/stm32/bin:$PATH
    2) ensure python is installed.  If not install it from here:
       http://www.python.org/download/releases/2.7.3/
    2a) Add python to your msys path:
       export PATH="/c/<path to python>":$PATH
       (e.g. export PATH="/c/Program Files/Python27":$PATH)
#################################

#################################
Builing the Windows binary on Linux
    Install fltk:
           apt-get install mingw32 mingw32-binutils mingw32-runtime
           <Download and unpack fltk source code>
           ./configure --disable-largefile --enable-localjpeg \
                       --enable-localzlib --enable-localpng \
                       --disable-gl --host=i586-mingw32msvc \
                       --prefix=/opt/fltk-w32
           make
           sudo make install
    Install portaudio:
           <Download and unpack portaudio source code>
           ./configure --prefix=/opt/portaudio-w32
           make
           sudo make install
#################################

#################################
Building the Windows binary on Windows
#################################
    Install MingW:
    * Download the mingw installer from here: sourceforge.net/projects/mingw/files/Ins...0120426.exe/download
    * Run the installer, and select 'C++', 'MSYS' and the 'Developer Toolkit'

    Install fltk:
    * Download fltk from here: http://fltk.org/software.php?VERSION=1.3.0&FILE=fltk/1.3.0/fltk-1.3.0-source.tar.gz
    * Start msys (you should have an icon, but otherwise run C:\MingW\msys\1.0\msys.bat
    * mkdir src
    * cd src
    * Untar fltk: tar -xzf <path to fltk download> (you can get to your C: drive in mingw using /c/Users/<user>/Downloads for example)
    * cd fltk-1.3.0
    * ./configure
    * make
    * make install

    Install portaudio:
    * Download portaudio from here: http://www.portaudio.com/archives/pa_stable_v19_20111121.tgz
    * Start msys (you should have an icon, but otherwise run C:\MingW\msys\1.0\msys.bat
    * cd src
    * Untar portaudio: tar -xzf <path to portaudio download> (you can get to your C: drive in mingw using /c/Users/<user>/Downloads for example)
    * cd portaudio
    * ./configure
    * make
    * make install

    Install Deviation:
    * Download the source code for deviation. You'll need mercurial to keep track of changes (which will require installing python), but you can manually download a zip of the source from bitbucket.org/PhracturedBlue/deviation
    * cd ~/src
    * cp -pf <path to deviation src code> deviation
    * cd deviation/src