diff options
author | Tor Lillqvist <tml@collabora.com> | 2014-01-20 10:55:22 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2014-01-20 10:57:22 +0200 |
commit | 1c49746b4b96d25bf7609c607390b81492a9e3b8 (patch) | |
tree | 0f7a4090733caf8da75814725263ad647e2358a9 | |
parent | 2dc9f1791a24ef1858737eac3ce64c5e2c261744 (diff) |
Add script to extract a hackish "sysroot" tarball from a Raspbian system
To be used when cross-compiling to Raspbian without proper cross-compilation
packages that would contain the necessary headers and libraries.
Change-Id: I342771e6ea9baaa2500c8c7ad7b3b42d12924461
-rwxr-xr-x | solenv/bin/make-raspbian-root-tarball | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/solenv/bin/make-raspbian-root-tarball b/solenv/bin/make-raspbian-root-tarball new file mode 100755 index 000000000000..38a64e281158 --- /dev/null +++ b/solenv/bin/make-raspbian-root-tarball @@ -0,0 +1,79 @@ +#!/bin/sh + +# When lacking a proper cross-compilation package system from Linux +# (or some other Unix) to Raspbian, instead create a tarball of +# headers, libraries and pkg-config files on a Raspbian system and +# unpack that then on the build system, and pass in a -sysroot switch +# to the cross-compiler. + +cd / + +# Exclude irrelevant stuff, like shared libraries that actually are +# "modules" loaded at run-time by some software. + +EXCLUDE='lib/ld-linux \ +lib/klibc- \ +lib/arm-linux-gnueabihf/security/ \ +usr/lib/arm-linux-gnueabihf/ImageMagick- \ +usr/lib/arm-linux-gnueabihf/autofs/ \ +usr/lib/arm-linux-gnueabihf/directfb- \ +usr/lib/arm-linux-gnueabihf/gconv/ \ +usr/lib/arm-linux-gnueabihf/gdbus- \ +usr/lib/arm-linux-gnueabihf/gdk-pixbuf- \ +usr/lib/arm-linux-gnueabihf/gio/ \ +usr/lib/arm-linux-gnueabihf/gvfs/ \ +usr/lib/arm-linux-gnueabihf/jack/ \ +usr/lib/arm-linux-gnueabihf/libgphoto2/ \ +usr/lib/arm-linux-gnueabihf/libgphoto2_port/ \ +usr/lib/arm-linux-gnueabihf/libgtk-2.0/ \ +usr/lib/arm-linux-gnueabihf/libgtk-3.0/ \ +usr/lib/arm-linux-gnueabihf/libproxy/ \ +usr/lib/arm-linux-gnueabihf/odbc/ \ +usr/lib/arm-linux-gnueabihf/pango/ \ +usr/lib/arm-linux-gnueabihf/plymouth/ \ +usr/lib/arm-linux-gnueabihf/qt4/ \ +usr/lib/arm-linux-gnueabihf/sane \ +usr/lib/libblas.so \ +usr/lib/liblapack.so' + +EXCLUDE=`echo "$EXCLUDE" | tr -d ' +' | sed -e 's/ /|/g'` + +FILELIST=`mktemp` +STAGINGDIR=`mktemp -d` + +find lib/*.so* \ + lib/arm-linux-gnueabihf \ + usr/include \ + usr/lib/liblpsolve*.a \ + usr/lib/*.so* \ + usr/lib/arm-linux-gnueabihf \ + usr/lib/pkgconfig \ + usr/share/pkgconfig \ + -type f -o -type l | + grep -v -E "^($EXCLUDE)" >$FILELIST + +tar -c --files-from=$FILELIST -f - | (cd $STAGINGDIR && tar xf -) + +rm $FILELIST + +cd $STAGINGDIR +# Change absolute symlinks to relative +find . -type l | xargs ls -ld | grep -- '-> /' | + while read mode links user group size month day yearortime link arrow target; do + target=`echo "$target" | sed -e 's,/,..;,'` + while test `expr index $target /` -gt 0; do + target=`echo "$target" | sed -e 's,/,;,'` + target="..;$target" + done + target=`echo "$target" | sed -e 's,;,/,g'` + ln -f -s $target $link + done + +RESULT=/tmp/raspbian-root-`date +%Y%m%d`.tar.gz +tar czf $RESULT . + +cd / +rm -rf $STAGINGDIR + +echo === Result in $RESULT === |