510890b207
.. and enable it on atmel-samd and raspberrypi. On trinket_m0 this saves 96 net bytes of flash. There are 216 bytes actually saved by reducing the flash storage size of the property descriptors, but added code in several paths takes back over half of the 'raw savings'. By organizing the "get-only" and "get-set" (but no delete) properties each in a different section, we can represent then more efficiently. Testing performed: that a get-only property can still be gotten but can't be set or deleted; that a get-set property can sill be gotten or set but can't be deleted. Tested on pygamer. Because this requires linker file support, I only enabled it on two of the ports.
129 lines
3.4 KiB
Makefile
129 lines
3.4 KiB
Makefile
# All linking can be done with this common templated linker script, which has
|
|
# parameters that vary based on chip and/or board.
|
|
LD_TEMPLATE_FILE = boards/common.template.ld
|
|
|
|
INTERNAL_LIBM = 1
|
|
|
|
# Number of USB endpoint pairs.
|
|
USB_NUM_ENDPOINT_PAIRS = 8
|
|
|
|
CIRCUITPY_ROTARYIO_SOFTENCODER = 1
|
|
CIRCUITPY_OPTIMIZE_PROPERTY_FLASH_SIZE ?= 1
|
|
|
|
######################################################################
|
|
# Put samd21-only choices here.
|
|
|
|
ifeq ($(CHIP_FAMILY),samd21)
|
|
|
|
# The ?='s allow overriding in mpconfigboard.mk.
|
|
|
|
# Some of these are on by default with CIRCUITPY_FULL_BUILD, but don't
|
|
# fit in 256kB of flash
|
|
|
|
CIRCUITPY_AESIO ?= 0
|
|
CIRCUITPY_ATEXIT ?= 0
|
|
CIRCUITPY_AUDIOMIXER ?= 0
|
|
CIRCUITPY_BINASCII ?= 0
|
|
CIRCUITPY_BITBANGIO ?= 0
|
|
CIRCUITPY_BITMAPTOOLS ?= 0
|
|
CIRCUITPY_BUSDEVICE ?= 0
|
|
CIRCUITPY_AUDIOMP3 ?= 0
|
|
CIRCUITPY_BLEIO_HCI = 0
|
|
CIRCUITPY_BUILTINS_POW3 ?= 0
|
|
CIRCUITPY_COMPUTED_GOTO_SAVE_SPACE ?= 1
|
|
CIRCUITPY_COUNTIO ?= 0
|
|
# Not enough RAM for framebuffers
|
|
CIRCUITPY_FRAMEBUFFERIO ?= 0
|
|
CIRCUITPY_FREQUENCYIO ?= 0
|
|
CIRCUITPY_GETPASS ?= 0
|
|
CIRCUITPY_GIFIO ?= 0
|
|
CIRCUITPY_I2CPERIPHERAL ?= 0
|
|
CIRCUITPY_JSON ?= 0
|
|
CIRCUITPY_KEYPAD ?= 0
|
|
CIRCUITPY_MSGPACK ?= 0
|
|
CIRCUITPY_RE ?= 0
|
|
CIRCUITPY_SDCARDIO ?= 0
|
|
CIRCUITPY_SYNTHIO ?= 0
|
|
CIRCUITPY_TOUCHIO_USE_NATIVE ?= 1
|
|
CIRCUITPY_ULAB = 0
|
|
CIRCUITPY_VECTORIO = 0
|
|
CIRCUITPY_ZLIB = 0
|
|
|
|
# TODO: In CircuitPython 8.0, turn this back on, after `busio.OneWire` is removed.
|
|
# We'd like a smoother transition, but we can't afford the space to have both
|
|
# `busio.OneWire` and `onewireio.OneWire` present on these tiny builds.
|
|
|
|
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
|
|
CIRCUITPY_ONEWIREIO ?= 0
|
|
endif
|
|
|
|
MICROPY_PY_ASYNC_AWAIT = 0
|
|
|
|
# We don't have room for the fonts for terminalio for ja and ko
|
|
# so turn off terminalio, and if it's off and displayio is on,
|
|
# force a clean build.
|
|
# Note that we cannot test $(CIRCUITPY_DISPLAYIO) directly with an
|
|
# ifeq, because it's not set yet.
|
|
ifeq ($(TRANSLATION), ja)
|
|
CIRCUITPY_TERMINALIO = 0
|
|
RELEASE_NEEDS_CLEAN_BUILD = $(CIRCUITPY_DISPLAYIO)
|
|
endif
|
|
|
|
ifeq ($(TRANSLATION), ko)
|
|
CIRCUITPY_TERMINALIO = 0
|
|
RELEASE_NEEDS_CLEAN_BUILD = $(CIRCUITPY_DISPLAYIO)
|
|
endif
|
|
|
|
SUPEROPT_GC = 0
|
|
SUPEROPT_VM = 0
|
|
|
|
ifeq ($(CIRCUITPY_FULL_BUILD),0)
|
|
# On the smallest boards, this saves about 180 bytes. On other boards, it may -increase- space used.
|
|
CFLAGS_BOARD = -fweb -frename-registers
|
|
endif
|
|
|
|
endif # samd21
|
|
######################################################################
|
|
|
|
######################################################################
|
|
# Put samd51-only choices here.
|
|
|
|
ifeq ($(CHIP_FAMILY),samd51)
|
|
|
|
# No native touchio on SAMD51.
|
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
|
|
|
# The ?='s allow overriding in mpconfigboard.mk.
|
|
|
|
|
|
CIRCUITPY_ALARM ?= 1
|
|
CIRCUITPY_PS2IO ?= 1
|
|
CIRCUITPY_SAMD ?= 1
|
|
CIRCUITPY_FLOPPYIO ?= $(CIRCUITPY_FULL_BUILD)
|
|
CIRCUITPY_FRAMEBUFFERIO ?= $(CIRCUITPY_FULL_BUILD)
|
|
CIRCUITPY_RGBMATRIX ?= $(CIRCUITPY_FRAMEBUFFERIO)
|
|
CIRCUITPY_WATCHDOG ?= 1
|
|
|
|
endif # samd51
|
|
######################################################################
|
|
|
|
######################################################################
|
|
# Put same51-only choices here.
|
|
|
|
ifeq ($(CHIP_FAMILY),same51)
|
|
|
|
# No native touchio on SAME51.
|
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
|
|
|
# The ?='s allow overriding in mpconfigboard.mk.
|
|
|
|
CIRCUITPY_ALARM ?= 1
|
|
CIRCUITPY_PS2IO ?= 1
|
|
CIRCUITPY_SAMD ?= 1
|
|
CIRCUITPY_FLOPPYIO ?= $(CIRCUITPY_FULL_BUILD)
|
|
CIRCUITPY_FRAMEBUFFERIO ?= $(CIRCUITPY_FULL_BUILD)
|
|
CIRCUITPY_RGBMATRIX ?= $(CIRCUITPY_FRAMEBUFFERIO)
|
|
|
|
endif # same51
|
|
######################################################################
|