4 from catalyst import builder
5 from catalyst.support import *
7 class generic_mips(builder.generic):
8 "Abstract base class for all mips builders [Big-endian]"
9 def __init__(self,myspec):
10 builder.generic.__init__(self,myspec)
11 self.settings["CHROOT"]="chroot"
12 self.settings["CHOST"]="mips-unknown-linux-gnu"
14 class generic_mipsel(builder.generic):
15 "Abstract base class for all mipsel builders [Little-endian]"
16 def __init__(self,myspec):
17 builder.generic.__init__(self,myspec)
18 self.settings["CHROOT"]="chroot"
19 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
21 class generic_mips64(builder.generic):
22 "Abstract base class for all mips64 builders [Big-endian]"
23 def __init__(self,myspec):
24 builder.generic.__init__(self,myspec)
25 self.settings["CHROOT"]="chroot"
26 self.settings["CHOST"]="mips64-unknown-linux-gnu"
28 class generic_mips64el(builder.generic):
29 "Abstract base class for all mips64el builders [Little-endian]"
30 def __init__(self,myspec):
31 builder.generic.__init__(self,myspec)
32 self.settings["CHROOT"]="chroot"
33 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
35 class arch_mips1(generic_mips):
36 "Builder class for MIPS I [Big-endian]"
37 def __init__(self,myspec):
38 generic_mips.__init__(self,myspec)
39 self.settings["CFLAGS"]="-O2 -march=mips1 -mabi=32 -mplt -pipe"
41 class arch_mips32(generic_mips):
42 "Builder class for MIPS 32 [Big-endian]"
43 def __init__(self,myspec):
44 generic_mips.__init__(self,myspec)
45 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
47 class arch_mips32_softfloat(generic_mips):
48 "Builder class for MIPS 32 [Big-endian softfloat]"
49 def __init__(self,myspec):
50 generic_mips.__init__(self,myspec)
51 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
52 self.settings["CHOST"]="mips-softfloat-linux-gnu"
54 class arch_mips32r2(generic_mips):
55 "Builder class for MIPS 32r2 [Big-endian]"
56 def __init__(self,myspec):
57 generic_mips.__init__(self,myspec)
58 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
60 class arch_mips32r2_softfloat(generic_mips):
61 "Builder class for MIPS 32r2 [Big-endian softfloat]"
62 def __init__(self,myspec):
63 generic_mips.__init__(self,myspec)
64 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
65 self.settings["CHOST"]="mips-softfloat-linux-gnu"
67 class arch_mips3(generic_mips):
68 "Builder class for MIPS III [Big-endian]"
69 def __init__(self,myspec):
70 generic_mips.__init__(self,myspec)
71 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
73 class arch_mips3_n32(generic_mips64):
74 "Builder class for MIPS III [Big-endian N32]"
75 def __init__(self,myspec):
76 generic_mips64.__init__(self,myspec)
77 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=n32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
79 class arch_mips3_n64(generic_mips64):
80 "Builder class for MIPS III [Big-endian N64]"
81 def __init__(self,myspec):
82 generic_mips64.__init__(self,myspec)
83 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=64 -mfix-r4000 -mfix-r4400 -pipe"
85 class arch_mips3_multilib(generic_mips64):
86 "Builder class for MIPS III [Big-endian multilib]"
87 def __init__(self,myspec):
88 generic_mips64.__init__(self,myspec)
89 self.settings["CFLAGS"]="-O2 -march=mips3 -mplt -mfix-r4000 -mfix-r4400 -pipe"
91 class arch_mips4(generic_mips):
92 "Builder class for MIPS IV [Big-endian]"
93 def __init__(self,myspec):
94 generic_mips.__init__(self,myspec)
95 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=32 -mplt -pipe"
97 class arch_mips4_n32(generic_mips64):
98 "Builder class for MIPS IV [Big-endian N32]"
99 def __init__(self,myspec):
100 generic_mips64.__init__(self,myspec)
101 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=n32 -mplt -pipe"
103 class arch_mips4_n64(generic_mips64):
104 "Builder class for MIPS IV [Big-endian N64]"
105 def __init__(self,myspec):
106 generic_mips64.__init__(self,myspec)
107 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=64 -pipe"
109 class arch_mips4_multilib(generic_mips64):
110 "Builder class for MIPS IV [Big-endian multilib]"
111 def __init__(self,myspec):
112 generic_mips64.__init__(self,myspec)
113 self.settings["CFLAGS"]="-O2 -march=mips4 -mplt -pipe"
115 class arch_mips4_r10k(generic_mips):
116 "Builder class for MIPS IV R10k [Big-endian]"
117 def __init__(self,myspec):
118 generic_mips.__init__(self,myspec)
119 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=32 -mplt -pipe"
121 class arch_mips4_r10k_n32(generic_mips64):
122 "Builder class for MIPS IV R10k [Big-endian N32]"
123 def __init__(self,myspec):
124 generic_mips64.__init__(self,myspec)
125 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=n32 -mplt -pipe"
127 class arch_mips4_r10k_n64(generic_mips64):
128 "Builder class for MIPS IV R10k [Big-endian N64]"
129 def __init__(self,myspec):
130 generic_mips64.__init__(self,myspec)
131 self.settings["CFLAGS"]="-O2 -march=r10k -mabi=64 -pipe"
133 class arch_mips4_r10k_multilib(generic_mips64):
134 "Builder class for MIPS IV R10k [Big-endian multilib]"
135 def __init__(self,myspec):
136 generic_mips64.__init__(self,myspec)
137 self.settings["CFLAGS"]="-O2 -march=r10k -mplt -pipe"
139 class arch_mips64(generic_mips):
140 "Builder class for MIPS 64 [Big-endian]"
141 def __init__(self,myspec):
142 generic_mips.__init__(self,myspec)
143 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -mplt -pipe"
145 class arch_mips64_n32(generic_mips64):
146 "Builder class for MIPS 64 [Big-endian N32]"
147 def __init__(self,myspec):
148 generic_mips64.__init__(self,myspec)
149 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -mplt -pipe"
151 class arch_mips64_n64(generic_mips64):
152 "Builder class for MIPS 64 [Big-endian N64]"
153 def __init__(self,myspec):
154 generic_mips64.__init__(self,myspec)
155 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
157 class arch_mips64_multilib(generic_mips64):
158 "Builder class for MIPS 64 [Big-endian multilib]"
159 def __init__(self,myspec):
160 generic_mips64.__init__(self,myspec)
161 self.settings["CFLAGS"]="-O2 -march=mips64 -mplt -pipe"
163 class arch_mips64r2(generic_mips):
164 "Builder class for MIPS 64r2 [Big-endian]"
165 def __init__(self,myspec):
166 generic_mips.__init__(self,myspec)
167 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
169 class arch_mips64r2_n32(generic_mips64):
170 "Builder class for MIPS 64r2 [Big-endian N32]"
171 def __init__(self,myspec):
172 generic_mips64.__init__(self,myspec)
173 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
175 class arch_mips64r2_n64(generic_mips64):
176 "Builder class for MIPS 64r2 [Big-endian N64]"
177 def __init__(self,myspec):
178 generic_mips64.__init__(self,myspec)
179 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
181 class arch_mips64r2_multilib(generic_mips64):
182 "Builder class for MIPS 64r2 [Big-endian multilib]"
183 def __init__(self,myspec):
184 generic_mips64.__init__(self,myspec)
185 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mplt -pipe"
187 class arch_mipsel1(generic_mipsel):
188 "Builder class for MIPS I [Little-endian]"
189 def __init__(self,myspec):
190 generic_mipsel.__init__(self,myspec)
191 self.settings["CFLAGS"]="-O2 -march=mips1 -mabi=32 -mplt -pipe"
193 class arch_mips32el(generic_mipsel):
194 "Builder class for MIPS 32 [Little-endian]"
195 def __init__(self,myspec):
196 generic_mipsel.__init__(self,myspec)
197 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
199 class arch_mips32el_softfloat(generic_mipsel):
200 "Builder class for MIPS 32 [Little-endian softfloat]"
201 def __init__(self,myspec):
202 generic_mipsel.__init__(self,myspec)
203 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -mplt -pipe"
204 self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
206 class arch_mips32r2el(generic_mipsel):
207 "Builder class for MIPS 32r2 [Little-endian]"
208 def __init__(self,myspec):
209 generic_mipsel.__init__(self,myspec)
210 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
212 class arch_mips32r2el_softfloat(generic_mipsel):
213 "Builder class for MIPS 32r2 [Little-endian softfloat]"
214 def __init__(self,myspec):
215 generic_mipsel.__init__(self,myspec)
216 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -mplt -pipe"
217 self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
219 class arch_mipsel3(generic_mipsel):
220 "Builder class for MIPS III [Little-endian]"
221 def __init__(self,myspec):
222 generic_mipsel.__init__(self,myspec)
223 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
225 class arch_mipsel3_n32(generic_mips64el):
226 "Builder class for MIPS III [Little-endian N32]"
227 def __init__(self,myspec):
228 generic_mips64el.__init__(self,myspec)
229 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
231 class arch_mipsel3_n64(generic_mips64el):
232 "Builder class for MIPS III [Little-endian N64]"
233 def __init__(self,myspec):
234 generic_mips64el.__init__(self,myspec)
235 self.settings["CFLAGS"]="-O2 -march=mips3 -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
237 class arch_mipsel3_multilib(generic_mips64el):
238 "Builder class for MIPS III [Little-endian multilib]"
239 def __init__(self,myspec):
240 generic_mips64el.__init__(self,myspec)
241 self.settings["CFLAGS"]="-O2 -march=mips3 -mplt -Wa,-mfix-loongson2f-nop -pipe"
243 class arch_loongson2e(generic_mipsel):
244 "Builder class for Loongson 2E [Little-endian]"
245 def __init__(self,myspec):
246 generic_mipsel.__init__(self,myspec)
247 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=32 -mplt -pipe"
249 class arch_loongson2e_n32(generic_mips64el):
250 "Builder class for Loongson 2E [Little-endian N32]"
251 def __init__(self,myspec):
252 generic_mips64el.__init__(self,myspec)
253 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=n32 -mplt -pipe"
255 class arch_loongson2e_n64(generic_mips64el):
256 "Builder class for Loongson 2E [Little-endian N64]"
257 def __init__(self,myspec):
258 generic_mips64el.__init__(self,myspec)
259 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=64 -pipe"
261 class arch_loongson2e_multilib(generic_mips64el):
262 "Builder class for Loongson 2E [Little-endian multilib]"
263 def __init__(self,myspec):
264 generic_mips64el.__init__(self,myspec)
265 self.settings["CFLAGS"]="-O2 -march=loongson2e -mplt -pipe"
267 class arch_loongson2f(generic_mipsel):
268 "Builder class for Loongson 2F [Little-endian]"
269 def __init__(self,myspec):
270 generic_mipsel.__init__(self,myspec)
271 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
273 class arch_loongson2f_n32(generic_mips64el):
274 "Builder class for Loongson 2F [Little-endian N32]"
275 def __init__(self,myspec):
276 generic_mips64el.__init__(self,myspec)
277 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=n32 -mplt -Wa,-mfix-loongson2f-nop -pipe"
279 class arch_loongson2f_n64(generic_mips64el):
280 "Builder class for Loongson 2F [Little-endian N64]"
281 def __init__(self,myspec):
282 generic_mips64el.__init__(self,myspec)
283 self.settings["CFLAGS"]="-O2 -march=loongson2f -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
285 class arch_loongson2f_multilib(generic_mips64el):
286 "Builder class for Loongson 2F [Little-endian multilib]"
287 def __init__(self,myspec):
288 generic_mips64el.__init__(self,myspec)
289 self.settings["CFLAGS"]="-O2 -march=loongson2f -mplt -Wa,-mfix-loongson2f-nop -pipe"
291 class arch_mipsel4(generic_mipsel):
292 "Builder class for MIPS IV [Little-endian]"
293 def __init__(self,myspec):
294 generic_mipsel.__init__(self,myspec)
295 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=32 -mplt -pipe"
297 class arch_mipsel4_n32(generic_mips64el):
298 "Builder class for MIPS IV [Little-endian N32]"
299 def __init__(self,myspec):
300 generic_mips64el.__init__(self,myspec)
301 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=n32 -mplt -pipe"
303 class arch_mipsel4_n64(generic_mips64el):
304 "Builder class for MIPS IV [Little-endian N64]"
305 def __init__(self,myspec):
306 generic_mips64el.__init__(self,myspec)
307 self.settings["CFLAGS"]="-O2 -march=mips4 -mabi=64 -pipe"
309 class arch_mipsel4_multilib(generic_mips64el):
310 "Builder class for MIPS IV [Little-endian multilib]"
311 def __init__(self,myspec):
312 generic_mips64el.__init__(self,myspec)
313 self.settings["CFLAGS"]="-O2 -march=mips4 -mplt -pipe"
315 class arch_mips64el(generic_mipsel):
316 "Builder class for MIPS 64 [Little-endian]"
317 def __init__(self,myspec):
318 generic_mipsel.__init__(self,myspec)
319 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -mplt -pipe"
321 class arch_mips64el_n32(generic_mips64el):
322 "Builder class for MIPS 64 [Little-endian N32]"
323 def __init__(self,myspec):
324 generic_mips64el.__init__(self,myspec)
325 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -mplt -pipe"
327 class arch_mips64el_n64(generic_mips64el):
328 "Builder class for MIPS 64 [Little-endian N64]"
329 def __init__(self,myspec):
330 generic_mips64el.__init__(self,myspec)
331 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
333 class arch_mips64el_multilib(generic_mips64el):
334 "Builder class for MIPS 64 [Little-endian multilib]"
335 def __init__(self,myspec):
336 generic_mips64el.__init__(self,myspec)
337 self.settings["CFLAGS"]="-O2 -march=mips64 -mplt -pipe"
339 class arch_mips64r2el(generic_mipsel):
340 "Builder class for MIPS 64r2 [Little-endian]"
341 def __init__(self,myspec):
342 generic_mipsel.__init__(self,myspec)
343 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -mplt -pipe"
345 class arch_mips64r2el_n32(generic_mips64el):
346 "Builder class for MIPS 64r2 [Little-endian N32]"
347 def __init__(self,myspec):
348 generic_mips64el.__init__(self,myspec)
349 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -mplt -pipe"
351 class arch_mips64r2el_n64(generic_mips64el):
352 "Builder class for MIPS 64r2 [Little-endian N64]"
353 def __init__(self,myspec):
354 generic_mips64el.__init__(self,myspec)
355 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
357 class arch_mips64r2el_multilib(generic_mips64el):
358 "Builder class for MIPS 64r2 [Little-endian multilib]"
359 def __init__(self,myspec):
360 generic_mips64el.__init__(self,myspec)
361 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mplt -pipe"
363 class arch_loongson3a(generic_mipsel):
364 "Builder class for Loongson 3A [Little-endian]"
365 def __init__(self,myspec):
366 generic_mipsel.__init__(self,myspec)
367 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=32 -mplt -pipe"
369 class arch_loongson3a_n32(generic_mips64el):
370 "Builder class for Loongson 3A [Little-endian N32]"
371 def __init__(self,myspec):
372 generic_mips64el.__init__(self,myspec)
373 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=n32 -mplt -pipe"
375 class arch_loongson3a_n64(generic_mips64el):
376 "Builder class for Loongson 3A [Little-endian N64]"
377 def __init__(self,myspec):
378 generic_mips64el.__init__(self,myspec)
379 self.settings["CFLAGS"]="-O2 -march=loongson3a -mabi=64 -pipe"
381 class arch_loongson3a_multilib(generic_mips64el):
382 "Builder class for Loongson 3A [Little-endian multilib]"
383 def __init__(self,myspec):
384 generic_mips64el.__init__(self,myspec)
385 self.settings["CFLAGS"]="-O2 -march=loongson3a -mplt -pipe"
387 class arch_cobalt(generic_mipsel):
388 "Builder class for cobalt [Little-endian]"
389 def __init__(self,myspec):
390 generic_mipsel.__init__(self,myspec)
391 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -mplt -pipe"
392 self.settings["HOSTUSE"]=["cobalt"]
394 class arch_cobalt_n32(generic_mips64el):
395 "Builder class for cobalt [Little-endian N32]"
396 def __init__(self,myspec):
397 generic_mips64el.__init__(self,myspec)
398 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -mplt -pipe"
399 self.settings["HOSTUSE"]=["cobalt"]
402 "Inform main catalyst program of the contents of this plugin."
404 "cobalt" : arch_cobalt,
405 "cobalt_n32" : arch_cobalt_n32,
407 "mips1" : arch_mips1,
408 "mips32" : arch_mips32,
409 "mips32_softfloat" : arch_mips32_softfloat,
410 "mips32r2" : arch_mips32r2,
411 "mips32r2_softfloat" : arch_mips32r2_softfloat,
412 "mips3" : arch_mips3,
413 "mips3_n32" : arch_mips3_n32,
414 "mips3_n64" : arch_mips3_n64,
415 "mips3_multilib" : arch_mips3_multilib,
416 "mips4" : arch_mips4,
417 "mips4_n32" : arch_mips4_n32,
418 "mips4_n64" : arch_mips4_n64,
419 "mips4_multilib" : arch_mips4_multilib,
420 "mips4_r10k" : arch_mips4_r10k,
421 "mips4_r10k_n32" : arch_mips4_r10k_n32,
422 "mips4_r10k_n64" : arch_mips4_r10k_n64,
423 "mips4_r10k_multilib" : arch_mips4_r10k_multilib,
424 "mips64" : arch_mips64,
425 "mips64_n32" : arch_mips64_n32,
426 "mips64_n64" : arch_mips64_n64,
427 "mips64_multilib" : arch_mips64_multilib,
428 "mips64r2" : arch_mips64r2,
429 "mips64r2_n32" : arch_mips64r2_n32,
430 "mips64r2_n64" : arch_mips64r2_n64,
431 "mips64r2_multilib" : arch_mips64r2_multilib,
432 "mipsel" : arch_mipsel1,
433 "mipsel1" : arch_mipsel1,
434 "mips32el" : arch_mips32el,
435 "mips32el_softfloat" : arch_mips32el_softfloat,
436 "mips32r2el" : arch_mips32r2el,
437 "mips32r2el_softfloat" : arch_mips32r2el_softfloat,
438 "mipsel3" : arch_mipsel3,
439 "mipsel3_n32" : arch_mipsel3_n32,
440 "mipsel3_n64" : arch_mipsel3_n64,
441 "mipsel3_multilib" : arch_mipsel3_multilib,
442 "mipsel4" : arch_mipsel4,
443 "mipsel4_n32" : arch_mipsel4_n32,
444 "mipsel4_n64" : arch_mipsel4_n64,
445 "mipsel4_multilib" : arch_mipsel4_multilib,
446 "mips64el" : arch_mips64el,
447 "mips64el_n32" : arch_mips64el_n32,
448 "mips64el_n64" : arch_mips64el_n64,
449 "mips64el_multilib" : arch_mips64el_multilib,
450 "mips64r2el" : arch_mips64r2el,
451 "mips64r2el_n32" : arch_mips64r2el_n32,
452 "mips64r2el_n64" : arch_mips64r2el_n64,
453 "mips64r2el_multilib" : arch_mips64r2el_multilib,
454 "loongson2e" : arch_loongson2e,
455 "loongson2e_n32" : arch_loongson2e_n32,
456 "loongson2e_n64" : arch_loongson2e_n64,
457 "loongson2e_multilib" : arch_loongson2e_multilib,
458 "loongson2f" : arch_loongson2f,
459 "loongson2f_n32" : arch_loongson2f_n32,
460 "loongson2f_n64" : arch_loongson2f_n64,
461 "loongson2f_multilib" : arch_loongson2f_multilib,
462 "loongson3a" : arch_loongson3a,
463 "loongson3a_n32" : arch_loongson3a_n32,
464 "loongson3a_n64" : arch_loongson3a_n64,
465 "loongson3a_multilib" : arch_loongson3a_multilib,
466 }, ("mips","mips64"))