aboutsummaryrefslogtreecommitdiff
blob: 4cd229cbb5cd7701fbf38176d526d9cbffef7161 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import builder

class generic_amd64(builder.generic):
	"abstract base class for all amd64 builders"
	def __init__(self,myspec):
		builder.generic.__init__(self,myspec)
		self.settings["CHROOT"]="chroot"

class arch_amd64(generic_amd64):
	"builder class for generic amd64 (Intel and AMD)"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2"]

class arch_nocona(generic_amd64):
	"improved version of Intel Pentium 4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3 support"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -march=nocona -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2"]

# Requires gcc 4.3 to use this class
class arch_core2(generic_amd64):
	"Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 support"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -march=core2 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2","ssse3"]

class arch_k8(generic_amd64):
	"generic k8, opteron and athlon64 support"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -march=k8 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2","3dnow"]

class arch_k8_sse3(generic_amd64):
	"improved versions of k8, opteron and athlon64 with SSE3 support"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -march=k8-sse3 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2","3dnow"]

class arch_amdfam10(generic_amd64):
	"AMD Family 10h core based CPUs with x86-64 instruction set support"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -march=amdfam10 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnu"
		self.settings["HOSTUSE"]=["mmx","sse","sse2","3dnow"]

class arch_x32(generic_amd64):
	"builder class for generic x32 (Intel and AMD)"
	def __init__(self,myspec):
		generic_amd64.__init__(self,myspec)
		self.settings["CFLAGS"]="-O2 -pipe"
		self.settings["CHOST"]="x86_64-pc-linux-gnux32"
		self.settings["HOSTUSE"]=["mmx","sse","sse2"]

def register():
	"inform main catalyst program of the contents of this plugin"
	return ({
		"amd64"		: arch_amd64,
		"k8"		: arch_k8,
		"opteron"	: arch_k8,
		"athlon64"	: arch_k8,
		"athlonfx"	: arch_k8,
		"nocona"	: arch_nocona,
		"core2"		: arch_core2,
		"k8-sse3"	: arch_k8_sse3,
		"opteron-sse3"	: arch_k8_sse3,
		"athlon64-sse3"	: arch_k8_sse3,
		"amdfam10"	: arch_amdfam10,
		"barcelona"	: arch_amdfam10,
		"x32"		: arch_x32,
	}, ("x86_64","amd64","nocona"))