4 from catalyst import builder
5 from catalyst.support import *
7 class generic_ppc(builder.generic):
8 "abstract base class for all 32-bit powerpc builders"
9 def __init__(self,myspec):
10 builder.generic.__init__(self,myspec)
11 self.settings["CHOST"]="powerpc-unknown-linux-gnu"
12 if self.settings["buildarch"]=="ppc64":
13 if not os.path.exists("/bin/linux32") and not os.path.exists("/usr/bin/linux32"):
14 raise CatalystError,"required executable linux32 not found (\"emerge setarch\" to fix.)"
15 self.settings["CHROOT"]="linux32 chroot"
16 self.settings["crosscompile"] = False;
18 self.settings["CHROOT"]="chroot"
20 class generic_ppc64(builder.generic):
21 "abstract base class for all 64-bit powerpc builders"
22 def __init__(self,myspec):
23 builder.generic.__init__(self,myspec)
24 self.settings["CHROOT"]="chroot"
26 class arch_ppc(generic_ppc):
27 "builder class for generic powerpc"
28 def __init__(self,myspec):
29 generic_ppc.__init__(self,myspec)
30 self.settings["CFLAGS"]="-O2 -mcpu=powerpc -mtune=powerpc -pipe"
32 class arch_ppc64(generic_ppc64):
33 "builder class for generic ppc64"
34 def __init__(self,myspec):
35 generic_ppc64.__init__(self,myspec)
36 self.settings["CFLAGS"]="-O2 -pipe"
37 self.settings["CHOST"]="powerpc64-unknown-linux-gnu"
39 class arch_970(arch_ppc64):
40 "builder class for 970 aka G5 under ppc64"
41 def __init__(self,myspec):
42 arch_ppc64.__init__(self,myspec)
43 self.settings["CFLAGS"]="-O2 -pipe -mcpu=970 -mtune=970"
44 self.settings["HOSTUSE"]=["altivec"]
46 class arch_cell(arch_ppc64):
47 "builder class for cell under ppc64"
48 def __init__(self,myspec):
49 arch_ppc64.__init__(self,myspec)
50 self.settings["CFLAGS"]="-O2 -pipe -mcpu=cell -mtune=cell"
51 self.settings["HOSTUSE"]=["altivec","ibm"]
53 class arch_g3(generic_ppc):
54 def __init__(self,myspec):
55 generic_ppc.__init__(self,myspec)
56 self.settings["CFLAGS"]="-O2 -mcpu=G3 -mtune=G3 -pipe"
58 class arch_g4(generic_ppc):
59 def __init__(self,myspec):
60 generic_ppc.__init__(self,myspec)
61 self.settings["CFLAGS"]="-O2 -mcpu=G4 -mtune=G4 -maltivec -mabi=altivec -pipe"
62 self.settings["HOSTUSE"]=["altivec"]
64 class arch_g5(generic_ppc):
65 def __init__(self,myspec):
66 generic_ppc.__init__(self,myspec)
67 self.settings["CFLAGS"]="-O2 -mcpu=G5 -mtune=G5 -maltivec -mabi=altivec -pipe"
68 self.settings["HOSTUSE"]=["altivec"]
70 class arch_power(generic_ppc):
71 "builder class for generic power"
72 def __init__(self,myspec):
73 generic_ppc.__init__(self,myspec)
74 self.settings["CFLAGS"]="-O2 -mcpu=power -mtune=power -pipe"
76 class arch_power_ppc(generic_ppc):
77 "builder class for generic powerpc/power"
78 def __init__(self,myspec):
79 generic_ppc.__init__(self,myspec)
80 self.settings["CFLAGS"]="-O2 -mcpu=common -mtune=common -pipe"
82 class arch_power3(arch_ppc64):
83 "builder class for power3 under ppc64"
84 def __init__(self,myspec):
85 arch_ppc64.__init__(self,myspec)
86 self.settings["CFLAGS"]="-O2 -pipe -mcpu=power3 -mtune=power3"
87 self.settings["HOSTUSE"]=["ibm"]
89 class arch_power4(arch_ppc64):
90 "builder class for power4 under ppc64"
91 def __init__(self,myspec):
92 arch_ppc64.__init__(self,myspec)
93 self.settings["CFLAGS"]="-O2 -pipe -mcpu=power4 -mtune=power4"
94 self.settings["HOSTUSE"]=["ibm"]
96 class arch_power5(arch_ppc64):
97 "builder class for power5 under ppc64"
98 def __init__(self,myspec):
99 arch_ppc64.__init__(self,myspec)
100 self.settings["CFLAGS"]="-O2 -pipe -mcpu=power5 -mtune=power5"
101 self.settings["HOSTUSE"]=["ibm"]
103 class arch_power6(arch_ppc64):
104 "builder class for power6 under ppc64"
105 def __init__(self,myspec):
106 arch_ppc64.__init__(self,myspec)
107 self.settings["CFLAGS"]="-O2 -pipe -mcpu=power6 -mtune=power6"
108 self.settings["HOSTUSE"]=["altivec","ibm"]
111 "Inform main catalyst program of the contents of this plugin."
118 "power" : arch_power,
119 "power-ppc" : arch_power_ppc,
120 "power3" : arch_power3,
121 "power4" : arch_power4,
122 "power5" : arch_power5,
123 "power6" : arch_power6,
126 }, ("ppc","ppc64","powerpc","powerpc64"))