/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: edam
  • Date: 2012-10-22 16:47:36 UTC
  • Revision ID: tim@ed.am-20121022164736-86ja3l4r7tl9jr4y
use a more sensible command-line oprdering when linking

Show diffs side-by-side

added added

removed removed

2
2
#
3
3
#                         edam's Arduino makefile
4
4
#_______________________________________________________________________________
5
 
#                                                                 version 0.3dev
 
5
#                                                                 version 0.4dev
6
6
#
7
7
# Copyright (C) 2011, 1012 Tim Marston <tim@ed.am>.
8
8
#
180
180
SERIALDEVGUESS := 0
181
181
ifeq "$(SERIALDEV)" ""
182
182
SERIALDEV := $(firstword $(wildcard \
183
 
        /dev/ttyACM? /dev/ttyUSB? /dev/tty.usbmodem*))
 
183
        /dev/ttyACM? /dev/ttyUSB? /dev/tty.usbserial* /dev/tty.usbmodem*))
184
184
SERIALDEVGUESS := 1
185
185
endif
186
186
 
249
249
CPPFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
250
250
CPPFLAGS += -mmcu=$(BOARD_BUILD_MCU)
251
251
CPPFLAGS += -DF_CPU=$(BOARD_BUILD_FCPU) -DARDUINO=$(ARDUINOCONST)
252
 
CPPFLAGS += -I. -Iutil -Iutility -I$(ARDUINOCOREDIR)
253
 
CPPFLAGS += -I$(ARDUINODIR)/hardware/arduino/variants/$(BOARD_BUILD_VARIANT)/
254
 
CPPFLAGS += $(addprefix -I$(ARDUINODIR)/libraries/, $(LIBRARIES))
255
 
CPPFLAGS += $(patsubst %, -I$(ARDUINODIR)/libraries/%/utility, $(LIBRARIES))
 
252
CPPFLAGS += -I. -Iutil -Iutility -I $(ARDUINOCOREDIR)
 
253
CPPFLAGS += -I $(ARDUINODIR)/hardware/arduino/variants/$(BOARD_BUILD_VARIANT)/
 
254
CPPFLAGS += $(addprefix -I $(ARDUINODIR)/libraries/, $(LIBRARIES))
 
255
CPPFLAGS += $(patsubst %, -I $(ARDUINODIR)/libraries/%/utility, $(LIBRARIES))
256
256
CPPDEPFLAGS = -MMD -MP -MF .dep/$<.dep
257
257
CPPINOFLAGS := -x c++ -include $(ARDUINOCOREDIR)/Arduino.h
258
258
AVRDUDEFLAGS := $(addprefix -C , $(AVRDUDECONF)) -DV
260
260
AVRDUDEFLAGS += -c $(BOARD_UPLOAD_PROTOCOL) -b $(BOARD_UPLOAD_SPEED)
261
261
LINKFLAGS := -Os -Wl,--gc-sections -mmcu=$(BOARD_BUILD_MCU)
262
262
 
263
 
# figure out which arg to use with stty
264
 
STTYFARG := $(shell stty --help > /dev/null 2>&1 && echo -F || echo -f)
 
263
# figure out which arg to use with stty (for OS X, GNU and busybox stty)
 
264
STTYFARG := $(shell stty --help 2>&1 | \
 
265
        grep -q 'illegal option' && echo -f || echo -F)
265
266
 
266
267
# include dependencies
267
268
ifneq "$(MAKECMDGOALS)" "clean"
280
281
 
281
282
target: $(TARGET).hex
282
283
 
283
 
upload:
 
284
upload: target
284
285
        @echo "\nUploading to board..."
285
286
        @test -n "$(SERIALDEV)" || { \
286
287
                echo "error: SERIALDEV could not be determined automatically." >&2; \
298
299
 
299
300
boards:
300
301
        @echo Available values for BOARD:
301
 
        @sed -ne '/^#/d;s/^\(.*\).name=\(.*\)/\1            \2/;T' \
302
 
                -e 's/\(.\{12\}\) *\(.*\)/\1 \2/;p' $(BOARDS_FILE)
 
302
        @sed -nEe '/^#/d; /^[^.]+\.name=/p' $(BOARDS_FILE) | \
 
303
                sed -Ee 's/([^.]+)\.name=(.*)/\1            \2/' \
 
304
                        -e 's/(.{12}) *(.*)/\1 \2/'
303
305
 
304
306
monitor:
305
307
        @test -n "$(SERIALDEV)" || { \
324
326
.INTERMEDIATE: $(TARGET).elf
325
327
 
326
328
$(TARGET).elf: $(ARDUINOLIB) $(OBJECTS)
327
 
        $(CC) $(LINKFLAGS) $(OBJECTS) $(ARDUINOLIB) -o $@
 
329
        $(CC) $(LINKFLAGS) $(OBJECTS) $(ARDUINOLIB) -lm -o $@
328
330
 
329
331
%.o: %.c
330
332
        mkdir -p .dep/$(dir $<)