Skip to content
Russ Herrold edited this page Jul 26, 2017 · 60 revisions

Steps for First Time Setup

1. Install Development Tools

Windows

On Windows, you'll need Cygwin, a Java JDK, and ant.

Cygwin is downloadable from http://www.cygwin.com/ or specifically: http://www.cygwin.com/setup-x86.exe (32bit windows) or http://www.cygwin.com/setup-x86_64.exe (64bit windows) or http://www.redhat.com/services/custom/cygwin/ (if the cygwin official site is not ok for us!)

In the Cygwin setup configuration select the packages:

  • git - used for version control
  • make, gcc-mingw, and g++ - used to build arduino.exe (this will also pull in gcc-core)
  • perl - use this version, activestate or other distros have trouble
  • unzip, zip - for dealing with archives

Included in the defaults, but make sure:

  • coreutils (or textutils), gzip, tar Not required but useful:
  • openssh - command line ssh client
  • nano - handy/simple text editor

And be sure to leave the option selected for 'unix line endings'

Download and install ant. Add the apache-ant-xxx\bin directory to your path.

Download and install a Java JDK.

Point the JAVA_HOME environment variable to the JDK root directory. An error message that reads "Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar" means you need to set JAVA_HOME to your JDK (not JRE) installation.

When building on a 64 bit version of Windows, you must still use the 32 bit JDK. If you have both the 32 and 64 bit JDK's installed, ensure JAVA_HOME is set to the 32 bit version.

Mac OS X

On Mac OS X (using Homebrew, first brew update), install:

  • Apple's Developer Tools
  • git (brew install git)
  • JDK 8
    brew tap caskroom/cask
    brew cask install java
    
  • ant (brew install ant)

Linux

On Linux, you need the Sun Java SDK, avr-gcc, avr-g++, avr-libc, make, ant, and git.

# Ubuntu/Debian

    sudo apt-get install git make gcc ant openjdk-8-jdk


# Arch Linux

    sudo pacman -S jdk8-openjdk jre8-openjdk apache-ant git base-devel

# CentOS 7 Linux
## Check if present thus:

    [userid@hostname ~]$ rpm -qa --qf "%{name}\n" git make gcc xz-lzma-compat ant \*openjdk\* | sort
    ant
    gcc
    git
    java-1.8.0-openjdk
    java-1.8.0-openjdk-devel
    java-1.8.0-openjdk-headless
    xz-lzma-compat
    make

## and install any packages needed, thus:

    sudo yum -y install make gcc ant xz-lzma-compat java-1.8.0-openjdk

N.B.: 'ant' pulls in the '-devel' version of 'java-1.8.0-openjdk' which is expected

If your Linux version is Ubuntu 14.04 and later, you can use the above command line. If not, use the info at http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/

2. Build from Source

This grabs the code from GitHub as an anonymous user.

Make sure your git line ending setting autocrlf is set to input or false. With true building will fail. You can see/change this setting with:

git config --global --edit
[user]
        name = xxx
        email = [email protected]
[core]
        autocrlf = input
[push]
        default = current

Grab the code

git clone https://github.com/arduino/Arduino.git

(this may take a while; maybe even a long while for dialup and international folks)

Build It

Use the command line. :

cd /path/to/arduino/build
ant dist

This will prompt you to enter an Arduino version to build (the latest development version will be listed in the prompt, i.e. 1.8.3) before it starts the build.

If everything went well, you'll have no errors. (Feel free to make edits of things to include here for common problems.)

Run it

ant run

(ant run will call build and start)

Each time you make a change, use ant dist to build the thing and ant run to get it up and running.

Updating to the Latest Version

Each time you want to update to latest version from git use:

cd /path/to/arduino
git pull

If new folders have been added, or you're getting odd errors, use:

ant clean

The best way to use it is to just make a clean build every time:

ant clean build start

If you want to debug the avr core you can put a symlink from your sketchbook to your git folder. This way you can directly commit the changes without copying back and forth.

ln -s ~/Documents/Arduino/Arduino/hardware/arduino/avr/ ~/Documents/Arduino/sketchbook/hardware/arduino/avr

Build for other platforms

You can do the build for other platforms using:

ant clean dist -Dplatform=windows

ant clean dist -Dplatform=macosx

ant clean dist -Dplatform=macosx-java-latest