style fix (stray space before ';')
[platform/upstream/busybox.git] / applets / install.sh
1 #!/bin/sh
2
3 export LC_ALL=POSIX
4 export LC_CTYPE=POSIX
5
6 prefix=${1}
7 if [ -z "$prefix" ]; then
8         echo "usage: applets/install.sh DESTINATION [--symlinks/--hardlinks]"
9         exit 1;
10 fi
11 h=`sort busybox.links | uniq`
12 cleanup="0"
13 noclobber="0"
14 case "$2" in
15         --hardlinks) linkopts="-f";;
16         --symlinks)  linkopts="-fs";;
17         --cleanup)   cleanup="1";;
18         --noclobber) noclobber="1";;
19         "")          h="";;
20         *)           echo "Unknown install option: $2"; exit 1;;
21 esac
22
23 if [ -n "$DO_INSTALL_LIBS" ] && [ "$DO_INSTALL_LIBS" != "n" ]; then
24         # get the target dir for the libs
25         # assume it starts with lib
26         libdir=$($CC -print-file-name=libc.so | \
27                  sed -n 's%^.*\(/lib[^\/]*\)/libc.so%\1%p')
28         if test -z "$libdir"; then
29                 libdir=/lib
30         fi
31
32         mkdir -p $prefix/$libdir || exit 1
33         for i in $DO_INSTALL_LIBS; do
34                 rm -f $prefix/$libdir/$i || exit 1
35                 if [ -f $i ]; then
36                         cp -a $i $prefix/$libdir/ || exit 1
37                         chmod 0644 $prefix/$libdir/$i || exit 1
38                 fi
39         done
40 fi
41
42 if [ "$cleanup" = "1" ] && [ -e "$prefix/bin/busybox" ]; then
43         inode=`ls -i "$prefix/bin/busybox" | awk '{print $1}'`
44         sub_shell_it=`
45         cd "$prefix"
46         for d in usr/sbin usr/bin sbin bin; do
47                 pd=$PWD
48                 if [ -d "$d" ]; then
49                         cd $d
50                         ls -iL . | grep "^ *$inode" | awk '{print $2}' | env -i xargs rm -f
51                 fi
52                 cd "$pd"
53         done
54         `
55 fi
56
57 rm -f $prefix/bin/busybox || exit 1
58 mkdir -p $prefix/bin || exit 1
59 install -m 755 busybox $prefix/bin/busybox || exit 1
60
61 for i in $h; do
62         appdir=`dirname $i`
63         mkdir -p $prefix/$appdir || exit 1
64         if [ "$2" = "--hardlinks" ]; then
65                 bb_path="$prefix/bin/busybox"
66         else
67                 case "$appdir" in
68                 /)
69                         bb_path="bin/busybox"
70                 ;;
71                 /bin)
72                         bb_path="busybox"
73                 ;;
74                 /sbin)
75                         bb_path="../bin/busybox"
76                 ;;
77                 /usr/bin|/usr/sbin)
78                         bb_path="../../bin/busybox"
79                 ;;
80                 *)
81                 echo "Unknown installation directory: $appdir"
82                 exit 1
83                 ;;
84                 esac
85         fi
86         if [ "$noclobber" = "0" ] || [ ! -e "$prefix$i" ]; then
87                 echo "  $prefix$i -> $bb_path"
88                 ln $linkopts $bb_path $prefix$i || exit 1
89         else
90                 echo "  $prefix$i already exists"
91         fi
92 done
93
94 exit 0