- add option to suppress the terse usage messages. Saves 6.8k for defconfig:
[oweals/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 case "$2" in
13     --hardlinks) linkopts="-f";;
14     --symlinks)  linkopts="-fs";;
15     "")          h="";;
16     *)           echo "Unknown install option: $2"; exit 1;;
17 esac
18
19 if [ "$DO_INSTALL_LIBS" != "n" ]; then
20         # get the target dir for the libs
21         # assume it starts with lib
22         libdir=$($CC -print-file-name=libc.so | \
23                  sed -n 's%^.*\(/lib[^\/]*\)/libc.so%\1%p')
24         if test -z "$libdir"; then
25                 libdir=/lib
26         fi
27
28         mkdir -p $prefix/$libdir || exit 1
29         for i in $DO_INSTALL_LIBS; do
30                 rm -f $prefix/$libdir/$i || exit 1
31                 if [ -f $i ]; then
32                         cp -a $i $prefix/$libdir/ || exit 1
33                         chmod 0644 $prefix/$libdir/$i || exit 1
34                 fi
35         done
36 fi
37 rm -f $prefix/bin/busybox || exit 1
38 mkdir -p $prefix/bin || exit 1
39 install -m 755 busybox $prefix/bin/busybox || exit 1
40
41 for i in $h ; do
42         appdir=`dirname $i`
43         mkdir -p $prefix/$appdir || exit 1
44         if [ "$2" = "--hardlinks" ]; then
45             bb_path="$prefix/bin/busybox"
46         else
47             case "$appdir" in
48                 /)
49                     bb_path="bin/busybox"
50                 ;;
51                 /bin)
52                     bb_path="busybox"
53                 ;;
54                 /sbin)
55                     bb_path="../bin/busybox"
56                 ;;
57                 /usr/bin|/usr/sbin)
58                     bb_path="../../bin/busybox"
59                 ;;
60                 *)
61                 echo "Unknown installation directory: $appdir"
62                 exit 1
63                 ;;
64             esac
65         fi
66         echo "  $prefix$i -> $bb_path"
67         ln $linkopts $bb_path $prefix$i || exit 1
68 done
69
70 exit 0