summaryrefslogtreecommitdiffstats
path: root/meta/conf
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 20:59:03 (GMT)
committerTudor Florea <tudor.florea@enea.com>2015-10-09 20:59:03 (GMT)
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/conf
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/conf')
-rw-r--r--meta/conf/abi_version.conf7
-rw-r--r--meta/conf/bitbake.conf787
-rw-r--r--meta/conf/conf-notes.txt8
-rw-r--r--meta/conf/distro/defaultsetup.conf23
-rw-r--r--meta/conf/distro/include/as-needed.inc16
-rw-r--r--meta/conf/distro/include/default-distrovars.inc49
-rw-r--r--meta/conf/distro/include/default-providers.inc48
-rw-r--r--meta/conf/distro/include/default-versions.inc11
-rw-r--r--meta/conf/distro/include/security_flags.inc89
-rw-r--r--meta/conf/distro/include/tclibc-glibc.inc40
-rw-r--r--meta/conf/distro/include/tclibc-musl.inc27
-rw-r--r--meta/conf/distro/include/tclibc-uclibc.inc28
-rw-r--r--meta/conf/distro/include/tcmode-default.inc69
-rw-r--r--meta/conf/distro/include/world-broken.inc5
-rw-r--r--meta/conf/documentation.conf447
-rw-r--r--meta/conf/layer.conf47
-rw-r--r--meta/conf/licenses.conf171
-rw-r--r--meta/conf/machine-sdk/i586.conf3
-rw-r--r--meta/conf/machine-sdk/i686.conf2
-rw-r--r--meta/conf/machine-sdk/x86_64.conf1
-rw-r--r--meta/conf/machine/include/README100
-rw-r--r--meta/conf/machine/include/arm/README40
-rw-r--r--meta/conf/machine/include/arm/arch-arm.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv4.inc34
-rw-r--r--meta/conf/machine/include/arm/arch-armv5-dsp.inc52
-rw-r--r--meta/conf/machine/include/arm/arch-armv5.inc60
-rw-r--r--meta/conf/machine/include/arm/arch-armv6.inc50
-rw-r--r--meta/conf/machine/include/arm/arch-armv7a.inc75
-rw-r--r--meta/conf/machine/include/arm/feature-arm-neon.inc3
-rw-r--r--meta/conf/machine/include/arm/feature-arm-thumb.inc44
-rw-r--r--meta/conf/machine/include/arm/feature-arm-vfp.inc9
-rw-r--r--meta/conf/machine/include/mips/README36
-rw-r--r--meta/conf/machine/include/mips/arch-mips.inc102
-rw-r--r--meta/conf/machine/include/powerpc/README17
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc.inc34
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc64.inc14
-rw-r--r--meta/conf/machine/include/qemu.inc29
-rw-r--r--meta/conf/machine/include/sh/README11
-rw-r--r--meta/conf/machine/include/sh/arch-sh.inc9
-rw-r--r--meta/conf/machine/include/soc-family.inc2
-rw-r--r--meta/conf/machine/include/tune-arm1136jf-s.inc11
-rw-r--r--meta/conf/machine/include/tune-arm920t.inc11
-rw-r--r--meta/conf/machine/include/tune-arm926ejs.inc11
-rw-r--r--meta/conf/machine/include/tune-arm9tdmi.inc11
-rw-r--r--meta/conf/machine/include/tune-atom.inc2
-rw-r--r--meta/conf/machine/include/tune-c3.inc12
-rw-r--r--meta/conf/machine/include/tune-core2.inc35
-rw-r--r--meta/conf/machine/include/tune-corei7.inc35
-rw-r--r--meta/conf/machine/include/tune-cortexa15.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa5.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa7.inc42
-rw-r--r--meta/conf/machine/include/tune-cortexa8.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa9.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexm1.inc11
-rw-r--r--meta/conf/machine/include/tune-cortexm3.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexr4.inc14
-rw-r--r--meta/conf/machine/include/tune-ep9312.inc12
-rw-r--r--meta/conf/machine/include/tune-i586.inc14
-rw-r--r--meta/conf/machine/include/tune-iwmmxt.inc14
-rw-r--r--meta/conf/machine/include/tune-mips32.inc25
-rw-r--r--meta/conf/machine/include/tune-mips32r2.inc17
-rw-r--r--meta/conf/machine/include/tune-mips64.inc3
-rw-r--r--meta/conf/machine/include/tune-power5.inc21
-rw-r--r--meta/conf/machine/include/tune-power6.inc21
-rw-r--r--meta/conf/machine/include/tune-power7.inc21
-rw-r--r--meta/conf/machine/include/tune-ppc476.inc14
-rw-r--r--meta/conf/machine/include/tune-ppc603e.inc14
-rw-r--r--meta/conf/machine/include/tune-ppc7400.inc14
-rw-r--r--meta/conf/machine/include/tune-ppce300c2.inc11
-rw-r--r--meta/conf/machine/include/tune-ppce300c3.inc23
-rw-r--r--meta/conf/machine/include/tune-ppce500.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce500mc.inc14
-rw-r--r--meta/conf/machine/include/tune-ppce500v2.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce5500.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce6500.inc21
-rw-r--r--meta/conf/machine/include/tune-sh3.inc17
-rw-r--r--meta/conf/machine/include/tune-sh4.inc34
-rw-r--r--meta/conf/machine/include/tune-strongarm1100.inc11
-rw-r--r--meta/conf/machine/include/tune-supersparc.inc4
-rw-r--r--meta/conf/machine/include/tune-xscale.inc16
-rw-r--r--meta/conf/machine/include/x86-base.inc52
-rw-r--r--meta/conf/machine/include/x86/README24
-rw-r--r--meta/conf/machine/include/x86/arch-x86.inc51
-rw-r--r--meta/conf/machine/qemuarm.conf12
-rw-r--r--meta/conf/machine/qemumips.conf13
-rw-r--r--meta/conf/machine/qemumips64.conf13
-rw-r--r--meta/conf/machine/qemuppc.conf11
-rw-r--r--meta/conf/machine/qemux86-64.conf29
-rw-r--r--meta/conf/machine/qemux86.conf28
-rw-r--r--meta/conf/migrate_localcount.conf1
-rw-r--r--meta/conf/multilib.conf19
-rw-r--r--meta/conf/prexport.conf1
-rw-r--r--meta/conf/primport.conf1
-rw-r--r--meta/conf/sanity.conf16
-rw-r--r--meta/conf/swabber/Ubuntu-10.04.1-64/blacklist6
-rw-r--r--meta/conf/swabber/Ubuntu-10.04.1-64/filters7
-rw-r--r--meta/conf/swabber/Ubuntu-10.04.1-64/whitelist23
-rw-r--r--meta/conf/swabber/generic/blacklist2
-rw-r--r--meta/conf/swabber/generic/filters10
-rw-r--r--meta/conf/swabber/generic/whitelist15
100 files changed, 3704 insertions, 0 deletions
diff --git a/meta/conf/abi_version.conf b/meta/conf/abi_version.conf
new file mode 100644
index 0000000..e8cf9a3
--- /dev/null
+++ b/meta/conf/abi_version.conf
@@ -0,0 +1,7 @@
1#
2# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
3# an incompatible way. Such changes should usually be detailed in the commit
4# that breaks the format and have been previously discussed on the mailing list
5# with general agreement from the core team.
6#
7OELAYOUT_ABI = "9"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
new file mode 100644
index 0000000..5e83228
--- /dev/null
+++ b/meta/conf/bitbake.conf
@@ -0,0 +1,787 @@
1##################################################################
2# Standard target filesystem paths.
3##################################################################
4#
5# If changing these values, beware that native/cross/nativesdk bbclass
6# files may also need changes to keep in sync.
7#
8
9# Used by multilib code to change the library paths
10baselib = "${BASELIB}"
11baselib[vardepvalue] = "${baselib}"
12BASELIB = "lib"
13BASELIB_powerpc64 = "lib64"
14
15# Path prefixes
16export base_prefix = ""
17export prefix = "/usr"
18export exec_prefix = "/usr"
19
20# Base paths
21export base_bindir = "${base_prefix}/bin"
22export base_sbindir = "${base_prefix}/sbin"
23export base_libdir = "${base_prefix}/${baselib}"
24export nonarch_base_libdir = "${base_prefix}/lib"
25
26# Architecture independent paths
27export sysconfdir = "${base_prefix}/etc"
28export servicedir = "${base_prefix}/srv"
29export sharedstatedir = "${base_prefix}/com"
30export localstatedir = "${base_prefix}/var"
31export datadir = "${prefix}/share"
32export infodir = "${datadir}/info"
33export mandir = "${datadir}/man"
34export docdir = "${datadir}/doc"
35export systemd_unitdir = "/lib/systemd"
36
37# Architecture dependent paths
38export bindir = "${exec_prefix}/bin"
39export sbindir = "${exec_prefix}/sbin"
40export libdir = "${exec_prefix}/${baselib}"
41export libexecdir = "${libdir}/${BPN}"
42export includedir = "${exec_prefix}/include"
43export oldincludedir = "${exec_prefix}/include"
44localedir = "${libdir}/locale"
45
46# Linkage between native/cross/nativesdk layouts
47base_bindir_native = "/bin"
48base_sbindir_native = "/sbin"
49sysconfdir_native = "/etc"
50prefix_native = "/usr"
51bindir_native = "${prefix_native}/bin"
52sbindir_native = "${prefix_native}/sbin"
53includedir_native = "${prefix_native}/include"
54libdir_native = "${prefix_native}/lib"
55libexecdir_native = "${libdir_native}/${BPN}"
56base_libdir_native = "/lib"
57datadir_native = "${prefix_native}/share"
58bindir_cross = "/bin"
59bindir_crossscripts = "${bindir}/crossscripts"
60prefix_nativesdk = "/usr"
61bindir_nativesdk = "${prefix_nativesdk}/bin"
62includedir_nativesdk = "${prefix_nativesdk}/include"
63libdir_nativesdk = "${prefix_nativesdk}/lib"
64base_libdir_nativesdk = "/lib"
65localstatedir_nativesdk = "/var"
66
67#
68# Cross recipes need to know about the target layout
69# := is used carefully here
70#
71target_datadir := "${datadir}"
72# Used to find env/perl/python
73USRBINPATH = "${bindir}"
74USRBINPATH_class-native = "/usr/bin"
75USRBINPATH_class-nativesdk = "/usr/bin"
76
77# Root home directory
78ROOT_HOME ??= "/home/root"
79
80##################################################################
81# Architecture-dependent build variables.
82##################################################################
83
84BUILD_ARCH = "${@os.uname()[4]}"
85BUILD_OS = "${@os.uname()[0].lower()}"
86BUILD_VENDOR = ""
87BUILD_SYS = "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}"
88BUILD_PREFIX = ""
89BUILD_CC_ARCH = ""
90BUILD_LD_ARCH = ""
91BUILD_AS_ARCH = ""
92BUILD_EXEEXT = ""
93
94HOST_ARCH = "${TARGET_ARCH}"
95HOST_OS = "${TARGET_OS}"
96HOST_VENDOR = "${TARGET_VENDOR}"
97HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
98HOST_PREFIX = "${TARGET_PREFIX}"
99HOST_CC_ARCH = "${TARGET_CC_ARCH}"
100HOST_LD_ARCH = "${TARGET_LD_ARCH}"
101HOST_AS_ARCH = "${TARGET_AS_ARCH}"
102HOST_EXEEXT = ""
103
104TUNE_ARCH ??= "INVALID"
105TUNE_CCARGS ??= ""
106TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}"
107TUNE_LDARGS ??= ""
108TUNE_ASARGS ??= ""
109TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
110LIBCEXTENSION ??= ""
111ABIEXTENSION ??= ""
112USE_NLS ??= "yes"
113SDKUSE_NLS ??= "yes"
114
115TARGET_ARCH = "${TUNE_ARCH}"
116TARGET_OS = "linux${LIBCEXTENSION}${ABIEXTENSION}"
117TARGET_VENDOR = "-oe"
118TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + d.getVar('TARGET_OS', True), ''][d.getVar('TARGET_OS', True) == ('' or 'custom')]}"
119TARGET_PREFIX = "${TARGET_SYS}-"
120TARGET_CC_ARCH = "${TUNE_CCARGS}"
121TARGET_LD_ARCH = "${TUNE_LDARGS}"
122TARGET_AS_ARCH = "${TUNE_ASARGS}"
123
124SDK_ARCH = "${BUILD_ARCH}"
125SDK_OS = "${BUILD_OS}"
126SDK_VENDOR = "-oesdk"
127SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS', True), ''][d.getVar('SDK_OS', True) == ('' or 'custom')]}"
128SDK_PREFIX = "${SDK_SYS}-"
129SDK_CC_ARCH = "${BUILD_CC_ARCH}"
130SDKPKGSUFFIX = "nativesdk"
131SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}"
132SDK_LD_ARCH = "${BUILD_LD_ARCH}"
133SDK_AS_ARCH = "${BUILD_AS_ARCH}"
134
135TUNE_PKGARCH ??= ""
136PACKAGE_ARCH ??= "${TUNE_PKGARCH}"
137MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH', True), d.getVar('MACHINE', True)][bool(d.getVar('MACHINE', True))].replace('-', '_')}"
138PACKAGE_EXTRA_ARCHS ??= "${PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE}}"
139PACKAGE_ARCHS = "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}"
140# MACHINE_ARCH shouldn't be included here as a variable dependency
141# since machine specific packages are handled using multimachine
142PACKAGE_ARCHS[vardepsexclude] = "MACHINE_ARCH"
143
144MULTIMACH_TARGET_SYS = "${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
145MULTIMACH_HOST_SYS = "${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}"
146
147##################################################################
148# Date/time variables.
149##################################################################
150
151DATE := "${@time.strftime('%Y%m%d',time.gmtime())}"
152TIME := "${@time.strftime('%H%M%S',time.gmtime())}"
153DATETIME = "${DATE}${TIME}"
154
155##################################################################
156# Openembedded Software Prerequisites.
157##################################################################
158
159# python-native should be here but python relies on building
160# its own in staging
161ASSUME_PROVIDED = "\
162 bzip2-native \
163 chrpath-native \
164 git-native \
165 grep-native \
166 diffstat-native \
167 patch-native \
168 perl-native-runtime \
169 python-native-runtime \
170 tar-native \
171 virtual/libintl-native \
172 texinfo-native \
173 bash-native \
174 "
175# gzip-native should be listed above?
176
177##################################################################
178# Package default variables.
179##################################################################
180
181PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}"
182PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}"
183PR = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[2] or 'r0'}"
184PRINC ?= "0"
185PF = "${PN}-${EXTENDPE}${PV}-${PR}"
186EXTENDPE = "${@['','${PE\x7d_'][int(d.getVar('PE',1) or 0) > 0]}"
187P = "${PN}-${PV}"
188
189EXTENDPRAUTO = "${@['.${PRAUTO\x7d',''][d.getVar('PRAUTO',1) is None]}"
190PRAUTOINX = "${PF}"
191
192PKGV ?= "${PV}"
193PKGR ?= "${PR}${EXTENDPRAUTO}"
194PKGE ?= "${@['','${PE\x7d'][int(d.getVar('PE',1) or 0) > 0]}"
195EXTENDPKGEVER = "${@['','${PKGE\x7d:'][d.getVar('PKGE',1).strip() != '']}"
196EXTENDPKGV ?= "${EXTENDPKGEVER}${PKGV}-${PKGR}"
197
198# Base package name
199# Automatically derives "foo" from "foo-native", "foo-cross" or "foo-initial"
200# otherwise it is the same as PN and P
201SPECIAL_PKGSUFFIX = "-native -cross -initial -intermediate -crosssdk -cross-canadian"
202BPN = "${@base_prune_suffix(d.getVar('PN', True), d.getVar('SPECIAL_PKGSUFFIX', True).split(), d)}"
203BP = "${BPN}-${PV}"
204
205# Package info.
206
207SECTION = "base"
208PRIORITY = "optional"
209SUMMARY ?= "${PN} version ${PV}-${PR}"
210DESCRIPTION ?= "${SUMMARY}."
211
212# The following two are commented out because they result in a recursive
213# definition of the variable in some corner cases. These are left in
214# to illustrate the intended behavior.
215#SUMMARY_${PN} ?= "${SUMMARY}"
216#DESCRIPTION_${PN} ?= "${DESCRIPTION}"
217
218SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files"
219DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \
220This package contains ELF symbols and related sources for debugging purposes."
221
222SUMMARY_${PN}-dev ?= "${SUMMARY} - Development files"
223DESCRIPTION_${PN}-dev ?= "${DESCRIPTION} \
224This package contains symbolic links, header files, and \
225related items necessary for software development."
226
227SUMMARY_${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)"
228DESCRIPTION_${PN}-staticdev?= "${DESCRIPTION} \
229This package contains static libraries for software development."
230
231SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files"
232DESCRIPTION_${PN}-doc ?= "${DESCRIPTION} \
233This package contains documentation."
234
235LICENSE = "INVALID"
236MAINTAINER = "OE-Core Developers <openembedded-core@lists.openembedded.org>"
237HOMEPAGE = ""
238
239# Package dependencies and provides.
240
241# Ensure that -dev packages recommend the corresponding -dev packages of their
242# deps, and the same for -dbg.
243DEPCHAIN_PRE = ""
244DEPCHAIN_POST = "-dev -dbg"
245
246DEPENDS = ""
247RDEPENDS = ""
248PROVIDES = ""
249PROVIDES_prepend = "${PN} "
250RPROVIDES = ""
251
252MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
253
254SOLIBS = ".so.*"
255SOLIBS_darwin = ".dylib"
256
257SOLIBSDEV = ".so"
258# Due to the ordering of PACKAGES and the naming of the dev symlinks on darwin,
259# we can't make the symlinks end up in the -dev packages easily at this point. This hack
260# at least means builds aren't completely broken and symlinks don't take up much space.
261SOLIBSDEV_darwin = ".dylibbroken"
262
263PACKAGE_BEFORE_PN ?= ""
264PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
265PACKAGES_DYNAMIC = "^${PN}-locale-.*"
266FILES = ""
267
268FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
269 ${sysconfdir} ${sharedstatedir} ${localstatedir} \
270 ${base_bindir}/* ${base_sbindir}/* \
271 ${base_libdir}/*${SOLIBS} \
272 ${base_prefix}/lib/udev/rules.d ${prefix}/lib/udev/rules.d \
273 ${datadir}/${BPN} ${libdir}/${BPN}/* \
274 ${datadir}/pixmaps ${datadir}/applications \
275 ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
276 ${libdir}/bonobo/servers"
277
278FILES_${PN}-bin = "${bindir}/* ${sbindir}/*"
279
280FILES_${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \
281 ${datadir}/gnome/help"
282SECTION_${PN}-doc = "doc"
283
284FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
285FILES_${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
286 ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
287 ${datadir}/aclocal ${base_libdir}/*.o \
288 ${libdir}/${BPN}/*.la ${base_libdir}/*.la"
289SECTION_${PN}-dev = "devel"
290ALLOW_EMPTY_${PN}-dev = "1"
291RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPKGV})"
292
293FILES_${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
294SECTION_${PN}-staticdev = "devel"
295RDEPENDS_${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
296
297DOTDEBUG-dbg = "${bindir}/.debug ${sbindir}/.debug ${libexecdir}/.debug ${libdir}/.debug \
298 ${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug ${libdir}/${BPN}/.debug \
299 ${libdir}/matchbox-panel/.debug ${libexecdir}/${BPN}/.debug /usr/src/debug"
300
301DEBUGFILEDIRECTORY-dbg = "/usr/lib/debug /usr/src/debug"
302
303FILES_${PN}-dbg = "${@d.getVar(['DOTDEBUG-dbg', 'DEBUGFILEDIRECTORY-dbg'][d.getVar('PACKAGE_DEBUG_SPLIT_STYLE', True) == 'debug-file-directory'], True)}"
304
305SECTION_${PN}-dbg = "devel"
306ALLOW_EMPTY_${PN}-dbg = "1"
307
308FILES_${PN}-locale = "${datadir}/locale"
309
310# File manifest
311
312FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE'))}"
313# FILESPATH is set in base.bbclass
314#FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/${BP}:${FILE_DIRNAME}/${BPN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
315# This default was only used for checking
316FILESEXTRAPATHS ?= "__default:"
317
318##################################################################
319# General work and output directories for the build system.
320##################################################################
321
322TMPDIR ?= "${TOPDIR}/tmp"
323CACHE = "${TMPDIR}/cache${@['', '/' + str(d.getVar('MACHINE', True))][bool(d.getVar('MACHINE', True))]}${@['', '/' + str(d.getVar('SDKMACHINE', True))][bool(d.getVar('SDKMACHINE', True))]}"
324# The persistent cache should be shared by all builds
325PERSISTENT_DIR = "${TOPDIR}/cache"
326LOG_DIR = "${TMPDIR}/log"
327CO_DIR = "${DL_DIR}"
328CVSDIR = "${CO_DIR}/cvs"
329SVNDIR = "${CO_DIR}/svn"
330GITDIR = "${CO_DIR}/git2"
331BZRDIR = "${CO_DIR}/bzr"
332HGDIR = "${CO_DIR}/hg"
333
334STAMPS_DIR ?= "${TMPDIR}/stamps"
335STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
336STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
337BASE_WORKDIR ?= "${TMPDIR}/work"
338WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
339T = "${WORKDIR}/temp"
340D = "${WORKDIR}/image"
341S = "${WORKDIR}/${BP}"
342B = "${S}"
343
344STAGING_DIR = "${TMPDIR}/sysroots"
345
346STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
347STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
348STAGING_BINDIR_CROSS = "${STAGING_BINDIR}/crossscripts"
349STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
350STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
351STAGING_LIBEXECDIR_NATIVE = "${STAGING_DIR_NATIVE}${libexecdir_native}"
352STAGING_BASE_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${base_libdir_native}"
353STAGING_SBINDIR_NATIVE = "${STAGING_DIR_NATIVE}${sbindir_native}"
354STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
355STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
356STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
357
358STAGING_DIR_HOST = "${STAGING_DIR}/${MACHINE}"
359STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
360STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
361STAGING_LIBEXECDIR = "${STAGING_DIR_HOST}${libexecdir}"
362STAGING_BASELIBDIR = "${STAGING_DIR_HOST}${base_libdir}"
363STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
364STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
365STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${exec_prefix}"
366STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
367STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
368
369STAGING_DIR_TARGET = "${STAGING_DIR}/${MACHINE}"
370STAGING_DIR_TCBOOTSTRAP = "${STAGING_DIR_TARGET}-tcbootstrap"
371
372# Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using
373# packaged staging and/or multimachine.
374DEPLOY_DIR ?= "${TMPDIR}/deploy"
375DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
376DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
377DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
378DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
379DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
380DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
381
382PKGDATA_DIR = "${STAGING_DIR_HOST}/pkgdata"
383
384##################################################################
385# SDK variables.
386##################################################################
387
388SDK_NAME_PREFIX ?= "oecore"
389SDK_NAME = "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TUNE_PKGARCH}"
390SDKPATH = "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}"
391SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
392
393##################################################################
394# Kernel info.
395##################################################################
396
397OLDEST_KERNEL = "2.6.32"
398STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/usr/src/kernel"
399
400##################################################################
401# Specific image creation and rootfs population info.
402##################################################################
403
404IMAGE_ROOTFS = "${WORKDIR}/rootfs"
405IMAGE_BASENAME = "${PN}"
406IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
407IMAGE_NAME[vardepsexclude] += "DATETIME"
408IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
409
410# This option allows for a percentage overage of the actual image size rather than a
411# fixed extra space, this is space needed for initial startup and basic operations.
412IMAGE_OVERHEAD_FACTOR ?= "1.3"
413# This option allows for adding additional space in K above and beyond what the
414# IMAGE_OVERHEAD_FACTOR might add. This space is for additional packages, user data, ...
415# To set a fixed size then overriding IMAGE_ROOTFS_SIZE with the max size one wants
416# should do the trick
417IMAGE_ROOTFS_EXTRA_SPACE ?= "0"
418
419EXTRA_IMAGEDEPENDS = ""
420
421##################################################################
422# Toolchain info.
423##################################################################
424
425PATH_prepend = "${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:"
426export PATH
427
428##################################################################
429# Build utility info.
430##################################################################
431
432CCACHE ??= ""
433# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
434# of ccache some distributions (e.g., Fedora 17).
435export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
436# Assign CCACHE_DIR a default value to fix a bug of ccache 3.1.7,
437# since it would always create CCACHE_DIR/.ccache even if
438# CCACHE_DISABLE = 1.
439export CCACHE_DIR ??= "${@os.getenv('HOME')}"
440
441TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
442
443export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
444export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
445export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
446export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
447export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
448export CCLD = "${CC}"
449export AR = "${HOST_PREFIX}ar"
450export AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}"
451export RANLIB = "${HOST_PREFIX}ranlib"
452export STRIP = "${HOST_PREFIX}strip"
453export OBJCOPY = "${HOST_PREFIX}objcopy"
454export OBJDUMP = "${HOST_PREFIX}objdump"
455export STRINGS = "${HOST_PREFIX}strings"
456export NM = "${HOST_PREFIX}nm"
457PYTHON = "${@sys.executable}"
458
459export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
460export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
461export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
462export BUILD_CPP = "${BUILD_PREFIX}cpp ${BUILD_CC_ARCH}"
463export BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}"
464export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
465export BUILD_AR = "${BUILD_PREFIX}ar"
466export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}"
467export BUILD_RANLIB = "${BUILD_PREFIX}ranlib"
468export BUILD_STRIP = "${BUILD_PREFIX}strip"
469export BUILD_NM = "${BUILD_PREFIX}nm"
470
471export MAKE = "make"
472EXTRA_OEMAKE = "-e MAKEFLAGS="
473EXTRA_OECONF = ""
474export LC_ALL = "C"
475
476##################################################################
477# Patch handling.
478##################################################################
479PATCHTOOL = 'quilt'
480PATCHRESOLVE = 'user'
481
482##################################################################
483# Build flags and options.
484##################################################################
485
486export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
487BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
488export CPPFLAGS = "${TARGET_CPPFLAGS}"
489export TARGET_CPPFLAGS = ""
490#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
491
492export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
493BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
494export CFLAGS = "${TARGET_CFLAGS}"
495export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
496
497export BUILD_CXXFLAGS = "${BUILD_CFLAGS}"
498export CXXFLAGS = "${TARGET_CXXFLAGS}"
499export TARGET_CXXFLAGS = "${TARGET_CFLAGS}"
500
501export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
502 -L${STAGING_BASE_LIBDIR_NATIVE} \
503 -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \
504 -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} \
505 -Wl,-rpath,${STAGING_LIBDIR_NATIVE} \
506 -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE} \
507 -Wl,-O1"
508
509BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
510 -Wl,-rpath-link,${STAGING_LIBDIR} \
511 -Wl,-rpath,${libdir} -Wl,-O1 \
512 -L${STAGING_DIR_HOST}${base_libdir} \
513 -Wl,-rpath-link,${STAGING_DIR_HOST}${base_libdir} \
514 -Wl,-rpath,${base_libdir} -Wl,-O1"
515
516LINKER_HASH_STYLE ??= "gnu"
517# mips does not support GNU hash style therefore we override
518LINKER_HASH_STYLE_mips = "sysv"
519LINKER_HASH_STYLE_mipsel = "sysv"
520LINKER_HASH_STYLE_mips64 = "sysv"
521LINKER_HASH_STYLE_mips64el = "sysv"
522LINKER_HASH_STYLE_mips64n32 = "sysv"
523LINKER_HASH_STYLE_mips64eln32 = "sysv"
524TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE', True) != 'gnu']}"
525
526export LDFLAGS = "${TARGET_LDFLAGS}"
527export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE}"
528#export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} \
529# -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir} \
530# -Wl,-O1"
531
532# Which flags to leave by strip-flags() in bin/build/oebuild.sh ?
533ALLOWED_FLAGS = "-O -mcpu -march -pipe"
534
535# Pass parallel make options to the compile task
536EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
537PARALLEL_MAKEINST ??= "${PARALLEL_MAKE}"
538# Pass parallel make options to the install task
539EXTRA_OEMAKE_prepend_task-install = "${PARALLEL_MAKEINST} "
540
541##################################################################
542# Optimization flags.
543##################################################################
544DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types"
545# Disabled until the option works properly -feliminate-dwarf2-dups
546FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}"
547DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
548SELECTED_OPTIMIZATION = "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD', True) == '1'], True)}"
549SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION"
550BUILD_OPTIMIZATION = "-O2 -pipe"
551
552##################################################################
553# Download locations and utilities.
554##################################################################
555
556APACHE_MIRROR = "http://www.apache.org/dist"
557DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
558GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
559GNOME_GIT = "git://git.gnome.org"
560GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources"
561GNU_MIRROR = "ftp://ftp.gnu.org/gnu"
562GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
563KERNELORG_MIRROR = "http://kernel.org/pub"
564SOURCEFORGE_MIRROR = "http://downloads.sourceforge.net"
565XLIBS_MIRROR = "http://xlibs.freedesktop.org/release"
566XORG_MIRROR = "http://xorg.freedesktop.org/releases"
567SAVANNAH_GNU_MIRROR = "http://download.savannah.gnu.org/releases"
568SAVANNAH_NONGNU_MIRROR = "http://download.savannah.nongnu.org/releases"
569CPAN_MIRROR = "http://search.cpan.org/CPAN"
570
571# You can use the mirror of your country to get faster downloads by putting
572# export DEBIAN_MIRROR = "ftp://ftp.de.debian.org/debian/pool"
573# into your local.conf
574
575FETCHCMD_svn = "/usr/bin/env svn --non-interactive --trust-server-cert"
576FETCHCMD_cvs = "/usr/bin/env cvs"
577FETCHCMD_wget = "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
578FETCHCMD_bzr = "/usr/bin/env bzr"
579FETCHCMD_hg = "/usr/bin/env hg"
580
581SRCDATE = "${DATE}"
582SRCREV ??= "INVALID"
583AUTOREV = "${@bb.fetch2.get_autorev(d)}"
584SRCPV = "${@bb.fetch2.get_srcrev(d)}"
585SRCPV[vardepvalue] = "${SRCPV}"
586
587SRC_URI = ""
588
589# Use pseudo as the fakeroot implementation
590PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
591PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${STAGING_DIR_NATIVE}"
592export PSEUDO_DISABLED = "1"
593#export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
594#export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
595#export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
596FAKEROOTBASEENV = "PSEUDO_BINDIR=${STAGING_BINDIR_NATIVE} PSEUDO_LIBDIR=${STAGING_BINDIR_NATIVE}/../lib/pseudo/lib PSEUDO_PREFIX=${STAGING_BINDIR_NATIVE}/../../ PSEUDO_DISABLED=1"
597FAKEROOTCMD = "${STAGING_BINDIR_NATIVE}/pseudo"
598FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
599FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
600FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
601PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
602
603##################################################################
604# Miscellaneous utilities.
605##################################################################
606
607# GNU patch tries to be intellgent about checking out read-only files from
608# a RCS, which freaks out those special folks with active Perforce clients
609# the following makes patch ignore RCS:
610
611export PATCH_GET="0"
612
613##################################################################
614# Not sure about the rest of this yet.
615##################################################################
616
617# Pre-build configuration output
618BUILDCFG_HEADER = "Build Configuration:"
619BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
620BUILDCFG_VARS[type] = "list"
621BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
622BUILDCFG_NEEDEDVARS[type] = "list"
623
624# Other
625
626export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig"
627export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
628export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}"
629export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
630export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
631
632###
633### Config file processing
634###
635
636# An empty distro leads to :: entries in OVERRIDES and FILEOVERRIDES which
637# is a bad idea. Setting a dummy value is better than a ton of anonymous python.
638DISTRO ??= "nodistro"
639
640# Overrides are processed left to right, so the ones that are named later take precedence.
641# You generally want them to go from least to most specific.
642#
643# This means that an envionment variable named '<foo>_arm' overrides an
644# environment variable '<foo>' (when ${TARGET_ARCH} is arm).
645# An environment variable '<foo>_qemuarm' overrides '<foo>' and overrides
646# '<foo>_arm' when ${MACHINE} is 'qemuarm'.
647# If you use combination ie '<foo>_qemuarm_arm', then '<foo>_qemuarm_arm' will override
648# '<foo>_qemuarm' and then '<foo>' will be overriden with that value from '<foo>_qemuarm'.
649# And finally '<foo>_forcevariable' overrides any standard variable, with the highest priority.
650#
651# This works for functions as well, they are really just environment variables.
652# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
653OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"
654OVERRIDES[vardepsexclude] = "MACHINEOVERRIDES"
655CLASSOVERRIDE ?= "class-target"
656DISTROOVERRIDES ?= "${@d.getVar('DISTRO', True) or ''}"
657MACHINEOVERRIDES ?= "${MACHINE}"
658MACHINEOVERRIDES[vardepsexclude] = "MACHINE"
659
660FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
661
662##################################################################
663# Include the rest of the config files.
664##################################################################
665
666require conf/abi_version.conf
667include conf/site.conf
668include conf/auto.conf
669include conf/local.conf
670include conf/build/${BUILD_SYS}.conf
671include conf/target/${TARGET_SYS}.conf
672include conf/machine/${MACHINE}.conf
673include conf/machine-sdk/${SDKMACHINE}.conf
674include conf/distro/${DISTRO}.conf
675include conf/distro/defaultsetup.conf
676include conf/documentation.conf
677include conf/licenses.conf
678require conf/sanity.conf
679
680##################################################################
681# Weak variables (usually to retain backwards compatibility)
682##################################################################
683
684DL_DIR ?= "${TOPDIR}/downloads"
685SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
686IMAGE_FSTYPES ?= "tar.gz"
687INITRAMFS_FSTYPES ?= "cpio.gz"
688DEFAULT_TASK_PROVIDER ?= "packagegroup-base"
689MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}"
690
691# The size in Kbytes for the generated image if it is larger than
692# the required size (du -ks IMAGE_ROOTFS * IMAGE_OVERHEAD_FACTOR),
693# and no effect if less than it.
694IMAGE_ROOTFS_SIZE ??= "65536"
695
696# Forcefully set CACHE now so future changes to things like
697# MACHINE don't change the path to the cache
698CACHE := "${CACHE}"
699
700# Default to setting automatically based on cpu count
701BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
702
703# Default to setting automatically based on cpu count
704PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
705
706##################################################################
707# Magic Cookie for SANITY CHECK
708##################################################################
709OES_BITBAKE_CONF = "1"
710
711##################################################################
712# Machine properties and packagegroup-base stuff
713##################################################################
714
715MACHINE_FEATURES ?= ""
716DISTRO_FEATURES ?= ""
717
718DISTRO_EXTRA_RDEPENDS ?= ""
719DISTRO_EXTRA_RRECOMMENDS ?= ""
720MACHINE_EXTRA_RDEPENDS ?= ""
721MACHINE_EXTRA_RRECOMMENDS ?= ""
722MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
723MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
724
725EXTRA_IMAGE_FEATURES ??= ""
726IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
727
728DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit"
729MACHINE_FEATURES_BACKFILL = "rtc"
730
731COMBINED_FEATURES = "\
732 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "alsa", d)} \
733 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "bluetooth", d)} \
734 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "ext2", d)} \
735 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "vfat", d)} \
736 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "irda", d)} \
737 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "pcmcia", d)} \
738 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "pci", d)} \
739 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "usbgadget", d)} \
740 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "usbhost", d)} \
741 ${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "wifi", d)}"
742COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
743
744SERIAL_CONSOLE ??= ""
745SERIAL_CONSOLES ??= "${@d.getVar('SERIAL_CONSOLE', True).replace(' ', ';')}"
746
747NO_RECOMMENDATIONS ?= ""
748BAD_RECOMMENDATIONS ?= ""
749
750# Make sure MACHINE isn't exported
751# (breaks binutils at least)
752MACHINE[unexport] = "1"
753
754# Make sure TARGET_ARCH isn't exported
755# (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this
756# in them, undocumented)
757TARGET_ARCH[unexport] = "1"
758
759# Make sure DISTRO isn't exported
760# (breaks sysvinit at least)
761DISTRO[unexport] = "1"
762
763# Used by canadian-cross to handle string conversions on TARGET_ARCH where needed
764TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH', True).replace("_", "-")}"
765
766# Complete output from bitbake
767BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
768
769# Setup our default hash policy
770BB_SIGNATURE_HANDLER ?= "OEBasicHash"
771BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
772 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
773 USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
774 PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
775 CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX \
776 WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR"
777BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
778 SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \
779 PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED"
780BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc defaultval _append _prepend deps depends \
781 lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude \
782 file-checksums python func task export unexport noexec nostamp dirs cleandirs \
783 sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \
784 recrdeptask nodeprrecs stamp-base stamp-extra-info"
785
786MLPREFIX ??= ""
787MULTILIB_VARIANTS ??= ""
diff --git a/meta/conf/conf-notes.txt b/meta/conf/conf-notes.txt
new file mode 100644
index 0000000..66e6319
--- /dev/null
+++ b/meta/conf/conf-notes.txt
@@ -0,0 +1,8 @@
1Common targets are:
2 core-image-minimal
3 core-image-sato
4 meta-toolchain
5 adt-installer
6 meta-ide-support
7
8You can also run generated qemu images with a command like 'runqemu qemux86'
diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
new file mode 100644
index 0000000..71c65b1
--- /dev/null
+++ b/meta/conf/distro/defaultsetup.conf
@@ -0,0 +1,23 @@
1include conf/distro/include/default-providers.inc
2include conf/distro/include/default-versions.inc
3include conf/distro/include/default-distrovars.inc
4include conf/distro/include/world-broken.inc
5
6TCMODE ?= "default"
7require conf/distro/include/tcmode-${TCMODE}.inc
8
9TCLIBC ?= "glibc"
10require conf/distro/include/tclibc-${TCLIBC}.inc
11
12# Allow single libc distros to disable this code
13TCLIBCAPPEND ?= "-${TCLIBC}"
14TMPDIR .= "${TCLIBCAPPEND}"
15
16CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE', True))][bool(d.getVar('MACHINE', True))]}${@['', '/' + str(d.getVar('SDKMACHINE', True))][bool(d.getVar('SDKMACHINE', True))]}"
17
18USER_CLASSES ?= ""
19PACKAGE_CLASSES ?= "package_ipk"
20INHERIT_BLACKLIST = "blacklist"
21INHERIT_DISTRO ?= "debian devshell sstate license"
22INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}"
23
diff --git a/meta/conf/distro/include/as-needed.inc b/meta/conf/distro/include/as-needed.inc
new file mode 100644
index 0000000..9d2056e
--- /dev/null
+++ b/meta/conf/distro/include/as-needed.inc
@@ -0,0 +1,16 @@
1
2ASNEEDED = "-Wl,--as-needed"
3
4ASNEEDED_pn-console-tools = ""
5ASNEEDED_pn-distcc = ""
6ASNEEDED_pn-openobex = ""
7ASNEEDED_pn-icu = ""
8ASNEEDED_pn-xserver-kdrive-xomap = ""
9ASNEEDED_pn-minimo = ""
10ASNEEDED_pn-pciutils = ""
11ASNEEDED_pn-puzzles = ""
12ASNEEDED_pn-dialer = ""
13ASNEEDED_pn-pulseaudio = ""
14ASNEEDED_pn-rpm = ""
15
16TARGET_LDFLAGS += "${ASNEEDED}"
diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
new file mode 100644
index 0000000..04037c3
--- /dev/null
+++ b/meta/conf/distro/include/default-distrovars.inc
@@ -0,0 +1,49 @@
1QA_LOGFILE = "${TMPDIR}/qa.log"
2
3OEINCLUDELOGS ?= "yes"
4KERNEL_CONSOLE ?= "ttyS0"
5KEEPUIMAGE ??= "yes"
6
7IMAGE_LINGUAS ?= "en-us en-gb"
8ENABLE_BINARY_LOCALE_GENERATION ?= "1"
9LOCALE_UTF8_ONLY ?= "0"
10
11DISTRO_FEATURES_DEFAULT ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11"
12DISTRO_FEATURES_LIBC_DEFAULT ?= "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \
13 libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \
14 libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \
15 libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \
16 libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \
17 libc-posix-wchar-io"
18DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}"
19DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}"
20DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC}"
21
22IMAGE_FEATURES ?= ""
23
24# This is a list of packages that are used by the build system to build the distribution, they are not
25# directly part of the distribution.
26HOSTTOOLS_WHITELIST_GPL-3.0 ?= ""
27WHITELIST_GPL-3.0 ?= "less"
28LGPLv2_WHITELIST_GPL-3.0 ?= "libassuan gnutls libtasn1 libidn gcc-source libgcc libgcc-initial gcc-runtime"
29
30COMMERCIAL_AUDIO_PLUGINS ?= ""
31# COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
32COMMERCIAL_VIDEO_PLUGINS ?= ""
33# COMMERCIAL_VIDEO_PLUGINS ?= "gst-plugins-ugly-mpeg2dec gst-plugins-ugly-mpegstream gst-plugins-bad-mpegvideoparse"
34COMMERCIAL_QT ?= ""
35# COMMERCIAL_QT ?= "qmmp"
36# Set of common licenses used for license.bbclass
37COMMON_LICENSE_DIR ??= "${COREBASE}/meta/files/common-licenses"
38
39BB_GENERATE_MIRROR_TARBALLS ??= "0"
40
41NO32LIBS ??= "1"
42
43# Default to emitting logfiles if a build fails.
44BBINCLUDELOGS ??= "yes"
45SDK_VERSION ??= "nodistro.0"
46DISTRO_VERSION ??= "nodistro.0"
47
48# Missing checksums should raise an error
49BB_STRICT_CHECKSUM = "1"
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc
new file mode 100644
index 0000000..35509a7
--- /dev/null
+++ b/meta/conf/distro/include/default-providers.inc
@@ -0,0 +1,48 @@
1#
2# Default virtual providers
3#
4PREFERRED_PROVIDER_virtual/db ?= "db"
5PREFERRED_PROVIDER_virtual/db-native ?= "db-native"
6PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
7PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg"
8PREFERRED_PROVIDER_virtual/egl ?= "mesa"
9PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
10PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
11PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
12PREFERRED_PROVIDER_virtual/mesa ?= "mesa"
13PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg-utils"
14PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-utils-native"
15PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
16PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel"
17
18#
19# Default virtual runtime providers
20#
21VIRTUAL-RUNTIME_update-alternatives ?= "update-alternatives-opkg"
22VIRTUAL-RUNTIME_apm ?= "apm"
23VIRTUAL-RUNTIME_alsa-state ?= "alsa-state"
24
25#
26# Default recipe providers
27#
28PREFERRED_PROVIDER_dbus-glib ?= "dbus-glib"
29PREFERRED_PROVIDER_dbus-glib-native ?= "dbus-glib-native"
30PREFERRED_PROVIDER_gdk-pixbuf ?= "gdk-pixbuf"
31PREFERRED_PROVIDER_libgcc ?= "libgcc"
32PREFERRED_PROVIDER_nativesdk-libgcc ?= "nativesdk-libgcc"
33PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
34PREFERRED_PROVIDER_nativesdk-linux-libc-headers ?= "nativesdk-linux-libc-headers"
35PREFERRED_PROVIDER_matchbox-panel ?= "matchbox-panel-2"
36PREFERRED_PROVIDER_opkg ?= "opkg"
37PREFERRED_PROVIDER_opkg-native ?= "opkg-native"
38PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
39PREFERRED_PROVIDER_console-tools ?= "kbd"
40PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
41PREFERRED_PROVIDER_make ?= "make"
42PREFERRED_PROVIDER_udev ?= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','udev',d)}"
43# There are issues with runtime packages and PREFERRED_PROVIDER, see YOCTO #5044 for details
44# on this rather strange entry.
45PREFERRED_PROVIDER_bluez4 ?= "bluez4"
46PREFERRED_PROVIDER_bluez-hcidump ?= "bluez-hcidump"
47# Alternative is ltp-ddt in meta-oe: meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_0.0.4.bb
48PREFERRED_PROVIDER_ltp ?= "ltp"
diff --git a/meta/conf/distro/include/default-versions.inc b/meta/conf/distro/include/default-versions.inc
new file mode 100644
index 0000000..53ec2e7
--- /dev/null
+++ b/meta/conf/distro/include/default-versions.inc
@@ -0,0 +1,11 @@
1#
2# Default preferred versions
3#
4
5# Force the python versions in one place
6PYTHON_BASEVERSION ?= "2.7"
7PREFERRED_VERSION_python ?= "2.7.3"
8PREFERRED_VERSION_python-native ?= "2.7.3"
9
10# Force the older version of liberation-fonts until we fix the fontforge issue
11PREFERRED_VERSION_liberation-fonts ?= "1.04"
diff --git a/meta/conf/distro/include/security_flags.inc b/meta/conf/distro/include/security_flags.inc
new file mode 100644
index 0000000..f23ddd2
--- /dev/null
+++ b/meta/conf/distro/include/security_flags.inc
@@ -0,0 +1,89 @@
1SECURITY_CFLAGS ?= "-fstack-protector-all -pie -fpie -D_FORTIFY_SOURCE=2"
2SECURITY_NO_PIE_CFLAGS ?= "-fstack-protector-all -D_FORTIFY_SOURCE=2"
3SECURITY_LDFLAGS ?= "-Wl,-z,relro,-z,now"
4SECURITY_X_LDFLAGS ?= "-Wl,-z,relro"
5
6# powerpc does not get on with pie for reasons not looked into as yet
7SECURITY_CFLAGS_powerpc = "-fstack-protector-all -D_FORTIFY_SOURCE=2"
8# Deal with ppc specific linker failures when using the cflags
9SECURITY_CFLAGS_pn-dbus_powerpc = ""
10SECURITY_CFLAGS_pn-dbus-ptest_powerpc = ""
11SECURITY_CFLAGS_pn-libmatchbox_powerpc = ""
12SECURITY_CFLAGS_pn-webkit-gtk_powerpc = ""
13
14# arm specific security flag issues
15SECURITY_CFLAGS_pn-lttng-tools_arm = "${SECURITY_NO_PIE_CFLAGS}"
16
17SECURITY_CFLAGS_pn-aspell = "${SECURITY_NO_PIE_CFLAGS}"
18SECURITY_CFLAGS_pn-beecrypt = "${SECURITY_NO_PIE_CFLAGS}"
19SECURITY_CFLAGS_pn-blktrace = "${SECURITY_NO_PIE_CFLAGS}"
20# Curl seems to check for FORTIFY_SOURCE in CFLAGS, but even assigned
21# to CPPFLAGS it gets picked into CFLAGS in bitbake.
22#TARGET_CPPFLAGS_pn-curl += "-D_FORTIFY_SOURCE=2"
23SECURITY_CFLAGS_pn-cups = "${SECURITY_NO_PIE_CFLAGS}"
24SECURITY_CFLAGS_pn-curl = "-fstack-protector-all -pie -fpie"
25SECURITY_CFLAGS_pn-db = "${SECURITY_NO_PIE_CFLAGS}"
26SECURITY_CFLAGS_pn-directfb = "${SECURITY_NO_PIE_CFLAGS}"
27SECURITY_CFLAGS_pn-glibc = ""
28SECURITY_CFLAGS_pn-glibc-initial = ""
29SECURITY_CFLAGS_pn-enchant = "${SECURITY_NO_PIE_CFLAGS}"
30SECURITY_CFLAGS_pn-expect = "${SECURITY_NO_PIE_CFLAGS}"
31SECURITY_CFLAGS_pn-flac = "${SECURITY_NO_PIE_CFLAGS}"
32SECURITY_CFLAGS_pn-gcc-runtime = "${SECURITY_NO_PIE_CFLAGS}"
33SECURITY_CFLAGS_pn-gdb = "${SECURITY_NO_PIE_CFLAGS}"
34SECURITY_CFLAGS_pn-gmp = "${SECURITY_NO_PIE_CFLAGS}"
35SECURITY_CFLAGS_pn-gnutls = "${SECURITY_NO_PIE_CFLAGS}"
36SECURITY_CFLAGS_pn-grub = ""
37SECURITY_CFLAGS_pn-grub-efi = ""
38SECURITY_CFLAGS_pn-grub-efi-native = ""
39SECURITY_CFLAGS_pn-grub-efi-x86-native = ""
40SECURITY_CFLAGS_pn-grub-efi-x86-64-native = ""
41SECURITY_CFLAGS_pn-grub-efi-i586-native = ""
42SECURITY_CFLAGS_pn-grub-efi-x86-64-native = ""
43SECURITY_CFLAGS_pn-gst-plugins-bad = "${SECURITY_NO_PIE_CFLAGS}"
44SECURITY_CFLAGS_pn-gst-plugins-gl = "${SECURITY_NO_PIE_CFLAGS}"
45SECURITY_CFLAGS_pn-gstreamer1.0-plugins-good = "${SECURITY_NO_PIE_CFLAGS}"
46SECURITY_CFLAGS_pn-harfbuzz = "${SECURITY_NO_PIE_CFLAGS}"
47SECURITY_CFLAGS_pn-kexec-tools = "${SECURITY_NO_PIE_CFLAGS}"
48SECURITY_CFLAGS_pn-libaio = "${SECURITY_NO_PIE_CFLAGS}"
49SECURITY_CFLAGS_pn-libcap = "${SECURITY_NO_PIE_CFLAGS}"
50SECURITY_CFLAGS_pn-libgcc = "${SECURITY_NO_PIE_CFLAGS}"
51SECURITY_CFLAGS_pn-libid3tag = "${SECURITY_NO_PIE_CFLAGS}"
52SECURITY_CFLAGS_pn-libnewt = "${SECURITY_NO_PIE_CFLAGS}"
53SECURITY_CFLAGS_pn-libglu = "${SECURITY_NO_PIE_CFLAGS}"
54SECURITY_CFLAGS_pn-libpcap = "${SECURITY_NO_PIE_CFLAGS}"
55SECURITY_CFLAGS_pn-libpcre = "${SECURITY_NO_PIE_CFLAGS}"
56SECURITY_CFLAGS_pn-libproxy = "${SECURITY_NO_PIE_CFLAGS}"
57SECURITY_CFLAGS_pn-ltp = "${SECURITY_NO_PIE_CFLAGS}"
58SECURITY_CFLAGS_pn-lttng-ust = "${SECURITY_NO_PIE_CFLAGS}"
59SECURITY_CFLAGS_pn-mesa = "${SECURITY_NO_PIE_CFLAGS}"
60SECURITY_CFLAGS_pn-mesa-gl = "${SECURITY_NO_PIE_CFLAGS}"
61SECURITY_CFLAGS_pn-openssl = "${SECURITY_NO_PIE_CFLAGS}"
62SECURITY_CFLAGS_pn-opensp = "${SECURITY_NO_PIE_CFLAGS}"
63SECURITY_CFLAGS_pn-ppp = "${SECURITY_NO_PIE_CFLAGS}"
64SECURITY_CFLAGS_pn-python = "${SECURITY_NO_PIE_CFLAGS}"
65SECURITY_CFLAGS_pn-python-imaging = "${SECURITY_NO_PIE_CFLAGS}"
66SECURITY_CFLAGS_pn-python-pycurl = "${SECURITY_NO_PIE_CFLAGS}"
67SECURITY_CFLAGS_pn-python-smartpm = "${SECURITY_NO_PIE_CFLAGS}"
68SECURITY_CFLAGS_pn-tcl = "${SECURITY_NO_PIE_CFLAGS}"
69SECURITY_CFLAGS_pn-tiff = "${SECURITY_NO_PIE_CFLAGS}"
70SECURITY_CFLAGS_pn-valgrind = "${SECURITY_NO_PIE_CFLAGS}"
71SECURITY_CFLAGS_pn-webkit-gtk = "${SECURITY_NO_PIE_CFLAGS}"
72SECURITY_CFLAGS_pn-zlib = "${SECURITY_NO_PIE_CFLAGS}"
73SECURITY_CFLAGS_pn-lvm2 = "${SECURITY_NO_PIE_CFLAGS}"
74SECURITY_CFLAGS_pn-expect = "${SECURITY_NO_PIE_CFLAGS}"
75
76# These 2 have text relco errors with the pie options enabled
77SECURITY_CFLAGS_pn-ltp = "${SECURITY_NO_PIE_CFLAGS}"
78SECURITY_CFLAGS_pn-pulseaudio = "${SECURITY_NO_PIE_CFLAGS}"
79
80TARGET_CFLAGS_append = " ${SECURITY_CFLAGS}"
81TARGET_LDFLAGS_append = " ${SECURITY_LDFLAGS}"
82
83SECURITY_LDFLAGS_pn-xf86-video-fbdev = "${SECURITY_X_LDFLAGS}"
84SECURITY_LDFLAGS_pn-xf86-video-intel = "${SECURITY_X_LDFLAGS}"
85SECURITY_LDFLAGS_pn-xf86-video-omapfb = "${SECURITY_X_LDFLAGS}"
86SECURITY_LDFLAGS_pn-xf86-video-omap = "${SECURITY_X_LDFLAGS}"
87SECURITY_LDFLAGS_pn-xf86-video-vesa = "${SECURITY_X_LDFLAGS}"
88SECURITY_LDFLAGS_pn-xf86-video-vmware = "${SECURITY_X_LDFLAGS}"
89SECURITY_LDFLAGS_pn-xserver-xorg = "${SECURITY_X_LDFLAGS}"
diff --git a/meta/conf/distro/include/tclibc-glibc.inc b/meta/conf/distro/include/tclibc-glibc.inc
new file mode 100644
index 0000000..649918f
--- /dev/null
+++ b/meta/conf/distro/include/tclibc-glibc.inc
@@ -0,0 +1,40 @@
1#
2# glibc specific configuration
3#
4
5LIBCEXTENSION = "${@['', '-gnu'][(d.getVar('ABIEXTENSION', True) or '') != '']}"
6
7# Add glibc overrides to the overrides for glibc.
8LIBCOVERRIDE = ":libc-glibc"
9OVERRIDES .= "${LIBCOVERRIDE}"
10
11PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
12PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
13PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
14PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
15PREFERRED_PROVIDER_virtual/libc ?= "glibc"
16PREFERRED_PROVIDER_virtual/nativesdk-libc ?= "nativesdk-glibc"
17PREFERRED_PROVIDER_virtual/libc-locale ?= "glibc-locale"
18
19CXXFLAGS += "-fvisibility-inlines-hidden"
20
21LIBC_DEPENDENCIES = "libsegfault \
22 glibc \
23 glibc-dbg \
24 glibc-dev \
25 glibc-utils \
26 glibc-thread-db \
27 ${@get_libc_locales_dependencies(d)}"
28
29LIBC_LOCALE_DEPENDENCIES = "\
30 glibc-localedata-i18n \
31 glibc-gconv-ibm850 \
32 glibc-gconv-cp1252 \
33 glibc-gconv-iso8859-1 \
34 glibc-gconv-iso8859-15"
35
36def get_libc_locales_dependencies(d):
37 if 'libc-locales' in (d.getVar('DISTRO_FEATURES', True) or '').split() :
38 return d.getVar('LIBC_LOCALE_DEPENDENCIES', True) or ''
39 else:
40 return ''
diff --git a/meta/conf/distro/include/tclibc-musl.inc b/meta/conf/distro/include/tclibc-musl.inc
new file mode 100644
index 0000000..d1272a3
--- /dev/null
+++ b/meta/conf/distro/include/tclibc-musl.inc
@@ -0,0 +1,27 @@
1#
2# musl specific configuration
3#
4
5LIBCEXTENSION = "-musl"
6
7# Add uclibc overrides to the overrides.
8LIBCOVERRIDE = ":libc-musl"
9OVERRIDES .= "${LIBCOVERRIDE}"
10
11PREFERRED_PROVIDER_virtual/libc ?= "musl"
12PREFERRED_PROVIDER_virtual/libiconv ?= "musl"
13PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
14PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
15PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
16
17USE_NLS ?= "no"
18
19CXXFLAGS += "-fvisibility-inlines-hidden"
20
21IMAGE_LINGUAS = ""
22
23LIBC_DEPENDENCIES = "\
24 musl \
25 musl-dbg \
26 musl-dev \
27 "
diff --git a/meta/conf/distro/include/tclibc-uclibc.inc b/meta/conf/distro/include/tclibc-uclibc.inc
new file mode 100644
index 0000000..14c3cdb
--- /dev/null
+++ b/meta/conf/distro/include/tclibc-uclibc.inc
@@ -0,0 +1,28 @@
1#
2# uclibc specific configuration
3#
4
5LIBCEXTENSION = "-uclibc"
6
7# Add uclibc overrides to the overrides.
8LIBCOVERRIDE = ":libc-uclibc"
9OVERRIDES .= "${LIBCOVERRIDE}"
10
11PREFERRED_PROVIDER_virtual/libc ?= "uclibc"
12PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
13PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
14PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
15PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
16
17USE_NLS ?= "no"
18
19CXXFLAGS += "-fvisibility-inlines-hidden"
20
21IMAGE_LINGUAS = ""
22
23LIBC_DEPENDENCIES = "\
24 uclibc \
25 uclibc-dbg \
26 uclibc-dev \
27 uclibc-thread-db \
28 "
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
new file mode 100644
index 0000000..99d6df9
--- /dev/null
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -0,0 +1,69 @@
1#
2# Default toolchain configuration
3#
4
5PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross-${TARGET_ARCH}"
6PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial-${TARGET_ARCH}"
7PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross-${TARGET_ARCH}"
8PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross-${TARGET_ARCH}"
9PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "gcc-runtime"
10PREFERRED_PROVIDER_gdb = "gdb"
11
12PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils-crosssdk ?= "binutils-crosssdk-${SDK_ARCH}"
13PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc-initial = "gcc-crosssdk-initial-${SDK_ARCH}"
14PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_ARCH}"
15PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_ARCH}"
16PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
17
18# Default libc config
19PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "${TCLIBC}"
20PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc ?= "nativesdk-${TCLIBC}"
21PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${TCLIBC}-initial"
22PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial = "nativesdk-${TCLIBC}-initial"
23PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
24
25GCCVERSION ?= "4.9%"
26SDKGCCVERSION ?= "${GCCVERSION}"
27BINUVERSION ?= "2.24"
28GLIBCVERSION ?= "2.20"
29UCLIBCVERSION ?= "0.9.33+git%"
30LINUXLIBCVERSION ?= "3.16"
31
32PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
33PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
34PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} ?= "${GCCVERSION}"
35PREFERRED_VERSION_gcc-crosssdk-${SDK_ARCH} ?= "${SDKGCCVERSION}"
36PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_ARCH} ?= "${SDKGCCVERSION}"
37PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "${GCCVERSION}"
38PREFERRED_VERSION_gcc-runtime ?= "${GCCVERSION}"
39PREFERRED_VERSION_gcc-source ?= "${GCCVERSION}"
40PREFERRED_VERSION_nativesdk-gcc-runtime ?= "${SDKGCCVERSION}"
41PREFERRED_VERSION_libgcc ?= "${GCCVERSION}"
42PREFERRED_VERSION_libgcc-initial ?= "${GCCVERSION}"
43PREFERRED_VERSION_nativesdk-libgcc ?= "${SDKGCCVERSION}"
44PREFERRED_VERSION_nativesdk-libgcc-initial ?= "${SDKGCCVERSION}"
45PREFERRED_VERSION_binutils ?= "${BINUVERSION}"
46PREFERRED_VERSION_binutils-native ?= "${BINUVERSION}"
47PREFERRED_VERSION_binutils-cross-${TARGET_ARCH} ?= "${BINUVERSION}"
48PREFERRED_VERSION_binutils-crosssdk-${SDK_ARCH} ?= "${BINUVERSION}"
49PREFERRED_VERSION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "${BINUVERSION}"
50PREFERRED_VERSION_linux-libc-headers ?= "${LINUXLIBCVERSION}"
51PREFERRED_VERSION_nativesdk-linux-libc-headers ?= "${LINUXLIBCVERSION}"
52PREFERRED_VERSION_glibc ?= "${GLIBCVERSION}"
53PREFERRED_VERSION_glibc-locale ?= "${GLIBCVERSION}"
54PREFERRED_VERSION_glibc-mtrace ?= "${GLIBCVERSION}"
55PREFERRED_VERSION_glibc-scripts ?= "${GLIBCVERSION}"
56PREFERRED_VERSION_nativesdk-glibc ?= "${GLIBCVERSION}"
57PREFERRED_VERSION_glibc-initial ?= "${GLIBCVERSION}"
58PREFERRED_VERSION_nativesdk-glibc-initial ?= "${GLIBCVERSION}"
59PREFERRED_VERSION_cross-localedef-native ?= "${GLIBCVERSION}"
60PREFERRED_VERSION_uclibc ?= "${UCLIBCVERSION}"
61PREFERRED_VERSION_uclibc-initial ?= "${UCLIBCVERSION}"
62PREFERRED_VERSION_elfutils ?= "0.148"
63# don't use version earlier than 1.4 for gzip-native, as it's necessary for
64# some packages using an archive format incompatible with earlier gzip
65PREFERRED_VERSION_gzip-native ?= "1.6"
66
67# Setup suitable toolchain flags
68require conf/distro/include/as-needed.inc
69
diff --git a/meta/conf/distro/include/world-broken.inc b/meta/conf/distro/include/world-broken.inc
new file mode 100644
index 0000000..ab0c2dc
--- /dev/null
+++ b/meta/conf/distro/include/world-broken.inc
@@ -0,0 +1,5 @@
1#
2# Exclude known broken packages
3#
4
5
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
new file mode 100644
index 0000000..66ec093
--- /dev/null
+++ b/meta/conf/documentation.conf
@@ -0,0 +1,447 @@
1# this file holds documentation for known keys, possible values and
2# their meanings. Please update, correct and extend this documentation.
3# Mail your changes to openembedded-devel@openembedded.org
4
5# DESCRIPTIONS FOR TASKS #
6
7do_bootimg[doc] = "Creates a bootable live image"
8do_build[doc] = "Default task for a recipe - depends on all other normal tasks required to 'build' a recipe"
9do_bundle_initramfs[doc] = "Combines an initial ramdisk image and kernel together to form a single image"
10do_checkuri[doc] = "Validates the SRC_URI value"
11do_checkuriall[doc] = "Validates the SRC_URI value for all recipes required to build a target"
12do_clean[doc] = "Removes all output files for a target"
13do_cleanall[doc] = "Removes all output files, shared state cache, and downloaded source files for a target"
14do_cleansstate[doc] = "Removes all output files and shared state cache for a target"
15do_compile[doc] = "Compiles the source in the compilation directory"
16do_compile_kernelmodules[doc] = "Compiles loadable modules for the Linux kernel"
17do_compile_ptest_base[doc] = "Compiles the runtime test suite included in the software being built"
18do_configure[doc] = "Configures the source by enabling and disabling any build-time and configuration options for the software being built"
19do_configure_ptest_base[doc] = "Configures the runtime test suite included in the software being built"
20do_deploy[doc] = "Writes deployable output files to the deploy directory"
21do_devshell[doc] = "Starts a shell with the environment set up for development/debugging"
22do_diffconfig[doc] = "Compares the old and new config files after running do_menuconfig for the kernel"
23do_fetch[doc] = "Fetches the source code"
24do_fetchall[doc] = "Fetches all remote sources required to build a target"
25do_generate_qt_config_file[doc] = "Writes a qt.conf file for building a Qt-based application"
26do_install[doc] = "Copies files from the compilation directory to a holding area"
27do_install_ptest_base[doc] = "Copies the runtime test suite files from the compilation directory to a holding area"
28do_kernel_checkout[doc] = "Checks out source/meta branches for a linux-yocto style kernel"
29do_kernel_configcheck[doc] = "Validates the kernel configuration for a linux-yocto style kernel"
30do_kernel_configme[doc] = "Assembles the kernel configuration for a linux-yocto style kernel"
31do_kernel_link_vmlinux[doc] = "Creates a symbolic link in arch/$arch/boot for vmlinux kernel images"
32do_listtasks[doc] = "Lists all defined tasks for a target"
33do_menuconfig[doc] = "Runs 'make menuconfig' for the kernel"
34do_package[doc] = "Analyzes the content of the holding area and splits it into subsets based on available packages and files"
35do_package_index[doc] = "Creates or updates the index in the Package Feed area"
36do_package_write_deb[doc] = "Creates the actual DEB packages and places them in the Package Feed area"
37do_package_write_ipk[doc] = "Creates the actual IPK packages and places them in the Package Feed area"
38do_package_write_rpm[doc] = "Creates the actual RPM packages and places them in the Package Feed area"
39do_package_write_tar[doc] = "Creates tar archives for packages and places them in the Package Feed area"
40do_packagedata[doc] = "Creates package metadata used by the build system to generate the final packages"
41do_patch[doc] = "Locates patch files and applies them to the source code"
42do_populate_lic[doc] = "Writes license information for the recipe that is collected later when the image is constructed"
43do_populate_sdk[doc] = "Creates the file and directory structure for an installable SDK"
44do_populate_sysroot[doc] = "Copies a subset of files installed by do_install into the sysroot in order to make them available to other recipes"
45do_rm_work[doc] = "Removes work files after the build system has finished with them"
46do_rm_work_all[doc] = "Top-level task for removing work files after the build system has finished with them"
47do_rootfs[doc] = "Creates the root filesystem (file and directory structure) for an image"
48do_savedefconfig[doc] = "Creates a minimal Linux kernel configuration file"
49do_sizecheck[doc] = "Checks the size of the kernel image against KERNEL_IMAGE_MAXSIZE (if set)"
50do_spdx[doc] = "A build stage that takes the source code and scans it on a remote FOSSOLOGY server in order to produce an SPDX document"
51do_strip[doc] = "Strips unneeded sections out of the Linux kernel image"
52do_testimage[doc] = "Boots an image and performs runtime tests within the image"
53do_testimage_auto[doc] = "Boots an image and performs runtime tests within the image immediately after it has been built"
54do_uboot_mkimage[doc] = "Creates a uImage file from the kernel for the U-Boot bootloader"
55do_unpack[doc] = "Unpacks the source code into a working directory"
56do_validate_branches[doc] = "Ensures that the source/meta branches are on the locations specified by their SRCREV values for a linux-yocto style kernel"
57do_vmdkimg[doc] = "Creates a .vmdk image for use with VMware and compatible virtual machine hosts"
58
59# DESCRIPTIONS FOR VARIABLES #
60
61#A
62
63ALLOW_EMPTY[doc] = "Specifies if an output package should still be produced if it is empty."
64ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary naming scheme."
65ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
66ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
67ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
68ASSUME_PROVIDED[doc] = "List of packages (recipes actually) that are assumed to be implicitly available. BitBake does not build these packages."
69ASSUME_SHLIBS[doc] = "List of shlib:package[_version] mappings. Useful for lib packages in ASSUME_PROVIDED, for which automatic shlib dependency tracking does not work."
70AUTHOR[doc] = "Email address used to contact the original author(s) in order to send patches and forward bugs."
71AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
72AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
73
74#B
75
76B[doc] = "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
77BAD_RECOMMENDATIONS[doc] = "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK packaging backend."
78BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
79BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
80BB_DISKMON_WARNINTERVAL[doc] = "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory."
81BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
82BB_NUMBER_THREADS[doc] = "The maximum number of tasks BitBake should run in parallel at any one time. A good rule of thumb is to set this variable to twice the number of cores."
83BBCLASSEXTEND[doc] = "Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes are 'native', 'cross', 'nativesdk' and multilibs."
84BBFILE_COLLECTIONS[doc] = "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
85BBFILE_PATTERN[doc] = "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer."
86BBFILE_PRIORITY[doc] = "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe."
87BBFILES[doc] = "List of recipe files used by BitBake to build software."
88BBINCLUDELOGS[doc] = "Variable that controls how BitBake displays logs on build failure."
89BBINCLUDELOGS_LINES[doc] = "Amount of log lines printed on failure."
90BBLAYERS[doc] = "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
91BBLAYERS_NON_REMOVABLE[doc] = "Lists core layers that cannot be removed from the bblayers.conf file."
92BBMASK[doc] = "Prevents BitBake from processing specific recipes or recipe append files. Use the BBMASK variable from within conf/local.conf."
93BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
94BBSERVER[doc] = "Points to the server that runs memory-resident BitBake."
95BINCONFIG_GLOB[doc] = "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
96BP[doc] = "The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). BP is comprised of ${BPN}-${PV}"
97BPN[doc] = "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes."
98BUGTRACKER[doc] = "Specifies a URL for an upstream bug tracking website for a recipe."
99BUILD_ARCH[doc] = "The name of the building architecture (e.g. i686)."
100BUILD_OS[doc] = "The operating system (in lower case) of the building architecture (e.g. linux)."
101BUILDDIR[doc] = "Points to the location of the Build Directory."
102BUILDSTATS_BASE[doc] = "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
103BUSYBOX_SPLIT_SUID[doc] = "For the BusyBox recipe, specifies whether to split the output executable file into two parts: one for features that require setuid root, and one for the remaining features."
104
105#C
106
107CACHE[doc] = "The directory holding the cache of the metadata."
108CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
109CLASSOVERRIDE[doc] = "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
110COMBINED_FEATURES[doc] = "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
111COMMON_LICENSE_DIR[doc] = "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
112COMPATIBLE_HOST[doc] = "A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible."
113COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more target machines with which a recipe is compatible."
114COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
115CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
116CONFIG_SITE[doc] = "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
117CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
118CORE_IMAGE_EXTRA_INSTALL[doc] = "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
119COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
120CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
121CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
122
123#D
124
125D[doc] = "The destination directory."
126DATE[doc] = "The date the build was started using YMD format."
127DATETIME[doc] = "The date and time the build was started."
128DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
129DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer -g'."
130DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority."
131DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)."
132DEPLOY_DIR[doc] = "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
133DEPLOY_DIR_IMAGE[doc] = "Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine."
134DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
135DESCRIPTION[doc] = "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
136DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
137DISTRO_EXTRA_RDEPENDS[doc] = "Specifies a list of distro-specific packages to add to all images. The variable only applies to the images that include packagegroup-base."
138DISTRO_EXTRA_RRECOMMENDS[doc] = "Specifies a list of distro-specific packages to add to all images if the packages exist. The list of packages are automatically installed but you can remove them."
139DISTRO_FEATURES[doc] = "The features enabled for the distribution."
140DISTRO_FEATURES_BACKFILL[doc] = "Features to be added to DISTRO_FEATURES if not also present in DISTRO_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and it is not intended to be user-configurable."
141DISTRO_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
142DISTRO_NAME[doc] = "The long name of the distribution."
143DISTRO_PN_ALIAS[doc] = "Alias names used for the recipe in various Linux distributions."
144DISTRO_VERSION[doc] = "The version of the distribution."
145DISTROOVERRIDES[doc] = "Lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable."
146DL_DIR[doc] = "The central download directory used by the build process to store downloads. By default, the directory is 'downloads' in the Build Directory."
147
148#E
149
150ENABLE_BINARY_LOCALE_GENERATION[doc] = "Controls which locales for glibc are generated during the build. The variable is useful if the target device has 64Mbytes of RAM or less."
151ERROR_QA[doc] = "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
152EXCLUDE_FROM_WORLD[doc] = "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
153EXTENDPE[doc] = "Used with file and pathnames to create a prefix for a recipe's version based on the recipe's PE value. If PE is set and greater than zero for a recipe, EXTENDPE becomes that value."
154EXTENDPKGV[doc] = "The full package version specification as it appears on the final packages produced by a recipe."
155EXTERNALSRC[doc] = "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
156EXTERNALSRC_BUILD[doc] = "If externalsrc.bbclass is inherited, this variable points to the directory in which the recipe's source code is built, which is outside of the OpenEmbedded build system."
157EXTRA_IMAGE_FEATURES[doc] = "The list of additional features to include in an image. Configure this variable in the conf/local.conf file in the Build Directory."
158EXTRA_IMAGEDEPENDS[doc] = "A list of recipes to build that do not provide packages for installing into the root filesystem. Use this variable to list recipes that are required to build the final image, but not needed in the root filesystem."
159EXTRA_OECMAKE[doc] = "Additional cmake options."
160EXTRA_OECONF[doc] = "Additional configure script options."
161EXTRA_OEMAKE[doc] = "Additional GNU make options."
162EXTRA_OESCONS[doc] = "When a recipe inherits the scons class, this variable specifies additional configuration options you want to pass to the scons command line."
163EXTRA_QMAKEVARS_POST[doc] = "Configuration variables or options you want to pass to qmake when the arguments need to be after the .pro file list on the command line."
164EXTRA_QMAKEVARS_PRE[doc] = "Configuration variables or options you want to pass to qmake when the arguments need to be before the .pro file list on the command line."
165EXTRA_USERS_PARAMS[doc] = "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
166
167#F
168
169FEED_DEPLOYDIR_BASE_URI[doc] = "Allow to serve ipk deploy directory as an ad hoc feed (bogofeed). Set to base URL of the directory as exported by HTTP. Set of ad hoc feed configs will be generated in the image."
170FILES[doc] = "The list of directories or files that are placed in packages."
171FILESEXTRAPATHS[doc] = "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
172FILESOVERRIDES[doc] = "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
173FILESPATH[doc] = "The default set of directories the OpenEmbedded build system uses when searching for patches and files. It is defined in the base.bbclass class found in meta/classes in the Source Directory. Do not hand-edit the FILESPATH variable."
174FILESYSTEM_PERMS_TABLES[doc] = "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
175FONT_EXTRA_RDEPENDS[doc] = "When a recipe inherits the fontcache class, this variable specifies runtime dependencies for font packages. This variable defaults to 'fontconfig-utils'."
176FONT_PACKAGES[doc] = "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
177FULL_OPTIMIZATION[doc]= "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2'."
178
179#G
180
181GITDIR[doc] = "The directory where Git clones will be stored."
182GROUPADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupadd command if you wish to add a group to the system when the package is installed."
183GROUPMEMS_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupmems command if you wish to modify the members of a group when the package is installed."
184GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
185GRUB_OPTS[doc] = "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
186GRUB_TIMEOUT[doc] = "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
187GTKIMMODULES_PACKAGES[doc] = "For recipes that inherit the gtk-immodules-cache class, this variable specifies the packages that contain the GTK+ input method modules being installed when the modules are in packages other than the main package."
188
189#H
190
191HOMEPAGE[doc] = "Website where more information about the software the recipe is building can be found."
192HOST_ARCH[doc] = "The name of the target architecture. Normally same as the TARGET_ARCH."
193HOST_CC_ARCH[doc] = "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
194HOST_OS[doc] = "The name of the target operating system. Normally the same as the TARGET_OS."
195HOST_PREFIX[doc] = "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
196HOST_SYS[doc] = "Specifies the system, including the architecture and the operating system, for with the build is occurring in the context of the current recipe."
197HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
198
199#I
200
201ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
202ICECC_PATH[doc] = "The location of the icecc binary."
203ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
204ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
205ICECC_USER_PACKAGE_WL[doc] = "Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed compilation on using the Icecream distributed compile support."
206IMAGE_BASENAME[doc] = "The base name of image output files."
207IMAGE_BOOT_FILES[doc] = "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
208IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
209IMAGE_FEATURES[doc] = "The primary list of features to include in an image. Configure this variable in an image recipe."
210IMAGE_FSTYPES[doc] = "Formats of root filesystem images that you want to have created."
211IMAGE_INSTALL[doc] = "Specifies the packages to install into an image. Image recipes set IMAGE_INSTALL to specify the packages to install into an image through image.bbclass."
212IMAGE_LINGUAS[doc] = "Specifies the list of locales to install into the image during the root filesystem construction process."
213IMAGE_NAME[doc] = "The name of the output image files minus the extension."
214IMAGE_OVERHEAD_FACTOR[doc] = "Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of IMAGE_ROOTFS_SIZE and IMAGE_ROOTFS_EXTRA_SPACE."
215IMAGE_PKGTYPE[doc] = "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
216IMAGE_POSTPROCESS_COMMAND[doc] = "Added by classes to run post processing commands once the OpenEmbedded build system has created the image."
217IMAGE_ROOTFS[doc] = "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
218IMAGE_ROOTFS_EXTRA_SPACE[doc] = "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
219IMAGE_ROOTFS_SIZE[doc] = "Defines the size in Kbytes for the generated image."
220IMAGE_TYPES[doc] = "Specifies the complete list of supported image types by default."
221INC_PR[doc] = "Helps define the recipe revision for recipes that share a common include file."
222INCOMPATIBLE_LICENSE[doc] = "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build."
223INHIBIT_DEFAULT_DEPS[doc] = "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
224INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
225INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
226INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
227INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
228INITRD[doc] = "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
229INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
230INITSCRIPT_PACKAGES[doc] = "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable."
231INITSCRIPT_PARAMS[doc] = "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass."
232INSANE_SKIP[doc] = "Specifies the QA checks to skip for a specific package within a recipe."
233IPK_FEED_URIS[doc] = "List of ipkg feed records to put into generated image."
234
235#K
236
237KARCH[doc] = "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
238KBRANCH[doc] = "A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched and configured during a build."
239KBRANCH_DEFAULT[doc] = "Defines the Linux kernel source repository's default branch used to build the Linux kernel. Unless you specify otherwise, the variable initializes to 'master'."
240KERNEL_EXTRA_ARGS[doc] = "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
241KERNEL_FEATURES[doc] = "Includes additional metadata from the Yocto Project kernel Git repository. The metadata you add through this variable includes config fragments and features descriptions."
242KERNEL_IMAGETYPE[doc] = "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
243KERNEL_PATH[doc] = "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
244KERNEL_SRC[doc] = "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
245KFEATURE_DESCRIPTION[doc] = "Provides a short description of a configuration fragment. You use this variable in the .scc file that describes a configuration fragment file."
246KMACHINE[doc] = "The machine as known by the kernel."
247KTYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
248
249#L
250
251LAYERDEPENDS[doc] = "Lists the layers, separated by spaces, upon which this recipe depends. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
252LAYERDIR[doc] = "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
253LAYERVERSION[doc] = "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
254LEAD_SONAME[doc] = "Specifies the lead (or primary) compiled library file (.so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
255LIC_FILES_CHKSUM[doc] = "Checksums of the license text in the recipe source code."
256LICENSE[doc] = "The list of source licenses for the recipe. Logical operators '&' or '|' and parentheses can be used."
257LICENSE_PATH[doc] = "Path to additional licenses used during the build."
258LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
259LINUX_VERSION[doc] = "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe."
260LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe."
261LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
262
263#M
264
265MACHINE[doc] = "Specifies the target device for which the image is built. You define MACHINE in the conf/local.conf file in the Build Directory."
266MACHINE_ESSENTIAL_EXTRA_RDEPENDS[doc] = "A list of required machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
267MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS[doc] = "A list of recommended machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
268MACHINE_EXTRA_RDEPENDS[doc] = "A list of machine-specific packages to install as part of the image being built that are not essential for the machine to boot. However, the build process for more fully-featured images depends on the packages being present."
269MACHINE_EXTRA_RRECOMMENDS[doc] = "A list of machine-specific packages to install as part of the image being built that are not essential for booting the machine. The image being built has no build dependencies on the packages in this list."
270MACHINE_FEATURES[doc] = "Specifies the list of hardware features the MACHINE supports."
271MACHINE_FEATURES_BACKFILL[doc] = "Features to be added to MACHINE_FEATURES if not also present in MACHINE_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and is not intended to be user-configurable."
272MACHINE_FEATURES_BACKFILL_CONSIDERED[doc] = "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
273MACHINEOVERRIDES[doc] = "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
274MAINTAINER[doc] = "The email address of the distribution maintainer."
275MIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
276MLPREFIX[doc] = "Specifies a prefix has been added to PN to create a special version of a recipe or package, such as a Multilib version."
277MODULE_TARBALL_DEPLOY[doc] = "Controls creation of the modules-*.tgz file. Set this variable to "0" to disable creation of this file, which contains all of the kernel modules resulting from a kernel build."
278MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
279
280#N
281
282NATIVELSBSTRING[doc] = "A string identifying the host distribution."
283NO_RECOMMENDATIONS[doc] = "When set to '1', no recommended packages will be installed. Realize that some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."
284NOHDD[doc] = "Causes the OpenEmbedded build system to skip building the .hddimg image."
285NOISO[doc] = "Causes the OpenEmbedded build system to skip building the ISO image."
286
287#O
288
289OE_BINCONFIG_EXTRA_MANGLE[doc] = "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
290OE_IMPORTS[doc] = "An internal variable used to tell the OpenEmbedded build system what Python modules to import for every Python function run by the system."
291OE_TERMINAL[doc] = "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
292OEROOT[doc] = "The directory from which the top-level build environment setup script is sourced."
293OLDEST_KERNEL[doc] = "Declares the oldest version of the Linux kernel that the produced binaries must support."
294OVERRIDES[doc] = "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
295
296#P
297
298P[doc] = "The recipe name and version. P is comprised of ${PN}-${PV}."
299PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
300PACKAGE_ARCHS[doc] = "A list of architectures compatible with the given target in order of priority."
301PACKAGE_BEFORE_PN[doc] = "Enables easily adding packages to PACKAGES before ${PN} so that the packages can pick up files that would normally be included in the default package."
302PACKAGE_CLASSES[doc] = "This variable specifies the package manager to use when packaging data. It is set in the conf/local.conf file in the Build Directory."
303PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
304PACKAGE_EXTRA_ARCHS[doc] = "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
305PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
306PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
307PACKAGE_INSTALL_ATTEMPTONLY[doc] = "List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
308PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
309PACKAGES[doc] = "The list of packages to be created from the recipe."
310PACKAGES_DYNAMIC[doc] = "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
311PARALLEL_MAKE[doc] = "Specifies extra options that are passed to the make command during the compile tasks. This variable is usually in the form -j 4, where the number represents the maximum number of parallel threads make can run."
312PARALLEL_MAKEINST[doc] = "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
313PATCHRESOLVE[doc] = "Enable or disable interactive patch resolution."
314PATCHTOOL[doc] = "Specifies the utility used to apply patches for a recipe during do_patch."
315PE[doc] = "The epoch of the recipe. The default value is '0'. The field is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way."
316PF[doc] = "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
317PIXBUF_PACKAGES[doc] = "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
318PKGD[doc] = "Points to the destination directory for files to be packaged before they are split into individual packages."
319PKGDATA_DIR[doc] = "Points to a shared, global-state directory that holds data generated during the packaging process."
320PKGDEST[doc] = "Points to the parent directory for files to be packaged after they have been split into individual packages."
321PKGDESTWORK[doc] = "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
322PN[doc] = "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. It refers to a package name in the context of a file created or produced by the OpenEmbedded build system."
323PNBLACKLIST[doc] = "Lists recipes you do not want the OpenEmbedded build system to build."
324PR[doc] = "The revision of the recipe. The default value for this variable is 'r0'."
325PREFERRED_PROVIDER[doc] = "If multiple recipes provide an item, this variable determines which recipe should be given preference."
326PREFERRED_VERSION[doc] = "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
327PREMIRRORS[doc] = "Specifies additional paths from which the OpenEmbedded build system gets source code."
328PRINC[doc] = "Causes the PR variable of .bbappend files to dynamically increment. This increment minimizes the impact of layer ordering. This variable defaults to '0'."
329PRIORITY[doc] = "Indicates the importance of a package. The default value is 'optional'. Other standard values are 'required', 'standard' and 'extra'."
330PROVIDES[doc] = "A list of aliases that a recipe also provides. These aliases are useful for satisfying dependencies of other recipes during the build as specified by DEPENDS."
331PRSERV_HOST[doc] = "The network based PR service host and port."
332PV[doc] = "The version of the recipe. The version is normally extracted from the recipe filename."
333
334#Q
335
336QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for use with qmake."
337
338#R
339
340RCONFLICTS[doc] = "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
341RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
342REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
343RM_OLD_IMAGE[doc] = "Reclaims disk space by removing previously built versions of the same image from the images directory pointed to by the DEPLOY_DIR variable."
344RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
345ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
346ROOTFS_POSTPROCESS_COMMAND[doc] = "Added by classes to run post processing commands once the OpenEmbedded build system has created the root filesystem."
347RPROVIDES[doc] = "A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target."
348RRECOMMENDS[doc] = "A list of packages that extends the usability of a package being built. The package being built does not depend on this list of packages in order to successfully build, but needs them for the extended usability."
349RREPLACES[doc] = "A list of packages replaced by a package. The package manager uses this variable to determine which package should be installed to replace other package(s) during an upgrade."
350RSUGGESTS[doc] = "A list of additional packages that you can suggest for installation by the package manager at the time a package is installed. Not all package managers support this functionality."
351
352#S
353
354S[doc] = "The location in the Build Directory where unpacked package source code resides."
355SANITY_TESTED_DISTROS[doc] = "A list of the host distribution identifiers that the build system has been tested against."
356SDK_ARCH[doc] = "The target architecture for the SDK."
357SDK_DEPLOY[doc] = "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
358SDK_DIR[doc] = "The parent directory used by the OpenEmbedded build system when creating SDK output."
359SDK_NAME[doc] = "The base name for SDK output files."
360SDK_OUTPUT[doc] = "The location used by the OpenEmbedded build system when creating SDK output."
361SDKIMAGE_FEATURES[doc] = "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'."
362SDKMACHINE[doc] = "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items."
363SECTION[doc] = "The section in which packages should be categorized. Package management utilities can make use of this variable."
364SELECTED_OPTIMIZATION[doc] = "The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = '1'. In this case, the value of DEBUG_OPTIMIZATION is used."
365SERIAL_CONSOLE[doc] = "The speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter. After booting occurs, getty is started on that port so remote login is possible."
366SERIAL_CONSOLES[doc] = "Defines the serial consoles (TTYs) to enable using getty."
367SERIAL_CONSOLES_CHECK[doc] = "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
368SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS[doc] = "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe."
369SIGGEN_EXCLUDERECIPES_ABISAFE[doc] = "A list of recipes that are completely stable and will never change."
370SITEINFO_BITS[doc] = "Specifies the number of bits for the target system CPU."
371SITEINFO_ENDIANNESS[doc] = "Specifies the endian byte order of the target system. The value should be either 'le' for 'little-endian' or 'be' for 'big-endian'."
372SOC_FAMILY[doc] = "Groups together machines based upon the same family of SOC (System On Chip). You typically set this variable in a common .inc file that you include in the configuration files of all the machines."
373SOLIBS[doc] = "Defines the suffix for shared libraries used on the target platform."
374SOLIBSDEV[doc] = "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
375SOURCE_MIRROR_FETCH[doc] = "Switch marking build as source fetcher. Used to skip COMPATIBLE_* checking."
376SOURCE_MIRROR_URL[doc] = "URL to source mirror that will be used before fetching from original SRC_URI."
377SPECIAL_PKGSUFFIX[doc] = "A list of prefixes for PN used by the OpenEmbedded build system to create variants of recipes or packages. The list specifies the prefixes to strip off during certain circumstances such as the generation of the BPN variable."
378SRC_URI[doc] = "The list of source files - local or remote. This variable tells the OpenEmbedded build system what bits to pull in for the build and how to pull them in."
379SRC_URI_OVERRIDES_PACKAGE_ARCH[doc] = "By default, the OpenEmbedded build system automatically detects whether SRC_URI contains files that are machine-specific. If so, the build system automatically changes PACKAGE_ARCH. Setting this variable to '0' disables this behavior."
380SRCDATE[doc] = "The date of the source code used to build the package. This variable applies only if the source was fetched from a Source Code Manager (SCM)."
381SRCPV[doc] = "Returns the version string of the current package. This string is used to help define the value of PV."
382SRCREV[doc] = "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
383SSTATE_DIR[doc] = "The directory for the shared state cache."
384SSTATE_MIRRORS[doc] = "Configures the OpenEmbedded build system to search other mirror locations for prebuilt cache data objects before building out the data. You can specify a filesystem directory or a remote URL such as HTTP or FTP."
385STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required to build out-of-tree modules."
386STAMP[doc] = "Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information."
387STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
388SUMMARY[doc] = "The short (80 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe."
389SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
390SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
391SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
392SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
393SYSLINUX_SPLASH[doc] = "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
394SYSLINUX_SERIAL_TTY[doc] = "Specifies the alternate console=tty... kernel boot argument."
395SYSROOT_PREPROCESS_FUNCS[doc] = "A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional processing on the staged files, or to stage additional files."
396SYSTEMD_AUTO_ENABLE[doc] = "For recipes that inherit the systemd class, this variable specifies whether the service you have specified in SYSTEMD_SERVICE should be started automatically or not."
397SYSTEMD_PACKAGES[doc] = "For recipes that inherit the systemd class, this variable locates the systemd unit files when they are not found in the main recipe's package."
398SYSTEMD_SERVICE[doc] = "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
399SYSVINIT_ENABLED_GETTYS[doc] = "Specifies which virtual terminals should be running a getty, the default is '1'."
400
401#T
402
403T[doc] = "This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe."
404TARGET_ARCH[doc] = "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
405TARGET_CFLAGS[doc] = "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
406TARGET_FPU[doc] = "Specifies the method for handling FPU code. For FPU-less targets, which include most ARM CPUs, the variable must be set to 'soft'. If not, the kernel emulation gets used, which results in a performance penalty."
407TARGET_OS[doc] = "Specifies the target's operating system."
408TARGET_PREFIX[doc] = "The prefix for the cross-compile toolchain (e.g. arm-linux-)."
409TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
410TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc' or 'uclibc'."
411TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
412TEST_IMAGE[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images."
413TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
414TEST_SUITES[doc] = "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
415THISDIR[doc] = "The directory in which the file BitBake is currently parsing is located."
416TIME[doc] = "The time the build was started using HMS format."
417TMPDIR[doc] = "The temporary directory the OpenEmbedded build system uses when it does its work building images. By default, the TMPDIR variable is named tmp within the Build Directory."
418TOOLCHAIN_HOST_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
419TOOLCHAIN_TARGET_TASK[doc] = "This variable lists packages the OpenEmbedded build system uses when it creates the target part of an SDK, which includes libraries and headers."
420TOPDIR[doc] = "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
421TRANSLATED_TARGET_ARCH[doc] = "A sanitized version of TARGET_ARCH. This variable is used where the architecture is needed in a value where underscores are not allowed."
422TUNE_PKGARCH[doc] = "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
423TUNEABI[doc] = "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries."
424TUNEABI_OVERRIDE[doc] = "If set, ignores TUNEABI_WHITELIST."
425TUNEABI_WHITELIST[doc] = "A whitelist of permissible TUNEABI values. If the variable is not set, all values are allowed."
426TUNECONFLICTS[doc] = "List of conflicting features for a given feature."
427TUNEVALID[doc] = "Descriptions, stored as flags, of valid tuning features."
428
429#U
430
431UBOOT_CONFIG[doc] = "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
432UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image."
433UBOOT_LOADADDRESS[doc] = "Specifies the load address for the U-Boot image."
434UBOOT_LOCALVERSION[doc] = "Appends a string to the name of the local version of the U-Boot image."
435UBOOT_MACHINE[doc] = "Specifies the value passed on the make command line when building a U-Boot image."
436UBOOT_MAKE_TARGET[doc] = "Specifies the target called in the Makefile."
437UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
438UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
439USE_DEVFS[doc] = "When building images, specifies to populate or not /dev. This variable defaults to '1' (leave directory empty, surely because devtmpfs do the job). Set it to '0' to use makedevs (or consider using a custom file with IMAGE_DEVICE_TABLES)."
440USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
441USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
442USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
443
444#W
445
446WARN_QA[doc] = "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
447WORKDIR[doc] = "The pathname of the working directory in which the OpenEmbedded build system builds a recipe. This directory is located within the TMPDIR directory structure and changes as different packages are built."
diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
new file mode 100644
index 0000000..de96548
--- /dev/null
+++ b/meta/conf/layer.conf
@@ -0,0 +1,47 @@
1# We have a conf and classes directory, add to BBPATH
2BBPATH .= ":${LAYERDIR}"
3# We have recipes-* directories, add to BBFILES
4BBFILES += "${LAYERDIR}/recipes-*/*/*.bb"
5
6BBFILE_COLLECTIONS += "core"
7BBFILE_PATTERN_core = "^${LAYERDIR}/"
8BBFILE_PRIORITY_core = "5"
9
10# This should only be incremented on significant changes that will
11# cause compatibility issues with other layers
12LAYERVERSION_core = "4"
13
14# Set a variable to get to the top of the metadata location
15COREBASE = '${@os.path.normpath("${LAYERDIR}/../")}'
16
17# opkg-utils is for update-altnernatives :(
18SIGGEN_EXCLUDERECIPES_ABISAFE += " \
19 sysvinit-inittab \
20 shadow-securetty \
21 opkg-config-base \
22 netbase \
23 init-ifupdown \
24 connman-conf \
25 formfactor \
26 xserver-xf86-config \
27 pointercal \
28 pointercal-xinput \
29 base-files \
30 keymaps \
31 udev-extraconf \
32 packagegroup-x11-xserver \
33 systemd-serialgetty \
34 initscripts \
35 shadow \
36 shadow-sysroot \
37 base-passwd \
38 opkg-utils \
39"
40
41SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
42 gcc-cross-${TARGET_ARCH}->glibc \
43 gcc-cross-${TARGET_ARCH}->musl \
44 gcc-cross-${TARGET_ARCH}->uclibc \
45 gcc-cross-${TARGET_ARCH}->linux-libc-headers \
46"
47
diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf
new file mode 100644
index 0000000..fe96066
--- /dev/null
+++ b/meta/conf/licenses.conf
@@ -0,0 +1,171 @@
1# These aren't actually used anywhere that I can tell
2# They may be in the future (or are used by someone else
3# For completion sake, I've updated them
4SRC_DISTRIBUTE_LICENSES += "AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0"
5SRC_DISTRIBUTE_LICENSES += "AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0"
6SRC_DISTRIBUTE_LICENSES += "APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0"
7SRC_DISTRIBUTE_LICENSES += "Artistic-1.0 Artistic-2.0 BitstreamVera BSD"
8SRC_DISTRIBUTE_LICENSES += "BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0"
9SRC_DISTRIBUTE_LICENSES += "CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5"
10SRC_DISTRIBUTE_LICENSES += "CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5"
11SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0"
12SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0"
13SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0"
14SRC_DISTRIBUTE_LICENSES += "CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0"
15SRC_DISTRIBUTE_LICENSES += "CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0"
16SRC_DISTRIBUTE_LICENSES += "CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C"
17SRC_DISTRIBUTE_LICENSES += "ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL"
18SRC_DISTRIBUTE_LICENSES += "ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0"
19SRC_DISTRIBUTE_LICENSES += "Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1"
20SRC_DISTRIBUTE_LICENSES += "EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0"
21SRC_DISTRIBUTE_LICENSES += "FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0"
22SRC_DISTRIBUTE_LICENSES += "GPL-2.0 GPL-2.0-with-autoconf-exception"
23SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-classpath-exception"
24SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-font-exception"
25SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-GCC-exception"
26SRC_DISTRIBUTE_LICENSES += "GPL-2-with-bison-exception GPL-3.0"
27SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-autoconf-exception"
28SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-GCC-exception"
29SRC_DISTRIBUTE_LICENSES += "gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0"
30SRC_DISTRIBUTE_LICENSES += "LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1"
31SRC_DISTRIBUTE_LICENSES += "LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0"
32SRC_DISTRIBUTE_LICENSES += "MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA"
33SRC_DISTRIBUTE_LICENSES += "NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0"
34SRC_DISTRIBUTE_LICENSES += "OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0"
35SRC_DISTRIBUTE_LICENSES += "OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary"
36SRC_DISTRIBUTE_LICENSES += "Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5"
37SRC_DISTRIBUTE_LICENSES += "RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat"
38SRC_DISTRIBUTE_LICENSES += "SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C"
39SRC_DISTRIBUTE_LICENSES += "Watcom-1.0 WXwindows XFree86-1.1 Xnet XSL YPL-1.1"
40SRC_DISTRIBUTE_LICENSES += "Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
41
42# Standards are great! Everyone has their own. In an effort to standardize licensing
43# names, common-licenses will use the SPDX standard license names. In order to not
44# break the non-standardized license names that we find in LICENSE, we'll set
45# up a bunch of VarFlags to accomodate non-SPDX license names.
46#
47# We should really discuss standardizing this field, but that's a longer term goal.
48# For now, we can do this and it should grab the most common LICENSE naming variations.
49#
50# We should NEVER have a GPL/LGPL without a version!!!!
51# Any mapping to MPL/LGPL/GPL should be fixed
52
53# AGPL variations
54SPDXLICENSEMAP[AGPL-3] = "AGPL-3.0"
55SPDXLICENSEMAP[AGPLv3] = "AGPL-3.0"
56SPDXLICENSEMAP[AGPLv3.0] = "AGPL-3.0"
57
58# GPL variations
59SPDXLICENSEMAP[GPL-1] = "GPL-1.0"
60SPDXLICENSEMAP[GPLv1] = "GPL-1.0"
61SPDXLICENSEMAP[GPLv1.0] = "GPL-1.0"
62SPDXLICENSEMAP[GPL-2] = "GPL-2.0"
63SPDXLICENSEMAP[GPLv2] = "GPL-2.0"
64SPDXLICENSEMAP[GPLv2.0] = "GPL-2.0"
65SPDXLICENSEMAP[GPL-3] = "GPL-3.0"
66SPDXLICENSEMAP[GPLv3] = "GPL-3.0"
67SPDXLICENSEMAP[GPLv3.0] = "GPL-3.0"
68
69#LGPL variations
70SPDXLICENSEMAP[LGPLv2] = "LGPL-2.0"
71SPDXLICENSEMAP[LGPLv2.0] = "LGPL-2.0"
72SPDXLICENSEMAP[LGPL2.1] = "LGPL-2.1"
73SPDXLICENSEMAP[LGPLv2.1] = "LGPL-2.1"
74SPDXLICENSEMAP[LGPLv3] = "LGPL-3.0"
75
76#MPL variations
77SPDXLICENSEMAP[MPL-1] = "MPL-1.0"
78SPDXLICENSEMAP[MPLv1] = "MPL-1.0"
79SPDXLICENSEMAP[MPLv1.1] = "MPL-1.1"
80SPDXLICENSEMAP[MPLv2] = "MPL-2.0"
81
82#MIT variations
83SPDXLICENSEMAP[MIT-X] = "MIT"
84SPDXLICENSEMAP[MIT-style] = "MIT"
85
86#Openssl variations
87SPDXLICENSEMAP[openssl] = "OpenSSL"
88
89#Python variations
90SPDXLICENSEMAP[PSF] = "Python-2.0"
91SPDXLICENSEMAP[PSFv2] = "Python-2.0"
92SPDXLICENSEMAP[Python-2] = "Python-2.0"
93
94#Apache variations
95SPDXLICENSEMAP[Apachev2] = "Apache-2.0"
96SPDXLICENSEMAP[Apache-2] = "Apache-2.0"
97
98#Artistic variations
99SPDXLICENSEMAP[Artisticv1] = "Artistic-1.0"
100SPDXLICENSEMAP[Artistic-1] = "Artistic-1.0"
101
102#Academic variations
103SPDXLICENSEMAP[AFL-2] = "AFL-2.0"
104SPDXLICENSEMAP[AFL-1] = "AFL-1.2"
105SPDXLICENSEMAP[AFLv2] = "AFL-2.0"
106SPDXLICENSEMAP[AFLv1] = "AFL-1.2"
107
108#Other variations
109SPDXLICENSEMAP[EPLv1.0] = "EPL-1.0"
110
111#Silicon Graphics variations
112SPDXLICENSEMAP[SGIv1] = "SGI-1"
113
114# Additional license directories. Add your custom licenses directories this path.
115# LICENSE_PATH += "${COREBASE}/custom-licenses"
116
117# Set if you want the license.manifest copied to the image
118#COPY_LIC_MANIFEST = "1"
119
120# If you want the pkg licenses copied over as well you must set
121# both COPY_LIC_MANIFEST and COPY_LIC_DIRS
122#COPY_LIC_DIRS = "1"
123
124## SPDX temporary directory
125SPDX_TEMP_DIR = "${WORKDIR}/spdx_temp"
126SPDX_MANIFEST_DIR = "/home/yocto/fossology_scans"
127
128## SPDX Format info
129SPDX_VERSION = "SPDX-1.1"
130DATA_LICENSE = "CC0-1.0"
131
132## Fossology scan information
133# You can set option to control if the copyright information will be skipped
134# during the identification process.
135#
136# It is defined as [FOSS_COPYRIGHT] in ./meta/conf/licenses.conf.
137# FOSS_COPYRIGHT = "true"
138# NO copyright will be processed. That means only license information will be
139# identified and output to SPDX file
140# FOSS_COPYRIGHT = "false"
141# Copyright will be identified and output to SPDX file along with license
142# information. The process will take more time than not processing copyright
143# information.
144#
145
146FOSS_COPYRIGHT = "true"
147
148# A option defined as[FOSS_RECURSIVE_UNPACK] in ./meta/conf/licenses.conf. is
149# used to control if FOSSology server need recursively unpack tar.gz file which
150# is sent from do_spdx task.
151#
152# FOSS_RECURSIVE_UNPACK = "false":
153# FOSSology server does NOT recursively unpack. In the current release, this
154# is the default choice because recursively unpack will not necessarily break
155# down original compressed files.
156# FOSS_RECURSIVE_UNPACK = "true":
157# FOSSology server recursively unpack components.
158#
159
160FOSS_RECURSIVE_UNPACK = "false"
161
162# FOSSologySPDX instance server.
163# For more information on FOSSologySPDX commandline:
164# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API
165#
166
167FOSS_SERVER = "http://localhost//?mod=spdx_license_once&noCopyright=${FOSS_COPYRIGHT}&recursiveUnpack=${FOSS_RECURSIVE_UNPACK}"
168
169FOSS_WGET_FLAGS = "-qO - --no-check-certificate --timeout=0"
170
171
diff --git a/meta/conf/machine-sdk/i586.conf b/meta/conf/machine-sdk/i586.conf
new file mode 100644
index 0000000..baacce7
--- /dev/null
+++ b/meta/conf/machine-sdk/i586.conf
@@ -0,0 +1,3 @@
1SDK_ARCH = "i586"
2SDK_CC_ARCH = "-march=i586"
3
diff --git a/meta/conf/machine-sdk/i686.conf b/meta/conf/machine-sdk/i686.conf
new file mode 100644
index 0000000..ffdb461
--- /dev/null
+++ b/meta/conf/machine-sdk/i686.conf
@@ -0,0 +1,2 @@
1SDK_ARCH = "i686"
2SDK_CC_ARCH = "-march=i686"
diff --git a/meta/conf/machine-sdk/x86_64.conf b/meta/conf/machine-sdk/x86_64.conf
new file mode 100644
index 0000000..812d67c
--- /dev/null
+++ b/meta/conf/machine-sdk/x86_64.conf
@@ -0,0 +1 @@
SDK_ARCH = "x86_64"
diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README
new file mode 100644
index 0000000..d66130a
--- /dev/null
+++ b/meta/conf/machine/include/README
@@ -0,0 +1,100 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4
5Introduction
6============
7The individual CPU, and ABI tunings are contained in this directory. A
8number of local and global variables are used to control the way the
9tunings are setup and how they work together to specify an optimized
10configuration.
11
12The following is brief summary of the generic components that are used
13in these tunings.
14
15AVAILTUNES - This is a list of all of the tuning definitions currently
16available in the system. Not all tunes in this list may be compatible
17with the machine configuration, or each other in a multilib
18configuration. Each tuning file can add to this list using "+=", but
19should never replace the list using "=".
20
21DEFAULTTUNE - This specifies the tune to use for a particular build.
22Each tune should specify a reasonable default, which can be overriden by
23a machine or multilib configuration. The specified tune must be listed
24in the AVAILTUNES.
25
26TUNEVALID[feature] - The <feature> is defined with a human readable
27explanation for what it does. All architectural, cpu, abi, etc tuning
28features must be defined using TUNEVALID.
29
30TUNECONFLICTS[feature] - A list of features which conflict with <feature>.
31New sanity checks will try to reject combinations in which a single
32tuning ends up with features which conflict with each other.
33
34TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>.
35See TUNE_FEATURES_tune-<tune> for more information.
36
37TUNE_FEATURES_tune-<tune> - Specify the features used to describe a
38specific tune. This is a list of features that a tune support, each
39feature must be in the TUNEVALID list. Note: the tune and a given
40feature name may be the same, but they have different purposes. Only
41features may be used to change behavior, while tunes are used to
42describe an overall set of features.
43
44ABIEXTENSION - An ABI extension may be specified by a specific feature
45or other tuning setting, such as TARGET_FPU. Any ABI extensions either
46need to be defined in the architectures base arch file, i.e.
47ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune
48files with a ".=". Spaces are not allowed in this variable.
49
50TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.
51These should be additive when defined using "+=". All items in this
52list should be dynamic! i.e.
53${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
54
55TUNE_ARCH - The GNU canonical arch for a specific architecture. i.e.
56arm, armeb, mips, mips64, etc. This value is used by bitbake to setup
57configure. TUNE_ARCH definitions are specific to a given architecture.
58They may be a single static definition, or may be dynamically adjusted.
59See each architecture's README for details for that CPU family.
60
61TUNE_PKGARCH - The package architecture used by the packaging systems to
62define the architecture, abi and tuning of a particular package.
63Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to
64each architecture. See each architectures README for details for that
65CPU family.
66
67PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package
68architectures. By default this is equal to
69PACKAGE_EXTRA_ARCHS_tune-<tune>. If an architecture deviates from the
70default it will be listed in the architecture README.
71
72PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures
73that are compatible with this specific tune. The package arch of this
74tune must be in the list.
75
76TARGET_FPU - The FPU setting for a given tune, hard (generate floating
77point instructions), soft (generate internal gcc calls), "other"
78architecture specific floating point. This is synchronized with the
79compiler and other toolchain items. This should be dynamically
80configured in the same way that TUNE_CCARGS is.
81
82BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI. This is
83used in a multilib configuration to place the libraries in the correct,
84non-conflicting locations.
85
86
87Best Practice
88=============
89The tune infrastructure is designed to be hierarchical. When writing a
90new tune file for a "fast-forward" CPU architecture (one that supports
91everything from a previous generation), it is recommended to require the
92previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the
93previous generation's override and appending the new tune. Note that
94only one previous tune file should be included to avoid mutiple includes
95of the base arch which could lead to a broken configuration due to
96multiple prepend and append assignments.
97
98For example, for x86, there is a common x86/arch-x86.inc which is
99included in the base i586 tune file. The core2 tune builds
100on that, and corei7 builds on core2.
diff --git a/meta/conf/machine/include/arm/README b/meta/conf/machine/include/arm/README
new file mode 100644
index 0000000..a1beb75
--- /dev/null
+++ b/meta/conf/machine/include/arm/README
@@ -0,0 +1,40 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4The ARM architecture definitions are split among a number of files.
5The primary definitions for the variables are handled by the core
6arch-arm.inc file.
7
8TUNE_ARCH is set to either "arm" or "armeb" depending on the value
9of the existence of the "bigendian" feature in a given tune.
10
11A small set of ARM specific variables have been defined to allow
12TUNE_PKGARCH to be automatically defined. Optimized tunings must NOT
13change the definiton of TUNE_PKGARCH. TUNE_PKGACH_tune-<tune> will be
14ignored. The format of the package arch is enforced by the TUNE_PKGARCH
15default. The format must be of the form:
16<armversion>[t][e][hf][b][-vfp][-neon]
17
18TUNE_PKGARCH is defined as:
19${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}
20
21ARMPKGARCH - This is the core package arch component specified by each
22tuning. This is the primary identifier of a tuning. Usual values are:
23arm, armv4, armv5, armv6, armv7a, etc.
24
25ARMPKGSFX_THUMB - This is the thumb specific suffix. Curently it is
26defined in feature-arm-thumb.inc.
27
28ARMPKGSFX_DSP - This is the DSP specific suffix. Currently this is set
29to 'e' when on armv5 and the dsp feature is enabled.
30
31ARMPKGSFX_EABI - This is the eabi specific suffix. There are currently
32two defined ABIs specificed, standard EABI and Hard Float (VFP) EABI.
33When the callconvention-hard is enabled, "hf" is specified, otherwise it
34is blank.
35
36ARMPKGSFX_ENDIAN - This is the endian specific suffix. It is defined in
37the core arch-arm.inc file.
38
39ARMPKGSFX_FPU - This is the FPU specific suffix. The suffix indicates
40specific FPU optimizations. 'vfp' and 'neon' are both defined.
diff --git a/meta/conf/machine/include/arm/arch-arm.inc b/meta/conf/machine/include/arm/arch-arm.inc
new file mode 100644
index 0000000..90b80c4
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-arm.inc
@@ -0,0 +1,17 @@
1
2TUNEVALID[bigendian] = "Enable big-endian mode."
3
4ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
5ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "b", "", d)}"
6ARMPKGSFX_FPU ??= ""
7ARMPKGSFX_DSP ??= ""
8ARMPKGSFX_EABI ??= ""
9ARMPKGSFX_THUMB ??= ""
10
11TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}"
12TUNE_PKGARCH = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
13
14ABIEXTENSION = "eabi"
15
16TARGET_FPU = "${@d.getVar('ARMPKGSFX_FPU', True).strip('-') or 'soft'}"
17
diff --git a/meta/conf/machine/include/arm/arch-armv4.inc b/meta/conf/machine/include/arm/arch-armv4.inc
new file mode 100644
index 0000000..52c07a8
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv4.inc
@@ -0,0 +1,34 @@
1DEFAULTTUNE ?= "armv4"
2
3TUNEVALID[arm] = "Enable ARM instruction set"
4TUNEVALID[armv4] = "Enable instructions for ARMv4"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv4", " -march=armv4${ARMPKGSFX_THUMB}", "", d)}"
6# enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb
7# maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does
8# checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value
9FIX_V4BX_ARMV4 = "${@bb.utils.contains("TUNE_FEATURES", "armv4", "--fix-v4bx", "", d)}"
10FIX_V4BX_ARMV5 = "${@bb.utils.contains("TUNE_FEATURES", "armv5", "", "${FIX_V4BX_ARMV4}", d)}"
11FIX_V4BX = "${@bb.utils.contains("TUNE_FEATURES", "thumb", "", "${FIX_V4BX_ARMV5}", d)}"
12TARGET_LD_KERNEL_ARCH += "${FIX_V4BX}"
13MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv4", "armv4:", "" ,d)}"
14
15require conf/machine/include/arm/arch-arm.inc
16require conf/machine/include/arm/feature-arm-thumb.inc
17
18# Little Endian
19AVAILTUNES += "armv4 armv4t"
20ARMPKGARCH_tune-armv4 ?= "armv4"
21ARMPKGARCH_tune-armv4t ?= "armv4"
22TUNE_FEATURES_tune-armv4 ?= "arm armv4"
23TUNE_FEATURES_tune-armv4t ?= "${TUNE_FEATURES_tune-armv4} thumb"
24PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4"
25PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
26
27# Big Endian
28AVAILTUNES += "armv4b armv4tb"
29ARMPKGARCH_tune-armv4b ?= "armv4"
30ARMPKGARCH_tune-armv4tb ?= "armv4"
31TUNE_FEATURES_tune-armv4b ?= "${TUNE_FEATURES_tune-armv4} bigendian"
32TUNE_FEATURES_tune-armv4tb ?= "${TUNE_FEATURES_tune-armv4t} bigendian"
33PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b"
34PACKAGE_EXTRA_ARCHS_tune-armv4tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv4tb"
diff --git a/meta/conf/machine/include/arm/arch-armv5-dsp.inc b/meta/conf/machine/include/arm/arch-armv5-dsp.inc
new file mode 100644
index 0000000..524a62a
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5-dsp.inc
@@ -0,0 +1,52 @@
1ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
2TUNEVALID[dsp] = "ARM DSP functionality"
3
4require conf/machine/include/arm/arch-armv5.inc
5
6# Little Endian
7AVAILTUNES += "armv5e armv5te"
8ARMPKGARCH_tune-armv5e ?= "armv5"
9ARMPKGARCH_tune-armv5te ?= "armv5"
10TUNE_FEATURES_tune-armv5e ?= "${TUNE_FEATURES_tune-armv5} dsp"
11TUNE_FEATURES_tune-armv5te ?= "${TUNE_FEATURES_tune-armv5t} dsp"
12PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
13PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te"
14
15# Little Endian + VFP/DSP
16AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp"
17ARMPKGARCH_tune-armv5e-vfp ?= "armv5"
18ARMPKGARCH_tune-armv5te-vfp ?= "armv5"
19ARMPKGARCH_tune-armv5ehf-vfp ?= "armv5"
20ARMPKGARCH_tune-armv5tehf-vfp ?= "armv5"
21TUNE_FEATURES_tune-armv5e-vfp ?= "${TUNE_FEATURES_tune-armv5e} vfp"
22TUNE_FEATURES_tune-armv5te-vfp ?= "${TUNE_FEATURES_tune-armv5te} vfp"
23TUNE_FEATURES_tune-armv5ehf-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
24TUNE_FEATURES_tune-armv5tehf-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard"
25PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp"
26PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp"
27PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp"
28PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
29
30# Big Endian
31AVAILTUNES += "armv5eb armv5teb"
32ARMPKGARCH_tune-armv5eb ?= "armv5"
33ARMPKGARCH_tune-armv5teb ?= "armv5"
34TUNE_FEATURES_tune-armv5eb ?= "${TUNE_FEATURES_tune-armv5e} bigendian"
35TUNE_FEATURES_tune-armv5teb ?= "${TUNE_FEATURES_tune-armv5te} bigendian"
36PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb"
37PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb armv5teb"
38
39# Big Endian + VFP/DSP
40AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp"
41ARMPKGARCH_tune-armv5eb-vfp ?= "armv5"
42ARMPKGARCH_tune-armv5teb-vfp ?= "armv5"
43ARMPKGARCH_tune-armv5ehfb-vfp ?= "armv5"
44ARMPKGARCH_tune-armv5tehfb-vfp ?= "armv5"
45TUNE_FEATURES_tune-armv5eb-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
46TUNE_FEATURES_tune-armv5teb-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
47TUNE_FEATURES_tune-armv5ehfb-vfp ?= "${TUNE_FEATURES_tune-armv5ehf-vfp} bigendian"
48TUNE_FEATURES_tune-armv5tehfb-vfp ?= "${TUNE_FEATURES_tune-armv5tehf-vfp} bigendian"
49PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp} armv5eb armv5eb-vfp"
50PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
51PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp"
52PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp"
diff --git a/meta/conf/machine/include/arm/arch-armv5.inc b/meta/conf/machine/include/arm/arch-armv5.inc
new file mode 100644
index 0000000..5cceafa
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5.inc
@@ -0,0 +1,60 @@
1DEFAULTTUNE ?= "armv5"
2
3TUNEVALID[armv5] = "Enable instructions for ARMv5"
4TUNECONFLICTS[armv5] = "armv4"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv5", " -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv5", "armv5:", "" ,d)}"
7
8ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
9
10require conf/machine/include/arm/arch-armv4.inc
11require conf/machine/include/arm/feature-arm-vfp.inc
12
13# Little Endian
14AVAILTUNES += "armv5 armv5t"
15ARMPKGARCH_tune-armv5 ?= "armv5"
16ARMPKGARCH_tune-armv5t ?= "armv5"
17TUNE_FEATURES_tune-armv5 ?= "arm armv5"
18TUNE_FEATURES_tune-armv5t ?= "${TUNE_FEATURES_tune-armv5} thumb"
19PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
20PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t"
21
22# Little Endian + VFP/DSP
23AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp"
24ARMPKGARCH_tune-armv5-vfp ?= "armv5"
25ARMPKGARCH_tune-armv5t-vfp ?= "armv5"
26ARMPKGARCH_tune-armv5hf-vfp ?= "armv5"
27ARMPKGARCH_tune-armv5thf-vfp ?= "armv5"
28TUNE_FEATURES_tune-armv5-vfp ?= "${TUNE_FEATURES_tune-armv5} vfp"
29TUNE_FEATURES_tune-armv5t-vfp ?= "${TUNE_FEATURES_tune-armv5t} vfp"
30TUNE_FEATURES_tune-armv5hf-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
31TUNE_FEATURES_tune-armv5thf-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard"
32PACKAGE_EXTRA_ARCHS_tune-armv5-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp"
33PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp"
34PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp = "armv5hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp = "armv5hf-vfp armv5thf-vfp"
36PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
37
38# Big Endian
39AVAILTUNES += "armv5b armv5tb"
40ARMPKGARCH_tune-armv5b ?= "armv5"
41ARMPKGARCH_tune-armv5tb ?= "armv5"
42TUNE_FEATURES_tune-armv5b ?= "${TUNE_FEATURES_tune-armv5} bigendian"
43TUNE_FEATURES_tune-armv5tb ?= "${TUNE_FEATURES_tune-armv5t} bigendian"
44PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv5b"
45PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4tb} armv5b armv5tb"
46
47# Big Endian + VFP/DSP
48AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp"
49ARMPKGARCH_tune-armv5b-vfp ?= "armv5"
50ARMPKGARCH_tune-armv5tb-vfp ?= "armv5"
51ARMPKGARCH_tune-armv5hfb-vfp ?= "armv5"
52ARMPKGARCH_tune-armv5thfb-vfp ?= "armv5"
53TUNE_FEATURES_tune-armv5b-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
54TUNE_FEATURES_tune-armv5tb-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
55TUNE_FEATURES_tune-armv5hfb-vfp ?= "${TUNE_FEATURES_tune-armv5hf-vfp} bigendian"
56TUNE_FEATURES_tune-armv5thfb-vfp ?= "${TUNE_FEATURES_tune-armv5thf-vfp} bigendian"
57PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5b-vfp"
58PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5b-vfp armv5tb-vfp"
59PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp = "armv5hfb-vfp"
60PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp = "armv5hfb-vfp armv5thfb-vfp"
diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc
new file mode 100644
index 0000000..4b0c5bf
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6.inc
@@ -0,0 +1,50 @@
1DEFAULTTUNE ?= "armv6"
2
3TUNEVALID[armv6] = "Enable instructions for ARMv6"
4TUNECONFLICTS[armv6] = "armv4 armv5"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv6", " -march=armv6", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv6", "armv6:", "" ,d)}"
7
8require conf/machine/include/arm/arch-armv5-dsp.inc
9
10# Little Endian
11AVAILTUNES += "armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf"
12ARMPKGARCH_tune-armv6-novfp ?= "armv6"
13ARMPKGARCH_tune-armv6t-novfp ?= "armv6"
14ARMPKGARCH_tune-armv6 ?= "armv6"
15ARMPKGARCH_tune-armv6t ?= "armv6"
16ARMPKGARCH_tune-armv6hf ?= "armv6"
17ARMPKGARCH_tune-armv6thf ?= "armv6"
18TUNE_FEATURES_tune-armv6-novfp ?= "arm armv6"
19TUNE_FEATURES_tune-armv6t-novfp ?= "${TUNE_FEATURES_tune-armv6-novfp} thumb"
20TUNE_FEATURES_tune-armv6 ?= "${TUNE_FEATURES_tune-armv6-novfp} vfp"
21TUNE_FEATURES_tune-armv6t ?= "${TUNE_FEATURES_tune-armv6t-novfp} vfp"
22TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard"
23TUNE_FEATURES_tune-armv6thf ?= "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
24PACKAGE_EXTRA_ARCHS_tune-armv6-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6"
25PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} armv6 armv6t"
26PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6 armv6-vfp"
27PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6 armv6t armv6-vfp armv6t-vfp"
28PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
29PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
30
31# Big Endian
32AVAILTUNES += "armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb"
33ARMPKGARCH_tune-armv6b-novfp ?= "armv6"
34ARMPKGARCH_tune-armv6tb-novfp ?= "armv6"
35ARMPKGARCH_tune-armv6b ?= "armv6"
36ARMPKGARCH_tune-armv6tb ?= "armv6"
37ARMPKGARCH_tune-armv6hfb ?= "armv6"
38ARMPKGARCH_tune-armv6thfb ?= "armv6"
39TUNE_FEATURES_tune-armv6b-novfp ?= "${TUNE_FEATURES_tune-armv6-novfp} bigendian"
40TUNE_FEATURES_tune-armv6tb-novfp ?= "${TUNE_FEATURES_tune-armv6t-novfp} bigendian"
41TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian"
42TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian"
43TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6hf} bigendian"
44TUNE_FEATURES_tune-armv6thfb ?= "${TUNE_FEATURES_tune-armv6thf} bigendian"
45PACKAGE_EXTRA_ARCHS_tune-armv6b-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb} armv6b"
46PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} armv6b armv6tb"
47PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b armv6b-vfp"
48PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b armv6tb armv6b-vfp armv6tb-vfp"
49PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
50PACKAGE_EXTRA_ARCHS_tune-armv6thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
new file mode 100644
index 0000000..f2c04a3
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -0,0 +1,75 @@
1DEFAULTTUNE ?= "armv7a"
2
3TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
4TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7a", " -march=armv7-a", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv7a", "armv7a:", "" ,d)}"
7
8require conf/machine/include/arm/arch-armv6.inc
9require conf/machine/include/arm/feature-arm-neon.inc
10
11# Little Endian base configs
12AVAILTUNES += "armv7a armv7at armv7a-neon armv7at-neon"
13ARMPKGARCH_tune-armv7a ?= "armv7a"
14ARMPKGARCH_tune-armv7at ?= "armv7a"
15ARMPKGARCH_tune-armv7a-neon?= "armv7a"
16ARMPKGARCH_tune-armv7at-neon ?= "armv7a"
17TUNE_FEATURES_tune-armv7a ?= "arm armv7a vfp"
18TUNE_FEATURES_tune-armv7at ?= "${TUNE_FEATURES_tune-armv7a} thumb"
19TUNE_FEATURES_tune-armv7a-neon ?= "${TUNE_FEATURES_tune-armv7a} neon"
20TUNE_FEATURES_tune-armv7at-neon ?= "${TUNE_FEATURES_tune-armv7at} neon"
21PACKAGE_EXTRA_ARCHS_tune-armv7a = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7a armv7a-vfp"
22PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfp-neon"
23PACKAGE_EXTRA_ARCHS_tune-armv7at = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7a armv7a-vfp armv7at2-vfp"
24PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfp-neon armv7at2-vfp-neon"
25
26# VFP Tunes
27AVAILTUNES += "armv7ahf armv7athf armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4"
28ARMPKGARCH_tune-armv7ahf ?= "armv7a"
29ARMPKGARCH_tune-armv7athf ?= "armv7a"
30ARMPKGARCH_tune-armv7ahf-neon?= "armv7a"
31ARMPKGARCH_tune-armv7athf-neon ?= "armv7a"
32ARMPKGARCH_tune-armv7ahf-neon-vfpv4 ?= "armv7a"
33ARMPKGARCH_tune-armv7athf-neon-vfpv4 ?= "armv7a"
34TUNE_FEATURES_tune-armv7ahf ?= "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
35TUNE_FEATURES_tune-armv7athf ?= "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
36TUNE_FEATURES_tune-armv7ahf-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
37TUNE_FEATURES_tune-armv7athf-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard"
38TUNE_FEATURES_tune-armv7ahf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7ahf-neon} vfpv4"
39TUNE_FEATURES_tune-armv7athf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7athf-neon} vfpv4"
40PACKAGE_EXTRA_ARCHS_tune-armv7ahf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7ahf-vfp"
41PACKAGE_EXTRA_ARCHS_tune-armv7athf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7ahf-vfp armv7at2hf-vfp"
42PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
43PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
44PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
45PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7athf-vfp-neon-vfpv4"
46
47# Big Endian
48AVAILTUNES += "armv7ab armv7atb armv7ab-neon armv7atb-neon"
49ARMPKGARCH_tune-armv7ab ?= "armv7a"
50ARMPKGARCH_tune-armv7atb ?= "armv7a"
51ARMPKGARCH_tune-armv7ab-neon?= "armv7a"
52ARMPKGARCH_tune-armv7atb-neon ?= "armv7a"
53TUNE_FEATURES_tune-armv7ab ?= "${TUNE_FEATURES_tune-armv7a} bigendian"
54TUNE_FEATURES_tune-armv7atb ?= "${TUNE_FEATURES_tune-armv7at} bigendian"
55TUNE_FEATURES_tune-armv7ab-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
56TUNE_FEATURES_tune-armv7atb-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} bigendian"
57PACKAGE_EXTRA_ARCHS_tune-armv7ab = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7ab-vfp"
58PACKAGE_EXTRA_ARCHS_tune-armv7atb = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7ab-vfp armv7at2b-vfp"
59PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfp-neon"
60PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfp-neon armv7at2b-vfp-neon"
61
62# Big Endian + VFP
63AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-neon armv7athfb-neon"
64ARMPKGARCH_tune-armv7ahfb ?= "armv7a"
65ARMPKGARCH_tune-armv7athfb ?= "armv7a"
66ARMPKGARCH_tune-armv7ahfb-neon?= "armv7a"
67ARMPKGARCH_tune-armv7athfb-neon ?= "armv7a"
68TUNE_FEATURES_tune-armv7ahfb ?= "${TUNE_FEATURES_tune-armv7ahf} bigendian"
69TUNE_FEATURES_tune-armv7athfb ?= "${TUNE_FEATURES_tune-armv7athf} bigendian"
70TUNE_FEATURES_tune-armv7ahfb-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian"
71TUNE_FEATURES_tune-armv7athfb-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} bigendian"
72PACKAGE_EXTRA_ARCHS_tune-armv7ahfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7ahfb-vfp"
73PACKAGE_EXTRA_ARCHS_tune-armv7athfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7ahfb-vfp armv7at2hfb-vfp"
74PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfp-neon"
75PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfp-neon armv7at2hfb-vfp-neon"
diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc b/meta/conf/machine/include/arm/feature-arm-neon.inc
new file mode 100644
index 0000000..e8b2b85
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-neon.inc
@@ -0,0 +1,3 @@
1TUNEVALID[neon] = "Enable Neon SIMD accelerator unit."
2TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "vfpv4", " -mfpu=neon-vfpv4", " -mfpu=neon", d), "" , d)}"
3ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "neon", "-neon", "", d)}"
diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
new file mode 100644
index 0000000..a94386f
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -0,0 +1,44 @@
1# The instruction set the compiler should use when generating application
2# code. The kernel is always compiled with arm code at present. arm code
3# is the original 32 bit ARM instruction set, thumb code is the 16 bit
4# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
5# but requires more instructions (140% for 70% smaller code) so may be
6# slower.
7TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
8ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET', True) == 'thumb']}"
9ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 't', '', d)}"
10ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 't', '', d)}"
11ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 't', '', d)}"
12ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d)}"
13ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
14ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
15
16# If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
17# If the defice doesn't support ARM, then always set "thumb" even when
18# some recipe explicitly sets ARM_INSTRUCTION_SET to "arm"
19ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}"
20python () {
21 selected = d.getVar('ARM_INSTRUCTION_SET', True)
22 if selected == None:
23 return
24 used = d.getVar('ARM_M_OPT', True)
25 if selected != used:
26 pn = d.getVar('PN', True)
27 bb.warn("Recipe '%s' selects ARM_INSTRUCTION_SET to be '%s', but tune configuration overrides it to '%s'" % (pn, selected, used))
28}
29
30TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}"
31OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ':thumb', '', d)}"
32
33ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d)}"
34
35# Whether to compile with code to allow interworking between the two
36# instruction sets. This allows thumb code to be executed on a primarily
37# arm system and vice versa. It is strongly recommended that DISTROs not
38# turn this off - the actual cost is very small.
39TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions"
40TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}"
41OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}"
42
43# what about armv7m devices which don't support -marm (e.g. Cortex-M3)?
44TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -marm"
diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc b/meta/conf/machine/include/arm/feature-arm-vfp.inc
new file mode 100644
index 0000000..13927ff
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -0,0 +1,9 @@
1TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
2ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-vfp", "" ,d)}"
3
4TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit."
5ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv4", "-vfpv4", "" ,d)}"
6
7TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
8TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}"
9ARMPKGSFX_EABI .= "${@bb.utils.contains("TUNE_FEATURES", [ "callconvention-hard", "vfp" ], "hf", "", d)}"
diff --git a/meta/conf/machine/include/mips/README b/meta/conf/machine/include/mips/README
new file mode 100644
index 0000000..c375f31
--- /dev/null
+++ b/meta/conf/machine/include/mips/README
@@ -0,0 +1,36 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Version
3
4MIPS currently defines 12 ABIs. Combinations of:
5 *) Big/Little Endian
6 *) Hardware/Software Floating Point
7 *) o32, n32, n64 ABI
8
9TUNE_ARCH, the GNU canonical arch, is defined as:
10
11mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}
12
13The package arch is defined in such a way to generated a standard naming
14scheme. The scheme is: <mips variant>[-nf][-n32]
15
16TUNE_PKGARCH is defined as:
17
18${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}
19
20The following is a list of MIPS specific variables:
21
22MIPSPKGSFX_BYTE - This is defined as either blank and "64" for MIPS64 CPUs.
23
24MIPSPKGSFX_ENDIAN - For bigendian hardware this is blank, otherwise it's
25defined as "el".
26
27MIPSPKGSFX_VARIANT_tune-<tune> - In the default tunings it is set to the
28same value as TUNE_ARCH. In custom, optimized tunings, the value should
29be modified to more precisely describe the tuning.
30
31MIPSPKGSFX_FPU - The value is set to "" or "-nf", where "-nf" indicates
32that the tune is using a non-floating point ABI.
33
34MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous
35values are not enough to distringuish the package. "-n32" is added when
36building for N32 ABI.
diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
new file mode 100644
index 0000000..02626d3
--- /dev/null
+++ b/meta/conf/machine/include/mips/arch-mips.inc
@@ -0,0 +1,102 @@
1# MIPS Architecture definition
2# 12 defined ABIs, all combinations of:
3# *) Big/Little Endian
4# *) Hardware/Software Floating Point
5# *) o32, n32, n64 ABI
6
7DEFAULTTUNE ?= "mips"
8
9# Endianess
10TUNEVALID[bigendian] = "Enable big-endian mode"
11TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -meb", " -mel", d)}"
12
13# ABI flags
14TUNEVALID[o32] = "MIPS o32 ABI"
15TUNECONFLICTS[o32] = "n32 n64"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "o32", " -mabi=32", "", d)}"
17
18TUNEVALID[n32] = "MIPS64 n32 ABI"
19TUNECONFLICTS[n32] = "o32 n64"
20ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "n32", "n32", "" ,d)}"
21TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "n32", " -mabi=n32", "", d)}"
22
23TUNEVALID[n64] = "MIPS64 n64 ABI"
24TUNECONFLICTS[n64] = "o32 n32"
25TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "n64", " -mabi=64", "", d)}"
26
27# Floating point
28TUNEVALID[fpu-hard] = "Use hardware FPU"
29TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", " -mhard-float", " -msoft-float", d)}"
30TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "", "soft", d)}"
31
32# Package naming
33MIPSPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "", "el", d)}"
34MIPSPKGSFX_BYTE = "${@bb.utils.contains("TUNE_FEATURES", "n64" , "64", "", d)}"
35MIPSPKGSFX_BYTE .= "${@bb.utils.contains("TUNE_FEATURES", "n32" , "64", "", d)}"
36MIPSPKGSFX_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard" , "", "-nf", d)}"
37MIPSPKGSFX_ABI = "${@bb.utils.contains("TUNE_FEATURES", "n32", "-n32", "", d)}"
38
39TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
40TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
41
42# Base tunes
43AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
44TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
45BASE_LIB_tune-mips = "lib"
46MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
47PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
48
49TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
50BASE_LIB_tune-mips64-n32 = "lib32"
51MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
52PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
53
54TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
55BASE_LIB_tune-mips64 = "lib64"
56MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
57PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
58
59TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
60BASE_LIB_tune-mipsel = "lib"
61MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
62PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
63
64TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
65BASE_LIB_tune-mips64el-n32 = "lib32"
66MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
67PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
68
69TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
70BASE_LIB_tune-mips64el = "lib64"
71MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
72PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
73
74TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
75BASE_LIB_tune-mips-nf = "lib"
76MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
77PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
78
79TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
80BASE_LIB_tune-mips64-nf-n32 = "lib32"
81MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
82PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
83
84TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
85BASE_LIB_tune-mips64-nf = "lib64"
86MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
87PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
88
89TUNE_FEATURES_tune-mipsel-nf = "o32"
90BASE_LIB_tune-mipsel-nf = "lib"
91MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
92PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
93
94TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
95BASE_LIB_tune-mips64el-nf-n32 = "lib32"
96MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
97PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
98
99TUNE_FEATURES_tune-mips64el-nf = "n64"
100BASE_LIB_tune-mips64el-nf = "lib64"
101MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
102PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
diff --git a/meta/conf/machine/include/powerpc/README b/meta/conf/machine/include/powerpc/README
new file mode 100644
index 0000000..e87fb50
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/README
@@ -0,0 +1,17 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial revision
3
4There are 4 primary PowerPC ABIs.
5# *) Hard/Soft Floating Point
6# *) 32-bit/64-bit
7
8TUNE_ARCH is defined as either "powerpc" or "powerpc64" based on the m32
9or m64 feature.
10
11May of the PowerPC package archictures are based on legacy Linux names.
12However, a general naming scheme should be similar to: ppc[64][<family>][-nf].
13(Note: the default package architectures are "powerpc" and "powerpc64".)
14
15TUNE_PKGARCH is defined as TUNE_PKGARCH_tune-${DEFAULTTUNE}. All
16PowerPC tunings are required to define TUNE_PKGARCH_tune-<tune>.
17
diff --git a/meta/conf/machine/include/powerpc/arch-powerpc.inc b/meta/conf/machine/include/powerpc/arch-powerpc.inc
new file mode 100644
index 0000000..036ca3c
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
@@ -0,0 +1,34 @@
1# Power Architecture definition
2# Four defined ABIs, all combinations of:
3# *) Hard/Soft Floating Point
4# *) 32-bit/64-bit
5
6DEFAULTTUNE ?= "powerpc"
7
8TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
9ABIEXTENSION ?= ""
10
11TUNEVALID[m32] = "Power ELF32 standard ABI"
12TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m32", " -m32", "", d)}"
13TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32", "powerpc", "", d)}"
14
15TUNEVALID[fpu-hard] = "Use hardware FPU."
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", " -mhard-float", "", d)}"
17
18TUNEVALID[fpu-soft] = "Use software FPU."
19TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-soft", " -msoft-float", "", d)}"
20TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-soft", "soft", "", d)}"
21
22TUNEVALID[altivec] = "Altivec"
23
24# Basic tune definitions
25AVAILTUNES += "powerpc powerpc-nf"
26TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft"
27BASE_LIB_tune-powerpc-nf = "lib"
28TUNE_PKGARCH_tune-powerpc-nf = "powerpc-nf"
29PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf"
30
31TUNE_FEATURES_tune-powerpc = "m32 fpu-hard"
32BASE_LIB_tune-powerpc = "lib"
33TUNE_PKGARCH_tune-powerpc = "powerpc"
34PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc"
diff --git a/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
new file mode 100644
index 0000000..8476dec
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "powerpc64"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[m64] = "Power ELF64 standard ABI"
6TUNECONFLICTS[m64] = "m32 nf"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m64", " -m64", "", d)}"
8TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", [ "m64" ], "powerpc64", "", d)}"
9
10AVAILTUNES += "powerpc64"
11TUNE_FEATURES_tune-powerpc64 ?= "m64 fpu-hard"
12BASE_LIB_tune-powerpc64 = "lib64"
13TUNE_PKGARCH_tune-powerpc64 = "powerpc64"
14PACKAGE_EXTRA_ARCHS_tune-powerpc64 = "powerpc64"
diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
new file mode 100644
index 0000000..a5fc88a
--- /dev/null
+++ b/meta/conf/machine/include/qemu.inc
@@ -0,0 +1,29 @@
1PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
2PREFERRED_PROVIDER_virtual/egl ?= "mesa"
3PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
4PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
5PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
6
7XSERVER ?= "xserver-xorg \
8 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast', '', d)} \
9 xf86-input-evdev \
10 xf86-input-mouse \
11 xf86-video-fbdev \
12 xf86-input-keyboard"
13
14MACHINE_FEATURES = "alsa bluetooth usbgadget screen"
15
16MACHINEOVERRIDES =. "qemuall:"
17
18IMAGE_FSTYPES += "tar.bz2 ext3"
19
20# Don't include kernels in standard images
21RDEPENDS_kernel-base = ""
22
23# Use a common kernel recipe for all QEMU machines
24PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
25
26EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
27
28# Provide the nfs server kernel module for all qemu images
29KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
diff --git a/meta/conf/machine/include/sh/README b/meta/conf/machine/include/sh/README
new file mode 100644
index 0000000..b351acd
--- /dev/null
+++ b/meta/conf/machine/include/sh/README
@@ -0,0 +1,11 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4Both big endian and little endian are defined for SH.
5
6Experimental -- SH tunings have not been validated.
7
8The TUNE_ARCH is defined as ${TUNE_ARCH_tune-${DEFAULTTUNE}}.
9
10The TUNE_PKGARCH is defind as ${TUNE_PKGARCH_tune-${DEFAULTTUNE}}.
11
diff --git a/meta/conf/machine/include/sh/arch-sh.inc b/meta/conf/machine/include/sh/arch-sh.inc
new file mode 100644
index 0000000..64d4cac
--- /dev/null
+++ b/meta/conf/machine/include/sh/arch-sh.inc
@@ -0,0 +1,9 @@
1# SH Architecture definition
2
3DEFAULTTUNE ?= "sh"
4
5TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}"
6TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
7
8TUNEVALID[bigendian] = "Enabled big-endian mode."
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mb", " -ml", d)}"
diff --git a/meta/conf/machine/include/soc-family.inc b/meta/conf/machine/include/soc-family.inc
new file mode 100644
index 0000000..0251da0
--- /dev/null
+++ b/meta/conf/machine/include/soc-family.inc
@@ -0,0 +1,2 @@
1# Add SOC_FAMILY to machine overrides so we get access to e.g. 'omap3' and 'ti335x'
2MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}:']['${SOC_FAMILY}' != '']}"
diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/tune-arm1136jf-s.inc
new file mode 100644
index 0000000..4a131b6
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm1136jf-s.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv6"
2
3require conf/machine/include/arm/arch-armv6.inc
4
5TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm1136jfs", " -mtune=arm1136jf-s", "", d)}"
7
8AVAILTUNES += "arm1136jfs"
9ARMPKGARCH_tune-arm1136jfs = "arm1136jfs"
10TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs"
11PACKAGE_EXTRA_ARCHS_tune-arm1136jfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6} arm1136jfs-vfp"
diff --git a/meta/conf/machine/include/tune-arm920t.inc b/meta/conf/machine/include/tune-arm920t.inc
new file mode 100644
index 0000000..5cadcc7
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm920t.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv4t"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[arm920t] = "Enable arm920t specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm920t", " -mtune=arm920t", "", d)}"
7
8AVAILTUNES += "arm920t"
9ARMPKGARCH_tune-arm920t = "arm920t"
10TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t"
11PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm920tt"
diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/tune-arm926ejs.inc
new file mode 100644
index 0000000..335e4e0
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm926ejs.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv5te"
2
3require conf/machine/include/arm/arch-armv5-dsp.inc
4
5TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm926ejs", " -mtune=arm926ej-s", "", d)}"
7
8AVAILTUNES += "arm926ejs"
9ARMPKGARCH_tune-arm926ejs = "arm926ejs"
10TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs"
11PACKAGE_EXTRA_ARCHS_tune-arm926ejs = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} arm926ejste"
diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/tune-arm9tdmi.inc
new file mode 100644
index 0000000..dee57c9
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm9tdmi.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv4t"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[arm9tdmi] = "Enable arm9tdmi specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm9tdmi", " -mtune=arm9tdmi", "", d)}"
7
8AVAILTUNES += "arm9tdmi"
9ARMPKGARCH_tune-arm9tdmi = "arm9tdmi"
10TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi"
11PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm9tdmit"
diff --git a/meta/conf/machine/include/tune-atom.inc b/meta/conf/machine/include/tune-atom.inc
new file mode 100644
index 0000000..5e1bb74
--- /dev/null
+++ b/meta/conf/machine/include/tune-atom.inc
@@ -0,0 +1,2 @@
1# Atom tunings are the same as core2 for now...
2require conf/machine/include/tune-core2.inc
diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc
new file mode 100644
index 0000000..fafc28a
--- /dev/null
+++ b/meta/conf/machine/include/tune-c3.inc
@@ -0,0 +1,12 @@
1require conf/machine/include/x86/arch-x86.inc
2
3TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
4TUNECONFLICTS[c3] = "m64 mx32"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "c3", " -march=c3 -mtune=c3", "", d)}"
6
7AVAILTUNES += "c3"
8TUNE_FEATURES_tune-c3 = "${TUNE_FEATURES_tune-x86} c3"
9BASE_LIBS_tune-c3 = "${BASE_LIB_tune-x86}"
10# The following should likely be something other then i586...
11TUNE_PKGARCH_tune-c3 = "i586"
12PACKAGE_EXTRA_ARCHS_tune-c3 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586"
diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
new file mode 100644
index 0000000..078e22d
--- /dev/null
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -0,0 +1,35 @@
1# Settings for the GCC(1) cpu-type "core2":
2#
3# Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
4# instruction set support.
5#
6# This tune is recommended for the Intel Core 2 CPU family, including Conroe,
7# Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
8#
9DEFAULTTUNE ?= "core2-32"
10
11# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
12require conf/machine/include/tune-i586.inc
13
14# Extra tune features
15TUNEVALID[core2] = "Enable core2 specific processor optimizations"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
17
18# Extra tune selections
19AVAILTUNES += "core2-32"
20TUNE_FEATURES_tune-core2-32 = "${TUNE_FEATURES_tune-x86} core2"
21BASE_LIB_tune-core2-32 = "lib"
22TUNE_PKGARCH_tune-core2-32 = "core2-32"
23PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2-32"
24
25AVAILTUNES += "core2-64"
26TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
27BASE_LIB_tune-core2-64 = "lib64"
28TUNE_PKGARCH_tune-core2-64 = "core2-64"
29PACKAGE_EXTRA_ARCHS_tune-core2-64 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64"
30
31AVAILTUNES += "core2-64-x32"
32TUNE_FEATURES_tune-core2-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} core2"
33BASE_LIB_tune-core2-64-x32 = "libx32"
34TUNE_PKGARCH_tune-core2-64-x32 = "core2-64-x32"
35PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32"
diff --git a/meta/conf/machine/include/tune-corei7.inc b/meta/conf/machine/include/tune-corei7.inc
new file mode 100644
index 0000000..42cf932
--- /dev/null
+++ b/meta/conf/machine/include/tune-corei7.inc
@@ -0,0 +1,35 @@
1# Settings for the GCC(1) cpu-type "corei7":
2#
3# Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1
4# and SSE4.2 instruction set support.
5#
6# This tune is recommended for Intel Nehalem and Silvermont (e.g. Bay Trail) CPUs
7# (and beyond).
8#
9DEFAULTTUNE ?= "corei7-64"
10
11# Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS
12require conf/machine/include/tune-core2.inc
13
14# Extra tune features
15TUNEVALID[corei7] = "Enable corei7 specific processor optimizations"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "corei7", " -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2", "", d)}"
17
18# Extra tune selections
19AVAILTUNES += "corei7-32"
20TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7"
21BASE_LIB_tune-corei7-32 = "lib"
22TUNE_PKGARCH_tune-corei7-32 = "corei7-32"
23PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2} corei7-32"
24
25AVAILTUNES += "corei7-64"
26TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7"
27BASE_LIB_tune-corei7-64 = "lib64"
28TUNE_PKGARCH_tune-corei7-64 = "corei7-64"
29PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64"
30
31AVAILTUNES += "corei7-64-x32"
32TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7"
33BASE_LIB_tune-corei7-64-x32 = "libx32"
34TUNE_PKGARCH_tune-corei7-64-x32 = "corei7-64-x32"
35PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7-64-x32"
diff --git a/meta/conf/machine/include/tune-cortexa15.inc b/meta/conf/machine/include/tune-cortexa15.inc
new file mode 100644
index 0000000..5529777
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa15.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa15] = "Enable Cortex-A15 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa15", " -mtune=cortex-a15", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon"
10ARMPKGARCH_tune-cortexa15 = "cortexa15"
11ARMPKGARCH_tune-cortexa15t = "cortexa15"
12ARMPKGARCH_tune-cortexa15-neon = "cortexa15"
13ARMPKGARCH_tune-cortexa15t-neon = "cortexa15"
14TUNE_FEATURES_tune-cortexa15 = "${TUNE_FEATURES_tune-armv7a} cortexa15"
15TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-armv7at} cortexa15"
16TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa15"
17TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa15"
18PACKAGE_EXTRA_ARCHS_tune-cortexa15 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa15-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa15t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa15-vfp cortexa15t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa15-vfp cortexa15-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa15t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa15-vfp cortexa15-vfp-neon cortexa15t2-vfp cortexa15t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa15hf cortexa15thf cortexa15hf-neon cortexa15thf-neon"
25ARMPKGARCH_tune-cortexa15hf = "cortexa15"
26ARMPKGARCH_tune-cortexa15thf = "cortexa15"
27ARMPKGARCH_tune-cortexa15hf-neon = "cortexa15"
28ARMPKGARCH_tune-cortexa15thf-neon = "cortexa15"
29TUNE_FEATURES_tune-cortexa15hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa15"
30TUNE_FEATURES_tune-cortexa15thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa15"
31TUNE_FEATURES_tune-cortexa15hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa15"
32TUNE_FEATURES_tune-cortexa15thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa15"
33PACKAGE_EXTRA_ARCHS_tune-cortexa15hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa15hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa15thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa15hf-vfp cortexa15t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa15hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa15hf-vfp cortexa15hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa15thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa15hf-vfp cortexa15hf-vfp-neon cortexa15t2hf-vfp cortexa15t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa5.inc b/meta/conf/machine/include/tune-cortexa5.inc
new file mode 100644
index 0000000..139e65c
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa5.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa5] = "Enable Cortex-A5 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa5", " -mtune=cortex-a5", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon"
10ARMPKGARCH_tune-cortexa5 = "cortexa5"
11ARMPKGARCH_tune-cortexa5t = "cortexa5"
12ARMPKGARCH_tune-cortexa5-neon = "cortexa5"
13ARMPKGARCH_tune-cortexa5t-neon = "cortexa5"
14TUNE_FEATURES_tune-cortexa5 = "${TUNE_FEATURES_tune-armv7a} cortexa5"
15TUNE_FEATURES_tune-cortexa5t = "${TUNE_FEATURES_tune-armv7at} cortexa5"
16TUNE_FEATURES_tune-cortexa5-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa5"
17TUNE_FEATURES_tune-cortexa5t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa5"
18PACKAGE_EXTRA_ARCHS_tune-cortexa5 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa5-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa5t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa5-vfp cortexa5t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa5-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa5-vfp cortexa5-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa5t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa5-vfp cortexa5-vfp-neon cortexa5t2-vfp cortexa5t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa5hf cortexa5thf cortexa5hf-neon cortexa5thf-neon"
25ARMPKGARCH_tune-cortexa5hf = "cortexa5"
26ARMPKGARCH_tune-cortexa5thf = "cortexa5"
27ARMPKGARCH_tune-cortexa5hf-neon = "cortexa5"
28ARMPKGARCH_tune-cortexa5thf-neon = "cortexa5"
29TUNE_FEATURES_tune-cortexa5hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa5"
30TUNE_FEATURES_tune-cortexa5thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa5"
31TUNE_FEATURES_tune-cortexa5hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa5"
32TUNE_FEATURES_tune-cortexa5thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa5"
33PACKAGE_EXTRA_ARCHS_tune-cortexa5hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa5hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa5thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa5hf-vfp cortexa5t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa5hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa5hf-vfp cortexa5hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa5thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa5hf-vfp cortexa5hf-vfp-neon cortexa5t2hf-vfp cortexa5t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa7.inc b/meta/conf/machine/include/tune-cortexa7.inc
new file mode 100644
index 0000000..9d06910
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa7.inc
@@ -0,0 +1,42 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa7] = "Enable Cortex-A7 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa7", " -mtune=cortex-a7", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon"
10ARMPKGARCH_tune-cortexa7 = "cortexa7"
11ARMPKGARCH_tune-cortexa7t = "cortexa7"
12ARMPKGARCH_tune-cortexa7-neon = "cortexa7"
13ARMPKGARCH_tune-cortexa7t-neon = "cortexa7"
14TUNE_FEATURES_tune-cortexa7 = "${TUNE_FEATURES_tune-armv7a} cortexa7"
15TUNE_FEATURES_tune-cortexa7t = "${TUNE_FEATURES_tune-armv7at} cortexa7"
16TUNE_FEATURES_tune-cortexa7-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa7"
17TUNE_FEATURES_tune-cortexa7t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa7"
18PACKAGE_EXTRA_ARCHS_tune-cortexa7 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa7-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa7t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa7-vfp cortexa7t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa7-vfp cortexa7-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa7-vfp cortexa7-vfp-neon cortexa7t2-vfp cortexa7t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4"
25ARMPKGARCH_tune-cortexa7hf = "cortexa7"
26ARMPKGARCH_tune-cortexa7thf = "cortexa7"
27ARMPKGARCH_tune-cortexa7hf-neon = "cortexa7"
28ARMPKGARCH_tune-cortexa7thf-neon = "cortexa7"
29ARMPKGARCH_tune-cortexa7hf-neon-vfpv4 = "cortexa7"
30ARMPKGARCH_tune-cortexa7thf-neon-vfpv4 = "cortexa7"
31TUNE_FEATURES_tune-cortexa7hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa7"
32TUNE_FEATURES_tune-cortexa7thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa7"
33TUNE_FEATURES_tune-cortexa7hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa7"
34TUNE_FEATURES_tune-cortexa7thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa7"
35TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} cortexa7"
36TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7athf-neon-vfpv4} cortexa7"
37PACKAGE_EXTRA_ARCHS_tune-cortexa7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa7hf-vfp"
38PACKAGE_EXTRA_ARCHS_tune-cortexa7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa7hf-vfp cortexa7t2hf-vfp"
39PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa7hf-vfp cortexa7hf-vfp-neon"
40PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7t2hf-vfp cortexa7t2hf-vfp-neon"
41PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7hf-vfp-vfpv4-neon"
42PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7t2hf-vfp cortexa7t2hf-vfp-neon cortexa7hf-vfp-vfpv4-neon cortexa7t2hf-vfp-vfpv4-neon"
diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc
new file mode 100644
index 0000000..771537f
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa8.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa8", " -mtune=cortex-a8", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon cortexa8t-neon"
10ARMPKGARCH_tune-cortexa8 = "cortexa8"
11ARMPKGARCH_tune-cortexa8t = "cortexa8"
12ARMPKGARCH_tune-cortexa8-neon = "cortexa8"
13ARMPKGARCH_tune-cortexa8t-neon = "cortexa8"
14TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8"
15TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8"
16TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa8"
17TUNE_FEATURES_tune-cortexa8t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa8"
18PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa8-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa8-vfp cortexa8t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa8-vfp cortexa8-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa8t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa8-vfp cortexa8-vfp-neon cortexa8t2-vfp cortexa8t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa8hf cortexa8thf cortexa8hf-neon cortexa8thf-neon"
25ARMPKGARCH_tune-cortexa8hf = "cortexa8"
26ARMPKGARCH_tune-cortexa8thf = "cortexa8"
27ARMPKGARCH_tune-cortexa8hf-neon = "cortexa8"
28ARMPKGARCH_tune-cortexa8thf-neon = "cortexa8"
29TUNE_FEATURES_tune-cortexa8hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa8"
30TUNE_FEATURES_tune-cortexa8thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa8"
31TUNE_FEATURES_tune-cortexa8hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa8"
32TUNE_FEATURES_tune-cortexa8thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa8"
33PACKAGE_EXTRA_ARCHS_tune-cortexa8hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa8hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa8thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa8hf-vfp cortexa8t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa8hf-vfp cortexa8hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa8thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa8hf-vfp cortexa8hf-vfp-neon cortexa8t2hf-vfp cortexa8t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa9.inc b/meta/conf/machine/include/tune-cortexa9.inc
new file mode 100644
index 0000000..700394b
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa9.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa9] = "Enable Cortex-A9 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa9", " -mtune=cortex-a9", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa9 cortexa9t cortexa9-neon cortexa9t-neon"
10ARMPKGARCH_tune-cortexa9 = "cortexa9"
11ARMPKGARCH_tune-cortexa9t = "cortexa9"
12ARMPKGARCH_tune-cortexa9-neon = "cortexa9"
13ARMPKGARCH_tune-cortexa9t-neon = "cortexa9"
14TUNE_FEATURES_tune-cortexa9 = "${TUNE_FEATURES_tune-armv7a} cortexa9"
15TUNE_FEATURES_tune-cortexa9t = "${TUNE_FEATURES_tune-armv7at} cortexa9"
16TUNE_FEATURES_tune-cortexa9-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa9"
17TUNE_FEATURES_tune-cortexa9t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa9"
18PACKAGE_EXTRA_ARCHS_tune-cortexa9 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa9-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa9t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa9-vfp cortexa9t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa9-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa9-vfp cortexa9-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa9t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa9-vfp cortexa9-vfp-neon cortexa9t2-vfp cortexa9t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa9hf cortexa9thf cortexa9hf-neon cortexa9thf-neon"
25ARMPKGARCH_tune-cortexa9hf = "cortexa9"
26ARMPKGARCH_tune-cortexa9thf = "cortexa9"
27ARMPKGARCH_tune-cortexa9hf-neon = "cortexa9"
28ARMPKGARCH_tune-cortexa9thf-neon = "cortexa9"
29TUNE_FEATURES_tune-cortexa9hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa9"
30TUNE_FEATURES_tune-cortexa9thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa9"
31TUNE_FEATURES_tune-cortexa9hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa9"
32TUNE_FEATURES_tune-cortexa9thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa9"
33PACKAGE_EXTRA_ARCHS_tune-cortexa9hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa9hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa9thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa9hf-vfp cortexa9t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa9hf-vfp cortexa9hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa9thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa9hf-vfp cortexa9hf-vfp-neon cortexa9t2hf-vfp cortexa9t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexm1.inc b/meta/conf/machine/include/tune-cortexm1.inc
new file mode 100644
index 0000000..3b65279
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm1.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv7a"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexm1] = "Enable Cortex-M1 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexm1", " -mtune=cortex-m1", "", d)}"
7
8AVAILTUNES += "cortexm1"
9ARMPKGARCH_tune-cortexm1 = "cortexm1"
10TUNE_FEATURES_tune-cortexm1 = "${TUNE_FEATURES_tune-armv7a} cortexm1"
11PACKAGE_EXTRA_ARCHS_tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexm1-vfp"
diff --git a/meta/conf/machine/include/tune-cortexm3.inc b/meta/conf/machine/include/tune-cortexm3.inc
new file mode 100644
index 0000000..cbc4c0d
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm3.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "cortexm3"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexm3", " -mtune=cortex-m3", "", d)}"
7
8TUNEVALID[armv7m] = "Enable Cortex-M3 specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7m", " -march=armv7-m", "", d)}"
10
11AVAILTUNES += "cortexm3"
12ARMPKGARCH_tune-cortexm3 = "armv7m"
13TUNE_FEATURES_tune-cortexm3 = "armv7m vfp cortexm3"
14PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m-vfp"
diff --git a/meta/conf/machine/include/tune-cortexr4.inc b/meta/conf/machine/include/tune-cortexr4.inc
new file mode 100644
index 0000000..bde649f
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexr4.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "cortexr4"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexr4", " -mtune=cortex-r4", "", d)}"
7
8TUNEVALID[armv7r] = "Enable Cortex-R4 specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7r", " -march=armv7-r", "", d)}"
10
11AVAILTUNES += "cortexr4"
12ARMPKGARCH_tune-cortexr4 = "armv7r"
13TUNE_FEATURES_tune-cortexr4 = "armv7r vfp cortexr4 arm thumb"
14PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r-vfp"
diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/tune-ep9312.inc
new file mode 100644
index 0000000..b19b438
--- /dev/null
+++ b/meta/conf/machine/include/tune-ep9312.inc
@@ -0,0 +1,12 @@
1DEFAULTTUNE ?= "ep9312"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ep9312", " -march=ep9312 -mtune=ep9312", "", d)}"
7
8AVAILTUNES += "ep9312"
9ARMPKGARCH_tune-ep9312 = "ep9312"
10# this tune does not include TUNE_FEATURES_tune-armv4t, so there is no armv4 TUNE_FEATURES => no 't' in ARMPKGSFX_THUMB
11TUNE_FEATURES_tune-ep9312 = "thumb ep9312"
12PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312"
diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
new file mode 100644
index 0000000..5fbb3c7
--- /dev/null
+++ b/meta/conf/machine/include/tune-i586.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "i586"
2
3require conf/machine/include/x86/arch-x86.inc
4
5# Extra tune features
6TUNEVALID[i586] = "Enable i586 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "i586", " -march=i586", "", d)}"
8
9# Extra tune selections
10AVAILTUNES += "i586"
11TUNE_FEATURES_tune-i586 = "${TUNE_FEATURES_tune-x86} i586"
12BASE_LIB_tune-i586 = "lib"
13TUNE_PKGARCH_tune-i586 = "i586"
14PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i586"
diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/tune-iwmmxt.inc
new file mode 100644
index 0000000..748ca0d
--- /dev/null
+++ b/meta/conf/machine/include/tune-iwmmxt.inc
@@ -0,0 +1,14 @@
1# Configurations for the Intel PXA27x Appications Processor Family.
2# Please use tune-xscale for PXA255/PXA26x based processors.
3
4DEFAULTTUNE ?= "iwmmxt"
5
6require conf/machine/include/arm/arch-armv5-dsp.inc
7
8TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "iwmmxt", " -march=iwmmxt -mtune=iwmmxt", "", d)}"
10
11AVAILTUNES += "iwmmxt"
12ARMPKGARCH_tune-iwmmxt = "iwmmxt"
13TUNE_FEATURES_tune-iwmmxt = "thumb iwmmxt"
14PACKAGE_EXTRA_ARCHS_tune-iwmmxt = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} iwmmxt iwmmxtt"
diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
new file mode 100644
index 0000000..ae326ce
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips32.inc
@@ -0,0 +1,25 @@
1DEFAULTTUNE ?= "mips32"
2
3require conf/machine/include/mips/arch-mips.inc
4
5TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
6TUNECONFLICTS[mips32] = "n64 n32"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "mips32", " -march=mips32", "", d)}"
8
9AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
10
11TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
12MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
13PACKAGE_EXTRA_ARCHS_tune-mips32 = "mips mips32"
14
15TUNE_FEATURES_tune-mips32el = "${TUNE_FEATURES_tune-mipsel} mips32"
16MIPSPKGSFX_VARIANT_tune-mips32el = "mips32el"
17PACKAGE_EXTRA_ARCHS_tune-mips32el = "mipsel mips32el"
18
19TUNE_FEATURES_tune-mips32-nf = "${TUNE_FEATURES_tune-mips-nf} mips32"
20MIPSPKGSFX_VARIANT_tune-mips32-nf = "mips32"
21PACKAGE_EXTRA_ARCHS_tune-mips32-nf = "mips-nf mips32-nf"
22
23TUNE_FEATURES_tune-mips32el-nf = "${TUNE_FEATURES_tune-mipsel-nf} mips32"
24MIPSPKGSFX_VARIANT_tune-mips32el-nf = "mips32el"
25PACKAGE_EXTRA_ARCHS_tune-mips32el-nf = "mipsel-nf mips32el-nf"
diff --git a/meta/conf/machine/include/tune-mips32r2.inc b/meta/conf/machine/include/tune-mips32r2.inc
new file mode 100644
index 0000000..c9deff8
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips32r2.inc
@@ -0,0 +1,17 @@
1DEFAULTTUNE ?= "mips32r2"
2
3require conf/machine/include/tune-mips32.inc
4
5TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations"
6TUNECONFLICTS[mips32r2] = "n64 n32"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "mips32r2", " -march=mips32r2", "", d)}"
8
9AVAILTUNES += "mips32r2 mips32r2el"
10
11TUNE_FEATURES_tune-mips32r2 = "${TUNE_FEATURES_tune-mips} mips32r2"
12MIPSPKGSFX_VARIANT_tune-mips32r2 = "mips32r2"
13PACKAGE_EXTRA_ARCHS_tune-mips32r2 = "mips mips32 mips32r2"
14
15TUNE_FEATURES_tune-mips32r2el = "${TUNE_FEATURES_tune-mipsel} mips32r2"
16MIPSPKGSFX_VARIANT_tune-mips32r2el = "mips32r2el"
17PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el"
diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
new file mode 100644
index 0000000..9be0e0f
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips64.inc
@@ -0,0 +1,3 @@
1DEFAULTTUNE ?= "mips64"
2
3require conf/machine/include/tune-mips32r2.inc
diff --git a/meta/conf/machine/include/tune-power5.inc b/meta/conf/machine/include/tune-power5.inc
new file mode 100644
index 0000000..30be869
--- /dev/null
+++ b/meta/conf/machine/include/tune-power5.inc
@@ -0,0 +1,21 @@
1DEFAULTTUNE ?= "ppc64p5"
2
3require conf/machine/include/powerpc/arch-powerpc64.inc
4
5TUNEVALID[power5] = "Enable IBM Power5 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power5", " -mcpu=power5", "", d)}"
7
8AVAILTUNES += "ppcp5 ppc64p5"
9TUNE_FEATURES_tune-ppcp5 = "m32 fpu-hard power5 altivec"
10BASE_LIB_tune-ppcp5 = "lib"
11TUNE_PKGARCH_tune-ppcp5 = "ppcp5"
12PACKAGE_EXTRA_ARCHS_tune-ppcp5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp5"
13
14TUNE_FEATURES_tune-ppc64p5 = "m64 fpu-hard power5 altivec"
15BASE_LIB_tune-ppc64p5 = "lib64"
16TUNE_PKGARCH_tune-ppc64p5 = "ppc64p5"
17PACKAGE_EXTRA_ARCHS_tune-ppc64p5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p5"
18
19# glibc configure options to get power5 specific library
20GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power5", "--with-cpu=power5", "", d)}"
21GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power5", "--with-cpu=power5", "", d)}"
diff --git a/meta/conf/machine/include/tune-power6.inc b/meta/conf/machine/include/tune-power6.inc
new file mode 100644
index 0000000..7563798
--- /dev/null
+++ b/meta/conf/machine/include/tune-power6.inc
@@ -0,0 +1,21 @@
1DEFAULTTUNE ?= "ppcpr6"
2
3require conf/machine/include/powerpc/arch-powerpc64.inc
4
5TUNEVALID[power6] = "Enable IBM Power6 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power6", " -mcpu=power6", "", d)}"
7
8AVAILTUNES += "ppcp6 ppc64p6"
9TUNE_FEATURES_tune-ppcp6 = "m32 fpu-hard power6 altivec"
10BASE_LIB_tune-ppcp6 = "lib"
11TUNE_PKGARCH_tune-ppcp6 = "ppcp6"
12PACKAGE_EXTRA_ARCHS_tune-ppcp6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp6"
13
14TUNE_FEATURES_tune-ppc64p6 = "m64 fpu-hard power6 altivec"
15BASE_LIB_tune-ppc64p6 = "lib64"
16TUNE_PKGARCH_tune-ppc64p6 = "ppc64p6"
17PACKAGE_EXTRA_ARCHS_tune-ppc64p6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p6"
18
19# glibc configure options to get power6 specific library
20GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power6", "--with-cpu=power6", "", d)}"
21GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power6", "--with-cpu=power6", "", d)}"
diff --git a/meta/conf/machine/include/tune-power7.inc b/meta/conf/machine/include/tune-power7.inc
new file mode 100644
index 0000000..7069e75
--- /dev/null
+++ b/meta/conf/machine/include/tune-power7.inc
@@ -0,0 +1,21 @@
1DEFAULTTUNE ?= "ppcpr7"
2
3require conf/machine/include/powerpc/arch-powerpc64.inc
4
5TUNEVALID[power7] = "Enable IBM Power7 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power7", " -mcpu=power7", "", d)}"
7
8AVAILTUNES += "ppcp7 ppc64p7"
9TUNE_FEATURES_tune-ppcp7 = "m32 fpu-hard power7 altivec"
10BASE_LIB_tune-ppcp7 = "lib"
11TUNE_PKGARCH_tune-ppcp7 = "ppcp7"
12PACKAGE_EXTRA_ARCHS_tune-ppcp7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp7"
13
14TUNE_FEATURES_tune-ppc64p7 = "m64 fpu-hard power7 altivec"
15BASE_LIB_tune-ppc64p7 = "lib64"
16TUNE_PKGARCH_tune-ppc64p7 = "ppc64p7"
17PACKAGE_EXTRA_ARCHS_tune-ppc64p7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p7"
18
19# glibc configure options to get power7 specific library
20GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power7", "--with-cpu=power7", "", d)}"
21GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power7", "--with-cpu=power7", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppc476.inc b/meta/conf/machine/include/tune-ppc476.inc
new file mode 100644
index 0000000..4ed185d
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc476.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc476"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc476] = "Enable ppc476 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc476", " -mcpu=476", "", d)}"
7
8AVAILTUNES += "ppc476"
9TUNE_FEATURES_tune-ppc476 = "m32 fpu-hard ppc476"
10TUNE_PKGARCH_tune-ppc476 = "ppc476"
11PACKAGE_EXTRA_ARCHS_tune-ppc476 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc476"
12
13# glibc configure options to get 476 specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc476", "-with-cpu=476", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppc603e.inc b/meta/conf/machine/include/tune-ppc603e.inc
new file mode 100644
index 0000000..d744a00
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc603e.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc603e"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc603e] = "Enable ppc603e specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc603e", " -mcpu=603e", "", d)}"
7
8AVAILTUNES += "ppc603e"
9TUNE_FEATURES_tune-ppc603e = "m32 fpu-hard ppc603e"
10TUNE_PKGARCH_tune-ppc603e = "ppc603e"
11PACKAGE_EXTRA_ARCHS_tune-ppc603e = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc603e"
12
13# glibc configure options to get 603e specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc603e", "-with-cpu=603e", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppc7400.inc b/meta/conf/machine/include/tune-ppc7400.inc
new file mode 100644
index 0000000..4ac0403
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc7400.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc7400"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc7400", " -mcpu=7400", "", d)}"
7
8AVAILTUNES += "ppc7400"
9TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec"
10TUNE_PKGARCH_tune-ppc7400 = "ppc7400"
11PACKAGE_EXTRA_ARCHS_tune-ppc7400 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc7400"
12
13# glibc configure options to get 7400 specific library (for sqrt)
14#GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc7400", "--with-cpu=power4", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppce300c2.inc b/meta/conf/machine/include/tune-ppce300c2.inc
new file mode 100644
index 0000000..05a9505
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce300c2.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "ppce300c2"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce300c2] = "Enable ppce300c2 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c2", " -mcpu=e300c2", "", d)}"
7
8AVAILTUNES += "ppce300c2"
9TUNE_FEATURES_tune-ppce300c2 = "m32 fpu-soft ppce300c2"
10TUNE_PKGARCH_tune-ppce300c2 = "ppce300c2"
11PACKAGE_EXTRA_ARCHS_tune-ppce300c2 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c2"
diff --git a/meta/conf/machine/include/tune-ppce300c3.inc b/meta/conf/machine/include/tune-ppce300c3.inc
new file mode 100644
index 0000000..b19cf22
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce300c3.inc
@@ -0,0 +1,23 @@
1DEFAULTTUNE ?= "ppce300c3"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5AVAILTUNES += "ppce300c3 ppce300c3-nf"
6
7# hard-float
8TUNEVALID[ppce300c3] = "Enable ppce300c3 specific processor optimizations"
9TUNE_FEATURES_tune-ppce300c3 = "${TUNE_FEATURES_tune-powerpc} ppce300c3"
10TUNE_PKGARCH_tune-ppce300c3 = "ppce300c3"
11PACKAGE_EXTRA_ARCHS_tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce300c3"
12TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", " -mcpu=e300c3", "", d)}"
13
14# glibc config options to make use of e300c3 (603e) specific sqrt/sqrtf routines
15GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", "--with-cpu=e300c3", "", d)}"
16
17# soft-float
18TUNEVALID[ppce300c3-nf] = "Enable ppce300c3 specific processor optimizations (no fpu)"
19TUNE_FEATURES_tune-ppce300c3-nf = "${TUNE_FEATURES_tune-powerpc-nf} ppce300c3-nf"
20TUNE_PKGARCH_tune-ppce300c3-nf = "ppce300c3-nf"
21PACKAGE_EXTRA_ARCHS_tune-ppce300c3-nf = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c3-nf"
22TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3-nf", " -mcpu=e300c3", "", d)}"
23
diff --git a/meta/conf/machine/include/tune-ppce500.inc b/meta/conf/machine/include/tune-ppce500.inc
new file mode 100644
index 0000000..70c1f8b
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "ppce500"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500] = "Enable ppce500 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500", " -mcpu=8540", "", d)}"
7
8TUNEVALID[spe] = "Enable SPE ABI extensions"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500", "spe" ], " -mabi=spe -mspe -mfloat-gprs=single", "", d)}"
10TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500" , "spe" ], "ppc-efs", "", d)}"
11
12# spe is defined potentially in two places, so we want to be sure it will
13# only write spe once to the ABIEXTENSIONS field.
14SPEABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "spe", "spe", "", d)}"
15ABIEXTENSION .= "${SPEABIEXTENSION}"
16
17AVAILTUNES += "ppce500"
18TUNE_FEATURES_tune-ppce500 = "m32 spe ppce500"
19TUNE_PKGARCH_tune-ppce500 = "ppce500"
20PACKAGE_EXTRA_ARCHS_tune-ppce500 = "ppce500"
diff --git a/meta/conf/machine/include/tune-ppce500mc.inc b/meta/conf/machine/include/tune-ppce500mc.inc
new file mode 100644
index 0000000..744d8e5
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500mc.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppce500mc"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500mc] = "Enable ppce500mc specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500mc", " -mcpu=e500mc", "", d)}"
7
8AVAILTUNES += "ppce500mc"
9TUNE_FEATURES_tune-ppce500mc = "m32 fpu-hard ppce500mc"
10TUNE_PKGARCH_tune-ppce500mc = "ppce500mc"
11PACKAGE_EXTRA_ARCHS_tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce500mc"
12
13# glibc configure options to get e500mc specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppce500mc", "-with-cpu=e500mc", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppce500v2.inc b/meta/conf/machine/include/tune-ppce500v2.inc
new file mode 100644
index 0000000..d014d70
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500v2.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "ppce500v2"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500v2] = "Enable ppce500v2 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500v2", " -mcpu=8548", "", d)}"
7
8TUNEVALID[spe] = "Enable SPE ABI extensions"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500v2", "spe" ], " -mabi=spe -mspe -mfloat-gprs=double", "", d)}"
10TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500v2" , "spe" ], "ppc-efd", "", d)}"
11
12# spe is defined potentially in two places, so we want to be sure it will
13# only write spe once to the ABIEXTENSIONS field.
14SPEABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "spe", "spe", "", d)}"