blob: 8a384540f95b091b27d4766e2ed2108f170b5872 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001# BBMASK contains regular expressions that can be used to tell BitBake to ignore
2# certain recipes.
3#BBMASK = ""
4
5#
6# Parallelism Options
7#
8# These two options control how much parallelism BitBake should use. The first
9# option determines how many tasks bitbake should run in parallel:
10#
11#BB_NUMBER_THREADS ?= "4"
12#
13# Default to setting automatically based on cpu count
14#BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
15#
16# The second option controls how many processes make should run in parallel when
17# running compile tasks:
18#
19#PARALLEL_MAKE ?= "-j 4"
20#
21# Default to setting automatically based on cpu count
22#PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
23#
24# For a quad-core machine, BB_NUMBER_THREADS = "4", PARALLEL_MAKE = "-j 4" would
25# be appropriate for example.
Andrew Geissler9b4d8b02021-02-19 12:26:16 -060026#
27# Some users are behind firewalls or use servers where the number of parallel connections
28# is limited. In such cases you can limit the number of fetch tasks which run in parallel by
29# setting the option below, in this case limiting to a maximum of 4 fetch tasks in parallel:
30#
31#do_fetch[number_threads] = "4"
32#
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050033
Brad Bishopc342db32019-05-15 21:57:59 -040034# If you want to get an image based on directfb without x11 alter
35# DISTRO_FEATURES:
Patrick Williams213cb262021-08-07 19:21:33 -050036DISTRO_FEATURES:append = " directfb"
37DISTRO_FEATURES:remove = "x11"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050038
39# ENABLE_BINARY_LOCALE_GENERATION controls the generation of binary locale
40# packages at build time using qemu-native. Disabling it (by setting it to 0)
41# will save some build time at the expense of breaking i18n on devices with
42# less than 128MB RAM.
43#ENABLE_BINARY_LOCALE_GENERATION = "1"
44
Brad Bishop6e60e8b2018-02-01 10:27:11 -050045# If GLIBC_SPLIT_LC_PACKAGES is set to a non-zero value, convert
46# glibc-binary-localedata-XX-YY to be a meta package depending on
47# glibc-binary-localedata-XX-YY-lc-address and so on. This enables
48# saving quite some space if someone doesn't need LC_COLLATE for
49# example.
50#GLIBC_SPLIT_LC_PACKAGES = "1"
51
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050052# Set GLIBC_GENERATE_LOCALES to the locales you wish to generate should you not
53# wish to perform the time-consuming step of generating all LIBC locales.
54# NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set
55# appropriate value for IMAGE_LINGUAS.
56# WARNING: this may break localisation!
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080057# WARNING: some recipes expect certain localizations to be enabled, e.g.
58# bash-ptest: fr-fr, de-de
59# glib-2.0-ptest: tr-tr, lt-lt, ja-jp.euc-jp, fa-ir, ru-ru, de-de, hr-hr, el-gr, fr-fr, es-es, en-gb
60# if you remove some of these and enable ptest, you'll get QA warning like:
61# ERROR: glib-2.0-1_2.58.0-r0 do_package_qa: QA Issue: glib-2.0-ptest rdepends on locale-base-de-de, but it isn't a build dependency? [build-deps]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050062#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
63#IMAGE_LINGUAS ?= "en-gb"
64
65# The following are used to control options related to debugging.
66#
67# Uncomment this to change the optimization to make debugging easer, at the
68# possible cost of performance.
69# DEBUG_BUILD = "1"
70#
71# Uncomment this to disable the stripping of the installed binaries
72# INHIBIT_PACKAGE_STRIP = "1"
73#
74# Uncomment this to disable the split of the debug information into -dbg files
75# INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
76#
77# When splitting debug information, the following controls the results of the
78# file splitting.
79#
80# .debug (default):
81# When splitting the debug information will be placed into
82# a .debug directory in the same dirname of the binary produced:
83# /bin/foo -> /bin/.debug/foo
84#
85# debug-file-directory:
86# When splitting the debug information will be placed into
87# a central debug-file-directory, /usr/lib/debug:
88# /bin/foo -> /usr/lib/debug/bin/foo.debug
89#
90# Any source code referenced in the debug symbols will be copied
91# and made available within the /usr/src/debug directory
92#
93#PACKAGE_DEBUG_SPLIT_STYLE = '.debug'
94# PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
95
96# Uncomment these to build a package such that you can use gprof to profile it.
Andrew Geissler9b4d8b02021-02-19 12:26:16 -060097# NOTE: Don't build glibc itself with these flags, or it'll fail to build.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050098#
99# PROFILE_OPTIMIZATION = "-pg"
100# SELECTED_OPTIMIZATION = "${PROFILE_OPTIMIZATION}"
101# LDFLAGS =+ "-pg"
102
103# TCMODE controls the characteristics of the generated packages/images by
104# telling poky which toolchain 'profile' to use.
105#
106# The default is "default" which uses the internal toolchain. With
107# additional layers, it is possible to set this to use a precompiled
108# external toolchain. One example is the Sourcery G++ Toolchain, support
109# for which is now in the separate meta-sourcery layer:
110#
111# http://github.com/MentorEmbedded/meta-sourcery/
112#
113# meta-sourcery can be used as a template for adding support for other
114# external toolchains. See the link above for further details.
115#
116# TCMODE points the system to a file in conf/distro/include/tcmode-${TCMODE}.inc,
117# so for meta-sourcery which has conf/distro/include/tcmode-external-sourcery.inc
118# you would set it as follows:
119#
120# TCMODE ?= "external-sourcery"
121
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500122# This value is currently used by pseudo to determine if the recipe should
123# build both the 32-bit and 64-bit wrapper libraries on a 64-bit build system.
124#
125# Pseudo will attempt to determine if a 32-bit wrapper is necessary, but
126# it doesn't always guess properly. If you have 32-bit executables on
127# your 64-bit build system, you likely want to set this to "0",
128# otherwise you could end up with incorrect file attributes on the
129# target filesystem.
130#
131# Default is to not build 32 bit libs on 64 bit systems, uncomment this
132# if you need the 32 bits libs
133#NO32LIBS = "0"
134
135# Uncomment the following lines to enable multilib builds
136#require conf/multilib.conf
137#MULTILIBS = "multilib:lib32"
Andrew Geisslerd159c7f2021-09-02 21:05:58 -0500138#DEFAULTTUNE:virtclass-multilib-lib32 = "x86"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500139
140# Set RPM_PREFER_ELF_ARCH to configure preferred ABI when using rpm packaging
141# backend to generate a rootfs, choices are:
142# 1: ELF32 wins
143# 2: ELF64 wins
144# 4: ELF64 N32 wins (for mips64 or mips64el only)
145#RPM_PREFER_ELF_ARCH ?= "2"
146
147# The network based PR service host and port
148# Uncomment the following lines to enable PRservice.
149# Set PRSERV_HOST to 'localhost:0' to automatically
150# start local PRService.
151# Set to other values to use remote PRService.
152#PRSERV_HOST = "localhost:0"
153
154# Additional image generation features
155#
156# The following is a list of classes to import to use in the generation of images
157# currently an example class is image_types_uboot
158# IMAGE_CLASSES = " image_types_uboot"
159
160# The following options will build a companion 'debug filesystem' in addition
161# to the normal deployable filesystem. This companion system allows a
162# debugger to know the symbols and related sources. It can be used to
163# debug a remote 'production' system without having to add the debug symbols
164# and sources to remote system. If IMAGE_FSTYPES_DEBUGFS is not defined, it
165# defaults to IMAGE_FSTYPES.
166#IMAGE_GEN_DEBUGFS = "1"
167#IMAGE_FSTYPES_DEBUGFS = "tar.gz"
168
169# Incremental rpm image generation, the rootfs would be totally removed
170# and re-created in the second generation by default, but with
171# INC_RPM_IMAGE_GEN = "1", the rpm based rootfs would be kept, and will
172# do update(remove/add some pkgs) on it. NOTE: This is not suggested
173# when you want to create a productive rootfs
174#INC_RPM_IMAGE_GEN = "1"
175
176# This is a list of packages that require a commercial license to ship
177# product. If shipped as part of an image these packages may have
178# implications so they are disabled by default. To enable them,
179# un-comment the below as appropriate.
180#LICENSE_FLAGS_WHITELIST = "commercial_gst-fluendo-mp3 \
181# commercial_gst-openmax \
182# commercial_gst-plugins-ugly \
183# commercial_lame \
184# commercial_libmad \
185# commercial_libomxil \
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600186# commercial_mpeg2dec \
187# commercial_qmmp"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500188
189
190#
191# Disk space monitor, take action when the disk space or the amount of
192# inode is running low, it is enabled when BB_DISKMON_DIRS is set.
193#
194# Set the directory for the monitor, the format is:
195# "action,directory,minimum_space,minimum_free_inode"
196#
197# The "action" must be set and should be one of:
198# ABORT: Immediately abort
199# STOPTASKS: The new tasks can't be executed any more, will stop the build
200# when the running tasks have been done.
201# WARN: show warnings (see BB_DISKMON_WARNINTERVAL for more information)
202#
203# The "directory" must be set, any directory is OK.
204#
205# Either "minimum_space" or "minimum_free_inode" (or both of them)
206# should be set, otherwise the monitor would not be enabled,
207# the unit can be G, M, K or none, but do NOT use GB, MB or KB
208# (B is not needed).
209#BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
210#
211# Set disk space and inode interval (only works when the action is "WARN",
212# the unit can be G, M, or K, but do NOT use the GB, MB or KB
213# (B is not needed), the format is:
214# "disk_space_interval,disk_inode_interval", the default value is
215# "50M,5K" which means that it would warn when the free space is
216# lower than the minimum space(or inode), and would repeat the warning
217# when the disk space reduces 50M (or the amount of inode reduces 5k).
218#BB_DISKMON_WARNINTERVAL = "50M,5K"
219
220# Archive the source and put them to ${DEPLOY_DIR}/sources/.
221#
222#INHERIT += "archiver"
223#
224# The tarball for the patched source will be created by default, and you
225# can configure the archiver as follow:
226#
227# Create archive for:
228# 1) original (or unpacked) source:
229#ARCHIVER_MODE[src] = "original"
230# 2) patched source: (default)
231#ARCHIVER_MODE[src] = "patched"
232# 3) configured source:
233#ARCHIVER_MODE[src] = "configured"
234#
235# 4) the patches between do_unpack and do_patch:
236#ARCHIVER_MODE[diff] = "1"
237# set the files that you'd like to exclude from the diff:
238#ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
239#
240# 5) the environment data, similar to 'bitbake -e recipe':
241#ARCHIVER_MODE[dumpdata] = "1"
242#
243# 6) the recipe (.bb and .inc):
244#ARCHIVER_MODE[recipe] = "1"
245#
246# 7) Whether output the .src.rpm package:
247#ARCHIVER_MODE[srpm] = "1"
248#
249# 8) Filter the license, the recipe whose license in
250# COPYLEFT_LICENSE_INCLUDE will be included, and in
251# COPYLEFT_LICENSE_EXCLUDE will be excluded.
252#COPYLEFT_LICENSE_INCLUDE = 'GPL* LGPL*'
253#COPYLEFT_LICENSE_EXCLUDE = 'CLOSED Proprietary'
254#
255# 9) Config the recipe type that will be archived, the type can be
256# target, native, nativesdk, cross, crosssdk and cross-canadian,
257# you can set one or more types. Archive all types by default.
258#COPYLEFT_RECIPE_TYPES = 'target'
259#
260
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500261#
262# GCC/LD FLAGS to enable more secure code generation
263#
264# By including the security_flags include file you enable flags
265# to the compiler and linker that cause them to generate more secure
Brad Bishop79641f22019-09-10 07:20:22 -0400266# code.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500267# This does affect compile speed slightly.
268#
269# Use the following line to enable the security compiler and linker flags to your build
270#require conf/distro/include/security_flags.inc
271
272# Image level user/group configuration.
273# Inherit extrausers to make the setting of EXTRA_USERS_PARAMS effective.
Brad Bishop19323692019-04-05 15:28:33 -0400274#IMAGE_CLASSES += "extrausers"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500275# User / group settings
Brad Bishop19323692019-04-05 15:28:33 -0400276# The settings are separated by the ; character.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500277# Each setting is actually a command. The supported commands are useradd,
278# groupadd, userdel, groupdel, usermod and groupmod.
279#EXTRA_USERS_PARAMS = "\
Brad Bishop19323692019-04-05 15:28:33 -0400280# useradd -p '' tester; \
281# groupadd developers; \
282# userdel nobody; \
283# groupdel video; \
284# groupmod -g 1020 developers; \
285# usermod -s /bin/sh tester; \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500286#"
287
288# Various packages dynamically add users and groups to the system at package
289# install time. For programs that do not care what the uid/gid is of the
290# resulting users/groups, the order of the install will determine the final
291# uid/gid. This can lead to non-deterministic uid/gid values from one build
292# to another. Use the following settings to specify that all user/group adds
293# should be created based on a static passwd/group file.
294#
295# Note, if you enable or disable the useradd-staticids in a configured system,
296# the TMPDIR may contain incorrect uid/gid values. Clearing the TMPDIR
297# will correct this condition.
298#
299# By default the system looks in the BBPATH for files/passwd and files/group
Andrew Geisslerf0343792020-11-18 10:42:21 -0600300# the default can be overridden by specifying USERADD_UID/GID_TABLES.
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500301#
302#USERADDEXTENSION = "useradd-staticids"
303#USERADD_UID_TABLES = "files/passwd"
304#USERADD_GID_TABLES = "files/group"
305#
306# In order to prevent generating a system where a dynamicly assigned uid/gid
307# can exist, you should enable the following setting. This will force the
308# system to error out if the user/group name is not defined in the
309# files/passwd or files/group (or specified replacements.)
310#USERADD_ERROR_DYNAMIC = "1"
311
312# Enabling FORTRAN
313# Note this is not officially supported and is just illustrated here to
314# show an example of how it can be done
315# You'll also need your fortran recipe to depend on libgfortran
Andrew Geisslerd159c7f2021-09-02 21:05:58 -0500316#FORTRAN:forcevariable = ",fortran"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500317
318#
319# Kernel image features
320#
321# The INITRAMFS_IMAGE image variable will cause an additional recipe to
322# be built as a dependency to the what ever rootfs recipe you might be
323# using such as core-image-sato. The initramfs might be needed for
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600324# the initial boot of the target system such as to load kernel
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500325# modules prior to mounting the root file system.
326#
327# INITRAMFS_IMAGE_BUNDLE variable controls if the image recipe
328# specified by the INITRAMFS_IMAGE will be run through an extra pass
329# through the kernel compilation in order to build a single binary
330# which contains both the kernel image and the initramfs. The
331# combined binary will be deposited into the tmp/deploy directory.
332# NOTE: You can set INITRAMFS_IMAGE in an image recipe, but
333# INITRAMFS_IMAGE_BUNDLE can only be set in a conf file.
334#
335#INITRAMFS_IMAGE = "core-image-minimal-initramfs"
336#INITRAMFS_IMAGE_BUNDLE = "1"
337
338#
339# IPK Hierarchical feed
340#
341# In some cases it may be desirable not to have all package files in the same
342# directory. An example would be when package feeds are to be uploaded to a
343# shared webhosting service or transferred to a Windows machine which may have
344# problems with directories containing multiple thousands of files.
345#
346# If the IPK_HIERARCHICAL_FEED variable is set to "1", packages will be split
347# between subdirectories in a similar way to how Debian package feeds are
348# organised. In the hierarchical feed, package files are written to
349# <outdir>/<arch>/<pkg_prefix>/<pkg_subdir>, where pkg_prefix is the first
350# letter of the package file name for non-lib packages or "lib" plus the 4th
351# letter of the package file name for lib packages (eg, 'l' for less, 'libc' for
352# libc6). pkg_subdir is the root of the package file name, discarding the
353# version and architecture parts and the common suffixes '-dbg', '-dev', '-doc',
354# '-staticdev', '-locale' and '-locale-*' which are listed in
355# meta/conf/bitbake.conf.
356#
357# If IPK_HIERARCHICAL_FEED is unset or set to any other value, the traditional
358# feed layout is used where package files are placed in <outdir>/<arch>/.
359#
360#IPK_HIERARCHICAL_FEED = "1"
361#
362
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500363#
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600364# System initialization
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500365#
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600366#INIT_MANAGER = "none"
367#INIT_MANAGER = "sysvinit"
368#INIT_MANAGER = "systemd"
369#INIT_MANAGER = "mdev-busybox"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500370
371#
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600372# Use a full set of packages instead of busybox for base utils
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500373#
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600374#PREFERRED_PROVIDER_base-utils = "packagegroup-core-base-utils"
375#VIRTUAL-RUNTIME_base-utils = "packagegroup-core-base-utils"
376#VIRTUAL-RUNTIME_base-utils-hwclock = "util-linux-hwclock"
377#VIRTUAL-RUNTIME_base-utils-syslog = "syslog"
378
379#
380# Enable LTO system-wide
381#
382#require conf/distro/include/lto.inc
Patrick Williams213cb262021-08-07 19:21:33 -0500383#DISTRO_FEATURES:append = " lto"
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500384
385#
386# Set PS1 for SDK
387#
388#SDK_PS1 ?= "${SDK_NAME}${SDK_VENDOR}:\$ "