Adjusted install.sh to use relative symlinks, and to optionally

create hardlinks.  Added a makefile target to create hardlinks.
 -Erik
This commit is contained in:
Eric Andersen 2000-07-20 21:57:11 +00:00
parent 3950596e1e
commit 51154bacbe
3 changed files with 80 additions and 17 deletions

View File

@ -23,6 +23,9 @@ VERSION := 0.46
BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z") BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
export VERSION export VERSION
# If you want a static binary, turn this on.
DOSTATIC = false
# Set the following to `true' to make a debuggable build. # Set the following to `true' to make a debuggable build.
# Leave this set to `false' for production use. # Leave this set to `false' for production use.
# eg: `make DODEBUG=true tests' # eg: `make DODEBUG=true tests'
@ -37,9 +40,6 @@ DODEBUG = false
# Do not enable this for production builds... # Do not enable this for production builds...
DODMALLOC = false DODMALLOC = false
# If you want a static binary, turn this on.
DOSTATIC = false
# If you are running a cross compiler, you may want to set this # If you are running a cross compiler, you may want to set this
# to something more interesting... # to something more interesting...
CROSS = CROSS =
@ -182,6 +182,9 @@ distclean: clean
install: busybox busybox.links install: busybox busybox.links
./install.sh $(PREFIX) ./install.sh $(PREFIX)
install-hardlinks: busybox busybox.links
./install.sh $(PREFIX) --hardlinks
dist release: distclean doc dist release: distclean doc
cd ..; \ cd ..; \
rm -rf busybox-$(VERSION); \ rm -rf busybox-$(VERSION); \

View File

@ -1,21 +1,51 @@
#!/bin/sh #!/bin/sh
set -e set -e
set -x
if [ "$1" = "" ]; then if [ "$1" = "" ]; then
echo "No installation directory, aborting." echo "No installation directory, aborting."
exit 1; exit 1;
fi fi
if [ "$2" = "--hardlinks" ]; then
linkopts="-f"
else
linkopts="-fs"
fi
prefix=$1
h=`sort busybox.links | uniq` 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 rm -f $1/bin/busybox
mkdir -p $1/bin mkdir -p $1/bin
install -m 755 busybox $1/bin/busybox 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 exit 0

View File

@ -1,21 +1,51 @@
#!/bin/sh #!/bin/sh
set -e set -e
set -x
if [ "$1" = "" ]; then if [ "$1" = "" ]; then
echo "No installation directory, aborting." echo "No installation directory, aborting."
exit 1; exit 1;
fi fi
if [ "$2" = "--hardlinks" ]; then
linkopts="-f"
else
linkopts="-fs"
fi
prefix=$1
h=`sort busybox.links | uniq` 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 rm -f $1/bin/busybox
mkdir -p $1/bin mkdir -p $1/bin
install -m 755 busybox $1/bin/busybox 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 exit 0