2013-05-31 05:59:36 +02:00
A Makefile for Arduino Sketches
===============================
2013-09-25 11:50:12 +02:00
The following is the rough list of changes that went into different versions.
I tried to give credit whenever possible. If I have missed anyone, kindly add it to the list.
2014-01-14 10:06:24 +01:00
2014-02-04 18:41:51 +01:00
### 1.3.2 (in development)
- Fix: Add arduino-mk-vars.md file to RPM SPECfile. (https://github.com/sej7278)
2014-02-06 00:31:12 +01:00
- Fix: Add avr-libc/malloc.c and realloc.c to included core files. Fixes issue #163 (https://github.com/sej7278)
2014-02-14 16:25:29 +01:00
- Fix: Add "gpio" to the list of isp that don't have a port. (Issue #165 , #166 ) (https://github.com/sej7278)
- Fix: Add "-D__PROG_TYPES_COMPAT__" to the avr-g++ compiler flags to match IDE. (https://github.com/sej7278)
2014-02-27 20:57:43 +01:00
- New: Create `Makefile-example-mk` , a *real life* `Makefile` example, to be used as a reference. (https://github.com/tinyladi)
2014-02-27 22:22:59 +01:00
- Tweak: Add `OBJDIR` to `arduino-mk-vars.md` (https://github.com/tinyladi)
2014-02-27 22:20:38 +01:00
- Tweak: *Beautify* `arduino-mk-vars.md` with code blocks. (https://github.com/tinyladi)
2014-03-10 17:50:06 +01:00
- Fix: AVR tools paths for chipKIT in Linux. (https://github.com/peplin)
2014-03-14 19:40:18 +01:00
- Fix: Consider usb or usb:... to be a valid ISP_PORT (https://github.com/geoffholden)
2014-03-14 00:42:35 +01:00
- Add: Add phony target to run pre-build hook script (https://github.com/jrid)
2014-03-24 01:53:30 +01:00
- Fix: Add BOOTLOADER_PARENT to `arduino-mk-vars.md` and fixed BOOTLOADER_PATH example. (https://github.com/sej7278)
2014-03-24 14:27:36 +01:00
- Tweak: Replace perl reset script with Python script. (https://github.com/sej7278)
2014-04-02 18:57:58 +02:00
- Tweak: Made choice of Python2/3 interpreter up to the OS. (https://github.com/peplin)
2014-04-04 22:54:26 +02:00
- Tweak: Simplified packaging dependencies. (https://github.com/sej7278)
2014-02-04 18:41:51 +01:00
2014-02-04 13:59:18 +01:00
### 1.3.1 (2014-02-04)
2014-02-01 01:41:00 +01:00
- Fix: BUNDLED_AVR_TOOLS_DIR is now set properly when using only arduino-core and not the whole arduino package. (https://github.com/sej7278)
2014-02-04 13:24:46 +01:00
- New: Document all variables that can be overridden. (https://github.com/sej7278)
2014-02-04 13:57:46 +01:00
- New: Add a new `help_vars` target to display information about variables that can be overridden.
2014-02-01 01:41:00 +01:00
2014-01-29 06:14:12 +01:00
### 1.3.0 (2014-01-29)
- Fix: Use more reliable serial device naming in Windows. Fix issue #139 and #155 (https://github.com/peplin)
- Fix: Document that ARDUINO_DIR must be a relative path in Windows. Fix issue #156 (https://github.com/peplin)
2014-01-29 06:28:25 +01:00
- Tweak: Don't hard code MONITOR_PORT in examples, for more flexible testing. (Issue #157 ) (https://github.com/peplin)
- Tweak: Silence the stderr output from call to `which` . (Issue #158 ) (https://github.com/peplin)
- Fix: Override complete compiler tool paths for chipKIT. (Issue #159 ) (https://github.com/peplin)
2014-02-27 20:57:43 +01:00
- New: The makefile is compatible with Windows
2014-01-29 07:02:16 +01:00
- New: Update `README.md` file about usage and Windows compatibility
2014-01-29 06:14:12 +01:00
2014-01-14 10:08:44 +01:00
### 1.2.0 (2014-01-14)
2014-01-14 10:06:24 +01:00
- Add: Add RPM SPECfile and new `package` directory to store package instructions and files (https://github.com/sej7278)
2014-01-13 13:14:31 +01:00
- Fix: Remove use of arduino-mk subdirectory in git. Fix issue #151 , #152 and #147 (https://github.com/sej7278)
2014-01-14 10:06:24 +01:00
- Fix: Remove `arduino-mk` directory from all examples. Fix #154
2013-05-31 05:59:36 +02:00
2013-12-26 11:37:58 +01:00
### 1.1.0 (2013-12-26)
2013-10-05 04:49:58 +02:00
- Don't append port details to avrdude for usbasp. See #123
2013-10-06 14:42:33 +02:00
- Ignore commented lines while parsing boards.txt file. See #124
2013-10-06 14:44:58 +02:00
- In ISP mode, read baudrate and programmer from boards.txt. See #125
2013-10-06 15:40:29 +02:00
- Add `burn_bootloader` target. See #85
2013-10-06 15:50:52 +02:00
- Show correct path to `arduino.mk` file in help message. Fix #120
2013-11-21 10:46:09 +01:00
- Change echo for printf. Fix #129 (https://github.com/thomassigurdsen)
2013-12-05 07:21:03 +01:00
- Add support for ChipKiT 2013. Fix #136 (https://github.com/peplin)
2013-12-02 14:45:54 +01:00
- Auto detect and include libraries specified in `USER_LIB_PATH` . Fix #135 (https://github.com/tinyladi)
2013-11-22 02:53:36 +01:00
- Use `MAKEFILE_LIST` to get the name of the make file. Fix #130 (https://github.com/cantora)
2013-12-15 22:10:58 +01:00
- New: Add option to set fuses without burning a bootloader. Fix #141 (https://github.com/sej7278)
2013-12-16 19:06:50 +01:00
- Tweak: Don't append port details to avrdude for usbtiny. Fix #140 and #138 (https://github.com/PPvG)
2013-12-17 11:08:26 +01:00
- Fix: Handle relative paths of bootloader file while burning bootloaders. Fix #126 and #142 (https://github.com/sej7278)
2013-12-17 12:58:59 +01:00
- New: Add `CONTRIBUTING.md` explaining how to contribute to the project.
2013-12-26 11:30:08 +01:00
- New: Force -Os optimization for SoftwareSerial. Add `OPTIMIZATION_FLAGS` and `DEBUG_FLAGS` . (https://github.com/mahoy)
2014-01-13 13:14:31 +01:00
- Fix: Use `ARDUINO_HEADER` variable instead of hardcoded file names. Fix #131
2013-10-05 04:49:58 +02:00
2013-09-25 11:48:14 +02:00
### 1.0.1 (2013-09-25)
- Unconditionally add -D in avrdude options. See #114
2013-09-22 15:01:44 +02:00
### 1.0.0 (2013-09-22)
2013-06-20 18:02:35 +02:00
- Add $OBJDIR to the list of configuration that gets printed. Fix issue #77
2013-06-20 18:26:54 +02:00
- Add support for specifying optimization level. Fix issue #81
2013-06-20 21:34:40 +02:00
- Add support for reseting "Micro" Arduino. Fix issue #80 (https://github.com/sej7278)
2013-06-22 08:18:26 +02:00
- Remove "utility" from example makefiles. Fix issue #84
2013-06-23 09:38:06 +02:00
- Auto detect alternate core path from sketchbook folder. Fix issue #86
2013-06-23 09:46:37 +02:00
- Remove redundant checks for ARDUINO_DIR
2013-06-29 18:10:36 +02:00
- Improve avrdude and avrdude.conf path auto detection. Fix issue #48
2013-07-01 18:24:56 +02:00
- Move binary sketch size verification logic inside makefile. Fix issue #54
2013-07-02 05:11:19 +02:00
- Remove dependency on wait-connection-leonardo shell script. Fix issue #95
2013-07-02 23:28:54 +02:00
- Add support for the Digilent chipKIT platform. (https://github.com/peplin)
2013-07-02 23:57:57 +02:00
- Implement ard-parse-boards with shell scripting instead of Perl (https://github.com/peplin)
2013-07-03 00:07:23 +02:00
- Compile with debugging symbols only when DEBUG=1 (https://github.com/peplin)
2013-07-09 18:40:46 +02:00
- Replace Leonardo detection with Caterina detection (https://github.com/sej7278)
2013-08-09 18:06:22 +02:00
- Autodetect baudrate only if either a .ino/.pde is present
2013-08-09 18:27:52 +02:00
- Allow building with Arduino core, without a .ino/.pde file
2013-08-20 08:47:10 +02:00
- Ability to support different Arduino cores (https://github.com/sej7278)
2013-06-20 18:02:35 +02:00
2013-06-20 09:28:57 +02:00
### 0.12.0 (2013-06-20)
2013-06-20 09:21:56 +02:00
- Fix "generated_assembly" target, which got broken earlier. Fix issue #76 (https://github.com/matthijskooijman)
- Deprecate "generated_assembly" target in favour of "generate_assembly". Fix issue #79
2013-06-15 16:18:47 +02:00
### 0.11.0 (2013-06-15)
2013-06-15 12:02:27 +02:00
- Replace hardcoded executables with variable
- Fix whitespace issues
2013-06-15 12:04:10 +02:00
- Add a warning when HEX_MAXIMUM_SIZE is not specified
2013-06-15 15:47:13 +02:00
- Add the ability to configure avrdude options. Fix issue #53
2013-06-15 15:53:26 +02:00
- Handle cases where certain fuse bits are not present. Fix issue #61
2013-06-15 16:00:39 +02:00
- Add support for compiling plain AVR C files. Fix issue #63
2013-06-15 16:12:13 +02:00
- Add an example to show how to compile AVR C files. Fix issue #73
2013-06-15 11:59:49 +02:00
2013-06-14 14:24:07 +02:00
### 0.10.6 (2013-06-14)
2013-06-13 12:30:09 +02:00
- Fix whitespace and add /dev/null redirection (https://github.com/sej7278)
- Change the way AUTO_ARDUINO_VERSION is computed (https://github.com/sej7278)
2013-06-13 14:55:40 +02:00
- Make serial monitor baudrate detection work in Mac as well(https://github.com/sej7278)
2013-06-14 12:39:38 +02:00
- Fix directory creation for library source files (https://github.com/matthijskooijman)
- Rewrite ard-leonardo-reset script in perl (https://github.com/sej7278)
2013-06-13 11:36:58 +02:00
### 0.10.5 (2013-06-11)
2013-05-31 13:35:47 +02:00
- Add USB_VID and USB_PID to CPPFLAGS only if the board is Leonardo.
2013-05-31 15:04:44 +02:00
- Allow adding extra common dependencies (COMMON_DEPS) (https://github.com/gaftech)
2013-05-31 15:43:17 +02:00
- Added ifndef ARDUINO_VAR_PATH for compiling for the attiny (https://github.com/danielesteban)
2013-06-09 09:42:19 +02:00
- Strip extra whitespace from the `BOARD_TAG` variable
2013-06-09 13:48:12 +02:00
- Enhanced support for programming using Arduino as ISP
2013-06-09 13:50:05 +02:00
- Added example to show how to program using Arduino as ISP
2013-06-11 12:07:56 +02:00
- Add support for Leonardo boards. Took code from (https://github.com/guicho271828)
2013-05-31 13:35:47 +02:00
2013-05-31 06:12:44 +02:00
### 0.10.4 (2013-05-31) @matthijskooijman
- Improved BAUD_RATE detection logic
- Added logic to check if there is only .ino or .pde file
- Compile .ino/.pde files directly
- Output configuration only once
- Try to read Version.txt file only if it is present
- Refactored dependency code
2013-05-31 05:59:36 +02:00
### 0.10.3 16.xii 2012 gaftech
- Enabling creation of EEPROM file (.eep)
- EEPROM upload: eeprom and raw_eeprom targets
- Auto EEPROM upload with isp mode: ISP_EEPROM option.
- Allow custom OBJDIR
### 0.10.2 15.xii.2012 Sudar
- Added sketch size verification. (https://github.com/fornellas)
- Show original line number for error messages (https://github.com/WizenedEE)
- Removed -w from CPPFLAGS to show warnings (https://github.com/gaftech)
- Changed shebang to use /usr/bin/env (https://github.com/anm)
- set USB_VID and USB_PID only for leonardo boards(https://github.com/alohr)
- Updated Readme (https://github.com/fr0sty1/)
### 0.10.1 15.xii.2012 Sudar
- Merged all changes from Upstream and the following changes from https://github.com/rpavlik
- Allow passing extra flags
- Make listing files more useful
- Add knowledge of device-specific assembler
- Use variables instead of hardcoded commands
- Make disasm more helpful
- Change .sym output
- Provide symbol_sizes and generated_assembly targets.
- Be able to silence configuration output
- Make everybody depend on the makefile, in case cflags are changed, etc.
- Make the makefile error if the arduino port is not present.
### 0.10 17.ix.12 M J Oldfield
- Added installation notes for Fedora (ex Rickard Lindberg).
2014-01-13 13:14:31 +01:00
- Changed size target so that it looks at the ELF object,
2013-05-31 05:59:36 +02:00
not the hexfile (ex Jared Szechy and Scott Howard).
- Fixed ARDUNIO typo in README.md (ex Kalin Kozhuharov).
- Tweaked OBJDIR handling (ex Matthias Urlichs and Scott Howard).
- Changed the name of the Debian/Ubuntu package (ex
Scott Howard).
- Only set AVRDUDE_CONF if it's not set (ex Tom Hall).
- Added support for USB_PID/VID used by the Leonardo (ex Dan
Villiom Podlaski Christiansen and Marc Plano-Lesay).
### 0.9.3.2 10.ix.2012 Sudar
- Fixed a typo in README. Issue reported at upstream (https://github.com/mjoldfield/Arduino-Makefile/issues/21)
### 0.9.3.1 18.viii.2012 jeffkowalski
- Autodetect ARDUINO_LIBS from includes in LOCAL_SRCS
- Autodetect ARDUINO_SKETCHBOOK from file set by Arduino IDE
- Autodetect ARDMK_DIR based on location of this file
- Added support for utility directory within SYS and USER libraries
2014-01-13 13:14:31 +01:00
### 0.9.3 13.vi.2012
2013-05-31 05:59:36 +02:00
- Auto detect ARDUINO_DIR, Arduino version (https://github.com/rpavlik/)
- Categorize libs into user and system (https://github.com/rpavlik/)
- Dump size at the end of the build (https://github.com/rpavlik/)
- Lots and lots of improvements (https://github.com/rpavlik/)
- Changed bytes option for the head shell command, so that it works in Mac as well
- Auto detect Serial Baud rate from sketch if possible
2014-01-13 13:14:31 +01:00
### 0.9.2 06.vi.2012
2013-05-31 05:59:36 +02:00
- Allow user to choose source files (LOCAL_*_SRCS flags) (https://github.com/Gaftech)
- Modified "make size" behavior: using --mcu option and targeting .elf file instead of .hex file.(https://github.com/Gaftech)
2014-01-13 13:14:31 +01:00
### 0.9.1 06.vi.2012
2013-05-31 05:59:36 +02:00
- Corrected the ubuntu package names
- Prevent the *file-not-found* error if the depends.mk file is not needed
- Delete the build-cli folder as well while doing make clean
- Added support for compiling .pde files in Arduino 1.0 environment
- Replaced = with += in CPPFLAGS assignment so that we can set CPPFLAGS per sketch if needed
- Changed AVRDUDE_CONF so it can be defined in per-project makefile (https://github.com/WizenedEE)
- Cleaner way to delete the build-cli directory when make clean is invoked
- The package name in Debian and Ubuntu is arduino-mk (https://github.com/maqifrnswa)
### 2012-02-12, version 0.8
- Patches for version 1.0 of the Arduino IDE. Older versions might still work, but I’ ve not tested it.
- A change to the build process: rather than link all the system objects directly into the executable, bundle them in a library first. This should make the final executable smaller.
- If TARGET isn’ t explicitly set, default to the current directory name. Thanks to Daniele Vergini for this patch.
- Add support for .c files in system libraries: Dirk-Willem van Gulik and Evan Goldenberg both reported this and provided patches in the same spirit.
- Added a size target as suggested by Alex Satrapa.
### Unreleased, version 0.7
- Added -lm to the linker options, and -F to stty.
### 2011-06-23, version 0.6
- Added ard-parse-boards. Mark Sproul suggested doing something like this ages ago, but I’ ve only recently looked at it in detail.
- Fabien Le Lez reported that one needs to link with -lc to avoid [linker errors ](http://forum.arduino.cc/index.php/topic,40215.0.html ).
### 2011-06-23, version 0.5
- Imported changes from Debian/Ubuntu, which incorporate a patch from Stefan Tomanek so that libraries would be compiled too.
Note: Many other people sent me similar patches, but I didn't get around to using them. In the end, I took the patch from Debian and Ubuntu: there seems merit in not forking the code and using a tested version. So, thanks and apologies to Nick Andrew, Leandro Coletto Biazon, Thibaud Chupin, Craig Hollabaugh, Johannes H. Jensen, Fabien Le Lez, Craig Leres, and Mark Sproul.
### 2010-05-24, version 0.4
Tweaked rules for the reset target on Philip Hands’ advice.
### 2010-05-21, version 0.3
- Tidied up the licensing, making it clear that it’ s released under LGPL 2.1.
- [Philip Hands ](http://hands.com/~phil/ ) sent me some code to reset the Arduino by dropping DTR for 100ms, and I added it.
- Tweaked the Makefile to handle version 0018 of the Arduino software which now includes main.cpp. Accordingly we don’ t need to—and indeed must not—add main.cxx to the .pde sketch file. The paths seem to have changed a bit too.