diff --git a/Arduino.mk b/Arduino.mk index 0a0fd75..a403342 100644 --- a/Arduino.mk +++ b/Arduino.mk @@ -241,6 +241,9 @@ arduino_output = # running for the first time (i.e., not after a restart after # regenerating the dependency file), then output the configuration. ifndef ARDUINO_QUIET + ARDUINO_QUIET = 0 +endif +ifeq ($(ARDUINO_QUIET),0) ifeq ($(MAKE_RESTARTS),) ifeq ($(MAKELEVEL),0) arduino_output = $(info $(1)) @@ -922,6 +925,10 @@ ifeq ($(strip $(NO_CORE)),) CORE_CPP_SRCS = $(wildcard $(ARDUINO_CORE_PATH)/*.cpp) CORE_AS_SRCS = $(wildcard $(ARDUINO_CORE_PATH)/*.S) + # ArduinoCore-API + CORE_C_SRCS += $(wildcard $(ARDUINO_CORE_PATH)/api/*.c) + CORE_CPP_SRCS += $(wildcard $(ARDUINO_CORE_PATH)/api/*.cpp) + # USB Core if samd or sam ifeq ($(findstring sam, $(strip $(ARCHITECTURE))), sam) CORE_C_SRCS += $(wildcard $(ARDUINO_CORE_PATH)/avr/*.c) # avr core emulation files @@ -1156,7 +1163,7 @@ endif # Using += instead of =, so that CPPFLAGS can be set per sketch level CPPFLAGS += -$(MCU_FLAG_NAME)=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) $(ARDUINO_ARCH_FLAG) \ - -I$(ARDUINO_CORE_PATH) -I$(ARDUINO_VAR_PATH)/$(VARIANT) \ + -I$(ARDUINO_CORE_PATH) -I$(ARDUINO_CORE_PATH)/api -I$(ARDUINO_VAR_PATH)/$(VARIANT) \ $(SYS_INCLUDES) $(PLATFORM_INCLUDES) $(USER_INCLUDES) -Wall -ffunction-sections \ -fdata-sections @@ -1539,7 +1546,11 @@ endif # -D - Disable auto erase for flash memory # Note: -D is needed for Mega boards. # (See https://github.com/sudar/Arduino-Makefile/issues/114#issuecomment-25011005) -AVRDUDE_ARD_OPTS = -D -c $(AVRDUDE_ARD_PROGRAMMER) -b $(AVRDUDE_ARD_BAUDRATE) -P +ifeq ($(AVRDUDE_AUTOERASE_FLASH), yes) +else + AVRDUDE_ARD_OPTS = -D +endif +AVRDUDE_ARD_OPTS += -c $(AVRDUDE_ARD_PROGRAMMER) -b $(AVRDUDE_ARD_BAUDRATE) -P ifeq ($(CURRENT_OS), WINDOWS) # get_monitor_port checks to see if the monitor port exists, assuming it is # a file. In Windows, avrdude needs the port in the format 'com1' which is diff --git a/HISTORY.md b/HISTORY.md index 04ff1e4..8f228fe 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -11,6 +11,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it - Fix: Quote the prefix tag in the space_pad_to function - Fix: recognize serial monitors with full path in MONITOR_CMD - Fix: Grab USB_PRODUCT and USB_MANUFACTURER from boards.txt for 32u4 boards (issue #594). +- Fix: Show the configuration when ARDUINO_QUIET=0 - Tweak: Move chip erase flag from set_fuses to ispload to prevent sketch being nuked when setting fuses - Tweak: Set ARDMK_VERSION to 1.6 (https://github.com/sej7278) - Tweak: Move non-standard-related items from CxxFLAGS_STD to CxxFLAGS (issue #523) (https://github.com/sej7278) @@ -30,6 +31,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it - New: Add support for BOARD_CLOCK for board.menu.speed and board.menu.clock entries in boards.txt files. (https://github.com/dewhisna) - New: Updated Arch instructions. (https://github.com/Akram-Chehaima) - New: Add support for Robotis OpenCR 1.0 boards. +- New: Build the ArduinoCore API ### 1.6.0 (2017-07-11) - Fix: Allowed for SparkFun's weird usb pid/vid submenu shenanigans (issue #499). (https://github.com/sej7278) diff --git a/Teensy.mk b/Teensy.mk index d4f23bc..35107ac 100644 --- a/Teensy.mk +++ b/Teensy.mk @@ -114,7 +114,7 @@ LDFLAGS += $(call PARSE_BOARD,$(BOARD_TAG),build.flags.cpu) AMCU := $(call PARSE_BOARD,$(BOARD_TAG),build.mcu) LDFLAGS += -Wl,--gc-sections,--relax -LINKER_SCRIPTS = -T${ARDUINO_CORE_PATH}/${AMCU}.ld +LINKER_SCRIPTS ?= -T${ARDUINO_CORE_PATH}/${AMCU}.ld OTHER_LIBS = $(call PARSE_BOARD,$(BOARD_TAG),build.flags.libs) CPUFLAGS = $(call PARSE_BOARD,$(BOARD_TAG),build.flags.cpu) diff --git a/arduino-mk-vars.md b/arduino-mk-vars.md index 3ee05d0..85fbd9f 100644 --- a/arduino-mk-vars.md +++ b/arduino-mk-vars.md @@ -1308,6 +1308,24 @@ AVRDUDE_CONF = /usr/share/arduino/hardware/tools/avrdude.conf ---- +### AVRDUDE_AUTOERASE_FLASH + +**Description:** + +Enable autoerase flash. + +By default disabled. + +**Example:** + +```Makefile +AVRDUDE_AUTOERASE_FLASH = yes +``` + +**Requirement:** *Optional* + +---- + ### AVR_TOOLS_PATH **Description:**