]> git.donarmstrong.com Git - qmk_firmware.git/blob - protocol/lufa/LUFA-120730/LUFA/Build/lufa_avrdude.mk
Change TOP_DIR to TMK_DIR in makefiles
[qmk_firmware.git] / protocol / lufa / LUFA-120730 / LUFA / Build / lufa_avrdude.mk
1 #\r
2 #             LUFA Library\r
3 #     Copyright (C) Dean Camera, 2012.\r
4 #\r
5 #  dean [at] fourwalledcubicle [dot] com\r
6 #           www.lufa-lib.org\r
7 #\r
8 \r
9 LUFA_BUILD_MODULES         += AVRDUDE\r
10 LUFA_BUILD_TARGETS         += avrdude avrdude-ee\r
11 LUFA_BUILD_MANDATORY_VARS  += MCU TARGET\r
12 LUFA_BUILD_OPTIONAL_VARS   += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS\r
13 LUFA_BUILD_PROVIDED_VARS   += \r
14 LUFA_BUILD_PROVIDED_MACROS += \r
15 \r
16 # -----------------------------------------------------------------------------\r
17 #             LUFA AVRDUDE Programmer Buildsystem Makefile Module.\r
18 # -----------------------------------------------------------------------------\r
19 # DESCRIPTION:\r
20 #   Provides a set of targets to re-program a device using the open source\r
21 #   avr-dude utility.\r
22 # -----------------------------------------------------------------------------\r
23 # TARGETS:\r
24 #\r
25 #    avrdude                   - Program target FLASH with application using\r
26 #                                avrdude\r
27 #    avrdude-ee                - Program target EEPROM with application data\r
28 #                                using avrdude\r
29 #\r
30 # MANDATORY PARAMETERS:\r
31 #\r
32 #    MCU                       - Microcontroller device model name\r
33 #    TARGET                    - Application name\r
34 #\r
35 # OPTIONAL PARAMETERS:\r
36 #\r
37 #    AVRDUDE_PROGRAMMER        - Name of programming hardware to use\r
38 #    AVRDUDE_PORT              - Name of communication port to use\r
39 #    AVRDUDE_FLAGS             - Flags to pass to avr-dude\r
40 #\r
41 # PROVIDED VARIABLES:\r
42 #\r
43 #    (None)\r
44 #\r
45 # PROVIDED MACROS:\r
46 #\r
47 #    (None)\r
48 #\r
49 # -----------------------------------------------------------------------------\r
50 \r
51 SHELL = /bin/sh\r
52 \r
53 ERROR_IF_UNSET   ?= $(if $(filter undefined, $(origin $(strip $(1)))), $(error Makefile $(strip $(1)) value not set))\r
54 ERROR_IF_EMPTY   ?= $(if $(strip $($(strip $(1)))), , $(error Makefile $(strip $(1)) option cannot be blank))\r
55 ERROR_IF_NONBOOL ?= $(if $(filter Y N, $($(strip $(1)))), , $(error Makefile $(strip $(1)) option must be Y or N))\r
56 \r
57 # Default values of optionally user-supplied variables\r
58 AVRDUDE_PROGRAMMER ?= jtagicemkii\r
59 AVRDUDE_PORT       ?= usb\r
60 AVRDUDE_FLAGS      ?= \r
61 \r
62 # Sanity check user supplied values\r
63 $(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR)))\r
64 $(call ERROR_IF_EMPTY, MCU)\r
65 $(call ERROR_IF_EMPTY, TARGET)\r
66 $(call ERROR_IF_EMPTY, AVRDUDE_PROGRAMMER)\r
67 $(call ERROR_IF_EMPTY, AVRDUDE_PORT)\r
68 \r
69 # Output Messages\r
70 MSG_AVRDUDE_CMD    := ' [AVRDUDE] :'\r
71 \r
72 # Construct base avrdude command flags\r
73 BASE_AVRDUDE_FLAGS := -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)\r
74 \r
75 avrdude: $(TARGET).hex $(MAKEFILE_LIST)\r
76         @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH with settings \"$(AVRDUDE_FLASH_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"\r
77         avrdude $(BASE_AVRDUDE_FLAGS) -U flash:w:$< $(AVRDUDE_FLAGS)\r
78 \r
79 avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST)\r
80         @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" EEPROM with settings \"$(AVRDUDE_EEP_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"\r
81         avrdude $(BASE_AVRDUDE_FLAGS) -U eeprom:w:$< $(AVRDUDE_FLAGS)\r
82 \r
83 # Phony build targets for this module\r
84 .PHONY: avrdude avrdude-ee\r