DEPRECATED FORK: Arduino Makefile with chipKIT support
Shell Other Processing
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Deprecation Warning

Note that the changes in this Makefile have been merged in the now active upstream project at The only difference at this point is that the upstream version requries Perl (for the board reset script). This project should be considered deprecated but I will update it once the Perl dependency is finally dropped from the upstream version to say this is dead for good.

Old docs:

This is a versioned history of the work done by Martin Oldfield on an Arduino Makefile. He releases tarballs on his website, so this version might be a bit easier if you want to track your modifications.

The various released versions (0.3, 0.4, etc) are tagged in this repository.

The original blog post:

A blog post on the addition of chipKIT support:

This Makefile current requires either Arduino 1.0 or MPIDE 0023.

chipKIT Support

This version adds support for the Digilent chipKIT Uno32 and Max32, both Arduino-compatible microcontrollers. To use this Makefile with one of those, include instead of at the bottom of your Makefile.

include /path/to/

You can adjust the same variables as described by Martin for, but point to an MPIDE installation (which includes the chipKIT toolchain) instead of the Arduino IDE.


The Makefile will look for libraries in two places:

  • In the Arduino/MPIDE installation directory under the libraries directory
  • In the libraries directory in your Arduino sketchbook. This location is the preferred location for user libraries when using the IDE.


To compile the basic blink example sketch, set the ARDUINO_MAKEFILE_HOME variable to point to where you clone this repository and use this for your Makefile:

TARGET       = blink
BOARD_TAG    = mega_pic32

SERIAL_PORT = /dev/ttyUSB*



If you are defining your own main() function, you can stop the Ardunio's built-in main() from being compiled with your code by defining the NO_CORE_MAIN_FUNCTION variable:



  • Martin Oldfield (initial version)
  • Chris Peplin (chipKIT)
  • rei_vilo / Olivier
  • Edward Comer
  • John Wallbank


The project is distributed under the LGPL. See licence.txt for the full license text.