#!/bin/bash
|
|
#This script is ugly, feel free to fix it
|
|
|
|
if [ "$#" -ne 2 ]; then
|
|
echo "usage ./cmd target-rootfs target-toolchain"
|
|
exit -1
|
|
fi
|
|
|
|
#passed args
|
|
ROOTFS=$1
|
|
TOOLCHAIN=$2
|
|
|
|
if [ -x $TOOLCHAIN ]; then
|
|
echo "Passed valid toolchain"
|
|
MACHINE=$($TOOLCHAIN -dumpmachine)
|
|
DEB_MULTI_ARCH_MADNESS=$ROOTFS/usr/lib/$MACHINE
|
|
fi
|
|
|
|
CURRENTDIR=$PWD
|
|
|
|
function adjustSymLinks
|
|
{
|
|
echo "Adjusting the symlinks in $1 to be relative"
|
|
cd $1
|
|
find . -maxdepth 1 -type l | while read i;
|
|
do qualifies=$(file $i | sed -e "s/.*\`\(.*\)'/\1/g" | grep ^/lib)
|
|
if [ -n "$qualifies" ]; then
|
|
newPath=$(file $i | sed -e "s/.*\`\(.*\)'/\1/g" | sed -e "s,\`,,g" | sed -e "s,',,g" | sed -e "s,^/lib,$2/lib,g");
|
|
echo $i
|
|
echo $newPath;
|
|
sudo rm $i;
|
|
sudo ln -s $newPath $i;
|
|
fi
|
|
done
|
|
}
|
|
|
|
adjustSymLinks $ROOTFS/usr/lib "../.."
|
|
|
|
if [ -n "$DEB_MULTI_ARCH_MADNESS" -a -d "$DEB_MULTI_ARCH_MADNESS" ]; then
|
|
echo "Debian multiarch dir exists, adjusting"
|
|
adjustSymLinks $DEB_MULTI_ARCH_MADNESS "../../.."
|
|
fi
|
|
|
|
cd $CURRENTDIR
|