mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-23 00:05:28 +03:00
125 lines
5.7 KiB
Makefile
125 lines
5.7 KiB
Makefile
ALT_TARGETS = $(sort $(filter-out target, $(basename $(notdir $(wildcard $(ROOT)/src/main/target/*/*.mk)))))
|
|
|
|
VALID_TARGETS = $(dir $(wildcard $(ROOT)/src/main/target/*/target.mk))
|
|
VALID_TARGETS := $(subst /,, $(subst ./src/main/target/,, $(VALID_TARGETS)))
|
|
VALID_TARGETS := $(VALID_TARGETS) $(ALT_TARGETS)
|
|
VALID_TARGETS := $(sort $(VALID_TARGETS))
|
|
|
|
VALID_BL_TARGETS := $(addsuffix _bl,$(VALID_TARGETS))
|
|
VALID_TARGETS_FOR_BL := $(addsuffix _for_bl,$(VALID_TARGETS))
|
|
VALID_TARGETS_WITH_BL := $(addsuffix _with_bl,$(VALID_TARGETS))
|
|
|
|
CLEAN_TARGETS = $(addprefix clean_,$(VALID_TARGETS) )
|
|
TARGETS_CLEAN = $(addsuffix _clean,$(VALID_TARGETS) )
|
|
STFLASH_TARGETS = $(addprefix st-flash_,$(VALID_TARGETS) )
|
|
|
|
ifeq ($(filter $(TARGET),$(ALT_TARGETS)), $(TARGET))
|
|
BASE_TARGET := $(firstword $(subst /,, $(subst ./src/main/target/,, $(dir $(wildcard $(ROOT)/src/main/target/*/$(TARGET).mk)))))
|
|
-include $(ROOT)/src/main/target/$(BASE_TARGET)/$(TARGET).mk
|
|
else
|
|
BASE_TARGET := $(TARGET)
|
|
endif
|
|
|
|
# silently ignore if the file is not present. Allows for target specific.
|
|
-include $(ROOT)/src/main/target/$(BASE_TARGET)/target.mk
|
|
|
|
F4_TARGETS = $(F405_TARGETS) $(F411_TARGETS) $(F427_TARGETS) $(F446_TARGETS)
|
|
F7_TARGETS = $(F7X2RE_TARGETS) $(F7X5XE_TARGETS) $(F745XG_TARGETS) $(F765XG_TARGETS) $(F765XI_TARGETS) $(F7X6XG_TARGETS)
|
|
|
|
ifeq ($(filter $(TARGET),$(VALID_TARGETS)),)
|
|
$(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS). Have you prepared a valid target.mk?)
|
|
endif
|
|
|
|
ifeq ($(filter $(TARGET),$(F3_TARGETS) $(F4_TARGETS) $(F7_TARGETS)),)
|
|
$(error Target '$(TARGET)' has not specified a valid STM group, must be one of F3, F405, F411, F427 or F7x. Have you prepared a valid target.mk?)
|
|
endif
|
|
|
|
ifeq ($(TARGET),$(filter $(TARGET),$(F3_TARGETS)))
|
|
TARGET_MCU := STM32F303
|
|
TARGET_MCU_GROUP := STM32F3
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F405_TARGETS)))
|
|
TARGET_MCU := STM32F405
|
|
TARGET_MCU_GROUP := STM32F4
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F411_TARGETS)))
|
|
TARGET_MCU := STM32F411
|
|
TARGET_MCU_GROUP := STM32F4
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F427_TARGETS)))
|
|
TARGET_MCU := STM32F427
|
|
TARGET_MCU_GROUP := STM32F4
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F446_TARGETS)))
|
|
TARGET_MCU := STM32F446
|
|
TARGET_MCU_GROUP := STM32F4
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F7X2RE_TARGETS)))
|
|
TARGET_MCU := STM32F7X2RE
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F7X5XE_TARGETS)))
|
|
TARGET_MCU := STM32F7X5XE
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F745XG_TARGETS)))
|
|
TARGET_MCU := STM32F745XG
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F765XG_TARGETS)))
|
|
TARGET_MCU := STM32F765XG
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F765XI_TARGETS)))
|
|
TARGET_MCU := STM32F765XI
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else ifeq ($(TARGET),$(filter $(TARGET), $(F7X6XG_TARGETS)))
|
|
TARGET_MCU := STM32F7X6XG
|
|
TARGET_MCU_GROUP := STM32F7
|
|
else
|
|
$(error Unknown target MCU specified.)
|
|
endif
|
|
|
|
GROUP_1_TARGETS := AIRHEROF3 AIRHEROF3_QUAD LUX_RACE SPARKY REVO SPARKY2 COLIBRI FALCORE FF_F35_LIGHTNING FF_FORTINIF4 FF_PIKOF4 FF_PIKOF4OSD
|
|
GROUP_2_TARGETS := SPRACINGF3 SPRACINGF3MINI SPRACINGF4EVO CLRACINGF4AIR CLRACINGF4AIRV2 BEEROTORF4 BETAFLIGHTF4 PIKOBLX
|
|
GROUP_3_TARGETS := AIRBOTF4 BLUEJAYF4 OMNIBUSF4 OMNIBUSF4PRO FIREWORKSV2 SPARKY2 MATEKF405 OMNIBUSF7 DYSF4PRO OMNIBUSF4PRO_LEDSTRIPM5 OMNIBUSF7NXT OMNIBUSF7V2 ASGARD32F4
|
|
GROUP_4_TARGETS := ANYFC ANYFCF7 ANYFCF7_EXTERNAL_BARO ALIENFLIGHTNGF7 PIXRACER YUPIF7 MATEKF405SE MATEKF411 MATEKF722 MATEKF405OSD MATEKF405_SERVOS6 NOX
|
|
GROUP_5_TARGETS := ASGARD32F7 CLRACINGF4AIRV3 DALRCF405 DALRCF722DUAL DYSF4PROV2 F4BY FISHDRONEF4 FOXEERF405 FOXEERF722DUAL FRSKYF3 FRSKYF4 FURYF4OSD
|
|
GROUP_6_TARGETS := MAMBAF405 OMNIBUSF4V3 OMNIBUSF4V3_S6_SS OMNIBUSF4V3_S5S6_SS OMNIBUSF4V3_S5_S6_2SS AIKONF4
|
|
GROUP_7_TARGETS := KAKUTEF4 KAKUTEF4V2 KAKUTEF7 KAKUTEF7MINI MATEKF411_RSSI MATEKF411_SFTSRL2 MATEKF722MINI MATEKF722SE MATEKF722_HEXSERVO
|
|
GROUP_8_TARGETS := MATEKF765 MATEKF722PX KAKUTEF7HDV ZEEZF7 FOXEERF722V2 FRSKYPILOT FRSKY_ROVERF7
|
|
GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS) $(GROUP_3_TARGETS) $(GROUP_4_TARGETS) $(GROUP_5_TARGETS) $(GROUP_6_TARGETS) $(GROUP_7_TARGETS) $(GROUP_8_TARGETS), $(VALID_TARGETS))
|
|
|
|
## targets-group-1 : build some targets
|
|
targets-group-1: $(GROUP_1_TARGETS)
|
|
|
|
## targets-group-2 : build some targets
|
|
targets-group-2: $(GROUP_2_TARGETS)
|
|
|
|
## targets-group-3 : build some targets
|
|
targets-group-3: $(GROUP_3_TARGETS)
|
|
|
|
## targets-group-4 : build some targets
|
|
targets-group-4: $(GROUP_4_TARGETS)
|
|
|
|
## targets-group-5 : build some targets
|
|
targets-group-5: $(GROUP_5_TARGETS)
|
|
|
|
## targets-group-6 : build some targets
|
|
targets-group-6: $(GROUP_6_TARGETS)
|
|
|
|
## targets-group-7 : build some targets
|
|
targets-group-7: $(GROUP_7_TARGETS)
|
|
|
|
## targets-group-8 : build some targets
|
|
targets-group-8: $(GROUP_8_TARGETS)
|
|
|
|
## targets-group-rest: build the rest of the targets (not listed in group 1, 2 or 3)
|
|
targets-group-rest: $(GROUP_OTHER_TARGETS)
|
|
|
|
## targets : print a list of all valid target platforms (for consumption by scripts)
|
|
targets:
|
|
$(V0) @echo "Valid targets: $(VALID_TARGETS)"
|
|
$(V0) @echo "Target: $(TARGET)"
|
|
$(V0) @echo "Base target: $(BASE_TARGET)"
|
|
$(V0) @echo "targets-group-1: $(GROUP_1_TARGETS)"
|
|
$(V0) @echo "targets-group-2: $(GROUP_2_TARGETS)"
|
|
$(V0) @echo "targets-group-3: $(GROUP_3_TARGETS)"
|
|
$(V0) @echo "targets-group-4: $(GROUP_4_TARGETS)"
|
|
$(V0) @echo "targets-group-5: $(GROUP_5_TARGETS)"
|
|
$(V0) @echo "targets-group-6: $(GROUP_6_TARGETS)"
|
|
$(V0) @echo "targets-group-7: $(GROUP_7_TARGETS)"
|
|
$(V0) @echo "targets-group-8: $(GROUP_8_TARGETS)"
|
|
$(V0) @echo "targets-group-rest: $(GROUP_OTHER_TARGETS)"
|
|
$(V0) @echo "Release targets: $(RELEASE_TARGETS)"
|