rusefi/firmware/rusefi.mk

96 lines
3.5 KiB
Makefile

CHIBIOS_FILE=$(CHIBIOS)/os/readme.txt
ifeq ("$(wildcard $(CHIBIOS_FILE))","")
$(info $(CHIBIOS_FILE) not found. Chibios: Invoking "git submodule update --init")
$(shell git submodule update --init)
$(info Invoked "git submodule update --init")
# make is not happy about newly checked out module for some reason but next invocation would work
$(error Please run 'make' again. Please make sure you have 'git' command in PATH)
endif
CHIBIOS_CONTRIB_FILE=$(CHIBIOS_CONTRIB)/os/hal/hal.mk
ifeq ("$(wildcard $(CHIBIOS_CONTRIB_FILE))","")
$(info $(CHIBIOS_CONTRIB_FILE) not found. Contrib: Invoking "git submodule update --init")
$(shell git submodule update --init)
$(info Invoked "git submodule update --init")
# make is not happy about newly checked out module for some reason but next invocation would work
$(error Please run 'make' again. Please make sure you have 'git' command in PATH)
endif
ifeq ($(PROJECT_BOARD),)
ifneq ($(SHORT_BOARD_NAME),)
PROJECT_BOARD = $(SHORT_BOARD_NAME)
else
PROJECT_BOARD = f407-discovery
endif
endif
BOARDS_DIR = $(PROJECT_DIR)/config/boards
ifneq ($(META_OUTPUT_ROOT_FOLDER),)
ALLINC += $(PROJECT_DIR)/$(META_OUTPUT_ROOT_FOLDER)controllers/generated
endif
# allow passing a custom board dir, otherwise generate it based on the board name
ifeq ($(BOARD_DIR),)
BOARD_DIR = $(BOARDS_DIR)/$(PROJECT_BOARD)
-include $(BOARD_DIR)/meta-info.env
endif
ifeq ($(PROJECT_CPU),)
# while building PROJECT_CPU is provided as 'make' command line argument value and we do not seem to be able to change that value
# looks like 'make clean' is the only consumer of this value?!
PROJECT_CPU = ARCH_STM32F4
endif
-include $(BOARD_DIR)/config.mk
PIN_NAMES_FILE=$(BOARD_DIR)/connectors/generated_ts_name_by_pin.cpp
ifneq ("$(wildcard $(PIN_NAMES_FILE))","")
$(info found $(PIN_NAMES_FILE) )
ALLCPPSRC += $(PIN_NAMES_FILE)
endif
# CPU-dependent defs
ifeq ($(PROJECT_CPU),ARCH_STM32F7)
CPU_STARTUP = startup_stm32f7xx.mk
# next file is included through Contrib's platform.ml
#CPU_PLATFORM = $(CHIBIOS)/os/hal/ports/STM32/STM32F7xx/platform.mk
CPU_PLATFORM = ${CHIBIOS_CONTRIB}/os/hal/ports/STM32/STM32F7xx/platform.mk
CPU_HWLAYER = ports/stm32/stm32f7
else ifeq ($(PROJECT_CPU),ARCH_STM32F4)
CPU_STARTUP = startup_stm32f4xx.mk
# next file is included through Contrib's platform.ml
#CPU_PLATFORM = $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/platform.mk
CPU_PLATFORM = ${CHIBIOS_CONTRIB}/os/hal/ports/STM32/STM32F4xx/platform.mk
CPU_HWLAYER = ports/stm32/stm32f4
else ifeq ($(PROJECT_CPU),ARCH_STM32H7)
CPU_STARTUP = startup_stm32h7xx.mk
# next file is included through Contrib's platform.ml
#CPU_PLATFORM = $(CHIBIOS)/os/hal/ports/STM32/STM32H7xx/platform.mk
CPU_PLATFORM = ${CHIBIOS_CONTRIB}/os/hal/ports/STM32/STM32H7xx/platform.mk
CPU_HWLAYER = ports/stm32/stm32h7
else ifeq ($(PROJECT_CPU),ARCH_AT32F4)
CPU_STARTUP = startup_at32f4xx.mk
CPU_PLATFORM = $(CHIBIOS)/os/hal/ports/AT32/AT32F4xx/platform.mk
# Reuse STM32F4 port
CPU_HWLAYER = ports/stm32/stm32f4
else ifeq ($(PROJECT_CPU),custom_platform)
include $(BOARD_DIR)/custom_platform.mk
$(info Using custom CPU_STARTUP_DIR $(CPU_STARTUP_DIR))
$(info Using custom CPU_PLATFORM $(CPU_PLATFORM))
$(info Using custom CPU_HWLAYER $(CPU_HWLAYER))
else ifeq ($(PROJECT_CPU),simulator)
else
$(error Unexpected PROJECT_CPU [$(PROJECT_CPU)])
endif
ifeq ($(CPU_STARTUP_DIR),)
CPU_STARTUP_DIR = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/$(CPU_STARTUP)
endif
ifeq ($(GENERATED_ENUMS_DIR),)
GENERATED_ENUMS_DIR = $(PROJECT_DIR)/controllers/algo
endif