#!/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