Added profile / rateprofile info to 'get'.
[betaflight.git] / make / targets.mk
blob639fe740d6d255aef2f4c7b4b0001330214a4839
1 OFFICIAL_TARGETS = ALIENFLIGHTF3 ALIENFLIGHTF4 ANYFCF7 BETAFLIGHTF3 BLUEJAYF4 FURYF4 REVO SIRINFPV SPARKY SPRACINGF3 SPRACINGF3EVO SPRACINGF3NEO SPRACINGF4EVO SPRACINGF7DUAL STM32F3DISCOVERY
2 ALT_TARGETS = $(sort $(filter-out target, $(basename $(notdir $(wildcard $(ROOT)/src/main/target/*/*.mk)))))
3 NOBUILD_TARGETS = $(sort $(filter-out target, $(basename $(notdir $(wildcard $(ROOT)/src/main/target/*/*.nomk)))))
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 $(NOBUILD_TARGETS), $(VALID_TARGETS))
13 ifeq ($(filter $(TARGET),$(NOBUILD_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 UNSUPPORTED_TARGETS := \
19 KISSFCV2F7 \
20 AFROMINI \
21 ALIENFLIGHTF1 \
22 BEEBRAIN \
23 CC3D \
24 CC3D_OPBL \
25 CJMCU \
26 MICROSCISKY \
27 NAZE
29 SUPPORTED_TARGETS := $(filter-out $(UNSUPPORTED_TARGETS), $(VALID_TARGETS))
31 GROUP_1_TARGETS := \
32 AIORACERF3 \
33 AIR32 \
34 AIRBOTF4 \
35 AIRBOTF4SD \
36 AIRHEROF3 \
37 ALIENFLIGHTF3 \
38 ALIENFLIGHTF4 \
39 ALIENFLIGHTNGF7 \
40 ALIENWHOOPF4 \
41 ALIENWHOOPF7 \
42 ANYFCF7 \
43 BEEBRAIN_V2D \
44 BEEBRAIN_V2F \
45 BEEROTORF4 \
46 BETAFLIGHTF3 \
47 BETAFLIGHTF4 \
48 BLUEJAYF4 \
49 CHEBUZZF3 \
50 CLRACINGF4 \
51 COLIBRI \
52 COLIBRI_OPBL \
53 COLIBRI_RACE \
55 GROUP_2_TARGETS := \
56 DOGE \
57 DYSF4PRO \
58 EACHIF3 \
59 ELLE0 \
60 F4BY \
61 FISHDRONEF4 \
62 FLIP32F3OSD \
63 FF_ACROWHOOPSP \
64 FF_FORTINIF4 \
65 FF_KOMBINI \
66 FF_PIKOBLX \
67 FF_PIKOF4 \
68 FF_RADIANCE \
69 FPVM_BETAFLIGHTF7 \
70 FRSKYF3 \
71 FRSKYF4 \
72 FURYF3 \
73 FURYF3OSD \
74 FURYF4 \
75 FURYF4OSD \
76 FURYF7 \
77 IMPULSERCF3 \
78 IRCFUSIONF3 \
79 ISHAPEDF3 \
80 KAKUTEF4 \
81 KAKUTEF7 \
82 KISSCC \
83 KISSFC \
84 KIWIF4 \
85 KIWIF4V2 \
86 KROOZX
88 GROUP_3_TARGETS := \
89 LUX_RACE \
90 LUXV2_RACE \
91 LUXF4OSD \
92 MLTEMPF4 \
93 MLTYPHF4 \
94 MOTOLAB \
95 MULTIFLITEPICO \
96 NERO \
97 NUCLEOF7 \
98 OMNIBUS \
99 OMNIBUSF4 \
100 OMNIBUSF4SD \
101 OMNIBUSF7 \
102 OMNIBUSF7V2 \
103 OMNINXT4 \
104 OMNINXT7 \
105 PLUMF4 \
106 PODIUMF4 \
107 RACEBASE \
108 RCEXPLORERF3 \
109 RG_SSD_F3 \
110 REVO \
111 REVO_OPBL \
112 REVOLT \
113 REVONANO \
114 RMDO
116 GROUP_4_TARGETS := \
117 SINGULARITY \
118 SIRINFPV \
119 SOULF4 \
120 SPARKY \
121 SPARKY2 \
122 SPRACINGF3 \
123 SPRACINGF3EVO \
124 SPRACINGF3MINI \
125 SPRACINGF3MQ \
126 SPRACINGF3NEO \
127 SPRACINGF3OSD \
128 SPRACINGF4EVO \
129 SPRACINGF4NEO \
130 SPRACINGF7DUAL \
131 STM32F3DISCOVERY \
132 TINYBEEF3 \
133 TINYFISH \
134 VRRACE \
135 XRACERF4 \
136 X_RACERSPI \
137 ZCOREF3
139 GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS) $(GROUP_3_TARGETS) $(GROUP_4_TARGETS), $(SUPPORTED_TARGETS))
141 ifeq ($(filter $(TARGET),$(ALT_TARGETS)), $(TARGET))
142 BASE_TARGET := $(firstword $(subst /,, $(subst ./src/main/target/,, $(dir $(wildcard $(ROOT)/src/main/target/*/$(TARGET).mk)))))
143 include $(ROOT)/src/main/target/$(BASE_TARGET)/$(TARGET).mk
144 else
145 BASE_TARGET := $(TARGET)
146 endif
148 ifeq ($(filter $(TARGET),$(OPBL_TARGETS)), $(TARGET))
149 OPBL = yes
150 endif
152 ifeq ($(filter $(TARGET),$(OSD_SLAVE_TARGETS)), $(TARGET))
153 # build an OSD SLAVE
154 OSD_SLAVE = yes
155 else
156 # build an FC
157 FC = yes
158 endif
160 # silently ignore if the file is not present. Allows for target specific.
161 -include $(ROOT)/src/main/target/$(BASE_TARGET)/target.mk
163 F4_TARGETS := $(F405_TARGETS) $(F411_TARGETS) $(F446_TARGETS)
164 F7_TARGETS := $(F7X2RE_TARGETS) $(F7X5XE_TARGETS) $(F7X5XG_TARGETS) $(F7X5XI_TARGETS) $(F7X6XG_TARGETS)
166 ifeq ($(filter $(TARGET),$(VALID_TARGETS)),)
167 $(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS). Have you prepared a valid target.mk?)
168 endif
170 ifeq ($(filter $(TARGET),$(F1_TARGETS) $(F3_TARGETS) $(F4_TARGETS) $(F7_TARGETS) $(SITL_TARGETS)),)
171 $(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?)
172 endif
174 ifeq ($(TARGET),$(filter $(TARGET),$(F3_TARGETS)))
175 TARGET_MCU := STM32F3
177 else ifeq ($(TARGET),$(filter $(TARGET), $(F4_TARGETS)))
178 TARGET_MCU := STM32F4
180 else ifeq ($(TARGET),$(filter $(TARGET), $(F7_TARGETS)))
181 TARGET_MCU := STM32F7
183 else ifeq ($(TARGET),$(filter $(TARGET), $(SITL_TARGETS)))
184 TARGET_MCU := SITL
185 SIMULATOR_BUILD = yes
187 else ifeq ($(TARGET),$(filter $(TARGET), $(F1_TARGETS)))
188 TARGET_MCU := STM32F1
189 else
190 $(error Unknown target MCU specified.)
191 endif
193 ifneq ($(BASE_TARGET), $(TARGET))
194 TARGET_FLAGS := $(TARGET_FLAGS) -D$(BASE_TARGET)
195 endif
197 TARGET_FLAGS := $(TARGET_FLAGS) -D$(TARGET_MCU)