Fixing a minor display issue when we write out make.conf, adding HOSTUSE for amd64...
[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         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"
29
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"
35
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"
41
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"
47
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"]
54
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"]
61
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"]
67         
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"]
73
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"]
79
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"]
85
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"]
91
92 def register():
93         "Inform main catalyst program of the contents of this plugin."
94         return ({
95                 "x86"                   : arch_x86,
96                 "i386"                  : arch_i386,
97                 "i486"                  : arch_i486,
98                 "i586"                  : arch_i586,
99                 "i686"                  : arch_i686,
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'))
109