summaryrefslogtreecommitdiff
path: root/applets/install.sh
diff options
context:
space:
mode:
authorEric Andersen2000-07-20 21:57:11 +0000
committerEric Andersen2000-07-20 21:57:11 +0000
commit51154bacbe34d160f089c4ab4bbb51766030233d (patch)
treed4cc96083ccdfb95c031f92aacfb1b3f8c08dc97 /applets/install.sh
parent3950596e1e13d3593d06ab3cf1e48a07d5bd80c9 (diff)
downloadbusybox-51154bacbe34d160f089c4ab4bbb51766030233d.zip
busybox-51154bacbe34d160f089c4ab4bbb51766030233d.tar.gz
Adjusted install.sh to use relative symlinks, and to optionally
create hardlinks. Added a makefile target to create hardlinks. -Erik
Diffstat (limited to 'applets/install.sh')
-rwxr-xr-xapplets/install.sh44
1 files changed, 37 insertions, 7 deletions
diff --git a/applets/install.sh b/applets/install.sh
index 65190f5..236f62a 100755
--- a/applets/install.sh
+++ b/applets/install.sh
@@ -1,21 +1,51 @@
#!/bin/sh
set -e
-
+set -x
if [ "$1" = "" ]; then
echo "No installation directory, aborting."
exit 1;
fi
-
+if [ "$2" = "--hardlinks" ]; then
+ linkopts="-f"
+else
+ linkopts="-fs"
+fi
+prefix=$1
h=`sort busybox.links | uniq`
-for i in $h ; do
- echo " $1$i -> /bin/busybox"
- mkdir -p $1/`echo $i | sed -e 's/\/[^\/]*$//' `
- ln -fs /bin/busybox $1$i
-done
+
rm -f $1/bin/busybox
mkdir -p $1/bin
install -m 755 busybox $1/bin/busybox
+for i in $h ; do
+ appdir=`dirname $i`
+ mkdir -p $prefix/$appdir
+ if [ "$2" = "--hardlinks" ]; then
+ bb_path="$prefix/bin/busybox"
+ else
+ case "$appdir" in
+ /)
+ bb_path="bin/busybox"
+ ;;
+ /bin)
+ bb_path="busybox"
+ ;;
+ /sbin)
+ bb_path="../bin/busybox"
+ ;;
+ /usr/bin|/usr/sbin)
+ bb_path="../../bin/busybox"
+ ;;
+ *)
+ echo "Unknown installation directory: $appdir"
+ exit 1
+ ;;
+ esac
+ fi
+ echo " $prefix$i -> /bin/busybox"
+ ln $linkopts $bb_path $prefix$i
+done
+
exit 0