1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#!/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/jvm/java-6-openjdk-armhf/include \
usr/lib/jvm/java-6-openjdk-armhf/jre/lib/arm \
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 ===
|