circuitpython/py/circuitpy_mpconfig.mk

324 lines
10 KiB
Makefile
Raw Normal View History

#
# This file is part of the MicroPython project, http://micropython.org/
#
# The MIT License (MIT)
#
2020-06-03 18:40:05 -04:00
# SPDX-FileCopyrightText: Copyright (c) 2019 Dan Halbert for Adafruit Industries
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# Boards default to all modules enabled (with exceptions)
# Manually disable by overriding in #mpconfigboard.mk
2019-02-15 00:28:20 -05:00
2020-04-23 13:33:41 -04:00
# Smaller builds can be forced for resource constrained chips (typically SAMD21s
2020-04-29 23:31:34 -04:00
# without external flash) by setting CIRCUITPY_FULL_BUILD=0. Avoid using this
2020-04-23 13:33:41 -04:00
# for merely incomplete ports, as it changes settings in other files.
2020-04-29 23:31:34 -04:00
CIRCUITPY_FULL_BUILD ?= 1
2019-12-05 22:45:53 -05:00
CFLAGS += -DCIRCUITPY_FULL_BUILD=$(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
# async/await language keyword support
MICROPY_PY_ASYNC_AWAIT ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DMICROPY_PY_ASYNC_AWAIT=$(MICROPY_PY_ASYNC_AWAIT)
2020-04-23 13:33:41 -04:00
CIRCUITPY_AESIO ?= 0
CFLAGS += -DCIRCUITPY_AESIO=$(CIRCUITPY_AESIO)
2020-11-18 20:44:34 -05:00
# TODO: CIRCUITPY_ALARM will gradually be added to
# as many ports as possible
# so make this 1 or CIRCUITPY_FULL_BUILD eventually
2020-09-24 01:29:04 -04:00
CIRCUITPY_ALARM ?= 0
CFLAGS += -DCIRCUITPY_ALARM=$(CIRCUITPY_ALARM)
2020-04-29 23:31:34 -04:00
CIRCUITPY_ANALOGIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_ANALOGIO=$(CIRCUITPY_ANALOGIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_AUDIOBUSIO ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_AUDIOBUSIO=$(CIRCUITPY_AUDIOBUSIO)
# Some boards have PDMIn but do not implement I2SOut.
CIRCUITPY_AUDIOBUSIO_I2SOUT ?= $(CIRCUITPY_AUDIOBUSIO)
CFLAGS += -DCIRCUITPY_AUDIOBUSIO_I2SOUT=$(CIRCUITPY_AUDIOBUSIO_I2SOUT)
2020-10-28 14:27:48 -04:00
# Likewise, some boards have I2SOut but do not implement PDMIn.
CIRCUITPY_AUDIOBUSIO_PDMIN ?= $(CIRCUITPY_AUDIOBUSIO)
CFLAGS += -DCIRCUITPY_AUDIOBUSIO_PDMIN=$(CIRCUITPY_AUDIOBUSIO_PDMIN)
2020-04-29 23:31:34 -04:00
CIRCUITPY_AUDIOIO ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_AUDIOIO=$(CIRCUITPY_AUDIOIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_AUDIOPWMIO ?= 0
CFLAGS += -DCIRCUITPY_AUDIOPWMIO=$(CIRCUITPY_AUDIOPWMIO)
ifndef CIRCUITPY_AUDIOCORE
ifeq ($(CIRCUITPY_AUDIOPWMIO),1)
CIRCUITPY_AUDIOCORE = $(CIRCUITPY_AUDIOPWMIO)
else
CIRCUITPY_AUDIOCORE = $(CIRCUITPY_AUDIOIO)
endif
endif
CFLAGS += -DCIRCUITPY_AUDIOCORE=$(CIRCUITPY_AUDIOCORE)
2020-04-29 23:31:34 -04:00
CIRCUITPY_AUDIOMIXER ?= $(CIRCUITPY_AUDIOIO)
CFLAGS += -DCIRCUITPY_AUDIOMIXER=$(CIRCUITPY_AUDIOMIXER)
ifndef CIRCUITPY_AUDIOMP3
ifeq ($(CIRCUITPY_FULL_BUILD),1)
CIRCUITPY_AUDIOMP3 = $(CIRCUITPY_AUDIOCORE)
else
CIRCUITPY_AUDIOMP3 = 0
endif
endif
CFLAGS += -DCIRCUITPY_AUDIOMP3=$(CIRCUITPY_AUDIOMP3)
2020-04-29 23:31:34 -04:00
CIRCUITPY_BITBANGIO ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_BITBANGIO=$(CIRCUITPY_BITBANGIO)
# _bleio can be supported on most any board via HCI
CIRCUITPY_BLEIO_HCI ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_BLEIO_HCI=$(CIRCUITPY_BLEIO_HCI)
# Explicitly enabled for boards that support _bleio.
CIRCUITPY_BLEIO ?= $(CIRCUITPY_BLEIO_HCI)
CFLAGS += -DCIRCUITPY_BLEIO=$(CIRCUITPY_BLEIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_BOARD ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_BOARD=$(CIRCUITPY_BOARD)
CIRCUITPY_BUSDEVICE = 0
2020-10-24 21:48:35 -04:00
CFLAGS += -DCIRCUITPY_BUSDEVICE=$(CIRCUITPY_BUSDEVICE)
CIRCUITPY_BUILTINS_POW3 ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_BUILTINS_POW3=$(CIRCUITPY_BUILTINS_POW3)
2020-04-29 23:31:34 -04:00
CIRCUITPY_BUSIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_BUSIO=$(CIRCUITPY_BUSIO)
CIRCUITPY_CAMERA ?= 0
CFLAGS += -DCIRCUITPY_CAMERA=$(CIRCUITPY_CAMERA)
CIRCUITPY_CANIO ?= 0
CFLAGS += -DCIRCUITPY_CANIO=$(CIRCUITPY_CANIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_DIGITALIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_DIGITALIO=$(CIRCUITPY_DIGITALIO)
2020-05-12 22:00:51 -04:00
CIRCUITPY_COUNTIO ?= $(CIRCUITPY_FULL_BUILD)
2020-05-05 01:23:38 -04:00
CFLAGS += -DCIRCUITPY_COUNTIO=$(CIRCUITPY_COUNTIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_DISPLAYIO ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_DISPLAYIO=$(CIRCUITPY_DISPLAYIO)
2020-09-03 19:32:12 -04:00
# CIRCUITPY_ESPIDF is handled in the esp32s2 tree.
2020-08-14 18:56:01 -04:00
# Only for ESP32S chips.
# Assume not a ESP build.
CIRCUITPY_ESPIDF ?= 0
CFLAGS += -DCIRCUITPY_ESPIDF=$(CIRCUITPY_ESPIDF)
ifeq ($(CIRCUITPY_DISPLAYIO),1)
CIRCUITPY_FRAMEBUFFERIO ?= $(CIRCUITPY_FULL_BUILD)
else
CIRCUITPY_FRAMEBUFFERIO ?= 0
endif
2020-03-10 14:12:01 -04:00
CFLAGS += -DCIRCUITPY_FRAMEBUFFERIO=$(CIRCUITPY_FRAMEBUFFERIO)
CIRCUITPY_VECTORIO ?= $(CIRCUITPY_DISPLAYIO)
CFLAGS += -DCIRCUITPY_VECTORIO=$(CIRCUITPY_VECTORIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_FREQUENCYIO ?= $(CIRCUITPY_FULL_BUILD)
2019-02-24 19:05:51 -05:00
CFLAGS += -DCIRCUITPY_FREQUENCYIO=$(CIRCUITPY_FREQUENCYIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_GAMEPAD ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_GAMEPAD=$(CIRCUITPY_GAMEPAD)
2020-04-29 23:31:34 -04:00
CIRCUITPY_GAMEPADSHIFT ?= 0
CFLAGS += -DCIRCUITPY_GAMEPADSHIFT=$(CIRCUITPY_GAMEPADSHIFT)
2020-06-16 14:39:56 -04:00
CIRCUITPY_GNSS ?= 0
CFLAGS += -DCIRCUITPY_GNSS=$(CIRCUITPY_GNSS)
CIRCUITPY_I2CPERIPHERAL ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_I2CPERIPHERAL=$(CIRCUITPY_I2CPERIPHERAL)
2019-02-15 00:28:20 -05:00
2020-08-05 15:53:35 -04:00
CIRCUITPY_IPADDRESS ?= $(CIRCUITPY_WIFI)
CFLAGS += -DCIRCUITPY_IPADDRESS=$(CIRCUITPY_IPADDRESS)
2020-04-29 23:31:34 -04:00
CIRCUITPY_MATH ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_MATH=$(CIRCUITPY_MATH)
2020-04-29 23:31:34 -04:00
CIRCUITPY__EVE ?= 0
2020-02-05 21:17:58 -05:00
CFLAGS += -DCIRCUITPY__EVE=$(CIRCUITPY__EVE)
2020-07-15 20:58:38 -04:00
CIRCUITPY_MEMORYMONITOR ?= 0
CFLAGS += -DCIRCUITPY_MEMORYMONITOR=$(CIRCUITPY_MEMORYMONITOR)
2020-04-29 23:31:34 -04:00
CIRCUITPY_MICROCONTROLLER ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_MICROCONTROLLER=$(CIRCUITPY_MICROCONTROLLER)
2020-04-29 23:31:34 -04:00
CIRCUITPY_NEOPIXEL_WRITE ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
# Enabled on SAMD51. Won't fit on SAMD21 builds. Not tested on nRF or STM32F4 builds.
2020-04-29 23:31:34 -04:00
CIRCUITPY_NETWORK ?= 0
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_NETWORK=$(CIRCUITPY_NETWORK)
2020-04-29 23:31:34 -04:00
CIRCUITPY_NVM ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_NVM=$(CIRCUITPY_NVM)
2020-04-29 23:31:34 -04:00
CIRCUITPY_OS ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_OS=$(CIRCUITPY_OS)
2020-12-17 14:04:56 -05:00
CIRCUITPY_DUALBANK ?= 0
CFLAGS += -DCIRCUITPY_DUALBANK=$(CIRCUITPY_DUALBANK)
2020-12-08 01:00:00 -05:00
2020-04-29 23:31:34 -04:00
CIRCUITPY_PIXELBUF ?= $(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_PIXELBUF=$(CIRCUITPY_PIXELBUF)
# Only for SAMD boards for the moment
CIRCUITPY_PS2IO ?= 0
CFLAGS += -DCIRCUITPY_PS2IO=$(CIRCUITPY_PS2IO)
2020-03-10 14:12:01 -04:00
2020-04-29 23:31:34 -04:00
CIRCUITPY_PULSEIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_PULSEIO=$(CIRCUITPY_PULSEIO)
# For now we tie PWMIO to PULSEIO so they always both exist. In CircuitPython 7
# we can enable and disable them separately once PWMOut is removed from `pulseio`.
CIRCUITPY_PWMIO = $(CIRCUITPY_PULSEIO)
CFLAGS += -DCIRCUITPY_PWMIO=$(CIRCUITPY_PWMIO)
2019-05-15 22:29:34 -04:00
2020-04-29 23:31:34 -04:00
CIRCUITPY_RANDOM ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_RANDOM=$(CIRCUITPY_RANDOM)
CIRCUITPY_RGBMATRIX ?= 0
CFLAGS += -DCIRCUITPY_RGBMATRIX=$(CIRCUITPY_RGBMATRIX)
2020-04-29 23:31:34 -04:00
CIRCUITPY_ROTARYIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_ROTARYIO=$(CIRCUITPY_ROTARYIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_RTC ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_RTC=$(CIRCUITPY_RTC)
# CIRCUITPY_SAMD is handled in the atmel-samd tree.
2019-02-15 00:28:20 -05:00
# Only for SAMD chips.
# Assume not a SAMD build.
2020-04-29 23:31:34 -04:00
CIRCUITPY_SAMD ?= 0
CFLAGS += -DCIRCUITPY_SAMD=$(CIRCUITPY_SAMD)
2019-02-15 00:28:20 -05:00
CIRCUITPY_SDCARDIO ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_SDCARDIO=$(CIRCUITPY_SDCARDIO)
CIRCUITPY_SDIOIO ?= 0
CFLAGS += -DCIRCUITPY_SDIOIO=$(CIRCUITPY_SDIOIO)
CIRCUITPY_SHARPDISPLAY ?= $(CIRCUITPY_FRAMEBUFFERIO)
CFLAGS += -DCIRCUITPY_SHARPDISPLAY=$(CIRCUITPY_SHARPDISPLAY)
2020-08-11 19:04:55 -04:00
CIRCUITPY_SOCKETPOOL ?= $(CIRCUITPY_WIFI)
2020-08-10 20:56:49 -04:00
CFLAGS += -DCIRCUITPY_SOCKETPOOL=$(CIRCUITPY_SOCKETPOOL)
2020-08-13 19:55:49 -04:00
CIRCUITPY_SSL ?= $(CIRCUITPY_WIFI)
CFLAGS += -DCIRCUITPY_SSL=$(CIRCUITPY_SSL)
2019-02-15 00:28:20 -05:00
# Currently always off.
2020-04-29 23:31:34 -04:00
CIRCUITPY_STAGE ?= 0
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_STAGE=$(CIRCUITPY_STAGE)
2020-04-29 23:31:34 -04:00
CIRCUITPY_STORAGE ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_STORAGE=$(CIRCUITPY_STORAGE)
2020-04-29 23:31:34 -04:00
CIRCUITPY_STRUCT ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_STRUCT=$(CIRCUITPY_STRUCT)
2020-04-29 23:31:34 -04:00
CIRCUITPY_SUPERVISOR ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_SUPERVISOR=$(CIRCUITPY_SUPERVISOR)
CIRCUITPY_TERMINALIO ?= $(CIRCUITPY_DISPLAYIO)
CFLAGS += -DCIRCUITPY_TERMINALIO=$(CIRCUITPY_TERMINALIO)
2020-04-29 23:31:34 -04:00
CIRCUITPY_TIME ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_TIME=$(CIRCUITPY_TIME)
# touchio might be native or generic. See circuitpy_defns.mk.
2020-04-29 23:31:34 -04:00
CIRCUITPY_TOUCHIO_USE_NATIVE ?= 0
CFLAGS += -DCIRCUITPY_TOUCHIO_USE_NATIVE=$(CIRCUITPY_TOUCHIO_USE_NATIVE)
2020-04-29 23:31:34 -04:00
CIRCUITPY_TOUCHIO ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_TOUCHIO=$(CIRCUITPY_TOUCHIO)
# For debugging.
2020-04-29 23:31:34 -04:00
CIRCUITPY_UHEAP ?= 0
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_UHEAP=$(CIRCUITPY_UHEAP)
2020-04-29 23:31:34 -04:00
CIRCUITPY_USB_HID ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_USB_HID=$(CIRCUITPY_USB_HID)
2020-04-29 23:31:34 -04:00
CIRCUITPY_USB_MIDI ?= 1
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_USB_MIDI=$(CIRCUITPY_USB_MIDI)
# Defaulting this to OFF initially because it has only been tested on a
# limited number of platforms, and the other platforms do not have this
# setting in their mpconfigport.mk and/or mpconfigboard.mk files yet.
CIRCUITPY_USB_VENDOR ?= 0
CFLAGS += -DCIRCUITPY_USB_VENDOR=$(CIRCUITPY_USB_VENDOR)
2020-04-29 23:31:34 -04:00
CIRCUITPY_PEW ?= 0
2019-03-01 08:59:21 -05:00
CFLAGS += -DCIRCUITPY_PEW=$(CIRCUITPY_PEW)
2019-02-15 00:28:20 -05:00
# For debugging.
2020-04-29 23:31:34 -04:00
CIRCUITPY_USTACK ?= 0
2019-02-15 00:28:20 -05:00
CFLAGS += -DCIRCUITPY_USTACK=$(CIRCUITPY_USTACK)
2019-10-06 21:30:26 -04:00
# Non-module conditionals
2020-04-29 23:31:34 -04:00
CIRCUITPY_BITBANG_APA102 ?= 0
CFLAGS += -DCIRCUITPY_BITBANG_APA102=$(CIRCUITPY_BITBANG_APA102)
2019-10-06 21:30:26 -04:00
2020-01-09 17:31:50 -05:00
# Should busio.I2C() check for pullups?
# Some boards in combination with certain peripherals may not want this.
2020-04-29 23:31:34 -04:00
CIRCUITPY_REQUIRE_I2C_PULLUPS ?= 1
2020-01-09 17:31:50 -05:00
CFLAGS += -DCIRCUITPY_REQUIRE_I2C_PULLUPS=$(CIRCUITPY_REQUIRE_I2C_PULLUPS)
2019-10-06 21:30:26 -04:00
# REPL over BLE
2020-04-29 23:31:34 -04:00
CIRCUITPY_SERIAL_BLE ?= 0
2019-10-06 21:30:26 -04:00
CFLAGS += -DCIRCUITPY_SERIAL_BLE=$(CIRCUITPY_SERIAL_BLE)
2020-04-29 23:31:34 -04:00
CIRCUITPY_BLE_FILE_SERVICE ?= 0
CFLAGS += -DCIRCUITPY_BLE_FILE_SERVICE=$(CIRCUITPY_BLE_FILE_SERVICE)
2019-10-06 21:30:26 -04:00
# REPL over UART
2020-04-29 23:31:34 -04:00
CIRCUITPY_SERIAL_UART ?= 0
2019-10-06 21:30:26 -04:00
CFLAGS += -DCIRCUITPY_SERIAL_UART=$(CIRCUITPY_SERIAL_UART)
# ulab numerics library
2020-04-29 23:31:34 -04:00
CIRCUITPY_ULAB ?= $(CIRCUITPY_FULL_BUILD)
2020-04-23 17:12:55 -04:00
CFLAGS += -DCIRCUITPY_ULAB=$(CIRCUITPY_ULAB)
# watchdog hardware support
CIRCUITPY_WATCHDOG ?= 0
CFLAGS += -DCIRCUITPY_WATCHDOG=$(CIRCUITPY_WATCHDOG)
2020-07-28 21:23:33 -04:00
CIRCUITPY_WIFI ?= 0
CFLAGS += -DCIRCUITPY_WIFI=$(CIRCUITPY_WIFI)
# Enabled micropython.native decorator (experimental)
2020-04-29 23:31:34 -04:00
CIRCUITPY_ENABLE_MPY_NATIVE ?= 0
CFLAGS += -DCIRCUITPY_ENABLE_MPY_NATIVE=$(CIRCUITPY_ENABLE_MPY_NATIVE)
2020-11-08 21:39:20 -05:00
CIRCUITPY_MSGPACK ?= $(CIRCUITPY_FULL_BUILD)
2020-11-08 21:39:20 -05:00
CFLAGS += -DCIRCUITPY_MSGPACK=$(CIRCUITPY_MSGPACK)