3 from catalyst_support import *
5 class generic_mips(builder.generic):
6 "Abstract base class for all mips builders [Big-endian]"
7 def __init__(self,myspec):
8 builder.generic.__init__(self,myspec)
9 self.settings["CHROOT"]="chroot"
10 self.settings["CHOST"]="mips-unknown-linux-gnu"
12 class generic_mipsel(builder.generic):
13 "Abstract base class for all mipsel builders [Little-endian]"
14 def __init__(self,myspec):
15 builder.generic.__init__(self,myspec)
16 self.settings["CHROOT"]="chroot"
17 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
19 class generic_mips64(builder.generic):
20 "Abstract base class for all mips64 builders [Big-endian]"
21 def __init__(self,myspec):
22 builder.generic.__init__(self,myspec)
23 self.settings["CHROOT"]="chroot"
24 self.settings["CHOST"]="mips64-unknown-linux-gnu"
26 class generic_mips64el(builder.generic):
27 "Abstract base class for all mips64el builders [Little-endian]"
28 def __init__(self,myspec):
29 builder.generic.__init__(self,myspec)
30 self.settings["CHROOT"]="chroot"
31 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
33 class arch_mips1(generic_mips):
34 "Builder class for MIPS I [Big-endian]"
35 def __init__(self,myspec):
36 generic_mips.__init__(self,myspec)
37 self.settings["CFLAGS"]="-O2 -mips1 -mabi=32 -pipe"
39 class arch_mips32(generic_mips):
40 "Builder class for MIPS 32 [Big-endian]"
41 def __init__(self,myspec):
42 generic_mips.__init__(self,myspec)
43 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
45 class arch_mips32r2(generic_mips):
46 "Builder class for MIPS 32r2 [Big-endian]"
47 def __init__(self,myspec):
48 generic_mips.__init__(self,myspec)
49 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
51 class arch_mips3(generic_mips):
52 "Builder class for MIPS III [Big-endian]"
53 def __init__(self,myspec):
54 generic_mips.__init__(self,myspec)
55 self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -mfix-r4000 -mfix-r4400 -pipe"
57 class arch_mips3_n32(generic_mips64):
58 "Builder class for MIPS III [Big-endian N32]"
59 def __init__(self,myspec):
60 generic_mips64.__init__(self,myspec)
61 self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -mfix-r4000 -mfix-r4400 -pipe"
63 class arch_mips3_n64(generic_mips64):
64 "Builder class for MIPS III [Big-endian N64]"
65 def __init__(self,myspec):
66 generic_mips64.__init__(self,myspec)
67 self.settings["CFLAGS"]="-O2 -mips3 -mabi=64 -mfix-r4000 -mfix-r4400 -pipe"
69 class arch_mips3_multilib(generic_mips64):
70 "Builder class for MIPS III [Big-endian multilib]"
71 def __init__(self,myspec):
72 generic_mips64.__init__(self,myspec)
73 self.settings["CFLAGS"]="-O2 -mips3 -mfix-r4000 -mfix-r4400 -pipe"
75 class arch_mips4(generic_mips):
76 "Builder class for MIPS IV [Big-endian]"
77 def __init__(self,myspec):
78 generic_mips64.__init__(self,myspec)
79 self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
81 class arch_mips4_n32(generic_mips64):
82 "Builder class for MIPS IV [Big-endian N32]"
83 def __init__(self,myspec):
84 generic_mips64.__init__(self,myspec)
85 self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
87 class arch_mips4_n64(generic_mips64):
88 "Builder class for MIPS IV [Big-endian N64]"
89 def __init__(self,myspec):
90 generic_mips64.__init__(self,myspec)
91 self.settings["CFLAGS"]="-O2 -mips4 -mabi=64 -pipe"
93 class arch_mips4_multilib(generic_mips64):
94 "Builder class for MIPS IV [Big-endian multilib]"
95 def __init__(self,myspec):
96 generic_mips64.__init__(self,myspec)
97 self.settings["CFLAGS"]="-O2 -mips4 -pipe"
99 class arch_mips64(generic_mips):
100 "Builder class for MIPS 64 [Big-endian]"
101 def __init__(self,myspec):
102 generic_mips64.__init__(self,myspec)
103 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -pipe"
105 class arch_mips64_n32(generic_mips64):
106 "Builder class for MIPS 64 [Big-endian N32]"
107 def __init__(self,myspec):
108 generic_mips64.__init__(self,myspec)
109 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -pipe"
111 class arch_mips64_n64(generic_mips64):
112 "Builder class for MIPS 64 [Big-endian N64]"
113 def __init__(self,myspec):
114 generic_mips64.__init__(self,myspec)
115 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
117 class arch_mips64_multilib(generic_mips64):
118 "Builder class for MIPS 64 [Big-endian multilib]"
119 def __init__(self,myspec):
120 generic_mips64.__init__(self,myspec)
121 self.settings["CFLAGS"]="-O2 -march=mips64 -pipe"
123 class arch_mips64r2(generic_mips):
124 "Builder class for MIPS 64r2 [Big-endian]"
125 def __init__(self,myspec):
126 generic_mips.__init__(self,myspec)
127 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -pipe"
129 class arch_mips64r2_n32(generic_mips64):
130 "Builder class for MIPS 64r2 [Big-endian N32]"
131 def __init__(self,myspec):
132 generic_mips64.__init__(self,myspec)
133 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -pipe"
135 class arch_mips64r2_n64(generic_mips64):
136 "Builder class for MIPS 64r2 [Big-endian N64]"
137 def __init__(self,myspec):
138 generic_mips64.__init__(self,myspec)
139 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
141 class arch_mips64r2_multilib(generic_mips64):
142 "Builder class for MIPS 64r2 [Big-endian multilib]"
143 def __init__(self,myspec):
144 generic_mips64.__init__(self,myspec)
145 self.settings["CFLAGS"]="-O2 -march=mips64r2 -pipe"
147 class arch_mipsel1(generic_mipsel):
148 "Builder class for all MIPS I [Little-endian]"
149 def __init__(self,myspec):
150 generic_mipsel.__init__(self,myspec)
151 self.settings["CFLAGS"]="-O2 -mips1 -mabi=32 -pipe"
153 class arch_mips32el(generic_mipsel):
154 "Builder class for all MIPS 32 [Little-endian]"
155 def __init__(self,myspec):
156 generic_mipsel.__init__(self,myspec)
157 self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
159 class arch_mips32r2el(generic_mipsel):
160 "Builder class for all MIPS 32r2 [Little-endian]"
161 def __init__(self,myspec):
162 generic_mipsel.__init__(self,myspec)
163 self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
165 class arch_mipsel3(generic_mipsel):
166 "Builder class for all MIPS III [Little-endian]"
167 def __init__(self,myspec):
168 generic_mipsel.__init__(self,myspec)
169 self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -Wa,-mfix-loongson2f-nop -pipe"
171 class arch_mipsel3_n32(generic_mips64el):
172 "Builder class for all MIPS III [Little-endian N32]"
173 def __init__(self,myspec):
174 generic_mips64el.__init__(self,myspec)
175 self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -Wa,-mfix-loongson2f-nop -pipe"
177 class arch_mipsel3_n64(generic_mips64el):
178 "Builder class for MIPS III [Little-endian N64]"
179 def __init__(self,myspec):
180 generic_mips64el.__init__(self,myspec)
181 self.settings["CFLAGS"]="-O2 -mips3 -mabi=64 -Wa,-mfix-loongson2f-nop -pipe"
183 class arch_mipsel3_multilib(generic_mips64el):
184 "Builder class for MIPS III [Little-endian multilib]"
185 def __init__(self,myspec):
186 generic_mips64el.__init__(self,myspec)
187 self.settings["CFLAGS"]="-O2 -mips3 -Wa,-mfix-loongson2f-nop -pipe"
189 class arch_loongson2e(generic_mipsel):
190 "Builder class for all Loongson 2E [Little-endian]"
191 def __init__(self,myspec):
192 generic_mipsel.__init__(self,myspec)
193 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=32 -pipe -mplt"
195 class arch_loongson2e_n32(generic_mips64el):
196 "Builder class for all Loongson 2E [Little-endian N32]"
197 def __init__(self,myspec):
198 generic_mips64el.__init__(self,myspec)
199 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=n32 -pipe -mplt"
201 class arch_loongson2f(generic_mipsel):
202 "Builder class for all Loongson 2F [Little-endian]"
203 def __init__(self,myspec):
204 generic_mipsel.__init__(self,myspec)
205 self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
207 class arch_loongson2f_n32(generic_mips64el):
208 "Builder class for all Loongson 2F [Little-endian N32]"
209 def __init__(self,myspec):
210 generic_mips64el.__init__(self,myspec)
211 self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
213 class arch_mipsel4(generic_mipsel):
214 "Builder class for all MIPS IV [Little-endian]"
215 def __init__(self,myspec):
216 generic_mips64el.__init__(self,myspec)
217 self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
219 class arch_mipsel4_n32(generic_mips64el):
220 "Builder class for all MIPS IV [Little-endian N32]"
221 def __init__(self,myspec):
222 generic_mips64el.__init__(self,myspec)
223 self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
225 class arch_mipsel4_n64(generic_mips64el):
226 "Builder class for MIPS IV [Little-endian N64]"
227 def __init__(self,myspec):
228 generic_mips64el.__init__(self,myspec)
229 self.settings["CFLAGS"]="-O2 -mips4 -mabi=64 -pipe"
231 class arch_mipsel4_multilib(generic_mips64el):
232 "Builder class for MIPS IV [Little-endian multilib]"
233 def __init__(self,myspec):
234 generic_mips64el.__init__(self,myspec)
235 self.settings["CFLAGS"]="-O2 -mips4 -pipe"
237 class arch_mips64el(generic_mipsel):
238 "Builder class for all MIPS 64 [Little-endian]"
239 def __init__(self,myspec):
240 generic_mips64el.__init__(self,myspec)
241 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=32 -pipe"
243 class arch_mips64el_n32(generic_mips64el):
244 "Builder class for all MIPS 64 [Little-endian N32]"
245 def __init__(self,myspec):
246 generic_mips64el.__init__(self,myspec)
247 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=n32 -pipe"
249 class arch_mips64el_n64(generic_mips64el):
250 "Builder class for MIPS 64 [Little-endian N64]"
251 def __init__(self,myspec):
252 generic_mips64el.__init__(self,myspec)
253 self.settings["CFLAGS"]="-O2 -march=mips64 -mabi=64 -pipe"
255 class arch_mips64el_multilib(generic_mips64el):
256 "Builder class for MIPS 64 [Little-endian multilib]"
257 def __init__(self,myspec):
258 generic_mips64el.__init__(self,myspec)
259 self.settings["CFLAGS"]="-O2 -march=mips64 -pipe"
261 class arch_mips64r2el(generic_mipsel):
262 "Builder class for all MIPS 64r2 [Little-endian]"
263 def __init__(self,myspec):
264 generic_mipsel.__init__(self,myspec)
265 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=32 -pipe"
267 class arch_mips64r2el_n32(generic_mips64el):
268 "Builder class for all MIPS 64r2 [Little-endian N32]"
269 def __init__(self,myspec):
270 generic_mips64el.__init__(self,myspec)
271 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=n32 -pipe"
273 class arch_mips64r2el_n64(generic_mips64el):
274 "Builder class for MIPS 64r2 [Little-endian N64]"
275 def __init__(self,myspec):
276 generic_mips64el.__init__(self,myspec)
277 self.settings["CFLAGS"]="-O2 -march=mips64r2 -mabi=64 -pipe"
279 class arch_mips64r2el_multilib(generic_mips64el):
280 "Builder class for MIPS 64r2 [Little-endian multilib]"
281 def __init__(self,myspec):
282 generic_mips64el.__init__(self,myspec)
283 self.settings["CFLAGS"]="-O2 -march=mips64r2 -pipe"
285 class arch_cobalt(generic_mipsel):
286 "Builder class for all cobalt [Little-endian]"
287 def __init__(self,myspec):
288 generic_mipsel.__init__(self,myspec)
289 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -pipe"
290 self.settings["HOSTUSE"]=["cobalt"]
292 class arch_cobalt_n32(generic_mips64el):
293 "Builder class for all cobalt [Little-endian N32]"
294 def __init__(self,myspec):
295 generic_mips64el.__init__(self,myspec)
296 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -pipe"
297 self.settings["HOSTUSE"]=["cobalt"]
300 "Inform main catalyst program of the contents of this plugin."
302 "cobalt" : arch_cobalt,
303 "cobalt_n32" : arch_cobalt_n32,
305 "mips1" : arch_mips1,
306 "mips32" : arch_mips32,
307 "mips32r2" : arch_mips32r2,
308 "mips3" : arch_mips3,
309 "mips3_n32" : arch_mips3_n32,
310 "mips3_n64" : arch_mips3_n64,
311 "mips3_multilib": arch_mips3_multilib,
312 "mips4" : arch_mips4,
313 "mips4_n32" : arch_mips4_n32,
314 "mips4_n64" : arch_mips4_n64,
315 "mips4_multilib": arch_mips4_multilib,
316 "mips64" : arch_mips64,
317 "mips64_n32" : arch_mips64_n32,
318 "mips64_n64" : arch_mips64_n64,
319 "mips64_multilib" : arch_mips64_multilib,
320 "mips64r2" : arch_mips64r2,
321 "mips64r2_n32" : arch_mips64r2_n32,
322 "mips64r2_n64" : arch_mips64r2_n64,
323 "mips64r2_multilib" : arch_mips64r2_multilib,
324 "mipsel" : arch_mipsel1,
325 "mipsel1" : arch_mipsel1,
326 "mips32el" : arch_mips32el,
327 "mips32r2el" : arch_mips32r2el,
328 "mipsel3" : arch_mipsel3,
329 "mipsel3_n32" : arch_mipsel3_n32,
330 "mipsel3_n64" : arch_mipsel3_n64,
331 "mipsel3_multilib" : arch_mipsel3_multilib,
332 "mipsel4" : arch_mipsel4,
333 "mipsel4_n32" : arch_mipsel4_n32,
334 "mipsel4_n64" : arch_mipsel4_n64,
335 "mipsel4_multilib" : arch_mipsel4_multilib,
336 "mips64el" : arch_mips64el,
337 "mips64el_n32" : arch_mips64el_n32,
338 "mips64el_n64" : arch_mips64el_n64,
339 "mips64el_multilib" : arch_mips64el_multilib,
340 "mips64r2el" : arch_mips64r2el,
341 "mips64r2el_n32" : arch_mips64r2el_n32,
342 "mips64r2el_n64" : arch_mips64r2el_n64,
343 "mips64r2el_multilib" : arch_mips64r2el_multilib,
344 "loongson2e" : arch_loongson2e,
345 "loongson2e_n32" : arch_loongson2e_n32,
346 "loongson2f" : arch_loongson2f,
347 "loongson2f_n32" : arch_loongson2f_n32,
348 }, ("mips","mips64"))