/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

Lines of Context:
2
2
#
3
3
#                         edam's Arduino makefile
4
4
#_______________________________________________________________________________
5
 
#                                                                    version 0.3
 
5
#                                                                 version 0.4dev
6
6
#
7
7
# Copyright (C) 2011, 1012 Tim Marston <tim@ed.am>.
8
8
#
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; /^[^.]\+\.name=/p' $(BOARDS_FILE) | \
302
 
                sed -e 's/\([^.]\+\)\.name=\(.*\)/\1            \2/' \
303
 
                        -e 's/\(.\{12\}\) *\(.*\)/\1 \2/'
 
302
        @sed -nEe '/^#/d; /^[^.]+\.name=/p' $(BOARDS_FILE) | \
 
303
                sed -Ee 's/([^.]+)\.name=(.*)/\1            \2/' \
 
304
                        -e 's/(.{12}) *(.*)/\1 \2/'
304
305
 
305
306
monitor:
306
307
        @test -n "$(SERIALDEV)" || { \
325
326
.INTERMEDIATE: $(TARGET).elf
326
327
 
327
328
$(TARGET).elf: $(ARDUINOLIB) $(OBJECTS)
328
 
        $(CC) $(LINKFLAGS) $(OBJECTS) $(ARDUINOLIB) -o $@
 
329
        $(CC) $(LINKFLAGS) $(OBJECTS) $(ARDUINOLIB) -lm -o $@
329
330
 
330
331
%.o: %.c
331
332
        mkdir -p .dep/$(dir $<)