Simple Makefile (that works) for compile and upload Arduino sketches
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit ahead of turicas:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This fork is a port for Mac OSX and Arduino 1.0

It should works out of the box if you are using the UNO. Just edit your sketch filename in the Makefile and type make to compile and upload your sketch.


  • Download the IDE for Mac OSX

  • Add the following dir to your PATH environment variable

  • Copy the avrdude.conf file to /usr/local/etc

      $ cp /Applications/ /usr/local/etc


Compile only

$ make compile

Compile and upload

$ make


$ make reset


This project is just a simple Makefile for Arduino. There are some Makefiles in the Web but all of them are complicated and some does not work properly for newer versions of Arduino. This Makefile is simple and just works!

It does:

  • Compiles your sketch, including the standard Arduino library required
  • Merge all files into a .elf and them translate it to a .hex file
  • Upload the .hex to Arduino's flash memory

WARNING[0]: it was tested only in Ubuntu GNU/Linux with Arduino Uno. Probably it'll work well in any GNU/Linux distribution or Mac OS with Arduino Duemilanove. Windows users: sorry, please use a better OS.

WARNING[1]: by now the feature of compiling external libraries (even standard libraries and third-party libraries) is not implemented. So, if you have some #include in your project, probably it won't work -- but don't be afraid, I'm working on this.

Why another Makefile?

The question was answered in the section above -- but I'm studying all the Makefiles for Arduino that I found in the Web and trying to implement the simplest way of doing it right. I've created a comprehensive list of Makefiles and I'm categorizing them.