circuitpython/py/circuitpy_mpconfig.mk

352 lines
9.5 KiB
Makefile
Raw Normal View History

#
# This file is part of the MicroPython project, http://micropython.org/
#
# The MIT License (MIT)
#
# 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.
2019-02-15 00:28:20 -05:00
# mpconfigboard.mk files can specify:
# CIRCUITPY_FULL_BUILD = 1 (which is the default)
# or
# CIRCUITPY_SMALL_BUILD = 1
# which is the same as:
# CIRCUITPY_FULL_BUILD = 0
ifndef CIRCUITPY_FULL_BUILD
ifeq ($(CIRCUITPY_SMALL_BUILD),1)
CIRCUITPY_FULL_BUILD = 0
else
CIRCUITPY_FULL_BUILD = 1
endif
endif
2019-12-05 22:45:53 -05:00
CFLAGS += -DCIRCUITPY_FULL_BUILD=$(CIRCUITPY_FULL_BUILD)
2019-02-15 00:28:20 -05:00
2019-07-24 14:21:27 -04:00
# Setting CIRCUITPY_MINIMAL_BUILD = 1 will disable all features
# Use for for early stage or highly restricted ports
2019-12-05 22:45:53 -05:00
ifndef CIRCUITPY_MINIMAL_BUILD
CIRCUITPY_MINIMAL_BUILD = 0
endif
CFLAGS += -DCIRCUITPY_MINIMAL_BUILD=$(CIRCUITPY_MINIMAL_BUILD)
2019-07-24 14:21:27 -04:00
ifndef CIRCUITPY_DEFAULT_BUILD
ifeq ($(CIRCUITPY_MINIMAL_BUILD),1)
CIRCUITPY_FULL_BUILD = 0
CIRCUITPY_DEFAULT_BUILD = 0
2019-07-24 14:21:27 -04:00
else
CIRCUITPY_DEFAULT_BUILD = 1
2019-07-24 14:21:27 -04:00
endif
endif
2019-12-05 22:45:53 -05:00
CFLAGS += -DCIRCUITPY_DEFAULT_BUILD=$(CIRCUITPY_DEFAULT_BUILD)
2019-07-24 14:21:27 -04:00
# Some features have no unique HAL component, and thus there's never
# a reason to not include them.
ifndef CIRCUITPY_ALWAYS_BUILD
CIRCUITPY_ALWAYS_BUILD = 1
endif
2019-12-05 22:45:53 -05:00
CFLAGS += -DCIRCUITPY_ALWAYS_BUILD=$(CIRCUITPY_ALWAYS_BUILD)
2019-07-24 14:21:27 -04:00
2019-02-15 00:28:20 -05:00
# All builtin modules are listed below, with default values (0 for off, 1 for on)
# Some are always on, some are always off, and some depend on CIRCUITPY_FULL_BUILD.
#
# *** You can override any of the defaults by defining them in your mpconfigboard.mk.
ifndef CIRCUITPY_ANALOGIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_ANALOGIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_ANALOGIO=$(CIRCUITPY_ANALOGIO)
ifndef CIRCUITPY_AUDIOBUSIO
CIRCUITPY_AUDIOBUSIO = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_AUDIOBUSIO=$(CIRCUITPY_AUDIOBUSIO)
ifndef CIRCUITPY_AUDIOIO
CIRCUITPY_AUDIOIO = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_AUDIOIO=$(CIRCUITPY_AUDIOIO)
ifndef CIRCUITPY_AUDIOIO_COMPAT
CIRCUITPY_AUDIOIO_COMPAT = $(CIRCUITPY_AUDIOIO)
endif
CFLAGS += -DCIRCUITPY_AUDIOIO_COMPAT=$(CIRCUITPY_AUDIOIO_COMPAT)
ifndef CIRCUITPY_AUDIOPWMIO
CIRCUITPY_AUDIOPWMIO = 0
endif
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)
ifndef CIRCUITPY_AUDIOMIXER
CIRCUITPY_AUDIOMIXER = $(CIRCUITPY_AUDIOIO)
endif
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)
ifndef CIRCUITPY_BITBANGIO
2019-02-15 00:28:20 -05:00
CIRCUITPY_BITBANGIO = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_BITBANGIO=$(CIRCUITPY_BITBANGIO)
2019-08-29 18:44:27 -04:00
# Explicitly enabled for boards that support _bleio.
ifndef CIRCUITPY_BLEIO
CIRCUITPY_BLEIO = 0
endif
CFLAGS += -DCIRCUITPY_BLEIO=$(CIRCUITPY_BLEIO)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_BOARD
2019-07-24 14:21:27 -04:00
CIRCUITPY_BOARD = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_BOARD=$(CIRCUITPY_BOARD)
ifndef CIRCUITPY_BUSIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_BUSIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_BUSIO=$(CIRCUITPY_BUSIO)
ifndef CIRCUITPY_DIGITALIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_DIGITALIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_DIGITALIO=$(CIRCUITPY_DIGITALIO)
ifndef CIRCUITPY_DISPLAYIO
CIRCUITPY_DISPLAYIO = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_DISPLAYIO=$(CIRCUITPY_DISPLAYIO)
2019-02-24 19:05:51 -05:00
ifndef CIRCUITPY_FREQUENCYIO
CIRCUITPY_FREQUENCYIO = $(CIRCUITPY_FULL_BUILD)
2019-02-24 19:05:51 -05:00
endif
CFLAGS += -DCIRCUITPY_FREQUENCYIO=$(CIRCUITPY_FREQUENCYIO)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_GAMEPAD
CIRCUITPY_GAMEPAD = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_GAMEPAD=$(CIRCUITPY_GAMEPAD)
ifndef CIRCUITPY_GAMEPADSHIFT
CIRCUITPY_GAMEPADSHIFT = 0
endif
CFLAGS += -DCIRCUITPY_GAMEPADSHIFT=$(CIRCUITPY_GAMEPADSHIFT)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_I2CSLAVE
CIRCUITPY_I2CSLAVE = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_I2CSLAVE=$(CIRCUITPY_I2CSLAVE)
ifndef CIRCUITPY_MATH
CIRCUITPY_MATH = $(CIRCUITPY_ALWAYS_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_MATH=$(CIRCUITPY_MATH)
2020-02-05 21:17:58 -05:00
ifndef CIRCUITPY__EVE
CIRCUITPY__EVE = 0
endif
2020-02-05 21:17:58 -05:00
CFLAGS += -DCIRCUITPY__EVE=$(CIRCUITPY__EVE)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_MICROCONTROLLER
2019-07-24 14:21:27 -04:00
CIRCUITPY_MICROCONTROLLER = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_MICROCONTROLLER=$(CIRCUITPY_MICROCONTROLLER)
ifndef CIRCUITPY_NEOPIXEL_WRITE
2019-07-24 14:21:27 -04:00
CIRCUITPY_NEOPIXEL_WRITE = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
# Enabled on SAMD51. Won't fit on SAMD21 builds. Not tested on nRF or STM32F4 builds.
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_NETWORK
CIRCUITPY_NETWORK = 0
endif
CFLAGS += -DCIRCUITPY_NETWORK=$(CIRCUITPY_NETWORK)
ifndef CIRCUITPY_NVM
2019-07-24 14:21:27 -04:00
CIRCUITPY_NVM = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_NVM=$(CIRCUITPY_NVM)
ifndef CIRCUITPY_OS
2019-07-24 14:21:27 -04:00
CIRCUITPY_OS = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_OS=$(CIRCUITPY_OS)
ifndef CIRCUITPY_PIXELBUF
CIRCUITPY_PIXELBUF = $(CIRCUITPY_FULL_BUILD)
endif
CFLAGS += -DCIRCUITPY_PIXELBUF=$(CIRCUITPY_PIXELBUF)
ifndef CIRCUITPY_PULSEIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_PULSEIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_PULSEIO=$(CIRCUITPY_PULSEIO)
2019-05-15 22:29:34 -04:00
# Only for SAMD boards for the moment
ifndef CIRCUITPY_PS2IO
CIRCUITPY_PS2IO = 0
endif
CFLAGS += -DCIRCUITPY_PS2IO=$(CIRCUITPY_PS2IO)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_RANDOM
2019-07-24 14:21:27 -04:00
CIRCUITPY_RANDOM = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_RANDOM=$(CIRCUITPY_RANDOM)
ifndef CIRCUITPY_ROTARYIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_ROTARYIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_ROTARYIO=$(CIRCUITPY_ROTARYIO)
ifndef CIRCUITPY_RTC
2019-07-24 14:21:27 -04:00
CIRCUITPY_RTC = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
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.
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_SAMD
CIRCUITPY_SAMD = 0
endif
CFLAGS += -DCIRCUITPY_SAMD=$(CIRCUITPY_SAMD)
2019-02-15 00:28:20 -05:00
# Currently always off.
ifndef CIRCUITPY_STAGE
CIRCUITPY_STAGE = 0
endif
CFLAGS += -DCIRCUITPY_STAGE=$(CIRCUITPY_STAGE)
ifndef CIRCUITPY_STORAGE
2019-07-24 14:21:27 -04:00
CIRCUITPY_STORAGE = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_STORAGE=$(CIRCUITPY_STORAGE)
ifndef CIRCUITPY_STRUCT
CIRCUITPY_STRUCT = $(CIRCUITPY_ALWAYS_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_STRUCT=$(CIRCUITPY_STRUCT)
ifndef CIRCUITPY_SUPERVISOR
CIRCUITPY_SUPERVISOR = $(CIRCUITPY_ALWAYS_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_SUPERVISOR=$(CIRCUITPY_SUPERVISOR)
ifndef CIRCUITPY_TIME
CIRCUITPY_TIME = $(CIRCUITPY_ALWAYS_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_TIME=$(CIRCUITPY_TIME)
# touchio might be native or generic. See circuitpy_defns.mk.
ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
endif
CFLAGS += -DCIRCUITPY_TOUCHIO_USE_NATIVE=$(CIRCUITPY_TOUCHIO_USE_NATIVE)
2019-02-15 00:28:20 -05:00
ifndef CIRCUITPY_TOUCHIO
2019-07-24 14:21:27 -04:00
CIRCUITPY_TOUCHIO = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_TOUCHIO=$(CIRCUITPY_TOUCHIO)
# For debugging.
ifndef CIRCUITPY_UHEAP
CIRCUITPY_UHEAP = 0
endif
CFLAGS += -DCIRCUITPY_UHEAP=$(CIRCUITPY_UHEAP)
ifndef CIRCUITPY_USB_HID
2019-07-24 14:21:27 -04:00
CIRCUITPY_USB_HID = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_USB_HID=$(CIRCUITPY_USB_HID)
ifndef CIRCUITPY_USB_MIDI
2019-07-24 14:21:27 -04:00
CIRCUITPY_USB_MIDI = $(CIRCUITPY_DEFAULT_BUILD)
2019-02-15 00:28:20 -05:00
endif
CFLAGS += -DCIRCUITPY_USB_MIDI=$(CIRCUITPY_USB_MIDI)
2019-03-01 08:59:21 -05:00
ifndef CIRCUITPY_PEW
CIRCUITPY_PEW = 0
endif
CFLAGS += -DCIRCUITPY_PEW=$(CIRCUITPY_PEW)
2019-02-15 00:28:20 -05:00
# For debugging.
ifndef CIRCUITPY_USTACK
CIRCUITPY_USTACK = 0
endif
CFLAGS += -DCIRCUITPY_USTACK=$(CIRCUITPY_USTACK)
2019-10-06 21:30:26 -04:00
# Non-module conditionals
ifndef CIRCUITPY_BITBANG_APA102
CIRCUITPY_BITBANG_APA102 = 0
endif
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.
ifndef CIRCUITPY_REQUIRE_I2C_PULLUPS
CIRCUITPY_REQUIRE_I2C_PULLUPS = 1
endif
CFLAGS += -DCIRCUITPY_REQUIRE_I2C_PULLUPS=$(CIRCUITPY_REQUIRE_I2C_PULLUPS)
2019-10-06 21:30:26 -04:00
# REPL over BLE
ifndef CIRCUITPY_SERIAL_BLE
CIRCUITPY_SERIAL_BLE = 0
endif
CFLAGS += -DCIRCUITPY_SERIAL_BLE=$(CIRCUITPY_SERIAL_BLE)
ifndef CIRCUITPY_BLE_FILE_SERVICE
CIRCUITPY_BLE_FILE_SERVICE = 0
endif
CFLAGS += -DCIRCUITPY_BLE_FILE_SERVICE=$(CIRCUITPY_BLE_FILE_SERVICE)
2019-10-06 21:30:26 -04:00
# REPL over UART
ifndef CIRCUITPY_SERIAL_UART
CIRCUITPY_SERIAL_UART = 0
endif
CFLAGS += -DCIRCUITPY_SERIAL_UART=$(CIRCUITPY_SERIAL_UART)
# ulab numerics library
ifndef MICROPY_PY_ULAB
MICROPY_PY_ULAB = $(CIRCUITPY_FULL_BUILD)
endif
# Enabled micropython.native decorator (experimental)
ifndef CIRCUITPY_ENABLE_MPY_NATIVE
CIRCUITPY_ENABLE_MPY_NATIVE = 0
endif
CFLAGS += -DCIRCUITPY_ENABLE_MPY_NATIVE=$(CIRCUITPY_ENABLE_MPY_NATIVE)