@@ -31,6 +31,8 @@ pub enum Target {
3131 HASWELL ,
3232 SKYLAKEX ,
3333 ATOM ,
34+ COOPERLAKE ,
35+ SAPPHIRERAPIDS ,
3436
3537 // X86/X86_64 AMD
3638 ATHLON ,
@@ -58,6 +60,7 @@ pub enum Target {
5860 POWER7 ,
5961 POWER8 ,
6062 POWER9 ,
63+ POWER10 ,
6164 PPCG4 ,
6265 PPC970 ,
6366 PPC970MP ,
@@ -71,6 +74,7 @@ pub enum Target {
7174 MIPS24K ,
7275
7376 // MIPS64
77+ MIPS64_GENERIC ,
7478 SICORTEX ,
7579 LOONGSON3A ,
7680 LOONGSON3B ,
@@ -98,17 +102,46 @@ pub enum Target {
98102 CORTEXA57 ,
99103 CORTEXA72 ,
100104 CORTEXA73 ,
105+ CORTEXA510 ,
106+ CORTEXA710 ,
107+ CORTEXX1 ,
108+ CORTEXX2 ,
101109 NEOVERSEN1 ,
110+ NEOVERSEV1 ,
111+ NEOVERSEN2 ,
112+ CORTEXA55 ,
102113 EMAG8180 ,
103114 FALKOR ,
104115 THUNDERX ,
105116 THUNDERX2T99 ,
106117 TSV110 ,
118+ THUNDERX3T110 ,
119+ VORTEX ,
120+ A64FX ,
121+ ARMV8SVE ,
122+ FT2000 ,
107123
108124 // System Z
109125 ZARCH_GENERIC ,
110126 Z13 ,
111127 Z14 ,
128+
129+ // RISC-V 64:
130+ RISCV64_GENERIC ,
131+ C910V ,
132+
133+ // LOONGARCH64:
134+ LOONGSONGENERIC ,
135+ LOONGSON3R5 ,
136+ LOONGSON2K1000 ,
137+
138+ // Elbrus E2000:
139+ E2K ,
140+
141+ // Alpha
142+ EV4 ,
143+ EV5 ,
144+ EV6 ,
112145}
113146
114147impl FromStr for Target {
@@ -132,6 +165,8 @@ impl FromStr for Target {
132165 "haswell" => Self :: HASWELL ,
133166 "skylakex" => Self :: SKYLAKEX ,
134167 "atom" => Self :: ATOM ,
168+ "cooperlake" => Self :: COOPERLAKE ,
169+ "sapphirerapids" => Self :: SAPPHIRERAPIDS ,
135170
136171 // X86/X86_64 AMD
137172 "athlon" => Self :: ATHLON ,
@@ -159,6 +194,7 @@ impl FromStr for Target {
159194 "power7" => Self :: POWER7 ,
160195 "power8" => Self :: POWER8 ,
161196 "power9" => Self :: POWER9 ,
197+ "power10" => Self :: POWER10 ,
162198 "ppcg4" => Self :: PPCG4 ,
163199 "ppc970" => Self :: PPC970 ,
164200 "ppc970mp" => Self :: PPC970MP ,
@@ -172,6 +208,7 @@ impl FromStr for Target {
172208 "mips24k" => Self :: MIPS24K ,
173209
174210 // MIPS64
211+ "mips64_generic" => Self :: MIPS64_GENERIC ,
175212 "sicortex" => Self :: SICORTEX ,
176213 "loongson3a" => Self :: LOONGSON3A ,
177214 "loongson3b" => Self :: LOONGSON3B ,
@@ -199,18 +236,47 @@ impl FromStr for Target {
199236 "cortexa57" => Self :: CORTEXA57 ,
200237 "cortexa72" => Self :: CORTEXA72 ,
201238 "cortexa73" => Self :: CORTEXA73 ,
239+ "cortexa510" => Self :: CORTEXA510 ,
240+ "cortexa710" => Self :: CORTEXA710 ,
241+ "cortexx1" => Self :: CORTEXX1 ,
242+ "cortexx2" => Self :: CORTEXX2 ,
202243 "neoversen1" => Self :: NEOVERSEN1 ,
244+ "neoversev1" => Self :: NEOVERSEV1 ,
245+ "neoversen2" => Self :: NEOVERSEN2 ,
246+ "cortexa55" => Self :: CORTEXA55 ,
203247 "emag8180" => Self :: EMAG8180 ,
204248 "falkor" => Self :: FALKOR ,
205249 "thunderx" => Self :: THUNDERX ,
206250 "thunderx2t99" => Self :: THUNDERX2T99 ,
207251 "tsv110" => Self :: TSV110 ,
252+ "thunderx3t110" => Self :: THUNDERX3T110 ,
253+ "vortex" => Self :: VORTEX ,
254+ "a64fx" => Self :: A64FX ,
255+ "armv8sve" => Self :: ARMV8SVE ,
256+ "ft2000" => Self :: FT2000 ,
208257
209258 // System Z
210259 "zarch_generic" => Self :: ZARCH_GENERIC ,
211260 "z13" => Self :: Z13 ,
212261 "z14" => Self :: Z14 ,
213262
263+ // RISC-V 64:
264+ "riscv64_generic" => Self :: RISCV64_GENERIC ,
265+ "c910v" => Self :: C910V ,
266+
267+ // LOONGARCH64:
268+ "loongsongeneric" => Self :: LOONGSONGENERIC ,
269+ "loongson3r5" => Self :: LOONGSON3R5 ,
270+ "loongson2k1000" => Self :: LOONGSON2K1000 ,
271+
272+ // Elbrus E2000:
273+ "e2k" => Self :: E2K ,
274+
275+ // Alpha
276+ "ev4" => Self :: EV4 ,
277+ "ev5" => Self :: EV5 ,
278+ "ev6" => Self :: EV6 ,
279+
214280 _ => {
215281 return Err ( Error :: UnsupportedTarget {
216282 target : s. to_string ( ) ,
@@ -293,6 +359,13 @@ impl Configure {
293359 if let Some ( target) = self . target . as_ref ( ) {
294360 args. push ( format ! ( "TARGET={:?}" , target) )
295361 }
362+
363+ for name in [ "CC" , "FC" , "HOSTCC" ] {
364+ if let Ok ( value) = std:: env:: var ( format ! ( "OPENBLAS_{}" , name) ) {
365+ args. push ( format ! ( "{}={}" , name, value) ) ;
366+ }
367+ }
368+
296369 args
297370 }
298371
@@ -394,7 +467,7 @@ impl Configure {
394467 . stdout ( out)
395468 . stderr ( err)
396469 . args ( & self . make_args ( ) )
397- . args ( [ "libs" , "netlib" , "shared "] )
470+ . args ( [ "all " ] )
398471 . env_remove ( "TARGET" )
399472 . check_call ( )
400473 {
0 commit comments