[oe-commits] org.oe.dev meta-toolchain: Sync with Poky. Add site-config file with distilled site configuration from OE, add environment setup script to tarball, add version file to tarball. Generate extras package with tarball separately since this information is only needed when using the toolchain with OE as an external toolchain. Change the way the target packages are installed so fix bugs with the previous approach

rpurdie commit openembedded-commits at lists.openembedded.org
Thu Feb 28 18:25:08 UTC 2008


meta-toolchain: Sync with Poky. Add site-config file with distilled site configuration from OE, add environment setup script to tarball, add version file to tarball. Generate extras package with tarball separately since this information is only needed when using the toolchain with OE as an external toolchain. Change the way the target packages are installed so fix bugs with the previous approach

Author: rpurdie at openembedded.org
Branch: org.openembedded.dev
Revision: 2c34202b0dfd11794a79da2cd891a88adbfcea48
ViewMTN: http://monotone.openembedded.org/revision/info/2c34202b0dfd11794a79da2cd891a88adbfcea48
Files:
1
packages/meta/meta-toolchain.bb
Diffs:

#
# mt diff -raea71c0a8bdc279045e3e86f31a70196962e910e -r2c34202b0dfd11794a79da2cd891a88adbfcea48
#
# 
# 
# patch "packages/meta/meta-toolchain.bb"
#  from [d53849cfd4dc2f21fcd44b4cc0926382313fc1e9]
#    to [95ccbc599aa34310c2d939504ab869df02206d32]
# 
============================================================
--- packages/meta/meta-toolchain.bb	d53849cfd4dc2f21fcd44b4cc0926382313fc1e9
+++ packages/meta/meta-toolchain.bb	95ccbc599aa34310c2d939504ab869df02206d32
@@ -1,22 +1,22 @@ DEPENDS = "ipkg-native ipkg-utils-native
 DESCRIPTION = "Meta package for building a installable toolchain"
 LICENSE = "MIT"
 DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native"
-PR = "r2"
 
 inherit sdk meta
 
 SDK_DIR = "${WORKDIR}/sdk"
 SDK_OUTPUT = "${SDK_DIR}/image"
+SDK_OUTPUT2 = "${SDK_DIR}/image-extras"
 SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
-SDK_SUFFIX = "toolchain"
 
-FEED_ARCH ?= "${TARGET_ARCH}"
-
 IPKG_HOST = "ipkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
-IPKG_TARGET = "ipkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${prefix}"
+IPKG_TARGET = "ipkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/temp-target"
 
 TOOLCHAIN_HOST_TASK ?= "task-sdk-host"
 TOOLCHAIN_TARGET_TASK ?= "task-sdk-bare"
+FEED_ARCH ?= "${TARGET_ARCH}"
+SDK_SUFFIX = "toolchain"
+TOOLCHAIN_OUTPUTNAME ?= "${DISTRO}-${DISTRO_VERSION}-${FEED_ARCH}-${TARGET_OS}-${SDK_SUFFIX}"
 
 RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
 
@@ -37,13 +37,23 @@ do_populate_sdk() {
 	${IPKG_TARGET} update
 	${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK}
 
-	mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}
-	cp -pPR ${SDK_OUTPUT}/${prefix}/usr/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}
-	rm -rf ${SDK_OUTPUT}/${prefix}/usr/
+	mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include
+	mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/.debug/
+	mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/share
+	mv ${SDK_OUTPUT}/temp-target/usr/lib/ipkg/status ${SDK_OUTPUT}/${prefix}/package-status
+	rm -rf ${SDK_OUTPUT}/temp-target/usr/lib/ipkg/
+	cp -pPR ${SDK_OUTPUT}/temp-target/usr/include/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include/
+	cp -pPR ${SDK_OUTPUT}/temp-target/usr/lib/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/
+	if [ -d ${SDK_OUTPUT}/temp-target/usr/lib/.debug ]; then
+		cp -pPR ${SDK_OUTPUT}/temp-target/usr/lib/.debug/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/.debug/
+	fi
+	cp -pPR ${SDK_OUTPUT}/temp-target/usr/share/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/share/
+	cp -pPR ${SDK_OUTPUT}/temp-target/lib/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/
+	if [ -d ${SDK_OUTPUT}/temp-target/lib/.debug ]; then
+		cp -pPR ${SDK_OUTPUT}/temp-target/lib/.debug/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/.debug/
+	fi
+	rm -rf ${SDK_OUTPUT}/temp-target/
 
