Merge pull request #10337 from MATEKSYS/master
[betaflight.git] / make / targets_list.mk
blobd123e440610e3d51cd44f10936e13c45d7704cb5
1 ALT_TARGET_PATHS = $(filter-out %/target,$(basename $(wildcard $(ROOT)/src/main/target/*/*.mk)))
2 ALT_TARGET_NAMES = $(notdir $(ALT_TARGET_PATHS))
3 BASE_TARGET_NAMES = $(notdir $(patsubst %/,%,$(dir $(ALT_TARGET_PATHS))))
4 BASE_ALT_PAIRS = $(join $(BASE_TARGET_NAMES:=/),$(ALT_TARGET_NAMES))
6 ALT_TARGETS = $(sort $(notdir $(BASE_ALT_PAIRS)))
7 BASE_TARGETS = $(sort $(notdir $(patsubst %/,%,$(dir $(wildcard $(ROOT)/src/main/target/*/target.mk)))))
8 NOBUILD_TARGETS = $(sort $(filter-out target,$(basename $(notdir $(wildcard $(ROOT)/src/main/target/*/*.nomk)))))
9 OPBL_TARGETS = $(sort $(filter %_OPBL,$(ALT_TARGETS)))
10 VALID_TARGETS = $(sort $(filter-out $(NOBUILD_TARGETS),$(BASE_TARGETS) $(ALT_TARGETS)))
12 # For alt targets, returns their base target name.
13 # For base targets, returns the (same) target name.
14 # param $1 = target name
15 find_target_pair = $(filter %/$(1),$(BASE_ALT_PAIRS))
16 get_base_target = $(if $(call find_target_pair,$(1)),$(patsubst %/,%,$(dir $(call find_target_pair,$(1)))),$(1))
18 UNSUPPORTED_TARGETS := \
19 AFROMINI \
20 ALIENFLIGHTF1 \
21 BEEBRAIN \
22 CC3D \
23 CC3D_OPBL \
24 CJMCU \
25 MICROSCISKY \
26 NAZE \
27 AIORACERF3 \
28 AIR32 \
29 AIRHEROF3 \
30 ALIENFLIGHTF3 \
31 BEEBRAIN_V2D \
32 BEEBRAIN_V2F \
33 BEESTORM \
34 BETAFLIGHTF3 \
35 CHEBUZZF3 \
36 COLIBRI_RACE \
37 CRAZYBEEF3DX \
38 CRAZYBEEF3FR \
39 CRAZYBEEF3FS \
40 DOGE EACHIF3 \
41 FF_ACROWHOOPSP \
42 FF_KOMBINI \
43 FF_PIKOBLX \
44 FF_RADIANCE \
45 FLIP32F3OSD \
46 FRSKYF3 \
47 FURYF3 \
48 FURYF3OSD \
49 IMPULSERCF3 \
50 IRCFUSIONF3 \
51 IRCSYNERGYF3 \
52 ISHAPEDF3 \
53 KISSCC \
54 KISSFC \
55 LUMBAF3 \
56 LUXV2_RACE \
57 LUX_RACE \
58 MIDELICF3 \
59 MOTOLAB \
60 MULTIFLITEPICO \
61 NUCLEOF103RG \
62 NUCLEOF303RE \
63 OMNIBUS \
64 RACEBASE \
65 RCEXPLORERF3 \
66 RG_SSD_F3 \
67 RMDO \
68 SINGULARITY \
69 SIRINFPV \
70 SPARKY \
71 SPRACINGF3 \
72 SPRACINGF3EVO \
73 SPRACINGF3MINI \
74 SPRACINGF3MQ \
75 SPRACINGF3NEO \
76 STM32F3DISCOVERY \
77 TINYBEEF3 \
78 TINYFISH \
79 X_RACERSPI \
80 ZCOREF3
82 UNIFIED_TARGETS := STM32F405 \
83 STM32F411 \
84 STM32F7X2 \
85 STM32F745
87 # Legacy targets are targets that have been replaced by Unified Target configurations
88 LEGACY_TARGETS := MATEKF405 \
89 AIKONF4 \
90 ALIENFLIGHTF4 \
91 BEEROTORF4 \
92 CLRACINGF4 \
93 CRAZYBEEF4FR \
94 DYSF4PRO \
95 ELINF405 \
96 FF_RACEPIT \
97 FLYWOOF405 \
98 FLYWOOF411 \
99 FURYF4OSD \
100 HAKRCF411 \
101 KAKUTEF4V2 \
102 MAMBAF411 \
103 MATEKF411 \
104 MATEKF411RX \
105 MERAKRCF405 \
106 MLTEMPF4 \
107 MLTYPHF4 \
108 OMNIBUSF4 \
109 OMNIBUSF4FW \
110 OMNIBUSF4NANOV7 \
111 OMNIBUSF4SD \
112 OMNIBUSF4V6 \
113 SPEEDYBEEF4 \
114 SYNERGYF4 \
115 TMOTORF4 \
116 TRANSTECF411 \
117 VGOODRCF4 \
118 XILOF4 \
119 AIRBOTF7 \
120 AIRF7 \
121 ALIENFLIGHTNGF7 \
122 CLRACINGF7 \
123 ELINF722 \
124 EXF722DUAL \
125 FLYWOOF7DUAL \
126 FOXEERF722DUAL \
127 FPVM_BETAFLIGHTF7 \
128 JHEF7DUAL \
129 KAKUTEF7 \
130 KAKUTEF7MINI \
131 LUXMINIF7 \
132 MAMBAF722 \
133 MATEKF722 \
134 MATEKF722SE \
135 MERAKRCF722 \
136 NERO \
137 OMNIBUSF7NANOV7 \
138 OMNIBUSF7V2 \
139 RUSHCORE7 \
140 SPEEDYBEEF7 \
141 SPRACINGF7DUAL \
142 TMOTORF7 \
143 TRANSTECF7 \
144 AIRBOTF4 \
145 AIRBOTF4SD \
146 BLUEJAYF4 \
147 CRAZYBEEF4DX \
148 CRAZYBEEF4FS \
149 DALRCF405 \
150 FOXEERF405 \
151 HAKRCF405 \
152 KAKUTEF4 \
153 NOX \
154 OMNINXT4 \
155 REVO \
156 DALRCF722DUAL \
157 OMNINXT7 \
158 BETAFLIGHTF4 \
159 EXUAVF4PRO \
160 FRSKYF4 \
161 KIWIF4 \
162 KIWIF4V2 \
163 PLUMF4 \
164 SKYZONEF405 \
165 XRACERF4 \
166 AG3XF7 \
167 YUPIF7 \
168 PYRODRONEF4 \
169 AG3XF4 \
170 COLIBRI \
171 ELLE0 \
172 F4BY \
173 FF_FORTINIF4 \
174 FF_FORTINIF4_REV03 \
175 FF_PIKOF4 \
176 FF_PIKOF4OSD \
177 FURYF4 \
178 LUXF4OSD \
179 REVOLT \
180 REVOLTOSD \
181 REVONANO \
182 SOULF4 \
183 SPARKY2 \
184 SPRACINGF4EVO \
185 SPRACINGF4NEO \
186 STM32F411DISCOVERY \
187 STM32F4DISCOVERY \
188 UAVPNG030MINI \
189 WORMFC \
190 YUPIF4 \
191 ANYFCF7 \
192 ANYFCM7 \
193 HAKRCF722 \
194 KAKUTEF7V2 \
195 NUCLEOF722 \
196 OMNIBUSF7 \
197 ALIENWHOOPF4 \
198 FISHDRONEF4 \
199 PIRXF4 \
200 PODIUMF4 \
201 STACKX \
202 VRRACE \
203 KROOZX
205 CI_TARGETS := $(filter-out $(LEGACY_TARGETS) $(UNSUPPORTED_TARGETS), $(VALID_TARGETS))
207 TARGETS_TOTAL := $(words $(CI_TARGETS))
208 TARGET_GROUPS := 3
209 TARGETS_PER_GROUP := $(shell expr $(TARGETS_TOTAL) / $(TARGET_GROUPS) )
211 ST := 1
212 ET := $(shell expr $(ST) + $(TARGETS_PER_GROUP))
213 GROUP_1_TARGETS := $(wordlist $(ST), $(ET), $(CI_TARGETS))
215 ST := $(shell expr $(ET) + 1)
216 ET := $(shell expr $(ST) + $(TARGETS_PER_GROUP))
217 GROUP_2_TARGETS := $(wordlist $(ST), $(ET), $(CI_TARGETS))
219 GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS), $(CI_TARGETS))