summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/autotools.bbclass8
-rw-r--r--meta/classes/siteinfo.bbclass34
-rw-r--r--meta/classes/toolchain-scripts.bbclass5
3 files changed, 38 insertions, 9 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index 2c7968e659..bc0c2ea83e 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -145,7 +145,13 @@ ACLOCALEXTRAPATH:class-target = " -I ${STAGING_DATADIR_NATIVE}/aclocal/"
145ACLOCALEXTRAPATH:class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/" 145ACLOCALEXTRAPATH:class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/"
146 146
147python autotools_aclocals () { 147python autotools_aclocals () {
148 d.setVar("CONFIG_SITE", siteinfo_get_files(d, sysrootcache=True)) 148 sitefiles, searched = siteinfo_get_files(d, sysrootcache=True)
149 d.setVar("CONFIG_SITE", " ".join(sitefiles))
150}
151
152python () {
153 sitefiles, searched = siteinfo_get_files(d, sysrootcache=False)
154 d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(searched))
149} 155}
150 156
151CONFIGURE_FILES = "${S}/configure.in ${S}/configure.ac ${S}/config.h.in ${S}/acinclude.m4 Makefile.am" 157CONFIGURE_FILES = "${S}/configure.in ${S}/configure.ac ${S}/config.h.in ${S}/acinclude.m4 Makefile.am"
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index 0bd1f36805..c5f4dfda41 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -176,17 +176,39 @@ python () {
176 bb.fatal("Please add your architecture to siteinfo.bbclass") 176 bb.fatal("Please add your architecture to siteinfo.bbclass")
177} 177}
178 178
179def siteinfo_get_files(d, sysrootcache = False): 179# Layers with siteconfig need to add a replacement path to this variable so the
180# sstate isn't path specific
181SITEINFO_PATHVARS = "COREBASE"
182
183def siteinfo_get_files(d, sysrootcache=False):
180 sitedata = siteinfo_data(d) 184 sitedata = siteinfo_data(d)
181 sitefiles = "" 185 sitefiles = []
186 searched = []
182 for path in d.getVar("BBPATH").split(":"): 187 for path in d.getVar("BBPATH").split(":"):
183 for element in sitedata: 188 for element in sitedata:
184 filename = os.path.join(path, "site", element) 189 filename = os.path.join(path, "site", element)
185 if os.path.exists(filename): 190 if os.path.exists(filename):
186 sitefiles += filename + " " 191 searched.append(filename + ":True")
192 sitefiles.append(filename)
193 else:
194 searched.append(filename + ":False")
195
196 # Have to parameterise out hardcoded paths such as COREBASE for the main site files
197 for var in d.getVar("SITEINFO_PATHVARS").split():
198 searched2 = []
199 replace = os.path.normpath(d.getVar(var))
200 for s in searched:
201 searched2.append(s.replace(replace, "${" + var + "}"))
202 searched = searched2
203
204 if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d):
205 # We need sstate sigs for native/cross not to vary upon arch so we can't depend on the site files.
206 # In future we may want to depend upon all site files?
207 # This would show up as breaking sstatetests.SStateTests.test_sstate_32_64_same_hash for example
208 searched = []
187 209
188 if not sysrootcache: 210 if not sysrootcache:
189 return sitefiles 211 return sitefiles, searched
190 212
191 # Now check for siteconfig cache files in sysroots 213 # Now check for siteconfig cache files in sysroots
192 path_siteconfig = d.getVar('SITECONFIG_SYSROOTCACHE') 214 path_siteconfig = d.getVar('SITECONFIG_SYSROOTCACHE')
@@ -195,8 +217,8 @@ def siteinfo_get_files(d, sysrootcache = False):
195 if not i.endswith("_config"): 217 if not i.endswith("_config"):
196 continue 218 continue
197 filename = os.path.join(path_siteconfig, i) 219 filename = os.path.join(path_siteconfig, i)
198 sitefiles += filename + " " 220 sitefiles.append(filename)
199 return sitefiles 221 return sitefiles, searched
200 222
201# 223#
202# Make some information available via variables 224# Make some information available via variables
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index 479f3b706e..fb6261c91d 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -65,6 +65,7 @@ toolchain_create_sdk_env_script () {
65 65
66# This function creates an environment-setup-script in the TMPDIR which enables 66# This function creates an environment-setup-script in the TMPDIR which enables
67# a OE-core IDE to integrate with the build tree 67# a OE-core IDE to integrate with the build tree
68# Caller must ensure CONFIG_SITE is setup
68toolchain_create_tree_env_script () { 69toolchain_create_tree_env_script () {
69 script=${TMPDIR}/environment-setup-${REAL_MULTIMACH_TARGET_SYS} 70 script=${TMPDIR}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
70 rm -f $script 71 rm -f $script
@@ -73,7 +74,7 @@ toolchain_create_tree_env_script () {
73 echo 'export PATH=${STAGING_DIR_NATIVE}/usr/bin:${STAGING_BINDIR_TOOLCHAIN}:$PATH' >> $script 74 echo 'export PATH=${STAGING_DIR_NATIVE}/usr/bin:${STAGING_BINDIR_TOOLCHAIN}:$PATH' >> $script
74 echo 'export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}' >> $script 75 echo 'export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}' >> $script
75 echo 'export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}' >> $script 76 echo 'export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}' >> $script
76 echo 'export CONFIG_SITE="${@siteinfo_get_files(d)}"' >> $script 77 echo 'export CONFIG_SITE="${CONFIG_SITE}"' >> $script
77 echo 'export SDKTARGETSYSROOT=${STAGING_DIR_TARGET}' >> $script 78 echo 'export SDKTARGETSYSROOT=${STAGING_DIR_TARGET}' >> $script
78 echo 'export OECORE_NATIVE_SYSROOT="${STAGING_DIR_NATIVE}"' >> $script 79 echo 'export OECORE_NATIVE_SYSROOT="${STAGING_DIR_NATIVE}"' >> $script
79 echo 'export OECORE_TARGET_SYSROOT="${STAGING_DIR_TARGET}"' >> $script 80 echo 'export OECORE_TARGET_SYSROOT="${STAGING_DIR_TARGET}"' >> $script
@@ -161,7 +162,7 @@ EOF
161} 162}
162 163
163#we get the cached site config in the runtime 164#we get the cached site config in the runtime
164TOOLCHAIN_CONFIGSITE_NOCACHE = "${@siteinfo_get_files(d)}" 165TOOLCHAIN_CONFIGSITE_NOCACHE = "${@' '.join(siteinfo_get_files(d)[0])}"
165TOOLCHAIN_CONFIGSITE_SYSROOTCACHE = "${STAGING_DIR}/${MLPREFIX}${MACHINE}/${target_datadir}/${TARGET_SYS}_config_site.d" 166TOOLCHAIN_CONFIGSITE_SYSROOTCACHE = "${STAGING_DIR}/${MLPREFIX}${MACHINE}/${target_datadir}/${TARGET_SYS}_config_site.d"
166TOOLCHAIN_NEED_CONFIGSITE_CACHE ??= "virtual/${MLPREFIX}libc ncurses" 167TOOLCHAIN_NEED_CONFIGSITE_CACHE ??= "virtual/${MLPREFIX}libc ncurses"
167DEPENDS += "${TOOLCHAIN_NEED_CONFIGSITE_CACHE}" 168DEPENDS += "${TOOLCHAIN_NEED_CONFIGSITE_CACHE}"