Initial separation and creation of contents.py
[catalyst.git] / catalyst / arch / powerpc.py
1
2 import os
3
4 from catalyst import builder
5 from catalyst.support import *
6
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;
17                 else:
18                         self.settings["CHROOT"]="chroot"
19
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"
25
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"
31
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"
38
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"]
45
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"]
52
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"
57
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"]
63
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"]
69
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"
75
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"
81
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"]
88
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"]
95
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"]
102
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"]
109
110 def register():
111         "Inform main catalyst program of the contents of this plugin."
112         return ({
113                 "970"           : arch_970,
114                 "cell"          : arch_cell,
115                 "g3"            : arch_g3,
116                 "g4"            : arch_g4,
117                 "g5"            : arch_g5,
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,
124                 "ppc"           : arch_ppc,
125                 "ppc64"         : arch_ppc64
126         }, ("ppc","ppc64","powerpc","powerpc64"))