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):
25 def __init__(self,myspec):
26 generic_x86.__init__(self,myspec)
27 self.settings["CFLAGS"]="-O2 -march=i386 -pipe"
28 self.settings["CHOST"]="i386-pc-linux-gnu"
30 class arch_i486(generic_x86):
31 def __init__(self,myspec):
32 generic_x86.__init__(self,myspec)
33 self.settings["CFLAGS"]="-O2 -march=i486 -pipe"
34 self.settings["CHOST"]="i486-pc-linux-gnu"
36 class arch_i586(generic_x86):
37 def __init__(self,myspec):
38 generic_x86.__init__(self,myspec)
39 self.settings["CFLAGS"]="-O2 -march=i586 -pipe"
40 self.settings["CHOST"]="i586-pc-linux-gnu"
42 class arch_i686(generic_x86):
43 def __init__(self,myspec):
44 generic_x86.__init__(self,myspec)
45 self.settings["CFLAGS"]="-O2 -march=i686 -pipe"
46 self.settings["CHOST"]="i686-pc-linux-gnu"
48 class arch_athlon(generic_x86):
49 def __init__(self,myspec):
50 generic_x86.__init__(self,myspec)
51 self.settings["CFLAGS"]="-O2 -march=athlon -pipe"
52 self.settings["CHOST"]="i686-pc-linux-gnu"
53 self.settings["HOSTUSE"]=["mmx","3dnow"]
55 class arch_athlon_xp(generic_x86):
56 def __init__(self,myspec):
57 generic_x86.__init__(self,myspec)
58 self.settings["CFLAGS"]="-O2 -march=athlon-xp -pipe"
59 self.settings["CHOST"]="i686-pc-linux-gnu"
60 self.settings["HOSTUSE"]=["mmx","3dnow","sse"]
62 class arch_pentium_mmx(arch_i586):
63 def __init__(self,myspec):
64 arch_i586.__init__(self,myspec)
65 self.settings["CFLAGS"]="-O2 -march=pentium-mmx -pipe"
66 self.settings["HOSTUSE"]=["mmx"]
68 class arch_pentium2(generic_x86):
69 def __init__(self,myspec):
70 arch_i686.__init__(self,myspec)
71 self.settings["CFLAGS"]="-O2 -march=pentium2 -pipe"
72 self.settings["HOSTUSE"]=["mmx"]
74 class arch_pentium3(generic_x86):
75 def __init__(self,myspec):
76 arch_i686.__init__(self,myspec)
77 self.settings["CFLAGS"]="-O2 -march=pentium3 -pipe"
78 self.settings["HOSTUSE"]=["mmx","sse"]
80 class arch_pentium4(generic_x86):
81 def __init__(self,myspec):
82 arch_i686.__init__(self,myspec)
83 self.settings["CFLAGS"]="-O2 -march=pentium4 -pipe"
84 self.settings["HOSTUSE"]=["mmx","sse","sse2"]
86 class arch_prescott(generic_x86):
87 def __init__(self,myspec):
88 arch_i686.__init__(self,myspec)
89 self.settings["CFLAGS"]="-O2 -march=prescott -pipe"
90 self.settings["HOSTUSE"]=["mmx","sse","sse2"]
93 "Inform main catalyst program of the contents of this plugin."
100 "athlon" : arch_athlon,
101 "athlon-xp" : arch_athlon_xp,
102 "athlon-mp" : arch_athlon_xp,
103 "pentium-mmx" : arch_pentium_mmx,
104 "pentium2" : arch_pentium2,
105 "pentium3" : arch_pentium3,
106 "pentium4" : arch_pentium4,
107 "prescott" : arch_prescott
108 }, ('i386', 'i486', 'i586', 'i686'))