X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=inline;f=applets%2Finstall.sh;h=4ec96c254a0ea46ca38e811c1542818b4ac4d2d0;hb=7d219aab70e6951ab82c27c202cac05016696723;hp=2fcd2ae6e873ee5e8c51bbb15e7cbdbb20dfeff6;hpb=e0c418e13b005908da492ae2151096e8f2246287;p=oweals%2Fbusybox.git diff --git a/applets/install.sh b/applets/install.sh index 2fcd2ae6e..4ec96c254 100755 --- a/applets/install.sh +++ b/applets/install.sh @@ -3,19 +3,56 @@ export LC_ALL=POSIX export LC_CTYPE=POSIX -prefix=$1 -if [ "$prefix" = "" ]; then - echo "No installation directory, aborting." - exit 1; +prefix=${1} +if [ -z "$prefix" ]; then + echo "usage: applets/install.sh DESTINATION [--symlinks/--hardlinks]" + exit 1; fi h=`sort busybox.links | uniq` +cleanup="0" +noclobber="0" case "$2" in - --hardlinks) linkopts="-f";; - --symlinks) linkopts="-fs";; - "") h="";; - *) echo "Unknown install option: $2"; exit 1;; + --hardlinks) linkopts="-f";; + --symlinks) linkopts="-fs";; + --cleanup) cleanup="1";; + --noclobber) noclobber="1";; + "") h="";; + *) echo "Unknown install option: $2"; exit 1;; esac +if [ -n "$DO_INSTALL_LIBS" ] && [ "$DO_INSTALL_LIBS" != "n" ]; then + # get the target dir for the libs + # assume it starts with lib + libdir=$($CC -print-file-name=libc.so | \ + sed -n 's%^.*\(/lib[^\/]*\)/libc.so%\1%p') + if test -z "$libdir"; then + libdir=/lib + fi + + mkdir -p $prefix/$libdir || exit 1 + for i in $DO_INSTALL_LIBS; do + rm -f $prefix/$libdir/$i || exit 1 + if [ -f $i ]; then + cp -a $i $prefix/$libdir/ || exit 1 + chmod 0644 $prefix/$libdir/$i || exit 1 + fi + done +fi + +if [ "$cleanup" = "1" ] && [ -e "$prefix/bin/busybox" ]; then + inode=`ls -i "$prefix/bin/busybox" | awk '{print $1}'` + sub_shell_it=` + cd "$prefix" + for d in usr/sbin usr/bin sbin bin ; do + pd=$PWD + if [ -d "$d" ]; then + cd $d + ls -iL . | grep "^ *$inode" | awk '{print $2}' | env -i xargs rm -f + fi + cd "$pd" + done + ` +fi rm -f $prefix/bin/busybox || exit 1 mkdir -p $prefix/bin || exit 1 @@ -25,29 +62,33 @@ for i in $h ; do appdir=`dirname $i` mkdir -p $prefix/$appdir || exit 1 if [ "$2" = "--hardlinks" ]; then - bb_path="$prefix/bin/busybox" + bb_path="$prefix/bin/busybox" else - case "$appdir" in + case "$appdir" in /) - bb_path="bin/busybox" + bb_path="bin/busybox" ;; /bin) - bb_path="busybox" + bb_path="busybox" ;; /sbin) - bb_path="../bin/busybox" + bb_path="../bin/busybox" ;; /usr/bin|/usr/sbin) - bb_path="../../bin/busybox" + bb_path="../../bin/busybox" ;; *) echo "Unknown installation directory: $appdir" exit 1 ;; - esac + esac + fi + if [ "$noclobber" = "0" ] || [ ! -e "$prefix$i" ]; then + echo " $prefix$i -> $bb_path" + ln $linkopts $bb_path $prefix$i || exit 1 + else + echo " $prefix$i already exists" fi - echo " $prefix$i -> $bb_path" - ln $linkopts $bb_path $prefix$i || exit 1 done exit 0