Merge pull request #4134 from atomiclama/bf_CSInitialise
[betaflight.git] / make / targets.mk
blob4dbd6b3a019191ed37fa935f32e7f74f7ead717f
1 OFFICIAL_TARGETS = ALIENFLIGHTF3 ALIENFLIGHTF4 ANYFCF7 BETAFLIGHTF3 BLUEJAYF4 CC3D FURYF4 NAZE REVO SIRINFPV SPARKY SPRACINGF3 SPRACINGF3EVO SPRACINGF3NEO SPRACINGF4EVO STM32F3DISCOVERY
2 SKIP_TARGETS := ALIENWHOOP MOTOLABF4
3 ALT_TARGETS = $(sort $(filter-out target, $(basename $(notdir $(wildcard $(ROOT)/src/main/target/*/*.mk)))))
4 OPBL_TARGETS = $(filter %_OPBL, $(ALT_TARGETS))
5 OSD_SLAVE_TARGETS = SPRACINGF3OSD
7 VALID_TARGETS = $(dir $(wildcard $(ROOT)/src/main/target/*/target.mk))
8 VALID_TARGETS := $(subst /,, $(subst ./src/main/target/,, $(VALID_TARGETS)))
9 VALID_TARGETS := $(VALID_TARGETS) $(ALT_TARGETS)
10 VALID_TARGETS := $(sort $(VALID_TARGETS))
11 VALID_TARGETS := $(filter-out $(SKIP_TARGETS), $(VALID_TARGETS))
13 ifeq ($(filter $(TARGET),$(SKIP_TARGETS)), $(TARGET))
14 ALTERNATES := $(sort $(filter-out target, $(basename $(notdir $(wildcard $(ROOT)/src/main/target/$(TARGET)/*.mk)))))
15 $(error The target specified, $(TARGET), cannot be built. Use one of the ALT targets: $(ALTERNATES))
16 endif
18 GROUP_1_TARGETS := \
19 AFROMINI \
20 AIORACERF3 \
21 AIR32 \
22 AIRBOTF4 \
23 AIRBOTF4SD \
24 AIRHEROF3 \
25 ALIENFLIGHTF1 \
26 ALIENFLIGHTF3 \
27 ALIENFLIGHTF4 \
28 ALIENFLIGHTNGF7 \
29 ALIENWHOOPF4 \
30 ALIENWHOOPF7 \
31 ANYFCF7 \
32 BEEBRAIN \
33 BEEROTORF4 \
34 BETAFLIGHTF3 \
35 BLUEJAYF4 \
36 CC3D \
37 CC3D_OPBL
39 GROUP_2_TARGETS := \
40 CHEBUZZF3 \
41 CJMCU \
42 CLRACINGF4 \
43 COLIBRI \
44 COLIBRI_OPBL \
45 COLIBRI_RACE \
46 DOGE \
47 ELLE0 \
48 F4BY \
49 FISHDRONEF4 \
50 FLIP32F3OSD \
51 FF_ACROWHOOPSP \
52 FF_FORTINIF4 \
53 FF_KOMBINI \
54 FF_PIKOBLX \
55 FF_PIKOF4 \
56 FF_RADIANCE \
57 FRSKYF3 \
58 FRSKYF4 \
59 FURYF3 \
60 FURYF4 \
61 FURYF7 \
62 IMPULSERCF3 \
63 IRCFUSIONF3 \
64 ISHAPEDF3
66 GROUP_3_TARGETS := \
67 KAKUTEF4 \
68 KISSCC \
69 KIWIF4 \
70 LUX_RACE \
71 LUXV2_RACE \
72 MICROSCISKY \
73 MLTEMPF4 \
74 MLTYPHF4 \
75 MOTOLAB \
76 MULTIFLITEPICO \
77 NAZE \
78 NERO \
79 NUCLEOF7 \
80 OMNIBUS \
81 OMNIBUSF4 \
82 OMNIBUSF4SD \
83 PLUMF4 \
84 PODIUMF4 \
85 DYSF4PRO
87 GROUP_4_TARGETS := \
88 RCEXPLORERF3 \
89 REVO \
90 REVO_OPBL \
91 REVOLT \
92 REVONANO \
93 RMDO \
94 SINGULARITY \
95 SIRINFPV \
96 SOULF4 \
97 SPARKY \
98 SPARKY2 \
99 SPRACINGF3 \
100 SPRACINGF3EVO \
101 SPRACINGF3MINI \
102 SPRACINGF3NEO \
103 SPRACINGF3OSD \
104 SPRACINGF4EVO \
105 SPRACINGF4NEO \
106 STM32F3DISCOVERY \
107 TINYBEEF3
109 GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS) $(GROUP_3_TARGETS) $(GROUP_4_TARGETS), $(VALID_TARGETS))
111 ifeq ($(filter $(TARGET),$(ALT_TARGETS)), $(TARGET))
112 BASE_TARGET := $(firstword $(subst /,, $(subst ./src/main/target/,, $(dir $(wildcard $(ROOT)/src/main/target/*/$(TARGET).mk)))))
113 include $(ROOT)/src/main/target/$(BASE_TARGET)/$(TARGET).mk
114 else
115 BASE_TARGET := $(TARGET)
116 endif
118 ifeq ($(filter $(TARGET),$(OPBL_TARGETS)), $(TARGET))
119 OPBL = yes
120 endif
122 ifeq ($(filter $(TARGET),$(OSD_SLAVE_TARGETS)), $(TARGET))
123 # build an OSD SLAVE
124 OSD_SLAVE = yes
125 else
126 # build an FC
127 FC = yes
128 endif
130 # silently ignore if the file is not present. Allows for target specific.
131 -include $(ROOT)/src/main/target/$(BASE_TARGET)/target.mk
133 F4_TARGETS := $(F405_TARGETS) $(F411_TARGETS) $(F446_TARGETS)
134 F7_TARGETS := $(F7X2RE_TARGETS) $(F7X5XE_TARGETS) $(F7X5XG_TARGETS) $(F7X5XI_TARGETS) $(F7X6XG_TARGETS)
136 ifeq ($(filter $(TARGET),$(VALID_TARGETS)),)
137 $(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS). Have you prepared a valid target.mk?)
138 endif
140 ifeq ($(filter $(TARGET),$(F1_TARGETS) $(F3_TARGETS) $(F4_TARGETS) $(F7_TARGETS) $(SITL_TARGETS)),)
141 $(error Target '$(TARGET)' has not specified a valid STM group, must be one of F1, F3, F405, F411 or F7x5. Have you prepared a valid target.mk?)
142 endif
144 ifeq ($(TARGET),$(filter $(TARGET),$(F3_TARGETS)))
145 TARGET_MCU := STM32F3
147 else ifeq ($(TARGET),$(filter $(TARGET), $(F4_TARGETS)))
148 TARGET_MCU := STM32F4
150 else ifeq ($(TARGET),$(filter $(TARGET), $(F7_TARGETS)))
151 TARGET_MCU := STM32F7
153 else ifeq ($(TARGET),$(filter $(TARGET), $(SITL_TARGETS)))
154 TARGET_MCU := SITL
156 else ifeq ($(TARGET),$(filter $(TARGET), $(F1_TARGETS)))
157 TARGET_MCU := STM32F1
158 else
159 $(error Unknown target MCU specified.)
160 endif
162 ifneq ($(BASE_TARGET), $(TARGET))
163 TARGET_FLAGS := $(TARGET_FLAGS) -D$(BASE_TARGET)
164 endif
166 TARGET_FLAGS := $(TARGET_FLAGS) -D$(TARGET_MCU)