-	cp -pPR ${SDK_OUTPUT}/${prefix}/lib/* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib
-	rm -rf ${SDK_OUTPUT}/${prefix}/lib/*
-
 	for fn in `ls ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/`; do
 		if [ -h ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/$fn ]; then
 			link=`readlink ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/$fn`
@@ -55,47 +65,36 @@ do_populate_sdk() {
 		fi
 	done
 
-	mv ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/gcc ${SDK_OUTPUT}/${prefix}/lib
-
 	echo 'GROUP ( libpthread.so.0 libpthread_nonshared.a )' > ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/libpthread.so
 	echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/libc.so
 
 	# remove unwanted housekeeping files
-	mv ${SDK_OUTPUT}${prefix}/${TARGET_SYS}/lib/ipkg/status ${SDK_OUTPUT}/${prefix}/package-status
-	rm -Rf ${SDK_OUTPUT}${prefix}/${TARGET_SYS}/lib/ipkg
 	mv ${SDK_OUTPUT}/usr/lib/ipkg/status ${SDK_OUTPUT}/${prefix}/package-status-host
 	rm -Rf ${SDK_OUTPUT}/usr/lib
 
 	# extract and store ipks, pkgdata and shlibs data
 	target_pkgs=`cat ${SDK_OUTPUT}/${prefix}/package-status | grep Package: | cut -f 2 -d ' '`
-	mkdir -p ${SDK_OUTPUT}/${prefix}/ipk/
-	mkdir -p ${SDK_OUTPUT}/${prefix}/pkgdata/runtime/
-	mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/shlibs/
+	mkdir -p ${SDK_OUTPUT2}/${prefix}/ipk/
+	mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/runtime/
+	mkdir -p ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
 	for pkg in $target_pkgs ; do
 		for arch in $revipkgarchs; do
 			pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk
 			if [ -e $pkgnames ]; then
 				oenote "Found $pkgnames"
-				cp $pkgnames ${SDK_OUTPUT}/${prefix}/ipk/
+				cp $pkgnames ${SDK_OUTPUT2}/${prefix}/ipk/
 				orig_pkg=`ipkg-list-fields $pkgnames | grep OE: | cut -d ' ' -f2`
-				pkg_subdir_postfix=${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}
-				for aarch in $revipkgarchs; do
-					if [ -e "${STAGING_DIR}/pkgdata/${aarch}${pkg_subdir_postfix}/${orig_pkg}" ]; then
-						pkg_subdir="${aarch}${pkg_subdir_postfix}"
-						break
-					fi
-				done
-				oenote "Original package in ${pkg_subdir}"
-				mkdir -p ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/runtime
-				cp ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/
+				pkg_subdir=$arch${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}
+				mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime
+				cp ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/
 				subpkgs=`cat ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
 				for subpkg in $subpkgs; do
-					cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/runtime/
+					cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
 					if [ -e ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
-						cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT}/${prefix}/pkgdata/$pkg_subdir/runtime/
+						cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
 					fi
 					if [ -e ${STAGING_DIR_TARGET}/shlibs/$subpkg.list ]; then
-						cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/shlibs/
+						cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
 					fi
 				done
 				break
@@ -109,11 +108,13 @@ do_populate_sdk() {
 	# gcc-cross-sdk get built :( (30/11/07)
 	ln -sf libgcc_s.so.1 ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
 
-	# remove unwanted executables
-	rm -rf ${SDK_OUTPUT}/${prefix}/sbin ${SDK_OUTPUT}/${prefix}/etc
+	# Remove broken .la files
+	rm -f ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/*.la
 
-	# remove broken .la files
-	rm -f ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/*.la
+	# Generate link for sysroot use
+	# /usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi/usr -> .
+	cd ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}
+	ln -sf . usr 
 
 	# fix pkgconfig data files
 	if [ -e ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/pkgconfig ]; then
@@ -126,10 +127,36 @@ do_populate_sdk() {
 		done
 	fi
 	
-	# package it up
+
+	# Setup site file for external use
+	siteconfig=${SDK_OUTPUT}/${prefix}/site-config
+	touch $siteconfig
+	for sitefile in ${CONFIG_SITE} ; do
+		cat $sitefile >> $siteconfig
+	done
+
+	# Create environment setup script
+	script=${SDK_OUTPUT}/${prefix}/environment-setup
+	touch $script
+	echo 'export PATH=${prefix}/bin:$PATH' >> $script
+	echo 'export PKG_CONFIG_SYSROOT_DIR=${prefix}/${TARGET_SYS}' >> $script
+	echo 'export PKG_CONFIG_PATH=${prefix}/${TARGET_SYS}/lib/pkgconfig' >> $script
+	echo 'export CONFIG_SITE=${prefix}/site-config' >> $script
+
+	# Add version information
+	versionfile=${SDK_OUTPUT}/${prefix}/version
+	touch $versionfile
+	echo 'Distro: ${DISTRO}' >> $versionfile
+	echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
+	echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
+	echo 'Timestamp: ${DATETIME}' >> $versionfile
+
+	# Package it up
 	mkdir -p ${SDK_DEPLOY}
 	cd ${SDK_OUTPUT}
-	fakeroot tar cfj ${SDK_DEPLOY}/${DISTRO}-${DISTRO_VERSION}-${FEED_ARCH}-${TARGET_OS}-${SDK_SUFFIX}.tar.bz2 .
+	fakeroot tar cfj ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
+	cd ${SDK_OUTPUT2}
+	fakeroot tar cfj ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}-extras.tar.bz2 .
 }
 
 do_populate_sdk[nostamp] = "1"






More information about the Openembedded-commits mailing list