summaryrefslogtreecommitdiffstats
path: root/meta/packages/meta
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-07-02 14:35:08 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-07-02 14:35:08 +0100
commit061df5abaf727741b11c05db2c47e2778f96d96e (patch)
treea79062441b0bd9564320c951cc330a268b28994e /meta/packages/meta
parent4e0ee648b4c18b770aba11921370258f3e2aaeef (diff)
downloadpoky-061df5abaf727741b11c05db2c47e2778f96d96e.tar.gz
meta-toolchain: Improve layout
* Switch from /usr/local/poky to /opt/poky * Use a sysroots directory for both the "native" sdk binaries and the target * Drop the meta-toolchain extras packages. These are replaced with packaged-staging. * Change the nativesdk layout to match our usual filesystem layout * Clean up various hardcoded prefix references Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/packages/meta')
-rw-r--r--meta/packages/meta/meta-toolchain.bb92
1 files changed, 32 insertions, 60 deletions
diff --git a/meta/packages/meta/meta-toolchain.bb b/meta/packages/meta/meta-toolchain.bb
index 9ae5554eaa..43b4f027c4 100644
--- a/meta/packages/meta/meta-toolchain.bb
+++ b/meta/packages/meta/meta-toolchain.bb
@@ -6,11 +6,12 @@ inherit meta
6 6
7SDK_DIR = "${WORKDIR}/sdk" 7SDK_DIR = "${WORKDIR}/sdk"
8SDK_OUTPUT = "${SDK_DIR}/image" 8SDK_OUTPUT = "${SDK_DIR}/image"
9SDK_OUTPUT2 = "${SDK_DIR}/image-extras"
10SDK_DEPLOY = "${TMPDIR}/deploy/sdk" 9SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
11 10
11SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${TARGET_SYS}"
12
12IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}" 13IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
13IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}" 14IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
14 15
15TOOLCHAIN_HOST_TASK ?= "task-sdk-host" 16TOOLCHAIN_HOST_TASK ?= "task-sdk-host"
16TOOLCHAIN_TARGET_TASK ?= "task-poky-standalone-sdk-target task-poky-standalone-sdk-target-dbg" 17TOOLCHAIN_TARGET_TASK ?= "task-poky-standalone-sdk-target task-poky-standalone-sdk-target-dbg"
@@ -22,10 +23,9 @@ EXCLUDE_FROM_WORLD = "1"
22 23
23do_populate_sdk() { 24do_populate_sdk() {
24 rm -rf ${SDK_OUTPUT} 25 rm -rf ${SDK_OUTPUT}
25 rm -rf ${SDK_OUTPUT2}
26 mkdir -p ${SDK_OUTPUT} 26 mkdir -p ${SDK_OUTPUT}
27 mkdir -p ${SDK_OUTPUT}${libdir}/opkg/ 27 mkdir -p ${SDK_OUTPUT}${libdir}/opkg/
28 mkdir -p ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}${libdir}/opkg/ 28 mkdir -p ${SDK_OUTPUT}/${SDKTARGETSYSROOT}${libdir}/opkg/
29 29
30 rm -f ${IPKGCONF_TARGET} 30 rm -f ${IPKGCONF_TARGET}
31 touch ${IPKGCONF_TARGET} 31 touch ${IPKGCONF_TARGET}
@@ -45,58 +45,32 @@ do_populate_sdk() {
45 ${IPKG_TARGET} update 45 ${IPKG_TARGET} update
46 ${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK} 46 ${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK}
47 47
48 install -d ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg 48 install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/opkg
49 mv ${SDK_OUTPUT}/usr/lib/opkg/* ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg/ 49 mv ${SDK_OUTPUT}/usr/lib/opkg/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/opkg/
50 rm -Rf ${SDK_OUTPUT}/usr/lib 50 rm -Rf ${SDK_OUTPUT}/usr
51 51
52 # Don't ship any libGL in the SDK 52 # Don't ship any libGL in the SDK
53 rm -rf ${SDK_OUTPUT}/${SDKPATH}/usr/lib/libGL* 53 rm -rf ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/libGL*
54 54
55 install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir} 55 install -d ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/${sysconfdir}
56 install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/ 56 install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/${sysconfdir}/
57 57
58 install -d ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir} 58 install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
59 install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}/ 59 install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
60 60
61 # extract and store ipks, pkgdata and shlibs data 61 # Can copy pstage files here
62 target_pkgs=`cat ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/lib/opkg/status | grep Package: | cut -f 2 -d ' '` 62 # target_pkgs=`cat ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/usr/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
63 mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/ipk/
64 mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/runtime/
65 mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
66 for pkg in $target_pkgs ; do
67 for arch in $revipkgarchs; do
68 pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk
69 if [ -e $pkgnames ]; then
70 echo "Found $pkgnames"
71 cp $pkgnames ${SDK_OUTPUT2}/${SDKPATH}/ipk/
72 orig_pkg=`opkg-list-fields $pkgnames | grep OE: | cut -d ' ' -f2`
73 pkg_subdir=$arch${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}
74 mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime
75 cp ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/
76 subpkgs=`cat ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
77 for subpkg in $subpkgs; do
78 cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
79 if [ -e ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
80 cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
81 fi
82 if [ -e ${STAGING_DIR_TARGET}/shlibs/$subpkg.list ]; then
83 cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
84 fi
85 done
86 break
87 fi
88 done
89 done
90 63
91 # Fix or remove broken .la files 64 # Fix or remove broken .la files
92 for i in `find ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS} -name \*.la`; do 65 for i in `find ${SDK_OUTPUT}/${SDKTARGETSYSROOT} -name \*.la`; do
93 sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \ 66 sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKTARGETSYSROOT}${base_libdir},g" \
94 -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKPATH}/${TARGET_SYS}${libdir},g" \ 67 -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKTARGETSYSROOT}${libdir},g" \
95 -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \ 68 -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKTARGETSYSROOT}${base_libdir},g" \
96 -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKPATH}/${TARGET_SYS}${libdir},g" \ 69 -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKTARGETSYSROOT}${libdir},g" \
97 -e 's/^installed=yes$/installed=no/' $i 70 -e 's/^installed=yes$/installed=no/' $i
98 done 71 done
99 rm -f ${SDK_OUTPUT}/${SDKPATH}/lib/*.la 72 #rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}/lib/*.la
73 rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
100 74
101 # Setup site file for external use 75 # Setup site file for external use
102 siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${TARGET_SYS} 76 siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${TARGET_SYS}
@@ -108,21 +82,21 @@ do_populate_sdk() {
108 # Create environment setup script 82 # Create environment setup script
109 script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${TARGET_SYS} 83 script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${TARGET_SYS}
110 touch $script 84 touch $script
111 echo 'export PATH=${SDKPATH}/bin:$PATH' >> $script 85 echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script
112 echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKPATH}/${TARGET_SYS}' >> $script 86 echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script
113 echo 'export PKG_CONFIG_PATH=${SDKPATH}/${TARGET_SYS}${libdir}/pkgconfig' >> $script 87 echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script
114 echo 'export CONFIG_SITE=${SDKPATH}/site-config-${TARGET_SYS}' >> $script 88 echo 'export CONFIG_SITE=${SDKPATH}/site-config-${TARGET_SYS}' >> $script
115 echo 'export CC=${TARGET_PREFIX}gcc' >> $script 89 echo 'export CC=${TARGET_PREFIX}gcc' >> $script
116 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${SDK_ARCH}-linux"' >> $script 90 echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${SDK_ARCH}-linux"' >> $script
117 if [ "${TARGET_OS}" = "darwin8" ]; then 91 if [ "${TARGET_OS}" = "darwin8" ]; then
118 echo 'export TARGET_CFLAGS="-I${SDKPATH}/${TARGET_SYS}${includedir}"' >> $script 92 echo 'export TARGET_CFLAGS="-I${SDKTARGETSYSROOT}${includedir}"' >> $script
119 echo 'export TARGET_LDFLAGS="-L${SDKPATH}/${TARGET_SYS}${libdir}"' >> $script 93 echo 'export TARGET_LDFLAGS="-L${SDKTARGETSYSROOT}${libdir}"' >> $script
120 # Workaround darwin toolchain sysroot path problems 94 # Workaround darwin toolchain sysroot path problems
121 cd ${SDK_OUTPUT}${SDKPATH}/${TARGET_SYS}/usr 95 cd ${SDK_OUTPUT}${SDKTARGETSYSROOT}/usr
122 ln -s /usr/local local 96 ln -s /usr/local local
123 fi 97 fi
124 echo "alias opkg='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${sysconfdir}/opkg-sdk.conf -o ${SDKPATH}'" >> $script 98 echo "alias opkg='LD_LIBRARY_PATH=${SDKPATHNATIVE}${libdir_nativesdk} ${SDKPATHNATIVE}${bindir_nativesdk}/opkg-cl -f ${SDKPATHNATIVE}/${sysconfdir}/opkg-sdk.conf -o ${SDKPATHNATIVE}'" >> $script
125 echo "alias opkg-target='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${TARGET_SYS}${sysconfdir}/opkg.conf -o ${SDKPATH}/${TARGET_SYS}'" >> $script 99 echo "alias opkg-target='LD_LIBRARY_PATH=${SDKPATHNATIVE}${libdir_nativesdk} ${SDKPATHNATIVE}${bindir_nativesdk}/opkg-cl -f ${SDKTARGETSYSROOT}${sysconfdir}/opkg.conf -o ${SDKTARGETSYSROOT}'" >> $script
126 100
127 # Add version information 101 # Add version information
128 versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${TARGET_SYS} 102 versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${TARGET_SYS}
@@ -136,8 +110,6 @@ do_populate_sdk() {
136 mkdir -p ${SDK_DEPLOY} 110 mkdir -p ${SDK_DEPLOY}
137 cd ${SDK_OUTPUT} 111 cd ${SDK_OUTPUT}
138 fakeroot tar cfj ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . 112 fakeroot tar cfj ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
139 cd ${SDK_OUTPUT2}
140 fakeroot tar cfj ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}-extras.tar.bz2 .
141} 113}
142 114
143do_populate_sdk[nostamp] = "1" 115do_populate_sdk[nostamp] = "1"