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 arch_mips1(generic_mips):
20 "Builder class for MIPS I [Big-endian]"
21 def __init__(self,myspec):
22 generic_mips.__init__(self,myspec)
23 self.settings["CFLAGS"]="-O2 -mips1 -mabi=32 -pipe"
25 class arch_mips2(generic_mips):
26 "Builder class for MIPS II [Big-endian]"
27 def __init__(self,myspec):
28 generic_mips.__init__(self,myspec)
29 self.settings["CFLAGS"]="-O2 -mips2 -mabi=32 -pipe"
31 class arch_mips3(generic_mips):
32 "Builder class for MIPS III [Big-endian]"
33 def __init__(self,myspec):
34 generic_mips.__init__(self,myspec)
35 self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -pipe"
37 class arch_mips3_n32(generic_mips):
38 "Builder class for MIPS III [Big-endian N32]"
39 def __init__(self,myspec):
40 generic_mips.__init__(self,myspec)
41 self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -pipe"
42 self.settings["CHOST"]="mips64-unknown-linux-gnu"
43 self.settings["HOSTUSE"]=["n32"]
45 class arch_mips3_n64(generic_mips):
46 "Builder class for MIPS III [Big-endian N64]"
47 def __init__(self,myspec):
48 generic_mips.__init__(self,myspec)
49 self.settings["CFLAGS"]="-O2 -mips3 -mabi=64 -pipe"
50 self.settings["CHOST"]="mips64-unknown-linux-gnu"
51 self.settings["HOSTUSE"]=["n64"]
53 class arch_mips4(generic_mips):
54 "Builder class for MIPS IV [Big-endian]"
55 def __init__(self,myspec):
56 generic_mips.__init__(self,myspec)
57 self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
59 class arch_mips4_n32(generic_mips):
60 "Builder class for MIPS IV [Big-endian N32]"
61 def __init__(self,myspec):
62 generic_mips.__init__(self,myspec)
63 self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
64 self.settings["CHOST"]="mips64-unknown-linux-gnu"
65 self.settings["HOSTUSE"]=["n32"]
67 class arch_mips4_n64(generic_mips):
68 "Builder class for MIPS IV [Big-endian N64]"
69 def __init__(self,myspec):
70 generic_mips.__init__(self,myspec)
71 self.settings["CFLAGS"]="-O2 -mips4 -mabi=64 -pipe"
72 self.settings["CHOST"]="mips64-unknown-linux-gnu"
73 self.settings["HOSTUSE"]=["n64"]
75 class arch_mipsel1(generic_mipsel):
76 "Builder class for all MIPS I [Little-endian]"
77 def __init__(self,myspec):
78 generic_mipsel.__init__(self,myspec)
79 self.settings["CFLAGS"]="-O2 -mips1 -mabi=32 -pipe"
81 class arch_mipsel2(generic_mipsel):
82 "Builder class for all MIPS II [Little-endian]"
83 def __init__(self,myspec):
84 generic_mipsel.__init__(self,myspec)
85 self.settings["CFLAGS"]="-O2 -mips2 -mabi=32 -pipe"
87 class arch_mipsel3(generic_mipsel):
88 "Builder class for all MIPS III [Little-endian]"
89 def __init__(self,myspec):
90 generic_mipsel.__init__(self,myspec)
91 self.settings["CFLAGS"]="-O2 -mips3 -mabi=32 -pipe"
93 class arch_mipsel3_n32(generic_mipsel):
94 "Builder class for all MIPS III [Little-endian N32]"
95 def __init__(self,myspec):
96 generic_mipsel.__init__(self,myspec)
97 self.settings["CFLAGS"]="-O2 -mips3 -mabi=n32 -pipe"
98 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
99 self.settings["HOSTUSE"]=["n32"]
101 class arch_loongson2e(generic_mipsel):
102 "Builder class for all Loongson 2E [Little-endian]"
103 def __init__(self,myspec):
104 generic_mipsel.__init__(self,myspec)
105 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=32 -pipe -mplt"
107 class arch_loongson2e_n32(generic_mipsel):
108 "Builder class for all Loongson 2E [Little-endian N32]"
109 def __init__(self,myspec):
110 generic_mipsel.__init__(self,myspec)
111 self.settings["CFLAGS"]="-O2 -march=loongson2e -mabi=n32 -pipe -mplt"
112 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
113 self.settings["HOSTUSE"]=["n32"]
115 class arch_loongson2f(generic_mipsel):
116 "Builder class for all Loongson 2F [Little-endian]"
117 def __init__(self,myspec):
118 generic_mipsel.__init__(self,myspec)
119 self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=32 -pipe -mplt --Wa,-mfix-loongson2f-nop"
121 class arch_loongson2f_n32(generic_mipsel):
122 "Builder class for all Loongson 2F [Little-endian N32]"
123 def __init__(self,myspec):
124 generic_mipsel.__init__(self,myspec)
125 self.settings["CFLAGS"]="-O3 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop"
126 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
127 self.settings["HOSTUSE"]=["n32"]
129 class arch_mipsel4(generic_mipsel):
130 "Builder class for all MIPS IV [Little-endian]"
131 def __init__(self,myspec):
132 generic_mipsel.__init__(self,myspec)
133 self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
135 class arch_mipsel4_n32(generic_mipsel):
136 "Builder class for all MIPS IV [Little-endian N32]"
137 def __init__(self,myspec):
138 generic_mipsel.__init__(self,myspec)
139 self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
140 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
141 self.settings["HOSTUSE"]=["n32"]
143 class arch_cobalt(generic_mipsel):
144 "Builder class for all cobalt [Little-endian]"
145 def __init__(self,myspec):
146 generic_mipsel.__init__(self,myspec)
147 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -pipe"
148 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
149 self.settings["HOSTUSE"]=["cobalt"]
151 class arch_cobalt_n32(generic_mipsel):
152 "Builder class for all cobalt [Little-endian N32]"
153 def __init__(self,myspec):
154 arch_mipsel4_n32.__init__(self,myspec)
155 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -pipe"
156 self.settings["HOSTUSE"]=["cobalt","n32"]
158 class arch_ip27(generic_mipsel):
159 "Builder class for all IP27 [Big-endian]"
160 def __init__(self,myspec):
161 arch_mips4.__init__(self,myspec)
162 self.settings["HOSTUSE"]=["ip27"]
164 class arch_ip27_n32(generic_mipsel):
165 "Builder class for all IP27 [Big-endian N32]"
166 def __init__(self,myspec):
167 arch_mips4_n32.__init__(self,myspec)
168 self.settings["HOSTUSE"]=["ip27","n32"]
170 class arch_ip28(generic_mipsel):
171 "Builder class for all IP28 [Big-endian]"
172 def __init__(self,myspec):
173 arch_mips4.__init__(self,myspec)
174 self.settings["HOSTUSE"]=["ip28"]
176 class arch_ip28_n32(generic_mipsel):
177 "Builder class for all IP28 [Big-endian N32]"
178 def __init__(self,myspec):
179 arch_mips4_n32.__init__(self,myspec)
180 self.settings["HOSTUSE"]=["ip28","n32"]
182 class arch_ip30(generic_mipsel):
183 "Builder class for all IP30 [Big-endian]"
184 def __init__(self,myspec):
185 arch_mips4.__init__(self,myspec)
186 self.settings["HOSTUSE"]=["ip30"]
188 class arch_ip30_n32(generic_mipsel):
189 "Builder class for all IP30 [Big-endian N32]"
190 def __init__(self,myspec):
191 arch_mips4_n32.__init__(self,myspec)
192 self.settings["HOSTUSE"]=["ip30","n32"]
195 "Inform main catalyst program of the contents of this plugin."
197 "cobalt" : arch_cobalt,
198 "cobalt_n32" : arch_cobalt_n32,
200 "ip27_n32" : arch_ip27_n32,
202 "ip28_n32" : arch_ip28_n32,
204 "ip30_n32" : arch_ip30_n32,
206 "mips1" : arch_mips1,
207 "mips2" : arch_mips2,
208 "mips3" : arch_mips3,
209 "mips3_n32" : arch_mips3_n32,
210 "mips3_n64" : arch_mips3_n64,
211 "mips4" : arch_mips4,
212 "mips4_n32" : arch_mips4_n32,
213 "mipsel" : arch_mipsel1,
214 "mipsel1" : arch_mipsel1,
215 "mipsel2" : arch_mipsel2,
216 "mipsel3" : arch_mipsel3,
217 "mipsel3_n32" : arch_mipsel3_n32,
218 "mipsel4" : arch_mipsel4,
219 "mipsel4_n32" : arch_mipsel4_n32,
220 "loongson2e" : arch_loongson2e,
221 "loongson2e_n32" : arch_loongson2e_n32,
222 "loongson2f" : arch_loongson2f,
223 "loongson2f_n32" : arch_loongson2f_n32,
224 }, ("mips","mips64"))