Building Arduino
Pages 14
- Home
- 1.6 Frequently Asked Questions
- Arduino Hardware Cores migration guide from 1.0 to 1.6
- Arduino IDE 1.5 3rd party Hardware specification
- Arduino IDE 1.5 3rd party Hardware specification
- Arduino IDE 1.5 from command line
- Arduino IDE 1.5: Library specification
- Arduino IDE 1.6.x package_index.json format specification
- Build Process
- Building Arduino
- Development Policy
- Library Manager FAQ
- PluggableUSB and PluggableHID howto
- Unofficial list of 3rd party boards support urls
Clone this wiki locally
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
if your linux version is ubuntu 14.04 and later, you can use the above command line if your one is not, you cannot use the above cmd, then you can use the info 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, it'll take a while (maybe even a long while for you dialup and international folks)
git clone https://github.com/arduino/Arduino.git
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
# suggestions for things to include here for common problems)
# then to run it. (ant run will call build
and start
)
ant run
# each time you make a change, use ant to build the thing
# and run to get it up and running.
Updating to the Latest Version
Each time you want to update to latest version from git:
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