This is catalyst 2.0.6.906
[catalyst.git] / arch / x86.py
1
2 import builder,os
3 from catalyst_support import *
4
5 class generic_x86(builder.generic):
6         "abstract base class for all x86 builders"
7         def __init__(self,myspec):
8                 builder.generic.__init__(self,myspec)
9                 if self.settings["buildarch"]=="amd64":
10                         if not os.path.exists("/bin/linux32") and not os.path.exists("/usr/bin/linux32"):
11                                         raise CatalystError,"required executable linux32 not found (\"emerge setarch\" to fix.)"
12                         self.settings["CHROOT"]="linux32 chroot"
13                         self.settings["crosscompile"] = False;
14                 else:
15                         self.settings["CHROOT"]="chroot"
16
17 class arch_x86(generic_x86):
18         "builder class for generic x86 (386+)"
19         def __init__(self,myspec):
20                 generic_x86.__init__(self,myspec)
21                 self.settings["CFLAGS"]="-O2 -mtune=i686 -pipe"
22                 self.settings["CHOST"]="i386-pc-linux-gnu"
23
24 class arch_i386(generic_x86):
25         "Intel i386 CPU"
26         def __init__(self,myspec):
27                 generic_x86.__init__(self,myspec)
28                 self.settings["CFLAGS"]="-O2 -march=i386 -pipe"
29                 self.settings["CHOST"]="i386-pc-linux-gnu"
30
31 class arch_i486(generic_x86):
32         "Intel i486 CPU"
33         def __init__(self,myspec):
34                 generic_x86.__init__(self,myspec)
35                 self.settings["CFLAGS"]="-O2 -march=i486 -pipe"
36                 self.settings["CHOST"]="i486-pc-linux-gnu"
37
38 class arch_i586(generic_x86):
39         "Intel Pentium CPU"
40         def __init__(self,myspec):
41                 generic_x86.__init__(self,myspec)
42                 self.settings["CFLAGS"]="-O2 -march=i586 -pipe"
43                 self.settings["CHOST"]="i586-pc-linux-gnu"
44
45 class arch_i686(generic_x86):
46         "Intel Pentium Pro CPU"
47         def __init__(self,myspec):
48                 generic_x86.__init__(self,myspec)
49                 self.settings["CFLAGS"]="-O2 -march=i686 -pipe"
50                 self.settings["CHOST"]="i686-pc-linux-gnu"
51
52 class arch_pentium_mmx(generic_x86):
53         "Intel Pentium MMX CPU with MMX support"
54         def __init__(self,myspec):
55                 generic_x86.__init__(self,myspec)
56                 self.settings["CFLAGS"]="-O2 -march=pentium-mmx -pipe"
57                 self.settings["HOSTUSE"]=["mmx"]
58         
59 class arch_pentium2(generic_x86):
60         "Intel Pentium 2 CPU with MMX support"
61         def __init__(self,myspec):
62                 generic_x86.__init__(self,myspec)
63                 self.settings["CFLAGS"]="-O2 -march=pentium2 -pipe"
64                 self.settings["HOSTUSE"]=["mmx"]
65
66 class arch_pentium3(generic_x86):
67         "Intel Pentium 3 CPU with MMX and SSE support"
68         def __init__(self,myspec):
69                 generic_x86.__init__(self,myspec)
70                 self.settings["CFLAGS"]="-O2 -march=pentium3 -pipe"
71                 self.settings["HOSTUSE"]=["mmx","sse"]
72
73 class arch_pentium4(generic_x86):
74         "Intel Pentium 4 CPU with MMX, SSE and SSE2 support"
75         def __init__(self,myspec):
76                 generic_x86.__init__(self,myspec)
77                 self.settings["CFLAGS"]="-O2 -march=pentium4 -pipe"
78                 self.settings["HOSTUSE"]=["mmx","sse","sse2"]
79
80 class arch_pentium_m(generic_x86):
81         "Intel Pentium M CPU with MMX, SSE and SSE2 support"
82         def __init__(self,myspec):
83                 generic_x86.__init__(self,myspec)
84                 self.settings["CFLAGS"]="-O2 -march=pentium-m -pipe"
85                 self.settings["HOSTUSER"]=["mmx","sse","sse2"]
86
87 class arch_prescott(generic_x86):
88         "improved version of Intel Pentium 4 CPU with MMX, SSE, SSE2 and SSE3 support"
89         def __init__(self,myspec):
90                 generic_x86.__init__(self,myspec)
91                 self.settings["CFLAGS"]="-O2 -march=prescott -pipe"
92                 self.settings["HOSTUSE"]=["mmx","sse","sse2"]
93
94 class arch_k6(generic_x86):
95         "AMD K6 CPU with MMX support"
96         def __init__(self,myspec):
97                 generic_x86.__init__(self,myspec)
98                 self.settings["CFLAGS"]="-O2 -march=k6 -pipe"
99                 self.settings["CHOST"]="i686-pc-linux-gnu"
100                 self.settings["HOSTUSE"]=["mmx"]
101
102 class arch_k6_2(generic_x86):
103         "AMD K6-2 CPU with MMX and 3dNOW! support"
104         def __init__(self,myspec):
105                 generic_x86.__init__(self,myspec)
106                 self.settings["CFLAGS"]="-O2 -march=k6-2 -pipe"
107                 self.settings["CHOST"]="i686-pc-linux-gnu"
108                 self.settings["HOSTUSE"]=["mmx","3dnow"]
109
110 class arch_athlon(generic_x86):
111         "AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch support"
112         def __init__(self,myspec):
113                 generic_x86.__init__(self,myspec)
114                 self.settings["CFLAGS"]="-O2 -march=athlon -pipe"
115                 self.settings["CHOST"]="i686-pc-linux-gnu"
116                 self.settings["HOSTUSE"]=["mmx","3dnow"]
117
118 class arch_athlon_xp(generic_x86):
119         "improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE support"
120         def __init__(self,myspec):
121                 generic_x86.__init__(self,myspec)
122                 self.settings["CFLAGS"]="-O2 -march=athlon-xp -pipe"
123                 self.settings["CHOST"]="i686-pc-linux-gnu"
124                 self.settings["HOSTUSE"]=["mmx","3dnow","sse"]
125
126 def register():
127         "Inform main catalyst program of the contents of this plugin."
128         return ({
129                 "x86"                   : arch_x86,
130                 "i386"                  : arch_i386,
131                 "i486"                  : arch_i486,
132                 "i586"                  : arch_i586,
133                 "i686"                  : arch_i686,
134                 "pentium"               : arch_i586,
135                 "pentium2"              : arch_pentium2,
136                 "pentium3"              : arch_pentium3,
137                 "pentium3m"             : arch_pentium3,
138                 "pentium-m"             : arch_pentium_m,
139                 "pentium4"              : arch_pentium4,
140                 "pentium4m"             : arch_pentium4,
141                 "pentiumpro"            : arch_i686,
142                 "pentium-mmx"           : arch_pentium_mmx,
143                 "prescott"              : arch_prescott,
144                 "k6"                    : arch_k6,
145                 "k6-2"                  : arch_k6_2,
146                 "k6-3"                  : arch_k6_2,
147                 "athlon"                : arch_athlon,
148                 "athlon-tbird"          : arch_athlon,
149                 "athlon-4"              : arch_athlon_xp,
150                 "athlon-xp"             : arch_athlon_xp,
151                 "athlon-mp"             : arch_athlon_xp
152         }, ('i386', 'i486', 'i586', 'i686'))
153