bitbake.conf 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995
  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. # Used by multilib code to change the library paths
  9. baselib = "${BASELIB}"
  10. baselib[vardepvalue] = "${baselib}"
  11. BASELIB = "lib"
  12. BASELIB:libc-glibc:powerpc64 = "lib64"
  13. BASELIB:libc-glibc:powerpc64le = "lib64"
  14. # Path prefixes
  15. export base_prefix = ""
  16. export prefix = "/usr"
  17. export exec_prefix = "${prefix}"
  18. root_prefix = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '${exec_prefix}', '${base_prefix}', d)}"
  19. # Base paths
  20. export base_bindir = "${root_prefix}/bin"
  21. export base_sbindir = "${root_prefix}/sbin"
  22. export base_libdir = "${root_prefix}/${baselib}"
  23. export nonarch_base_libdir = "${root_prefix}/lib"
  24. # Architecture independent paths
  25. export sysconfdir = "${base_prefix}/etc"
  26. export servicedir = "${base_prefix}/srv"
  27. export sharedstatedir = "${base_prefix}/com"
  28. export localstatedir = "${base_prefix}/var"
  29. runtimedir = "${base_prefix}/run"
  30. export datadir = "${prefix}/share"
  31. export infodir = "${datadir}/info"
  32. export mandir = "${datadir}/man"
  33. export docdir = "${datadir}/doc"
  34. export systemd_unitdir = "${nonarch_base_libdir}/systemd"
  35. export systemd_system_unitdir = "${nonarch_base_libdir}/systemd/system"
  36. export nonarch_libdir = "${exec_prefix}/lib"
  37. export systemd_user_unitdir = "${nonarch_libdir}/systemd/user"
  38. # Architecture dependent paths
  39. export bindir = "${exec_prefix}/bin"
  40. export sbindir = "${exec_prefix}/sbin"
  41. export libdir = "${exec_prefix}/${baselib}"
  42. export libexecdir = "${exec_prefix}/libexec"
  43. export includedir = "${exec_prefix}/include"
  44. localedir = "${libdir}/locale"
  45. # Linkage between native/cross/nativesdk layouts
  46. base_bindir_native = "/bin"
  47. base_sbindir_native = "/sbin"
  48. sysconfdir_native = "/etc"
  49. prefix_native = "/usr"
  50. bindir_native = "${prefix_native}/bin"
  51. sbindir_native = "${prefix_native}/sbin"
  52. includedir_native = "${prefix_native}/include"
  53. libdir_native = "${prefix_native}/lib"
  54. libexecdir_native = "${prefix_native}/libexec"
  55. base_libdir_native = "/lib"
  56. datadir_native = "${prefix_native}/share"
  57. bindir_cross = "/bin"
  58. bindir_crossscripts = "${bindir}/crossscripts"
  59. prefix_nativesdk = "/usr"
  60. bindir_nativesdk = "${prefix_nativesdk}/bin"
  61. sbindir_nativesdk = "${prefix_nativesdk}/sbin"
  62. base_bindir_nativesdk = "/bin"
  63. base_sbindir_nativesdk = "/sbin"
  64. includedir_nativesdk = "${prefix_nativesdk}/include"
  65. libdir_nativesdk = "${prefix_nativesdk}/lib"
  66. base_libdir_nativesdk = "/lib"
  67. localstatedir_nativesdk = "/var"
  68. #
  69. # Cross recipes need to know about the target layout
  70. # := is used carefully here
  71. #
  72. target_datadir := "${datadir}"
  73. # Used to find env/perl/python
  74. USRBINPATH = "${bindir}"
  75. USRBINPATH:class-native = "/usr/bin"
  76. USRBINPATH:class-nativesdk = "/usr/bin"
  77. # Root home directory
  78. ROOT_HOME ??= "/home/root"
  79. BB_RENAMED_VARIABLES[BB_DANGLINGAPPENDS_WARNONLY] = "support for the variable was removed as it unconditionally affects all layers"
  80. BB_RENAMED_VARIABLES[PNBLACKLIST] = "SKIP_RECIPE"
  81. BB_RENAMED_VARIABLES[CVE_CHECK_PN_WHITELIST] = "CVE_CHECK_SKIP_RECIPE"
  82. BB_RENAMED_VARIABLES[CVE_CHECK_WHITELIST] = "CVE_CHECK_IGNORE"
  83. BB_RENAMED_VARIABLES[MULTI_PROVIDER_WHITELIST] = "BB_MULTI_PROVIDER_ALLOWED"
  84. BB_RENAMED_VARIABLES[PNBLACKLIST] = "SKIP_RECIPE"
  85. BB_RENAMED_VARIABLES[SDK_LOCAL_CONF_BLACKLIST] = "ESDK_LOCALCONF_REMOVE"
  86. BB_RENAMED_VARIABLES[SDK_LOCAL_CONF_WHITELIST] = "ESDK_LOCALCONF_ALLOW"
  87. BB_RENAMED_VARIABLES[SDK_INHERIT_BLACKLIST] = "ESDK_CLASS_INHERIT_DISABLE"
  88. BB_RENAMED_VARIABLES[SSTATE_DUPWHITELIST] = "SSTATE_ALLOW_OVERLAP_FILES"
  89. BB_RENAMED_VARIABLES[SYSROOT_DIRS_BLACKLIST] = "SYSROOT_DIRS_IGNORE"
  90. BB_RENAMED_VARIABLES[UNKNOWN_CONFIGURE_WHITELIST] = "UNKNOWN_CONFIGURE_OPT_IGNORE"
  91. BB_RENAMED_VARIABLES[ICECC_USER_CLASS_BL] = "ICECC_CLASS_DISABLE"
  92. BB_RENAMED_VARIABLES[ICECC_SYSTEM_CLASS_BL] = "ICECC_CLASS_DISABLE"
  93. BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_WL] = "ICECC_RECIPE_ENABLE"
  94. BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_BL] = "ICECC_RECIPE_DISABLE"
  95. BB_RENAMED_VARIABLES[ICECC_SYSTEM_PACKAGE_BL] = "ICECC_RECIPE_DISABLE"
  96. BB_RENAMED_VARIABLES[INHERIT_BLACKLIST] = "is a deprecated variable and no longer needed"
  97. BB_RENAMED_VARIABLES[TUNEABI_WHITELIST] = "is a deprecated variable and support has been removed"
  98. BB_RENAMED_VARIABLES[LICENSE_FLAGS_WHITELIST] = "LICENSE_FLAGS_ACCEPTED"
  99. BB_RENAMED_VARIABLES[TCLIBCAPPEND] = "is no longer used, modify TMPDIR directly if required"
  100. BB_RENAMED_VARIABLES[VOLATILE_LOG_DIR] = "is obsolete and no longer supported"
  101. BB_RENAMED_VARIABLES[VOLATILE_TMP_DIR] = "is obsolete and no longer supported"
  102. BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0-only] = "INCOMPATIBLE_LICENSE_EXCEPTIONS"
  103. BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0-or-later] = "INCOMPATIBLE_LICENSE_EXCEPTIONS"
  104. BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0-only] = "INCOMPATIBLE_LICENSE_EXCEPTIONS"
  105. BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0-or-later] = "INCOMPATIBLE_LICENSE_EXCEPTIONS"
  106. # These are deprecated version and should be updated to approved names
  107. BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:GPL-3.0-only'"
  108. BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0+] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:GPL-3.0-or-later'"
  109. BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:LGPL-3.0-only'"
  110. BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0+] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:LGPL-3.0-or-later'"
  111. ##################################################################
  112. # Architecture-dependent build variables.
  113. ##################################################################
  114. # Immediate expansion since there is no point in repeatedly calling
  115. # os.uname() throughout parsing
  116. BUILD_ARCH := "${@os.uname()[4]}"
  117. BUILD_OS := "${@os.uname()[0].lower()}"
  118. BUILD_VENDOR = ""
  119. BUILD_SYS = "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}"
  120. BUILD_PREFIX = ""
  121. BUILD_CC_ARCH = ""
  122. BUILD_LD_ARCH = ""
  123. BUILD_AS_ARCH = ""
  124. BUILD_EXEEXT = ""
  125. HOST_ARCH = "${TARGET_ARCH}"
  126. HOST_OS = "${TARGET_OS}"
  127. HOST_VENDOR = "${TARGET_VENDOR}"
  128. HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
  129. HOST_PREFIX = "${TARGET_PREFIX}"
  130. HOST_CC_ARCH = "${TARGET_CC_ARCH}"
  131. HOST_LD_ARCH = "${TARGET_LD_ARCH}"
  132. HOST_AS_ARCH = "${TARGET_AS_ARCH}"
  133. HOST_EXEEXT = ""
  134. TUNE_ARCH ??= "INVALID"
  135. TUNE_CCARGS ??= ""
  136. TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}"
  137. TUNE_LDARGS ??= ""
  138. TUNE_ASARGS ??= ""
  139. TUNE_FEATURES ??= "${TUNE_FEATURES:tune-${DEFAULTTUNE}}"
  140. LIBCEXTENSION ??= ""
  141. ABIEXTENSION ??= ""
  142. USE_NLS ??= "yes"
  143. SDKUSE_NLS ??= "yes"
  144. TARGET_ARCH = "${TUNE_ARCH}"
  145. TARGET_OS = "linux${LIBCEXTENSION}${ABIEXTENSION}"
  146. TARGET_VENDOR = "-oe"
  147. TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
  148. TARGET_PREFIX = "${TARGET_SYS}-"
  149. TARGET_CC_ARCH = "${TUNE_CCARGS}"
  150. TARGET_LD_ARCH = "${TUNE_LDARGS}"
  151. TARGET_AS_ARCH = "${TUNE_ASARGS}"
  152. SDKMACHINE ??= "${BUILD_ARCH}"
  153. SDK_OS = "${BUILD_OS}"
  154. SDK_VENDOR = "-oesdk"
  155. SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}"
  156. SDK_PREFIX = "${SDK_SYS}-"
  157. SDK_CC_ARCH = "${BUILD_CC_ARCH}"
  158. SDKPKGSUFFIX = "nativesdk"
  159. SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}"
  160. SDK_LD_ARCH = "${BUILD_LD_ARCH}"
  161. SDK_AS_ARCH = "${BUILD_AS_ARCH}"
  162. TUNE_PKGARCH ??= ""
  163. PACKAGE_ARCH ??= "${TUNE_PKGARCH}"
  164. MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}"
  165. PACKAGE_EXTRA_ARCHS ??= "${PACKAGE_EXTRA_ARCHS:tune-${DEFAULTTUNE}}"
  166. PACKAGE_ARCHS = "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}"
  167. # MACHINE_ARCH shouldn't be included here as a variable dependency
  168. # since machine specific packages are handled using multimachine
  169. PACKAGE_ARCHS[vardepsexclude] = "MACHINE_ARCH"
  170. MULTIMACH_TARGET_SYS = "${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
  171. ##################################################################
  172. # Date/time variables.
  173. ##################################################################
  174. DATE := "${@time.strftime('%Y%m%d',time.gmtime())}"
  175. TIME := "${@time.strftime('%H%M%S',time.gmtime())}"
  176. DATETIME = "${DATE}${TIME}"
  177. ##################################################################
  178. # Openembedded Software Prerequisites.
  179. ##################################################################
  180. # python-native should be here but python relies on building
  181. # its own in staging
  182. ASSUME_PROVIDED = "\
  183. bash-native \
  184. bash-completion-native \
  185. bzip2-native \
  186. chrpath-native \
  187. diffstat-native \
  188. file-native \
  189. findutils-native \
  190. gawk-native \
  191. git-native \
  192. grep-native \
  193. hostperl-runtime-native \
  194. hostpython-runtime-native \
  195. libgcc-native \
  196. libstdc++-native \
  197. patch-native \
  198. sed-native \
  199. tar-native \
  200. texinfo-native \
  201. virtual/crypt-native \
  202. virtual/libiconv-native \
  203. virtual/libintl-native \
  204. wget-native \
  205. "
  206. # gzip-native should be listed above?
  207. ##################################################################
  208. # Package default variables.
  209. ##################################################################
  210. PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
  211. PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
  212. PR = "r0"
  213. PE = ""
  214. PF = "${PN}-${EXTENDPE}${PV}-${PR}"
  215. EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}"
  216. P = "${PN}-${PV}"
  217. PRSERV_PV_AUTOINC = "AUTOINC"
  218. PRAUTO = ""
  219. EXTENDPRAUTO = "${@['.${PRAUTO}', ''][not d.getVar('PRAUTO')]}"
  220. PRAUTOINX = "${PF}"
  221. PKGV ?= "${PV}"
  222. PKGR ?= "${PR}${EXTENDPRAUTO}"
  223. PKGE ?= "${@['','${PE}'][int(d.getVar('PE') or 0) > 0]}"
  224. EXTENDPKGEVER = "${@['','${PKGE}:'][d.getVar('PKGE').strip() != '']}"
  225. EXTENDPKGV ?= "${EXTENDPKGEVER}${PKGV}-${PKGR}"
  226. # Base package name
  227. # Automatically derives "foo" from "foo-native", "foo-cross" or "foo-initial"
  228. # otherwise it is the same as PN and P
  229. SPECIAL_PKGSUFFIX = "-native -cross -initial -intermediate -crosssdk -cross-canadian"
  230. BPN = "${@oe.utils.prune_suffix(d.getVar('PN'), d.getVar('SPECIAL_PKGSUFFIX').split(), d)}"
  231. BP = "${BPN}-${PV}"
  232. # Package info.
  233. SECTION = "base"
  234. PRIORITY = "optional"
  235. SUMMARY ?= "${PN} version ${PV}-${PR}"
  236. DESCRIPTION ?= "${SUMMARY}."
  237. # The following two are commented out because they result in a recursive
  238. # definition of the variable in some corner cases. These are left in
  239. # to illustrate the intended behavior.
  240. #SUMMARY:${PN} ?= "${SUMMARY}"
  241. #DESCRIPTION:${PN} ?= "${DESCRIPTION}"
  242. SUMMARY:${PN}-src ?= "${SUMMARY} - Source files"
  243. DESCRIPTION:${PN}-src ?= "${DESCRIPTION} \
  244. This package contains sources for debugging purposes."
  245. SUMMARY:${PN}-dbg ?= "${SUMMARY} - Debugging files"
  246. DESCRIPTION:${PN}-dbg ?= "${DESCRIPTION} \
  247. This package contains ELF symbols and related sources for debugging purposes."
  248. SUMMARY:${PN}-dev ?= "${SUMMARY} - Development files"
  249. DESCRIPTION:${PN}-dev ?= "${DESCRIPTION} \
  250. This package contains symbolic links, header files, and \
  251. related items necessary for software development."
  252. SUMMARY:${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)"
  253. DESCRIPTION:${PN}-staticdev ?= "${DESCRIPTION} \
  254. This package contains static libraries for software development."
  255. SUMMARY:${PN}-doc ?= "${SUMMARY} - Documentation files"
  256. DESCRIPTION:${PN}-doc ?= "${DESCRIPTION} \
  257. This package contains documentation."
  258. LICENSE ??= "INVALID"
  259. MAINTAINER = "OE-Core Developers <openembedded-core@lists.openembedded.org>"
  260. HOMEPAGE = ""
  261. # Package dependencies and provides.
  262. # Ensure that -dev packages recommend the corresponding -dev packages of their
  263. # deps, and the same for -dbg.
  264. DEPCHAIN_PRE = ""
  265. DEPCHAIN_POST = "-dev -dbg"
  266. DEPENDS = ""
  267. PROVIDES = ""
  268. PROVIDES:prepend = "${PN} "
  269. BB_MULTI_PROVIDER_ALLOWED = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
  270. SOLIBS = ".so.*"
  271. SOLIBS:darwin = ".dylib"
  272. SOLIBS:mingw32 = ".dll"
  273. SOLIBSDEV = ".so"
  274. # Due to the ordering of PACKAGES and the naming of the dev symlinks on darwin,
  275. # we can't make the symlinks end up in the -dev packages easily at this point. This hack
  276. # at least means builds aren't completely broken and symlinks don't take up much space.
  277. SOLIBSDEV:darwin = ".dylibbroken"
  278. SOLIBSDEV:mingw32 = ".dll"
  279. PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg"
  280. PACKAGE_BEFORE_PN ?= ""
  281. PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
  282. PACKAGES_DYNAMIC = "^${PN}-locale-.*"
  283. FILES = ""
  284. FILES:${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
  285. ${sysconfdir} ${sharedstatedir} ${localstatedir} \
  286. ${base_bindir}/* ${base_sbindir}/* \
  287. ${base_libdir}/*${SOLIBS} \
  288. ${base_prefix}/lib/udev ${prefix}/lib/udev \
  289. ${base_libdir}/udev ${libdir}/udev \
  290. ${datadir}/${BPN} ${libdir}/${BPN}/* \
  291. ${datadir}/pixmaps ${datadir}/applications \
  292. ${datadir}/idl ${datadir}/omf ${datadir}/sounds \
  293. ${libdir}/bonobo/servers"
  294. FILES:${PN}-bin = "${bindir}/* ${sbindir}/*"
  295. FILES:${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \
  296. ${datadir}/gnome/help"
  297. SECTION:${PN}-doc = "doc"
  298. FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
  299. FILES:${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \
  300. ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \
  301. ${datadir}/aclocal ${base_libdir}/*.o \
  302. ${libdir}/${BPN}/*.la ${base_libdir}/*.la \
  303. ${libdir}/cmake ${datadir}/cmake"
  304. SECTION:${PN}-dev = "devel"
  305. ALLOW_EMPTY:${PN}-dev = "1"
  306. DEV_PKG_DEPENDENCY = "${PN} (= ${EXTENDPKGV})"
  307. RRECOMMENDS:${PN}-dev = "${DEV_PKG_DEPENDENCY}"
  308. FILES:${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
  309. SECTION:${PN}-staticdev = "devel"
  310. RDEPENDS:${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
  311. FILES:${PN}-dbg = "/usr/lib/debug /usr/lib/debug-static /usr/src/debug"
  312. SECTION:${PN}-dbg = "devel"
  313. ALLOW_EMPTY:${PN}-dbg = "1"
  314. # The files list for source packages are dynamically set based on
  315. # PACKAGE_DEBUG_SPLIT_STYLE
  316. FILES:${PN}-src = ""
  317. SECTION:${PN}-src = "devel"
  318. FILES:${PN}-locale = "${datadir}/locale"
  319. # File manifest
  320. FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE', False))}"
  321. # FILESPATH is set in base.bbclass
  322. #FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/${BP}:${FILE_DIRNAME}/${BPN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
  323. # This default was only used for checking
  324. FILESEXTRAPATHS ?= "__default:"
  325. # The default list of fs-perms files to process. If the list is empty only
  326. # the builtin definitions will be used. Builtin definitions included:
  327. # base_prefix, prefix, exec_prefix, base_bindir, base_sbindir, base_libdir,
  328. # datadir, sysconfdir, servicedir, sharedstatedir, localstatedir, infodir,
  329. # mandir, docdir, bindir, sbindir, libexecdir, libdir and includedir
  330. FILESYSTEM_PERMS_TABLES ?= "files/fs-perms.txt \
  331. files/fs-perms-volatile-log.txt \
  332. files/fs-perms-volatile-tmp.txt"
  333. ##################################################################
  334. # General work and output directories for the build system.
  335. ##################################################################
  336. TCMODE ??= "default"
  337. TCLIBC ??= "glibc"
  338. TC_CXX_RUNTIME ??= "gnu"
  339. TMPDIR ?= "${TOPDIR}/tmp"
  340. CACHE = "${TMPDIR}/cache"
  341. # The persistent cache should be shared by all builds
  342. PERSISTENT_DIR = "${TOPDIR}/cache"
  343. LOG_DIR = "${TMPDIR}/log"
  344. STAMPS_DIR ?= "${TMPDIR}/stamps"
  345. STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
  346. STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
  347. BASE_WORKDIR ?= "${TMPDIR}/work"
  348. WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
  349. UNPACKDIR ??= "${WORKDIR}/sources-unpack"
  350. T = "${WORKDIR}/temp"
  351. D = "${WORKDIR}/image"
  352. S = "${WORKDIR}/${BP}"
  353. B = "${S}"
  354. STAGING_DIR = "${TMPDIR}/sysroots"
  355. COMPONENTS_DIR = "${STAGING_DIR}-components"
  356. RECIPE_SYSROOT = "${WORKDIR}/recipe-sysroot"
  357. RECIPE_SYSROOT_NATIVE = "${WORKDIR}/recipe-sysroot-native"
  358. STAGING_DIR_NATIVE = "${RECIPE_SYSROOT_NATIVE}"
  359. STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
  360. STAGING_BINDIR_CROSS = "${STAGING_BINDIR}/crossscripts"
  361. STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
  362. STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
  363. STAGING_LIBEXECDIR_NATIVE = "${STAGING_DIR_NATIVE}${libexecdir_native}"
  364. STAGING_BASE_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${base_libdir_native}"
  365. STAGING_SBINDIR_NATIVE = "${STAGING_DIR_NATIVE}${sbindir_native}"
  366. STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
  367. STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
  368. STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
  369. STAGING_DIR_HOST = "${RECIPE_SYSROOT}"
  370. STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
  371. STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
  372. STAGING_LIBEXECDIR = "${STAGING_DIR_HOST}${libexecdir}"
  373. STAGING_BASELIBDIR = "${STAGING_DIR_HOST}${base_libdir}"
  374. STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
  375. STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
  376. STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${exec_prefix}"
  377. STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
  378. STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
  379. STAGING_DIR_TARGET = "${RECIPE_SYSROOT}"
  380. DEPLOY_DIR ?= "${TMPDIR}/deploy"
  381. DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
  382. DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
  383. DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
  384. DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
  385. DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
  386. PKGDATA_DIR = "${TMPDIR}/pkgdata/${MACHINE}"
  387. PKGDATA_DIR_SDK = "${TMPDIR}/pkgdata/${SDK_SYS}"
  388. ##################################################################
  389. # SDK variables.
  390. ##################################################################
  391. SDK_NAME_PREFIX ?= "oecore"
  392. SDK_NAME = "${SDK_NAME_PREFIX}-${IMAGE_BASENAME}-${SDK_ARCH}-${TUNE_PKGARCH}-${MACHINE}"
  393. SDKPATH = "/usr/local/oe-sdk-hardcoded-buildpath"
  394. SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
  395. # The path to default to installing the SDK to
  396. SDKPATHINSTALL = "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}"
  397. ##################################################################
  398. # Kernel info.
  399. ##################################################################
  400. OLDEST_KERNEL = "5.15"
  401. # SDK_OLDEST_KERNEL can't be set using overrides since there are
  402. # none for the SDK architecture. Best to set it from a machine-sdk
  403. # include file if you need an SDK arch-specific value
  404. SDK_OLDEST_KERNEL = "3.2.0"
  405. # Define where the kernel headers are installed on the target as well as where
  406. # they are staged.
  407. KERNEL_SRC_PATH = "/usr/src/kernel"
  408. STAGING_KERNEL_DIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-source"
  409. STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifacts"
  410. ##################################################################
  411. # Specific image creation and rootfs population info.
  412. ##################################################################
  413. IMAGE_ROOTFS = "${WORKDIR}/rootfs"
  414. # This option allows for a percentage overage of the actual image size rather than a
  415. # fixed extra space, this is space needed for initial startup and basic operations.
  416. IMAGE_OVERHEAD_FACTOR ?= "1.3"
  417. # This option allows for adding additional space in K above and beyond what the
  418. # IMAGE_OVERHEAD_FACTOR might add. This space is for additional packages, user data, ...
  419. # To set a fixed size then overriding IMAGE_ROOTFS_SIZE with the max size one wants
  420. # should do the trick
  421. IMAGE_ROOTFS_EXTRA_SPACE ?= "0"
  422. EXTRA_IMAGEDEPENDS = ""
  423. ##################################################################
  424. # Toolchain info.
  425. ##################################################################
  426. PATH: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}:"
  427. export PATH
  428. ##################################################################
  429. # Build utility info.
  430. ##################################################################
  431. # Directory with symlinks to host tools used by build
  432. HOSTTOOLS_DIR = "${TMPDIR}/hosttools"
  433. # Tools needed to run builds with OE-Core
  434. HOSTTOOLS += " \
  435. [ ar as awk basename bash bunzip2 bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \
  436. cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \
  437. fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
  438. head hostname iconv id install ld ldd ln ls lz4 make md5sum mkdir mkfifo mknod \
  439. mktemp mv nm objcopy objdump od patch perl pr printf pwd \
  440. python3 pzstd ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh \
  441. sha1sum sha224sum sha256sum sha384sum sha512sum \
  442. sleep sort split stat strings strip tail tar tee test touch tr true truncate uname \
  443. uniq unzstd wc wget which xargs zstd \
  444. "
  445. # Tools needed to run testimage runtime image testing
  446. HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}"
  447. # Used by archiver.bbclass when compression is xz
  448. HOSTTOOLS += "${@'xz' if (('archiver.bbclass' in (d.getVar('BBINCLUDED') or '')) and (d.getVarFlag('ARCHIVER_MODE', 'compression') == 'xz')) else ''}"
  449. # Link to these if present
  450. HOSTTOOLS_NONFATAL += "aws gcc-ar gpg gpg-agent ld.bfd ld.gold nc pigz sftp socat ssh sudo"
  451. # Temporary add few more detected in bitbake world
  452. HOSTTOOLS_NONFATAL += "join nl size yes zcat"
  453. # Used by bzr fetcher
  454. HOSTTOOLS_NONFATAL += "bzr"
  455. # Used by ssh fetcher
  456. HOSTTOOLS_NONFATAL += "scp"
  457. # Used by Mercurial fetcher
  458. HOSTTOOLS_NONFATAL += "hg"
  459. # Used by gcp fetcher
  460. HOSTTOOLS_NONFATAL += "gsutil"
  461. # Link to git-lfs if present
  462. HOSTTOOLS_NONFATAL += "git-lfs"
  463. CCACHE ??= ""
  464. export CC
  465. export CXX
  466. export FC
  467. export CPP
  468. export LD
  469. export CCLD
  470. export AR
  471. export AS
  472. export RANLIB
  473. export STRIP
  474. export OBJCOPY
  475. export OBJDUMP
  476. export STRINGS
  477. export NM
  478. export READELF
  479. export BUILD_CC
  480. export BUILD_CXX
  481. export BUILD_FC
  482. export BUILD_CPP
  483. export BUILD_LD
  484. export BUILD_CCLD
  485. export BUILD_AR
  486. export BUILD_AS
  487. export BUILD_RANLIB
  488. export BUILD_STRIP
  489. export BUILD_NM
  490. TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
  491. PYTHON = "${@sys.executable}"
  492. export MAKE = "make"
  493. EXTRA_OEMAKE = ""
  494. EXTRA_OECONF = ""
  495. export LC_ALL = "en_US.UTF-8"
  496. export TZ = 'UTC'
  497. ##################################################################
  498. # Patch handling.
  499. ##################################################################
  500. PATCHTOOL = "quilt"
  501. PATCHRESOLVE = "noop"
  502. ##################################################################
  503. # Build flags and options.
  504. ##################################################################
  505. export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
  506. BUILDSDK_CPPFLAGS = ""
  507. export CPPFLAGS = "${TARGET_CPPFLAGS}"
  508. TARGET_CPPFLAGS = ""
  509. export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION} -pipe"
  510. BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION} ${DEBUG_PREFIX_MAP} -pipe"
  511. export CFLAGS = "${TARGET_CFLAGS}"
  512. TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION} ${DEBUG_PREFIX_MAP} -pipe"
  513. export BUILD_CXXFLAGS = "${BUILD_CFLAGS}"
  514. BUILDSDK_CXXFLAGS = "${BUILDSDK_CFLAGS}"
  515. export CXXFLAGS = "${TARGET_CXXFLAGS}"
  516. TARGET_CXXFLAGS = "${TARGET_CFLAGS}"
  517. export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
  518. -L${STAGING_BASE_LIBDIR_NATIVE} \
  519. -Wl,--enable-new-dtags \
  520. -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \
  521. -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} \
  522. -Wl,-rpath,${STAGING_LIBDIR_NATIVE} \
  523. -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE} \
  524. -Wl,-O1"
  525. BUILDSDK_LDFLAGS = "-Wl,-O1"
  526. LINKER_HASH_STYLE ??= "gnu"
  527. TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE') != 'gnu']}"
  528. ASNEEDED ?= "-Wl,--as-needed"
  529. export LDFLAGS = "${TARGET_LDFLAGS}"
  530. TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${DEBUG_PREFIX_MAP}"
  531. # mips does not support GNU hash style therefore we override
  532. LINKER_HASH_STYLE:mipsarch:libc-musl = "sysv"
  533. # Pass parallel make options to the compile task
  534. EXTRA_OEMAKE:prepend:task-compile = "${PARALLEL_MAKE} "
  535. PARALLEL_MAKEINST ??= "${PARALLEL_MAKE}"
  536. PARALLEL_MAKEINST[vardepvalue] = "1"
  537. # Pass parallel make options to the install task
  538. EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} "
  539. ##################################################################
  540. # Optimization flags.
  541. ##################################################################
  542. TARGET_DBGSRC_DIR ?= "/usr/src/debug/${PN}/${PV}"
  543. # Beware: applied last to first
  544. DEBUG_PREFIX_MAP ?= "\
  545. -ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR} \
  546. -ffile-prefix-map=${B}=${TARGET_DBGSRC_DIR} \
  547. -ffile-prefix-map=${STAGING_DIR_HOST}= \
  548. -ffile-prefix-map=${STAGING_DIR_NATIVE}= \
  549. "
  550. DEBUG_LEVELFLAG ?= "-g"
  551. FULL_OPTIMIZATION = "-O2 ${DEBUG_LEVELFLAG}"
  552. DEBUG_OPTIMIZATION = "-Og ${DEBUG_LEVELFLAG}"
  553. SELECTED_OPTIMIZATION = "${@d.getVar(oe.utils.vartrue('DEBUG_BUILD', 'DEBUG_OPTIMIZATION', 'FULL_OPTIMIZATION', d))}"
  554. SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION DEBUG_BUILD"
  555. # compiler flags for native/nativesdk
  556. BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-Og -g', '-O2', d)}"
  557. BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD"
  558. ##################################################################
  559. # Reproducibility
  560. ##################################################################
  561. SDE_DIR = "${WORKDIR}/source-date-epoch"
  562. SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt"
  563. SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch"
  564. export PYTHONHASHSEED = "0"
  565. export PERL_HASH_SEED = "0"
  566. export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}"
  567. # A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE
  568. SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400"
  569. REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896"
  570. ##################################################################
  571. # Settings used by bitbake-layers.
  572. ##################################################################
  573. BBLAYERS_LAYERINDEX_URL ??= "https://layers.openembedded.org/layerindex/"
  574. BBLAYERS_FETCH_DIR ??= "${COREBASE}"
  575. ##################################################################
  576. # Download locations and utilities.
  577. ##################################################################
  578. APACHE_MIRROR = "https://archive.apache.org/dist"
  579. CPAN_MIRROR = "https://search.cpan.org/CPAN"
  580. DEBIAN_MIRROR = "http://deb.debian.org/debian/pool"
  581. GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
  582. GNOME_GIT = "git://gitlab.gnome.org/GNOME"
  583. GNOME_MIRROR = "https://download.gnome.org/sources/"
  584. GNU_MIRROR = "https://ftpmirror.gnu.org/gnu"
  585. GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt"
  586. GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
  587. KERNELORG_MIRROR = "https://cdn.kernel.org/pub"
  588. SAMBA_MIRROR = "http://samba.org/samba/ftp"
  589. SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases"
  590. SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases"
  591. SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net"
  592. XLIBS_MIRROR = "https://xlibs.freedesktop.org/release"
  593. XORG_MIRROR = "https://www.x.org/releases/"
  594. SRC_URI[vardepsexclude] += "\
  595. APACHE_MIRROR \
  596. CPAN_MIRROR \
  597. DEBIAN_MIRROR \
  598. GENTOO_MIRROR \
  599. GNOME_GIT \
  600. GNOME_MIRROR \
  601. GNU_MIRROR \
  602. GNUPG_MIRROR \
  603. GPE_MIRROR \
  604. KERNELORG_MIRROR \
  605. SAMBA_MIRROR \
  606. SAVANNAH_GNU_MIRROR \
  607. SAVANNAH_NONGNU_MIRROR \
  608. SOURCEFORGE_MIRROR \
  609. XLIBS_MIRROR \
  610. XORG_MIRROR \
  611. "
  612. # You can use the mirror of your country to get faster downloads by putting
  613. # export DEBIAN_MIRROR = "http://ftp.de.debian.org/debian/pool"
  614. # into your local.conf
  615. SRCDATE = "${DATE}"
  616. SRCREV ??= "INVALID"
  617. AUTOREV = "${@bb.fetch2.get_autorev(d)}"
  618. SRCPV = ""
  619. SRC_URI = ""
  620. # Use pseudo as the fakeroot implementation
  621. PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
  622. PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
  623. PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
  624. PSEUDO_INCLUDE_PATHS = "/proc,${WORKDIR}/image,${WORKDIR}/package,${WORKDIR}/rootfs,${WORKDIR}/sstate-build-package/,${WORKDIR}/sstate-install-package/,${WORKDIR}/pkgdata,${WORKDIR}/minidebuginfo"
  625. export PSEUDO_DISABLED = "1"
  626. #export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
  627. #export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
  628. #export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
  629. FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_INCLUDE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_INCLUDE_PATHS'))} PSEUDO_DISABLED=1 PYTHONDONTWRITEBYTECODE=1"
  630. FAKEROOTCMD = "${PSEUDO_SYSROOT}${bindir_native}/pseudo"
  631. FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_INCLUDE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_INCLUDE_PATHS'))} PSEUDO_DISABLED=0"
  632. FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
  633. FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
  634. FAKEROOTLOGS = "${WORKDIR}/pseudo/pseudo.log"
  635. PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
  636. ##################################################################
  637. # Not sure about the rest of this yet.
  638. ##################################################################
  639. # Pre-build configuration output
  640. BUILDCFG_HEADER = "Build Configuration${@" (mc:${BB_CURRENT_MC})" if d.getVar("BBMULTICONFIG") else ""}:"
  641. BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
  642. BUILDCFG_VARS[type] = "list"
  643. BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
  644. BUILDCFG_NEEDEDVARS[type] = "list"
  645. # Other
  646. export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig"
  647. export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
  648. export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}"
  649. export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
  650. export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
  651. export PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}"
  652. export PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}"
  653. # Don't allow git to chdir up past WORKDIR so that it doesn't detect the OE
  654. # repository when building a recipe
  655. export GIT_CEILING_DIRECTORIES = "${WORKDIR}"
  656. ###
  657. ### Config file processing
  658. ###
  659. # An empty distro leads to :: entries in OVERRIDES and FILEOVERRIDES which
  660. # is a bad idea. Setting a dummy value is better than a ton of anonymous python.
  661. DISTRO ??= "nodistro"
  662. DISTRO_NAME ??= "OpenEmbedded"
  663. # Overrides are processed left to right, so the ones that are named later take precedence.
  664. # You generally want them to go from least to most specific. This means that:
  665. # A variable '<foo>:arm' overrides a variable '<foo>' when ${TARGET_ARCH} is arm.
  666. # A variable '<foo>:qemuarm' overrides '<foo>' and overrides '<foo>:arm' when ${MACHINE} is 'qemuarm'.
  667. # If you use combination ie '<foo>:qemuarm:arm', then '<foo>:qemuarm:arm' will override
  668. # '<foo>:qemuarm' and then '<foo>' will be overriden with that value from '<foo>:qemuarm'.
  669. # And finally '<foo>:forcevariable' overrides any standard variable, with the highest priority.
  670. # This works for functions as well, they are really just variables.
  671. #
  672. OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:layer-${FILE_LAYERNAME}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:forcevariable"
  673. FILE_LAYERNAME ??= "config"
  674. LIBCOVERRIDE ?= ""
  675. CLASSOVERRIDE ?= "class-target"
  676. DISTROOVERRIDES ?= "${@d.getVar('DISTRO') or ''}"
  677. MACHINEOVERRIDES ?= "${MACHINE}"
  678. FILESOVERRIDES = "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
  679. ##################################################################
  680. # Include the rest of the config files.
  681. ##################################################################
  682. require conf/abi_version.conf
  683. include conf/site.conf
  684. include conf/auto.conf
  685. include conf/local.conf
  686. OE_FRAGMENTS_PREFIX ?= "conf/fragments"
  687. OE_FRAGMENTS_METADATA_VARS ?= "BB_CONF_FRAGMENT_SUMMARY BB_CONF_FRAGMENT_DESCRIPTION"
  688. addfragments ${OE_FRAGMENTS_PREFIX} OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS
  689. require ${@"conf/multiconfig/${BB_CURRENT_MC}.conf" if "${BB_CURRENT_MC}" != "" else ""}
  690. include conf/machine/${MACHINE}.conf
  691. include conf/machine-sdk/${SDKMACHINE}.conf
  692. require conf/cve-check-map.conf
  693. include conf/distro/${DISTRO}.conf
  694. include conf/distro/defaultsetup.conf
  695. include conf/documentation.conf
  696. include conf/licenses.conf
  697. require conf/sanity.conf
  698. include conf/bblock.conf
  699. require toolchain/gcc.inc
  700. require toolchain/build-gcc.inc
  701. ##################################################################
  702. # Weak variables (usually to retain backwards compatibility)
  703. ##################################################################
  704. DL_DIR ?= "${TOPDIR}/downloads"
  705. SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
  706. IMAGE_FSTYPES ?= "tar.gz"
  707. IMAGE_FSTYPES_DEBUGFS ?= "tar.gz"
  708. INITRAMFS_FSTYPES ?= "cpio.gz"
  709. # The maximum size in Kbytes for the generated initramfs image size.
  710. # Usually, it should be less than 1/2 of ram size, or you may fail to
  711. # boot it.
  712. INITRAMFS_MAXSIZE ??= "131072"
  713. DEFAULT_TASK_PROVIDER ?= "packagegroup-base"
  714. MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}"
  715. # The size in Kbytes for the generated image if it is larger than
  716. # the required size (du -ks IMAGE_ROOTFS * IMAGE_OVERHEAD_FACTOR),
  717. # and no effect if less than it.
  718. IMAGE_ROOTFS_SIZE ??= "65536"
  719. # Forcefully set CACHE now so future changes to things like
  720. # MACHINE don't change the path to the cache
  721. CACHE := "${CACHE}"
  722. # Default to setting automatically based on cpu count
  723. BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
  724. # Default to setting automatically based on cpu count
  725. PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
  726. # Default parallelism and resource usage for xz
  727. XZ_MEMLIMIT ?= "50%"
  728. XZ_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}"
  729. XZ_THREADS[vardepvalue] = "1"
  730. XZ_DEFAULTS ?= "--memlimit=${XZ_MEMLIMIT} --threads=${XZ_THREADS}"
  731. XZ_DEFAULTS[vardepsexclude] += "XZ_MEMLIMIT XZ_THREADS"
  732. # Default parallelism for zstd
  733. ZSTD_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}"
  734. ZSTD_THREADS[vardepvalue] = "1"
  735. ZSTD_COMPRESSION_LEVEL ?= "3"
  736. ZSTD_DEFAULTS ?= "--threads=${ZSTD_THREADS} -${ZSTD_COMPRESSION_LEVEL}"
  737. ZSTD_DEFAULTS[vardepsexclude] = "ZSTD_THREADS"
  738. # Limit the number of threads that OpenMP libraries will use. Otherwise they
  739. # may fallback to using all CPUs
  740. export OMP_NUM_THREADS = "${BB_NUMBER_THREADS}"
  741. ##################################################################
  742. # Magic Cookie for SANITY CHECK
  743. ##################################################################
  744. OES_BITBAKE_CONF = "1"
  745. ##################################################################
  746. # Machine properties and packagegroup-base stuff
  747. ##################################################################
  748. MACHINE_FEATURES ?= ""
  749. SDK_MACHINE_FEATURES ?= ""
  750. DISTRO_FEATURES ?= ""
  751. DISTRO_EXTRA_RDEPENDS ?= ""
  752. DISTRO_EXTRA_RRECOMMENDS ?= ""
  753. MACHINE_EXTRA_RDEPENDS ?= ""
  754. MACHINE_EXTRA_RRECOMMENDS ?= ""
  755. MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
  756. MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
  757. EXTRA_IMAGE_FEATURES ??= ""
  758. IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
  759. # Native distro features (will always be used for -native, even if they
  760. # are not enabled for target)
  761. DISTRO_FEATURES_NATIVE ?= "acl x11 ipv6 xattr"
  762. DISTRO_FEATURES_NATIVESDK ?= "acl x11 ipv6 xattr"
  763. DISTRO_FEATURES_NATIVESDK:mingw32 = "x11 ipv6"
  764. # Normally target distro features will not be applied to native builds:
  765. # Native distro features on this list will use the target feature value
  766. DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland"
  767. DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland"
  768. DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
  769. MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
  770. COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
  771. COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
  772. SERIAL_CONSOLES ??= ""
  773. NO_RECOMMENDATIONS ??= ""
  774. BAD_RECOMMENDATIONS ?= ""
  775. # Make sure SHELL isn't exported
  776. # (can break any number of things if the user's shell isn't POSIX-compliant,
  777. # including the flock command). The user's shell shouldn't affect our builds.
  778. SHELL[unexport] = "1"
  779. # Used by canadian-cross to handle string conversions on TARGET_ARCH where needed
  780. TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH').replace("_", "-")}"
  781. # Set a default umask to use for tasks for determinism
  782. BB_DEFAULT_UMASK ??= "022"
  783. # Complete output from bitbake
  784. BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
  785. BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json"
  786. # Setup our default hash policy
  787. BB_SIGNATURE_HANDLER ?= "OEBasicHash"
  788. BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \
  789. THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
  790. USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
  791. STAMPS_DIR PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
  792. CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \
  793. WARN_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
  794. BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \
  795. SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \
  796. SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \
  797. OMP_NUM_THREADS BB_CURRENTTASK"
  798. BB_BASEHASH_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_INCLUDE_PATHS BUILDHISTORY_DIR \
  799. SSTATE_DIR SOURCE_DATE_EPOCH RUST_BUILD_SYS RUST_HOST_SYS RUST_TARGET_SYS"
  800. BB_HASHCONFIG_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \
  801. SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_PASSTHROUGH_ADDITIONS DISABLE_SANITY_CHECKS \
  802. PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \
  803. GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \
  804. HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD \
  805. BB_SETSCENE_ENFORCE BB_CMDLINE BB_SERVER_TIMEOUT BB_NICE_LEVEL"
  806. BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
  807. lockfiles vardepsexclude vardeps vardepvalue vardepvalueexclude \
  808. file-checksums python task nostamp \
  809. sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \
  810. recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \
  811. progress mcdepends number_threads"
  812. BB_HASH_CODEPARSER_VALS = "LOGFIFO=/ T=/ WORKDIR=/ DATE=1234 TIME=1234 PV=0.0-1 PN=no-pn METADATA_REVISION=1234 SRC_URI="
  813. MLPREFIX ??= ""
  814. MULTILIB_VARIANTS ??= ""
  815. # Older versions of bitbake (< 1.42) don't set BB_UNIHASH. For compatibility with these
  816. # versions, set BB_UNIHASH equivalent to BB_TASKHASH if unspecified, which is
  817. # what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't
  818. # support unihashes.
  819. BB_UNIHASH ?= "${BB_TASKHASH}"
  820. oe.sstatesig.find_sstate_manifest[vardepsexclude] = "BBEXTENDCURR BBEXTENDVARIANT OVERRIDES PACKAGE_EXTRA_ARCHS"
  821. oe.utils.get_multilib_datastore[vardepsexclude] = "DEFAULTTUNE_MULTILIB_ORIGINAL OVERRIDES"
  822. oe.path.format_display[vardepsexclude] = "TOPDIR"
  823. oe.utils.get_bb_number_threads[vardepsexclude] = "BB_NUMBER_THREADS"
  824. oe.packagedata.emit_pkgdata[vardepsexclude] = "BB_NUMBER_THREADS"
  825. oe.packagedata.read_subpkgdata_extended[vardepsexclude] = "BB_NUMBER_THREADS"