Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into...
[vuplus_openembedded] / conf / distro / include / kaeilos.inc
1 #@TYPE: Distribution
2 #@NAME: KaeilOS 
3 #@DESCRIPTION: Release independent distribution configuration for KaeilOS 
4 #@MAINTAINER: Marco Cavallini <m.cavallini@koansoftware.com>
5 # KaeilOS is a registered trade mark of KOAN - Bergamo - Italia
6 # Product website : http://www.KaeilOS.com 
7
8 # Preserve original DISTRO value
9 USERDISTRO := "${DISTRO}"
10 DISTRO = "kaeilos"
11 DISTRO_NAME = "KaeilOS"
12
13 TARGET_VENDOR = "-kaeilos"
14
15 # Add FEED_ARCH to overrides
16 OVERRIDES .= ":${FEED_ARCH}"
17
18 # Put links to sources in deploy/sources to make it easier for people to be GPL compliant
19 SRC_DIST_LOCAL ?= "symlink"
20 INHERIT += "src_distribute_local"
21
22 # Can be "glibc", "eglibc" or "uclibc"
23 LIBC ?= "glibc"
24 PSTAGE_EXTRAPATH = "${LIBC}"
25
26 CACHE = "${TMPDIR}/cache/${LIBC}/${MACHINE}"
27 DEPLOY_DIR = "${TMPDIR}/deploy/${LIBC}"
28 require conf/distro/include/angstrom-${LIBC}.inc
29
30 # ARM920T and up can use thumb mode to decrease binary size at the expense of speed
31 # (the complete story is a bit more nuanced due to cache starvation)
32 # KaeilOS turns on thumb for armv4t machine according to this RFC:
33 # http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html
34
35 # We can't do ARM_INSTRUCTION_SET_armv4t since that will un-overridable in recipes like gcc
36 ANGSTROM_ARM_INSTRUCTION_SET ?= "arm"
37 ANGSTROM_ARM_INSTRUCTION_SET_armv4t = "thumb"
38 ANGSTROM_ARM_INSTRUCTION_SET_armv5te = "thumb"
39
40
41 ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}"
42 # "arm" "thumb"
43 #    The instruction set the compiler should use when generating application
44 #    code.  The kernel is always compiled with arm code at present.  arm code
45 #    is the original 32 bit ARM instruction set, thumb code is the 16 bit
46 #    encoded RISC sub-set.  Thumb code is smaller (maybe 70% of the ARM size)
47 #    but requires more instructions (140% for 70% smaller code) so may be
48 #    slower.
49
50 THUMB_INTERWORK = "yes"
51 # "yes" "no"
52 #    Whether to compile with code to allow interworking between the two
53 #    instruction sets.  This allows thumb code to be executed on a primarily
54 #    arm system and vice versa.  It is strongly recommended that DISTROs not
55 #    turn this off - the actual cost is very small.
56
57
58 #Use this variable in feeds and other parts that need a URI
59 ANGSTROM_URI ?= "http://www.angstrom-distribution.org"
60
61 #Use this variable to select which recipe you want to use to get feed configs (/etc/ipkg/, /etc/apt/sources.list)
62 # usefull for derivative distros and local testing
63 # As this is runtime we can't and won't use virtual/feed-configs
64 ANGSTROM_FEED_CONFIGS ?= "angstrom-feed-configs"
65
66 #Set the default maintainer to angstrom-dev
67 MAINTAINER = "KaeilOS Developers <info@koansoftware.com>"
68
69 #use debian style naming
70 INHERIT += "debian"
71
72 #activate config checker
73 INHERIT += "sanity" 
74
75 #make devshell available as task
76 INHERIT += "devshell" 
77
78 #use angstrom source mirrors to combat 404s
79 INHERIT += "angstrom-mirrors" 
80
81 #run QA tests on builds and packages and log them  
82 INHERIT += "insane"
83 QA_LOG = "1"
84
85 ANGSTROM_PKG_FORMAT ?= "ipk"
86 require conf/distro/include/angstrom-package-${ANGSTROM_PKG_FORMAT}.inc
87
88 # We don't want to keep OABI compat
89 ARM_KEEP_OABI = "0"
90
91 #Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable
92 PREFERRED_PROVIDER_qemu-native = "qemu-native"
93 ENABLE_BINARY_LOCALE_GENERATION ?= "1"
94
95 # We only want to build UTF8 locales
96 LOCALE_UTF8_ONLY = "1"
97
98 #qemu doesn't like armv6/eabi/vfp
99 ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
100
101 #qemu has taken a dislike to armeb as well
102 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
103
104 #ARM EABI is softfloat by default, but let's make sure :)
105 #make it overridable for platforms with FPU, like ep93xx or i.mx31
106 TARGET_FPU_arm ?= "soft"
107 TARGET_FPU_armeb ?= "soft"
108 TARGET_FPU_ixp4xx ?= "soft"
109 TARGET_FPU_ppc405 ?= "soft"
110
111 TARGET_FPU_armv6 ?= "hard"
112 TARGET_FPU_armv6-novfp ?= "soft"
113 TARGET_FPU_armv7a ?= "hard"
114 TARGET_FPU_ppc603e ?= "hard"
115
116 # webkit-gtk and cairo have alignment issues with double instructions on armv5 so
117 # disable them here
118 TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t"
119 TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t"
120
121 #Set the right arch for the feeds
122 #Alphabetically sorted
123
124 FEED_ARCH ?= "${TARGET_ARCH}"
125
126 #blackfin machines
127 FEED_ARCH_bfin          = "blackfin"
128
129 #armv4t machines
130
131 FEED_ARCH_acern30       = "armv4t"
132 FEED_ARCH_amsdelta      = "armv4t"
133 FEED_ARCH_ep93xx        = "armv4t"
134 FEED_ARCH_eteng500      = "armv4t"
135 FEED_ARCH_om-gta01      = "armv4t"
136 FEED_ARCH_om-gta02      = "armv4t"
137 FEED_ARCH_h1940         = "armv4t"
138 FEED_ARCH_h6300         = "armv4t"
139 FEED_ARCH_kb9202        = "armv4t"
140 FEED_ARCH_ks8695        = "armv4t"
141 FEED_ARCH_rx1950        = "armv4t"
142 FEED_ARCH_rx3000        = "armv4t"
143 FEED_ARCH_sarge-at91    = "armv4t"
144 FEED_ARCH_smdk2440      = "armv4t"
145 FEED_ARCH_smdk2443      = "armv4t"
146
147 #armv5t machines
148
149 FEED_ARCH_a1200         = "armv5te"
150 FEED_ARCH_a780          = "armv5te"
151 FEED_ARCH_akita         = "armv5te"
152 FEED_ARCH_asus620       = "armv5te"
153 FEED_ARCH_asus730       = "armv5te"
154 FEED_ARCH_at91sam9263ek = "armv5te"
155 FEED_ARCH_aximx50       = "armv5te"
156 FEED_ARCH_aximx50v      = "armv5te"
157 FEED_ARCH_c7x0          = "armv5te"
158 FEED_ARCH_compulab-pxa270 = "armv5te"
159 FEED_ARCH_davinci-dvevm = "armv5te"
160 FEED_ARCH_devkitidp-pxa255 = "armv5te"
161 FEED_ARCH_e680          = "armv5te"
162 FEED_ARCH_er0100        = "armv5te"
163 FEED_ARCH_gumstix       = "armv5te"
164 FEED_ARCH_gumstix-verdex = "armv5te"
165 FEED_ARCH_gumstix-connex = "armv5te"
166 FEED_ARCH_h1910         = "armv5te"
167 FEED_ARCH_h2200         = "armv5te"
168 FEED_ARCH_h3900         = "armv5te"
169 FEED_ARCH_h4000         = "armv5te"
170 FEED_ARCH_h5000         = "armv5te"
171 FEED_ARCH_htcalpine     = "armv5te"
172 FEED_ARCH_htcapache     = "armv5te"
173 FEED_ARCH_htcblueangel  = "armv5te"
174 FEED_ARCH_htchimalaya   = "armv5te"
175 FEED_ARCH_htcsable      = "armv5te"
176 FEED_ARCH_htctornado    = "armv5te"
177 FEED_ARCH_htcuniversal  = "armv5te"
178 FEED_ARCH_hx2000        = "armv5te"
179 FEED_ARCH_hx4700        = "armv5te"
180 FEED_ARCH_ixp4xxle      = "armv5te"
181 FEED_ARCH_logicpd-pxa270 = "armv5te"
182 FEED_ARCH_looxc550      = "armv5te"
183 FEED_ARCH_lsarm         = "armv5te"
184 FEED_ARCH_magician      = "armv5te"
185 FEED_ARCH_mainstone     = "armv5te"
186 FEED_ARCH_mnci          = "armv5te"
187 FEED_ARCH_mtx-3         = "armv5te"
188 FEED_ARCH_mx21ads       = "armv5te"
189 FEED_ARCH_n2100         = "armv5te"
190 FEED_ARCH_navman-icn330 = "armv5te"
191 FEED_ARCH_netbook-pro   = "armv5te"
192 FEED_ARCH_nokia770      = "armv5te"
193 FEED_ARCH_rokre2        = "armv5te"
194 FEED_ARCH_nslu2le       = "armv5te"
195 FEED_ARCH_omap1510inn   = "armv5te"
196 FEED_ARCH_omap1610h2    = "armv5te"
197 FEED_ARCH_omap1710h3    = "armv5te"
198 FEED_ARCH_omap5912osk   = "armv5te"
199 FEED_ARCH_palmld        = "armv5te"
200 FEED_ARCH_palmt650      = "armv5te"
201 FEED_ARCH_palmt680      = "armv5te"
202 FEED_ARCH_palmtc        = "armv5te"
203 FEED_ARCH_palmtt        = "armv5te"
204 FEED_ARCH_palmtt3       = "armv5te"
205 FEED_ARCH_palmtt5       = "armv5te"
206 FEED_ARCH_palmtx        = "armv5te"
207 FEED_ARCH_palmz31       = "armv5te"
208 FEED_ARCH_palmz71       = "armv5te"
209 FEED_ARCH_palmz72       = "armv5te"
210 FEED_ARCH_poodle        = "armv5te"
211 FEED_ARCH_qemuarm       = "armv5te"
212 FEED_ARCH_spitz         = "armv5te"
213 FEED_ARCH_tosa          = "armv5te"
214 FEED_ARCH_triton        = "armv5te"
215
216 FEED_ARCH_ixp4xxbe      = "armv5teb"
217 FEED_ARCH_nslu2be       = "armv5teb"
218
219 # armv6
220
221 FEED_ARCH_mx31ads       = "armv6"
222 FEED_ARCH_mx31moboard   = "armv6"
223 FEED_ARCH_nokia800      = "armv6"  
224 FEED_ARCH_omap2420h4    = "armv6"
225 FEED_ARCH_omap2430sdp   = "armv6"
226
227 #i486 machines
228 FEED_ARCH_geodegx       = "i486"
229 FEED_ARCH_geodelx       = "i486"
230 FEED_ARCH_netvista      = "i486"
231 FEED_ARCH_wrap          = "i486"
232 FEED_ARCH_x86           = "i486"
233
234 #i586 machines
235 FEED_ARCH_epia          = "i586"
236 FEED_ARCH_i586-generic  = "i586"
237 FEED_ARCH_qemux86       = "i586"
238
239 #i686 machines
240
241 FEED_ARCH_alix          = "i686"
242 FEED_ARCH_colinux       = "i686"
243 FEED_ARCH_guinness      = "i686"
244 FEED_ARCH_i686-generic  = "i686"
245 FEED_ARCH_progear       = "i686"
246
247 #powerpc machines
248
249 FEED_ARCH_dht-walnut    = "ppc405"
250 FEED_ARCH_magicbox      = "ppc405"
251 FEED_ARCH_xilinx-ml403  = "ppc405"
252 FEED_ARCH_xilinx-ml410  = "ppc405"
253 FEED_ARCH_sequoia       = "ppc440e"
254 FEED_ARCH_efika         = "ppc603e"
255 FEED_ARCH_lite5200      = "ppc603e"
256 FEED_ARCH_lsppchd       = "ppc603e"
257 FEED_ARCH_lsppchg       = "ppc603e"
258 FEED_ARCH_storcenter    = "ppc603e"
259 FEED_ARCH_turbostation  = "ppc603e"
260 FEED_ARCH_mpc8313e-rdb  = "ppce300c3"
261 FEED_ARCH_mpc8323e-rdb  = "ppce300c2"
262
263
264 #strongarm machines, no EABI
265
266 FEED_ARCH_collie        = "arm-oabi"
267 FEED_ARCH_h3600         = "arm-oabi"
268 FEED_ARCH_h3800         = "arm-oabi"
269 FEED_ARCH_htcwallaby    = "arm-oabi"
270 FEED_ARCH_jornada56x    = "arm-oabi"
271 FEED_ARCH_jornada7xx    = "arm-oabi"
272 FEED_ARCH_shark         = "arm-oabi"
273 FEED_ARCH_simpad        = "arm-oabi"
274
275
276 #Tweak packaging for strongarm machines since they can't use EABI
277
278 PACKAGE_EXTRA_ARCHS_collie = "arm-oabi"
279 PACKAGE_EXTRA_ARCHS_h3600  = "arm-oabi"
280 PACKAGE_EXTRA_ARCHS_h3800  = "arm-oabi"
281 PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi"
282 PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi"
283
284
285 #Name the generated images in a sane way
286 IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
287 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
288
289 # KaeilOS *always* has some form of release config, so error out if someone thinks he knows better 
290 DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION if you really want to build an unversioned distro')}"
291
292 # We want images supporting the following features (for task-base)