/make/arduino-mk

To get this branch, use:
bzr branch http://bzr.ed.am/make/arduino-mk

« back to all changes in this revision

Viewing changes to arduino.mk

  • Committer: Tim Marston
  • Date: 2012-03-12 18:05:15 UTC
  • Revision ID: tim@ed.am-20120312180515-33vfg8omarjitsm1
added 'size' goal

Show diffs side-by-side

added added

removed removed

1
1
#_______________________________________________________________________________
2
2
#
3
 
#                         edam's arduino makefile
 
3
#                         edam's Arduino makefile
4
4
#_______________________________________________________________________________
5
 
#                                                                    version 0.3
 
5
#                                                                 version 0.3dev
6
6
#
7
7
# Copyright (C) 2011, 1012 Tim Marston <tim@ed.am>.
8
8
#
44
44
#
45
45
# The Arduino software (version 1.0 or later) is required.  If you are using
46
46
# Debian (or a derivative), type `apt-get install arduino`.  Otherwise, you
47
 
# will have to download the arduino software manually from http://arduino.cc/.
 
47
# will have to download the Arduino software manually from http://arduino.cc/.
48
48
# It is suggested that you install it at ~/opt/arduino if you are unsure.
49
49
#
50
50
# If you downloaded the Arduino software manually and unpacked it somewhere
56
56
#   export ARDUINODIR=~/somewhere/arduino-1.0
57
57
#
58
58
# You will also need to set BOARD to the type of Arduino you're building for.
59
 
# You could set a default in your ~/.profile if you want, but it is suggested
60
 
# that you specify this at build time, especially if you work with different
61
 
# types of Arduino.  For example:
 
59
# Type `make boards` for a list of acceptable values.  You could set a default
 
60
# in your ~/.profile if you want, but it is suggested that you specify this at
 
61
# build time, especially if you work with different types of Arduino.  For
 
62
# example:
62
63
#
63
64
#   $ export BOARD=uno
64
65
#   $ make
91
92
#              is passed to avrdude (to the system default is used).
92
93
#
93
94
# AVRTOOLSPATH A space-separated list of directories to search in order when
94
 
#              lookin for the avr build tools. This defaults to the system PATH
 
95
#              looking for the avr build tools. This defaults to the system PATH
95
96
#              followed by subdirectories in ARDUINODIR if undefined.
96
97
#
97
98
# BOARD        Specify a target board type.  Run `make boards` to see available
130
131
# monitor      Start `screen` on the serial device.  This is meant to be an
131
132
#              equivalent to the Arduino serial monitor.
132
133
#
 
134
# size         Displays size information about the bulit target.
 
135
#
133
136
# <file>       Builds the specified file, either an object file or the target,
134
137
#              from those that that would be built for the project.
135
138
#_______________________________________________________________________________
190
193
AR := $(call findsoftware,avr-ar)
191
194
OBJCOPY := $(call findsoftware,avr-objcopy)
192
195
AVRDUDE := $(call findsoftware,avrdude)
 
196
AVRSIZE := $(call findsoftware,avr-size)
193
197
 
194
198
# files
195
199
TARGET := $(if $(TARGET),$(TARGET),a.out)
266
270
#_______________________________________________________________________________
267
271
#                                                                          RULES
268
272
 
269
 
.PHONY: all target upload clean boards monitor
 
273
.PHONY: all target upload clean boards monitor size
270
274
 
271
275
all: target upload
272
276
 
305
309
                echo; }
306
310
        screen $(SERIALDEV)
307
311
 
 
312
size: $(TARGET).elf
 
313
        echo && $(AVRSIZE) --format=avr --mcu=$(BOARD_BUILD_MCU) $(TARGET).elf
 
314
 
308
315
# building the target
309
316
 
310
317
$(TARGET).hex: $(TARGET).elf