This is catalyst 2.0.6.911
[catalyst.git] / arch / mips.py
1
2 import builder,os
3 from catalyst_support import *
4
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"
11
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"
18
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"
24
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"
30
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"
36
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"]
44
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"]
52
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"
58
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"]
66
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"]
74
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"
80
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"
86
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"
92
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"]
100
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"
106
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"]
114
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"]
122
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"]
129
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"]
135
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"]
141
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"]
147
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"]
153
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"]
159
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"]
165
166 def register():
167         "Inform main catalyst program of the contents of this plugin."
168         return ({ 
169                         "cobalt"                : arch_cobalt,
170                         "cobalt_n32"    : arch_cobalt_n32,
171                         "ip27"                  : arch_ip27,
172                         "ip27_n32"              : arch_ip27_n32,
173                         "ip28"                  : arch_ip28,
174                         "ip28_n32"              : arch_ip28_n32,
175                         "ip30"                  : arch_ip30,
176                         "ip30_n32"              : arch_ip30_n32,
177                         "mips"                  : arch_mips1,
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"))