3 from catalyst_support import *
5 class generic_arm(builder.generic):
6 "Abstract base class for all arm (little endian) builders"
7 def __init__(self,myspec):
8 builder.generic.__init__(self,myspec)
9 self.settings["CHROOT"]="chroot"
10 self.settings["CFLAGS"]="-O2 -pipe"
12 class generic_armeb(builder.generic):
13 "Abstract base class for all arm (big endian) builders"
14 def __init__(self,myspec):
15 builder.generic.__init__(self,myspec)
16 self.settings["CHROOT"]="chroot"
17 self.settings["CFLAGS"]="-O2 -pipe"
19 class arch_arm(generic_arm):
20 "Builder class for arm (little endian) target"
21 def __init__(self,myspec):
22 generic_arm.__init__(self,myspec)
23 self.settings["CHOST"]="arm-unknown-linux-gnu"
25 class arch_armeb(generic_armeb):
26 "Builder class for arm (big endian) target"
27 def __init__(self,myspec):
28 generic_armeb.__init__(self,myspec)
29 self.settings["CHOST"]="armeb-unknown-linux-gnu"
31 class arch_armv4l(generic_arm):
32 "Builder class for armv4l target"
33 def __init__(self,myspec):
34 generic_arm.__init__(self,myspec)
35 self.settings["CHOST"]="armv4l-unknown-linux-gnu"
36 self.settings["CFLAGS"]+=" -march=armv4"
38 class arch_armv4tl(generic_arm):
39 "Builder class for armv4tl target"
40 def __init__(self,myspec):
41 generic_arm.__init__(self,myspec)
42 self.settings["CHOST"]="armv4tl-softfloat-linux-gnueabi"
43 self.settings["CFLAGS"]+=" -march=armv4t"
45 class arch_armv5tl(generic_arm):
46 "Builder class for armv5tl target"
47 def __init__(self,myspec):
48 generic_arm.__init__(self,myspec)
49 self.settings["CHOST"]="armv5tl-softfloat-linux-gnueabi"
50 self.settings["CFLAGS"]+=" -march=armv5t"
52 class arch_armv5tel(generic_arm):
53 "Builder class for armv5tel target"
54 def __init__(self,myspec):
55 generic_arm.__init__(self,myspec)
56 self.settings["CHOST"]="armv5tel-softfloat-linux-gnueabi"
57 self.settings["CFLAGS"]+=" -march=armv5te"
59 class arch_armv5tejl(generic_arm):
60 "Builder class for armv5tejl target"
61 def __init__(self,myspec):
62 generic_arm.__init__(self,myspec)
63 self.settings["CHOST"]="armv5tejl-softfloat-linux-gnueabi"
64 self.settings["CFLAGS"]+=" -march=armv5te"
66 class arch_armv6j(generic_arm):
67 "Builder class for armv6j target"
68 def __init__(self,myspec):
69 generic_arm.__init__(self,myspec)
70 self.settings["CHOST"]="armv6j-softfp-linux-gnueabi"
71 self.settings["CFLAGS"]+=" -march=armv6j -mfpu=vfp -mfloat-abi=softfp"
73 class arch_armv6z(generic_arm):
74 "Builder class for armv6z target"
75 def __init__(self,myspec):
76 generic_arm.__init__(self,myspec)
77 self.settings["CHOST"]="armv6z-softfp-linux-gnueabi"
78 self.settings["CFLAGS"]+=" -march=armv6z -mfpu=vfp -mfloat-abi=softfp"
80 class arch_armv6zk(generic_arm):
81 "Builder class for armv6zk target"
82 def __init__(self,myspec):
83 generic_arm.__init__(self,myspec)
84 self.settings["CHOST"]="armv6zk-softfp-linux-gnueabi"
85 self.settings["CFLAGS"]+=" -march=armv6zk -mfpu=vfp -mfloat-abi=softfp"
87 class arch_armv7a(generic_arm):
88 "Builder class for armv7a target"
89 def __init__(self,myspec):
90 generic_arm.__init__(self,myspec)
91 self.settings["CHOST"]="armv7a-softfp-linux-gnueabi"
92 self.settings["CFLAGS"]+=" -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp"
94 class arch_armv6j_hardfp(generic_arm):
95 "Builder class for armv6j hardfloat target, needs >=gcc-4.5"
96 def __init__(self,myspec):
97 generic_arm.__init__(self,myspec)
98 self.settings["CHOST"]="armv6j-hardfloat-linux-gnueabi"
99 self.settings["CFLAGS"]+=" -march=armv6j -mfpu=vfp -mfloat-abi=hard"
101 class arch_armv7a_hardfp(generic_arm):
102 "Builder class for armv7a hardfloat target, needs >=gcc-4.5"
103 def __init__(self,myspec):
104 generic_arm.__init__(self,myspec)
105 self.settings["CHOST"]="armv7a-hardfloat-linux-gnueabi"
106 self.settings["CFLAGS"]+=" -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
108 class arch_armv5teb(generic_armeb):
109 "Builder class for armv5teb (XScale) target"
110 def __init__(self,myspec):
111 generic_armeb.__init__(self,myspec)
112 self.settings["CFLAGS"]+=" -mcpu=xscale"
113 self.settings["CHOST"]="armv5teb-softfloat-linux-gnueabi"
116 "Inform main catalyst program of the contents of this plugin."
119 "armv4l" : arch_armv4l,
120 "armv4tl": arch_armv4tl,
121 "armv5tl": arch_armv5tl,
122 "armv5tel": arch_armv5tel,
123 "armv5tejl": arch_armv5tejl,
124 "armv6j" : arch_armv6j,
125 "armv6z" : arch_armv6z,
126 "armv6zk" : arch_armv6zk,
127 "armv7a" : arch_armv7a,
128 "armv6j_hardfp" : arch_armv6j_hardfp,
129 "armv7a_hardfp" : arch_armv7a_hardfp,
130 "armeb" : arch_armeb,
131 "armv5teb" : arch_armv5teb
132 }, ("arm", "armv4l", "armv4tl", "armv5tl", "armv5tel", "armv5tejl", "armv6l",
133 "armv7l", "armeb", "armv5teb") )