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_mipsel4(generic_mipsel):
102 "Builder class for all MIPS IV [Little-endian]"
103 def __init__(self,myspec):
104 generic_mipsel.__init__(self,myspec)
105 self.settings["CFLAGS"]="-O2 -mips4 -mabi=32 -pipe"
107 class arch_mipsel4_n32(generic_mipsel):
108 "Builder class for all MIPS IV [Little-endian N32]"
109 def __init__(self,myspec):
110 generic_mipsel.__init__(self,myspec)
111 self.settings["CFLAGS"]="-O2 -mips4 -mabi=n32 -pipe"
112 self.settings["CHOST"]="mips64el-unknown-linux-gnu"
113 self.settings["HOSTUSE"]=["n32"]
115 class arch_cobalt(generic_mipsel):
116 "Builder class for all cobalt [Little-endian]"
117 def __init__(self,myspec):
118 generic_mipsel.__init__(self,myspec)
119 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=32 -pipe"
120 self.settings["CHOST"]="mipsel-unknown-linux-gnu"
121 self.settings["HOSTUSE"]=["cobalt"]
123 class arch_cobalt_n32(generic_mipsel):
124 "Builder class for all cobalt [Little-endian N32]"
125 def __init__(self,myspec):
126 arch_mipsel4_n32.__init__(self,myspec)
127 self.settings["CFLAGS"]="-O2 -march=r5000 -mabi=n32 -pipe"
128 self.settings["HOSTUSE"]=["cobalt","n32"]
130 class arch_ip27(generic_mipsel):
131 "Builder class for all IP27 [Big-endian]"
132 def __init__(self,myspec):
133 arch_mips4.__init__(self,myspec)
134 self.settings["HOSTUSE"]=["ip27"]
136 class arch_ip27_n32(generic_mipsel):
137 "Builder class for all IP27 [Big-endian N32]"
138 def __init__(self,myspec):
139 arch_mips4_n32.__init__(self,myspec)
140 self.settings["HOSTUSE"]=["ip27","n32"]
142 class arch_ip28(generic_mipsel):
143 "Builder class for all IP28 [Big-endian]"
144 def __init__(self,myspec):
145 arch_mips4.__init__(self,myspec)
146 self.settings["HOSTUSE"]=["ip28"]
148 class arch_ip28_n32(generic_mipsel):
149 "Builder class for all IP28 [Big-endian N32]"
150 def __init__(self,myspec):
151 arch_mips4_n32.__init__(self,myspec)
152 self.settings["HOSTUSE"]=["ip28","n32"]
154 class arch_ip30(generic_mipsel):
155 "Builder class for all IP30 [Big-endian]"
156 def __init__(self,myspec):
157 arch_mips4.__init__(self,myspec)
158 self.settings["HOSTUSE"]=["ip30"]
160 class arch_ip30_n32(generic_mipsel):
161 "Builder class for all IP30 [Big-endian N32]"
162 def __init__(self,myspec):
163 arch_mips4_n32.__init__(self,myspec)
164 self.settings["HOSTUSE"]=["ip30","n32"]
167 "Inform main catalyst program of the contents of this plugin."
169 "cobalt" : arch_cobalt,
170 "cobalt_n32" : arch_cobalt_n32,
172 "ip27_n32" : arch_ip27_n32,
174 "ip28_n32" : arch_ip28_n32,
176 "ip30_n32" : arch_ip30_n32,
178 "mips1" : arch_mips1,
179 "mips2" : arch_mips2,
180 "mips3" : arch_mips3,
181 "mips3_n32" : arch_mips3_n32,
182 "mips3_n64" : arch_mips3_n64,
183 "mips4" : arch_mips4,
184 "mips4_n32" : arch_mips4_n32,
185 "mipsel" : arch_mipsel1,
186 "mipsel1" : arch_mipsel1,
187 "mipsel2" : arch_mipsel2,
188 "mipsel3" : arch_mipsel3,
189 "mipsel3_n32" : arch_mipsel3_n32,
190 "mipsel4" : arch_mipsel4,
191 "mipsel4_n32" : arch_mipsel4_n32,
192 "loongson" : arch_mipsel3,
193 }, ("mips","mips64"))