3 from catalyst_support import *
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;
15 self.settings["CHROOT"]="chroot"
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"
24 class arch_i386(generic_x86):
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"
31 class arch_i486(generic_x86):
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"
38 class arch_i586(generic_x86):
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"
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"
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"]
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"]
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"]
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"]
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"]
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"]
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"]
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"]
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"]
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"]
127 "Inform main catalyst program of the contents of this plugin."
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,
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'))