summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/bootimg.bbclass4
-rw-r--r--meta/classes/cross-canadian.bbclass3
-rw-r--r--meta/classes/cross.bbclass5
-rw-r--r--meta/classes/crosssdk.bbclass2
-rw-r--r--meta/classes/native.bbclass2
-rw-r--r--meta/classes/nativesdk.bbclass5
-rw-r--r--meta/classes/package.bbclass1
-rw-r--r--meta/classes/siteconfig.bbclass6
-rw-r--r--meta/classes/sstate.bbclass52
-rw-r--r--meta/classes/staging.bbclass1
-rw-r--r--meta/classes/toolchain-scripts.bbclass4
11 files changed, 67 insertions, 18 deletions
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass
index f4949f55bd..49ee85ea72 100644
--- a/meta/classes/bootimg.bbclass
+++ b/meta/classes/bootimg.bbclass
@@ -49,7 +49,7 @@ inherit syslinux
49 49
50build_boot_bin() { 50build_boot_bin() {
51 install -d ${HDDDIR} 51 install -d ${HDDDIR}
52 install -m 0644 ${STAGING_DIR}/${MACHINE}${HOST_VENDOR}-${HOST_OS}/kernel/bzImage \ 52 install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage \
53 ${HDDDIR}/vmlinuz 53 ${HDDDIR}/vmlinuz
54 54
55 if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then 55 if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
@@ -83,7 +83,7 @@ build_boot_bin() {
83 83
84 # Install the kernel 84 # Install the kernel
85 85
86 install -m 0644 ${STAGING_DIR}/${MACHINE}${HOST_VENDOR}-${HOST_OS}/kernel/bzImage \ 86 install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage \
87 ${ISODIR}/vmlinuz 87 ${ISODIR}/vmlinuz
88 88
89 # Install the configuration files 89 # Install the configuration files
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index 3f3a24dd57..993f831a54 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -30,7 +30,6 @@ MULTIMACH_TARGET_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}"
30INHIBIT_DEFAULT_DEPS = "1" 30INHIBIT_DEFAULT_DEPS = "1"
31 31
32STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk" 32STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
33STAGING_DIR_TARGET = "${STAGING_DIR}/${OLD_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
34 33
35TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" 34TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}"
36 35
@@ -82,3 +81,5 @@ export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
82# Cross-canadian packages need to pull in nativesdk dynamic libs 81# Cross-canadian packages need to pull in nativesdk dynamic libs
83SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs" 82SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs"
84 83
84do_populate_sysroot[stamp-extra-info] = ""
85do_package[stamp-extra-info] = ""
diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass
index 6d7c7cd463..2564505d6a 100644
--- a/meta/classes/cross.bbclass
+++ b/meta/classes/cross.bbclass
@@ -20,6 +20,11 @@ HOST_OS = "${BUILD_OS}"
20HOST_PREFIX = "${BUILD_PREFIX}" 20HOST_PREFIX = "${BUILD_PREFIX}"
21HOST_CC_ARCH = "${BUILD_CC_ARCH}" 21HOST_CC_ARCH = "${BUILD_CC_ARCH}"
22 22
23STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
24
25export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
26export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
27
23CPPFLAGS = "${BUILD_CPPFLAGS}" 28CPPFLAGS = "${BUILD_CPPFLAGS}"
24CFLAGS = "${BUILD_CFLAGS}" 29CFLAGS = "${BUILD_CFLAGS}"
25CXXFLAGS = "${BUILD_CFLAGS}" 30CXXFLAGS = "${BUILD_CFLAGS}"
diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
index 23db163ba6..08ba823767 100644
--- a/meta/classes/crosssdk.bbclass
+++ b/meta/classes/crosssdk.bbclass
@@ -18,3 +18,5 @@ target_base_libdir = "${SDKPATHNATIVE}${base_libdir_nativesdk}"
18target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" 18target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
19target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}" 19target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}"
20 20
21do_populate_sysroot[stamp-extra-info] = ""
22do_package[stamp-extra-info] = ""
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index aec7fe38a9..545a73eb8b 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -120,3 +120,5 @@ do_package_write_ipk[noexec] = "1"
120do_package_write_deb[noexec] = "1" 120do_package_write_deb[noexec] = "1"
121do_package_write_rpm[noexec] = "1" 121do_package_write_rpm[noexec] = "1"
122 122
123do_populate_sysroot[stamp-extra-info] = ""
124do_package[stamp-extra-info] = ""
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 154bd827b6..587a907c44 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -19,6 +19,8 @@ python () {
19 19
20#STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk" 20#STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
21#STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}-nativesdk" 21#STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}-nativesdk"
22STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
23STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}"
22 24
23HOST_ARCH = "${SDK_ARCH}" 25HOST_ARCH = "${SDK_ARCH}"
24HOST_VENDOR = "${SDK_VENDOR}" 26HOST_VENDOR = "${SDK_VENDOR}"
@@ -79,4 +81,5 @@ python __anonymous () {
79 bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-nativesdk", d) 81 bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-nativesdk", d)
80} 82}
81 83
82 84do_populate_sysroot[stamp-extra-info] = ""
85do_package[stamp-extra-info] = ""
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 8e7fa26f72..1b950bb617 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1094,6 +1094,7 @@ do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
1094do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}" 1094do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
1095do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}" 1095do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
1096do_package[sstate-lockfile] = "${PACKAGELOCK}" 1096do_package[sstate-lockfile] = "${PACKAGELOCK}"
1097do_package[stamp-extra-info] = "${MACHINE}"
1097do_package_setscene[dirs] = "${STAGING_DIR}" 1098do_package_setscene[dirs] = "${STAGING_DIR}"
1098 1099
1099python do_package_setscene () { 1100python do_package_setscene () {
diff --git a/meta/classes/siteconfig.bbclass b/meta/classes/siteconfig.bbclass
index 5edc0d6a0b..0813c2543e 100644
--- a/meta/classes/siteconfig.bbclass
+++ b/meta/classes/siteconfig.bbclass
@@ -13,10 +13,10 @@ python siteconfig_do_siteconfig () {
13EXTRASITECONFIG ?= "" 13EXTRASITECONFIG ?= ""
14 14
15siteconfig_do_siteconfig_gencache () { 15siteconfig_do_siteconfig_gencache () {
16 mkdir -p ${WORKDIR}/site_config 16 mkdir -p ${WORKDIR}/site_config_${MACHINE}
17 gen-site-config ${FILE_DIRNAME}/site_config \ 17 gen-site-config ${FILE_DIRNAME}/site_config \
18 >${WORKDIR}/site_config/configure.ac 18 >${WORKDIR}/site_config_${MACHINE}/configure.ac
19 cd ${WORKDIR}/site_config 19 cd ${WORKDIR}/site_config_${MACHINE}
20 autoconf 20 autoconf
21 CONFIG_SITE="" ${EXTRASITECONFIG} ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache 21 CONFIG_SITE="" ${EXTRASITECONFIG} ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache
22 sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \ 22 sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 38f2bb99e6..807e8e39aa 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -1,7 +1,7 @@
1SSTATE_VERSION = "1" 1SSTATE_VERSION = "1"
2 2
3SSTATE_MANIFESTS = "${TMPDIR}/sstate-control" 3SSTATE_MANIFESTS = "${TMPDIR}/sstate-control"
4SSTATE_MANFILEBASE = "${SSTATE_MANIFESTS}/manifest-${SSTATE_PKGARCH}-" 4SSTATE_MANFILEBASE = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-"
5SSTATE_MANFILEPREFIX = "${SSTATE_MANFILEBASE}${PN}" 5SSTATE_MANFILEPREFIX = "${SSTATE_MANFILEBASE}${PN}"
6 6
7 7
@@ -14,15 +14,22 @@ SSTATE_SCAN_CMD ?= "find ${SSTATE_BUILDDIR} \( -name "*.la" -o -name "*-config"
14 14
15BB_HASHFILENAME = "${SSTATE_PKGNAME}" 15BB_HASHFILENAME = "${SSTATE_PKGNAME}"
16 16
17SSTATE_MANMACH ?= "${SSTATE_PKGARCH}"
18
17python () { 19python () {
18 if bb.data.inherits_class('native', d): 20 if bb.data.inherits_class('native', d):
19 bb.data.setVar('SSTATE_PKGARCH', bb.data.getVar('BUILD_ARCH', d), d) 21 bb.data.setVar('SSTATE_PKGARCH', bb.data.getVar('BUILD_ARCH', d), d)
20 elif bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d): 22 elif bb.data.inherits_class('cross', d):
23 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
24 bb.data.setVar('SSTATE_MANMACH', bb.data.expand("${BUILD_ARCH}_${MACHINE}", d), d)
25 elif bb.data.inherits_class('crosssdk', d):
21 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d) 26 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${BUILD_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
22 elif bb.data.inherits_class('nativesdk', d): 27 elif bb.data.inherits_class('nativesdk', d):
23 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}", d), d) 28 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}", d), d)
24 elif bb.data.inherits_class('cross-canadian', d): 29 elif bb.data.inherits_class('cross-canadian', d):
25 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}_${BASE_PACKAGE_ARCH}", d), d) 30 bb.data.setVar('SSTATE_PKGARCH', bb.data.expand("${SDK_ARCH}_${BASE_PACKAGE_ARCH}", d), d)
31 else:
32 bb.data.setVar('SSTATE_MANMACH', bb.data.expand("${MACHINE}", d), d)
26 33
27 # These classes encode staging paths into their scripts data so can only be 34 # These classes encode staging paths into their scripts data so can only be
28 # reused if we manipulate the paths 35 # reused if we manipulate the paths
@@ -147,10 +154,14 @@ def sstate_installpkg(ss, d):
147 fixmefn = sstateinst + "fixmepath" 154 fixmefn = sstateinst + "fixmepath"
148 if os.path.isfile(fixmefn): 155 if os.path.isfile(fixmefn):
149 staging = bb.data.getVar('STAGING_DIR', d, True) 156 staging = bb.data.getVar('STAGING_DIR', d, True)
157 staging_target = bb.data.getVar('STAGING_DIR_TARGET', d, True)
158 staging_host = bb.data.getVar('STAGING_DIR_HOST', d, True)
150 fixmefd = open(fixmefn, "r") 159 fixmefd = open(fixmefn, "r")
151 fixmefiles = fixmefd.readlines() 160 fixmefiles = fixmefd.readlines()
152 fixmefd.close() 161 fixmefd.close()
153 for file in fixmefiles: 162 for file in fixmefiles:
163 os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file))
164 os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file))
154 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file)) 165 os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file))
155 166
156 for state in ss['dirs']: 167 for state in ss['dirs']:
@@ -248,6 +259,35 @@ python sstate_cleanall() {
248 sstate_clean(shared_state, d) 259 sstate_clean(shared_state, d)
249} 260}
250 261
262def sstate_hardcode_path(d):
263 # Need to remove hardcoded paths and fix these when we install the
264 # staging packages.
265 sstate_scan_cmd = bb.data.getVar('SSTATE_SCAN_CMD', d, True)
266 p = os.popen("%s" % sstate_scan_cmd)
267 file_list = p.read()
268
269 if file_list == "":
270 p.close()
271 return
272
273 staging = bb.data.getVar('STAGING_DIR', d, True)
274 staging_target = bb.data.getVar('STAGING_DIR_TARGET', d, True)
275 staging_host = bb.data.getVar('STAGING_DIR_HOST', d, True)
276 sstate_builddir = bb.data.getVar('SSTATE_BUILDDIR', d, True)
277
278 for i in file_list.split('\n'):
279 if bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('cross-canadian', d):
280 cmd = "sed -i -e s:%s:FIXMESTAGINGDIR:g %s" % (staging, i)
281 elif bb.data.inherits_class('cross', d):
282 cmd = "sed -i -e s:%s:FIXMESTAGINGDIRTARGET:g %s \
283 sed -i -e s:%s:FIXMESTAGINGDIR:g %s" % (staging_target, i, staging, i)
284 else:
285 cmd = "sed -i -e s:%s:FIXMESTAGINGDIRHOST:g %s" % (staging_host, i)
286
287 os.system(cmd)
288 os.system("echo %s | sed -e 's:%s::' >> %sfixmepath" % (i, sstate_builddir, sstate_builddir))
289 p.close()
290
251def sstate_package(ss, d): 291def sstate_package(ss, d):
252 import oe.path 292 import oe.path
253 293
@@ -273,6 +313,7 @@ def sstate_package(ss, d):
273 313
274 bb.data.setVar('SSTATE_BUILDDIR', sstatebuild, d) 314 bb.data.setVar('SSTATE_BUILDDIR', sstatebuild, d)
275 bb.data.setVar('SSTATE_PKG', sstatepkg, d) 315 bb.data.setVar('SSTATE_PKG', sstatepkg, d)
316 sstate_hardcode_path(d)
276 bb.build.exec_func('sstate_create_package', d) 317 bb.build.exec_func('sstate_create_package', d)
277 318
278 bb.siggen.dump_this_task(sstatepkg + ".siginfo", d) 319 bb.siggen.dump_this_task(sstatepkg + ".siginfo", d)
@@ -337,13 +378,6 @@ python sstate_task_postfunc () {
337# set as SSTATE_BUILDDIR 378# set as SSTATE_BUILDDIR
338# 379#
339sstate_create_package () { 380sstate_create_package () {
340 # Need to remove hardcoded paths and fix these when we install the
341 # staging packages.
342 for i in `${SSTATE_SCAN_CMD}` ; do \
343 sed -i -e s:${STAGING_DIR}:FIXMESTAGINGDIR:g $i
344 echo $i | sed -e 's:${SSTATE_BUILDDIR}::' >> ${SSTATE_BUILDDIR}fixmepath
345 done
346
347 cd ${SSTATE_BUILDDIR} 381 cd ${SSTATE_BUILDDIR}
348 tar -cvzf ${SSTATE_PKG} * 382 tar -cvzf ${SSTATE_PKG} *
349 383
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 72d77e2b54..2ef8f29b75 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -92,6 +92,7 @@ SSTATETASKS += "do_populate_sysroot"
92do_populate_sysroot[sstate-name] = "populate-sysroot" 92do_populate_sysroot[sstate-name] = "populate-sysroot"
93do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}" 93do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}"
94do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/" 94do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_HOST}/"
95do_populate_sysroot[stamp-extra-info] = "${MACHINE}"
95 96
96python do_populate_sysroot_setscene () { 97python do_populate_sysroot_setscene () {
97 sstate_setscene(d) 98 sstate_setscene(d)
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index 5ec0e8a4a9..b2165bc275 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -49,8 +49,8 @@ toolchain_create_tree_env_script () {
49 echo 'export TARGET_PREFIX=${TARGET_PREFIX}' >> $script 49 echo 'export TARGET_PREFIX=${TARGET_PREFIX}' >> $script
50 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${BUILD_SYS}"' >> $script 50 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${BUILD_SYS}"' >> $script
51 if [ "${TARGET_OS}" = "darwin8" ]; then 51 if [ "${TARGET_OS}" = "darwin8" ]; then
52 echo 'export TARGET_CFLAGS="-I${STAGING_DIR}${TARGET_SYS}${includedir}"' >> $script 52 echo 'export TARGET_CFLAGS="-I${STAGING_DIR}${MACHINE}${includedir}"' >> $script
53 echo 'export TARGET_LDFLAGS="-L${STAGING_DIR}${TARGET_SYS}${libdir}"' >> $script 53 echo 'export TARGET_LDFLAGS="-L${STAGING_DIR}${MACHINE}${libdir}"' >> $script
54 # Workaround darwin toolchain sysroot path problems 54 # Workaround darwin toolchain sysroot path problems
55 cd ${SDK_OUTPUT}${SDKTARGETSYSROOT}/usr 55 cd ${SDK_OUTPUT}${SDKTARGETSYSROOT}/usr
56 ln -s /usr/local local 56 ln -s /usr/local local