aboutsummaryrefslogtreecommitdiff
path: root/Arduino.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Arduino.mk')
-rw-r--r--Arduino.mk101
1 files changed, 87 insertions, 14 deletions
diff --git a/Arduino.mk b/Arduino.mk
index 91a637d..14543f5 100644
--- a/Arduino.mk
+++ b/Arduino.mk
@@ -312,6 +312,30 @@ else
endif
########################################################################
+# 1.5.x architecture - avr or sam for arduino vendor
+ifndef ARCHITECTURE
+ ifeq ($(shell expr $(ARDUINO_VERSION) '>' 150), 1)
+ # default to avr for 1.5
+ ARCHITECTURE = avr
+ else
+ # unset for 1.0
+ ARCHITECTURE =
+ endif
+ $(call show_config_variable,ARCHITECTURE,[DEFAULT])
+else
+ $(call show_config_variable,ARCHITECTURE,[USER])
+endif
+
+########################################################################
+# 1.5.x vendor - defaults to arduino
+ifndef VENDOR
+ VENDOR = arduino
+ $(call show_config_variable,VENDOR,[DEFAULT])
+else
+ $(call show_config_variable,VENDOR,[USER])
+endif
+
+########################################################################
# Arduino Sketchbook folder
ifndef ARDUINO_SKETCHBOOK
@@ -437,7 +461,7 @@ endif
ARDUINO_LIB_PATH = $(ARDUINO_DIR)/libraries
$(call show_config_variable,ARDUINO_LIB_PATH,[COMPUTED],(from ARDUINO_DIR))
ifndef ARDUINO_CORE_PATH
- ARDUINO_CORE_PATH = $(ARDUINO_DIR)/hardware/arduino/cores/arduino
+ ARDUINO_CORE_PATH = $(ARDUINO_DIR)/hardware/$(VENDOR)/$(ARCHITECTURE)/cores/arduino
$(call show_config_variable,ARDUINO_CORE_PATH,[DEFAULT])
else
$(call show_config_variable,ARDUINO_CORE_PATH,[USER])
@@ -473,14 +497,14 @@ ifdef ALTERNATE_CORE_PATH
else
ifndef ARDUINO_VAR_PATH
- ARDUINO_VAR_PATH = $(ARDUINO_DIR)/hardware/arduino/variants
+ ARDUINO_VAR_PATH = $(ARDUINO_DIR)/hardware/$(VENDOR)/$(ARCHITECTURE)/variants
$(call show_config_variable,ARDUINO_VAR_PATH,[COMPUTED],(from ARDUINO_DIR))
else
$(call show_config_variable,ARDUINO_VAR_PATH,[USER])
endif
ifndef BOARDS_TXT
- BOARDS_TXT = $(ARDUINO_DIR)/hardware/arduino/boards.txt
+ BOARDS_TXT = $(ARDUINO_DIR)/hardware/$(VENDOR)/$(ARCHITECTURE)/boards.txt
$(call show_config_variable,BOARDS_TXT,[COMPUTED],(from ARDUINO_DIR))
else
$(call show_config_variable,BOARDS_TXT,[USER])
@@ -508,6 +532,11 @@ endif
########################################################################
# boards.txt parsing
+ifdef BOARD_SUB
+ BOARD_SUB := $(strip $(BOARD_SUB))
+ $(call show_config_variable,BOARD_SUB,[USER])
+endif
+
ifndef BOARD_TAG
BOARD_TAG = uno
$(call show_config_variable,BOARD_TAG,[DEFAULT])
@@ -533,15 +562,31 @@ ifeq ($(strip $(NO_CORE)),)
endif
# see if we are a caterina device like leonardo or micro
- CATERINA = $(findstring caterina,$(call PARSE_BOARD,$(BOARD_TAG),bootloader.path))
+ CATERINA := $(findstring caterina,$(call PARSE_BOARD,$(BOARD_TAG),bootloader.path))
+ ifndef CATERINA
+ # bootloader.path is deprecated in 1.5, its now part of bootloader.file
+ CATERINA := $(findstring caterina,$(call PARSE_BOARD,$(BOARD_TAG),bootloader.file))
+ endif
+ ifndef CATERINA
+ # might be a submenu
+ CATERINA := $(findstring caterina,$(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).bootloader.file))
+ endif
# processor stuff
ifndef MCU
- MCU = $(call PARSE_BOARD,$(BOARD_TAG),build.mcu)
+ MCU := $(call PARSE_BOARD,$(BOARD_TAG),build.mcu)
+ ifndef MCU
+ # might be a submenu
+ MCU := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).build.mcu)
+ endif
endif
ifndef F_CPU
- F_CPU = $(call PARSE_BOARD,$(BOARD_TAG),build.f_cpu)
+ F_CPU := $(call PARSE_BOARD,$(BOARD_TAG),build.f_cpu)
+ ifndef F_CPU
+ # might be a submenu
+ F_CPU := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).build.f_cpu)
+ endif
endif
ifneq ($(CATERINA),)
@@ -557,11 +602,19 @@ ifeq ($(strip $(NO_CORE)),)
# normal programming info
ifndef AVRDUDE_ARD_PROGRAMMER
- AVRDUDE_ARD_PROGRAMMER = $(call PARSE_BOARD,$(BOARD_TAG),upload.protocol)
+ AVRDUDE_ARD_PROGRAMMER := $(call PARSE_BOARD,$(BOARD_TAG),upload.protocol)
+ ifndef AVRDUDE_ARD_PROGRAMMER
+ # might be a submenu
+ AVRDUDE_ARD_PROGRAMMER := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).upload.protocol)
+ endif
endif
ifndef AVRDUDE_ARD_BAUDRATE
- AVRDUDE_ARD_BAUDRATE = $(call PARSE_BOARD,$(BOARD_TAG),upload.speed)
+ AVRDUDE_ARD_BAUDRATE := $(call PARSE_BOARD,$(BOARD_TAG),upload.speed)
+ ifndef AVRDUDE_ARD_BAUDRATE
+ # might be a submenu
+ AVRDUDE_ARD_BAUDRATE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).upload.speed)
+ endif
endif
# fuses if you're using e.g. ISP
@@ -570,15 +623,27 @@ ifeq ($(strip $(NO_CORE)),)
endif
ifndef ISP_HIGH_FUSE
- ISP_HIGH_FUSE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.high_fuses)
+ ISP_HIGH_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),bootloader.high_fuses)
+ ifndef ISP_HIGH_FUSE
+ # might be a submenu
+ ISP_HIGH_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).bootloader.high_fuses)
+ endif
endif
ifndef ISP_LOW_FUSE
- ISP_LOW_FUSE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.low_fuses)
+ ISP_LOW_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),bootloader.low_fuses)
+ ifndef ISP_LOW_FUSE
+ # might be a submenu
+ ISP_LOW_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).bootloader.low_fuses)
+ endif
endif
ifndef ISP_EXT_FUSE
- ISP_EXT_FUSE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.extended_fuses)
+ ISP_EXT_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),bootloader.extended_fuses)
+ ifndef ISP_EXT_FUSE
+ # might be a submenu
+ ISP_EXT_FUSE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).bootloader.extended_fuses)
+ endif
endif
ifndef BOOTLOADER_PATH
@@ -586,7 +651,11 @@ ifeq ($(strip $(NO_CORE)),)
endif
ifndef BOOTLOADER_FILE
- BOOTLOADER_FILE = $(call PARSE_BOARD,$(BOARD_TAG),bootloader.file)
+ BOOTLOADER_FILE := $(call PARSE_BOARD,$(BOARD_TAG),bootloader.file)
+ ifndef BOOTLOADER_FILE
+ # might be a submenu
+ BOOTLOADER_FILE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).bootloader.file)
+ endif
endif
ifndef ISP_LOCK_FUSE_POST
@@ -594,7 +663,11 @@ ifeq ($(strip $(NO_CORE)),)
endif
ifndef HEX_MAXIMUM_SIZE
- HEX_MAXIMUM_SIZE = $(call PARSE_BOARD,$(BOARD_TAG),upload.maximum_size)
+ HEX_MAXIMUM_SIZE := $(call PARSE_BOARD,$(BOARD_TAG),upload.maximum_size)
+ ifndef HEX_MAXIMUM_SIZE
+ # might be a submenu
+ HEX_MAXIMUM_SIZE := $(call PARSE_BOARD,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).upload.maximum_size)
+ endif
endif
endif
@@ -924,7 +997,7 @@ endif
# either calculate parent dir from arduino dir, or user-defined path
ifndef BOOTLOADER_PARENT
- BOOTLOADER_PARENT = $(ARDUINO_DIR)/hardware/arduino/bootloaders
+ BOOTLOADER_PARENT = $(ARDUINO_DIR)/hardware/$(VENDOR)/$(ARCHITECTURE)/bootloaders
$(call show_config_variable,BOOTLOADER_PARENT,[COMPUTED],(from ARDUINO_DIR))
else
$(call show_config_variable,BOOTLOADER_PARENT,[USER])