aboutsummaryrefslogtreecommitdiff
path: root/Teensy.mk
diff options
context:
space:
mode:
authorstepcut <jeremy@n-heptane.com>2014-10-13 19:48:07 -0500
committerstepcut <jeremy@n-heptane.com>2014-10-13 19:48:07 -0500
commite42d91ed4f0184347b03954b7ff8290b1bada9de (patch)
treed631944819116ac0f90de95ed90bab0a8df107b7 /Teensy.mk
parent38f8ba80683821e90d5b51c8e584bcdbccb10aa7 (diff)
support for Teensy 3.x via Teensy.mk
Diffstat (limited to 'Teensy.mk')
-rw-r--r--Teensy.mk136
1 files changed, 136 insertions, 0 deletions
diff --git a/Teensy.mk b/Teensy.mk
new file mode 100644
index 0000000..9c3c41a
--- /dev/null
+++ b/Teensy.mk
@@ -0,0 +1,136 @@
+########################################################################
+#
+# To use you will need to uncomment these lines in,
+# $(ARDUINO_DIR)/hardware/$(VENDOR)/boards.txt
+#
+# teensy31.build.option6=-DUSB_SERIAL
+# teensy31.build.option7=-DLAYOUT_US_ENGLISH
+#
+
+VENDOR = teensy
+ARDUINO_CORE_PATH = $(ARDUINO_DIR)/hardware/teensy/cores/teensy3
+BOARDS_TXT = $(ARDUINO_DIR)/hardware/$(VENDOR)/boards.txt
+
+ifndef F_CPU
+ F_CPU=72000000
+endif
+
+ifndef PARSE_TEENSY
+ # result = $(call READ_BOARD_TXT, 'boardname', 'parameter')
+ PARSE_TEENSY = $(shell grep -v "^\#" "$(BOARDS_TXT)" | grep $(1).$(2) | cut -d = -f 2,3 )
+endif
+
+ARCHITECTURE = $(call PARSE_TEENSY,$(BOARD_TAG),build.architecture)
+AVR_TOOLS_DIR = $(call dir_if_exists,$(ARDUINO_DIR)/hardware/tools/$(ARCHITECTURE))
+
+########################################################################
+# command names
+
+ifndef CC_NAME
+ CC_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.gcc)
+ ifndef CC_NAME
+ CC_NAME := avr-gcc
+ else
+ $(call show_config_variable,CC_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef CXX_NAME
+ CXX_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.g++)
+ ifndef CXX_NAME
+ CXX_NAME := avr-g++
+ else
+ $(call show_config_variable,CXX_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef OBJCOPY_NAME
+ OBJCOPY_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.objcopy)
+ ifndef OBJCOPY_NAME
+ OBJCOPY_NAME := avr-objcopy
+ else
+ $(call show_config_variable,OBJCOPY_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef OBJDUMP_NAME
+ OBJDUMP_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.objdump)
+ ifndef OBJDUMP_NAME
+ OBJDUMP_NAME := avr-objdump
+ else
+ $(call show_config_variable,OBJDUMP_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef AR_NAME
+ AR_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.ar)
+ ifndef AR_NAME
+ AR_NAME := avr-ar
+ else
+ $(call show_config_variable,AR_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef SIZE_NAME
+ SIZE_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.size)
+ ifndef SIZE_NAME
+ SIZE_NAME := avr-size
+ else
+ $(call show_config_variable,SIZE_NAME,[COMPUTED])
+ endif
+endif
+
+ifndef NM_NAME
+ NM_NAME := $(call PARSE_TEENSY,$(BOARD_TAG),build.command.nm)
+ ifndef NM_NAME
+ NM_NAME := avr-nm
+ else
+ $(call show_config_variable,NM_NAME,[COMPUTED])
+ endif
+endif
+
+# processor stuff
+ifndef MCU
+ MCU := $(call PARSE_TEENSY,$(BOARD_TAG),build.cpu)
+ ifndef MCU
+ MCU := $(call PARSE_TEENSY,$(BOARD_TAG),build.mcu)
+ ifndef MCU
+ # might be a submenu
+ MCU := $(call PARSE_TEENSY,$(BOARD_TAG),menu.cpu.$(BOARD_SUB).build.mcu)
+ endif
+ else
+ MCU_FLAG_NAME=mcpu
+ endif
+endif
+
+########################################################################
+# FLAGS
+
+CPPFLAGS += -DLAYOUT_US_ENGLISH -DUSB_SERIAL
+CPPFLAGS += $(call PARSE_TEENSY,$(BOARD_TAG),build.option)
+
+CXXFLAGS += $(call PARSE_TEENSY,$(BOARD_TAG),build.cppoption)
+ifeq ("$(call PARSE_TEENSY,$(BOARD_TAG),build.gnu0x)","true")
+ CXXFLAGS_STD += -std=gnu++0x
+endif
+
+ifeq ("$(call PARSE_TEENSY,$(BOARD_TAG),build.elide_constructors)", "true")
+ CXXFLAGS += -felide-constructors
+endif
+
+LDFLAGS += $(call PARSE_TEENSY,$(BOARD_TAG),build.linkoption) $(call PARSE_TEENSY,$(BOARD_TAG),build.additionalobject)
+
+ifneq ("$(call PARSE_TEENSY,$(BOARD_TAG),build.linkscript)",)
+ LDFLAGS += -T$(ARDUINO_CORE_PATH)/$(call PARSE_TEENSY,$(BOARD_TAG),build.linkscript)
+endif
+
+MONITOR_PORT = /bin/true
+AVRDUDE = true
+
+RESET_CMD = nohup $(ARDUINO_DIR)/hardware/tools/teensy_post_compile -board=$(BOARD_TAG) -tools=$(abspath $(ARDUINO_DIR)/hardware/tools) -path=$(abspath $(OBJDIR)) -file=$(TARGET) > /dev/null ; $(ARDUINO_DIR)/hardware/tools/teensy_reboot ; true
+
+ifndef ARDMK_DIR
+ ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
+endif
+
+include $(ARDMK_DIR)/Arduino.mk