aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/genconfig.sh16
-rwxr-xr-xscripts/install.sh45
-rwxr-xr-xscripts/make.sh15
-rwxr-xr-xscripts/single.sh4
4 files changed, 40 insertions, 40 deletions
diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh
index 5e7d1df2..e9bb5141 100755
--- a/scripts/genconfig.sh
+++ b/scripts/genconfig.sh
@@ -146,12 +146,10 @@ do
[ "${FILE/pending//}" != "$FILE" ] &&
PENDING="$PENDING $NAME" ||
WORKING="$WORKING $NAME"
-done > .singlemake &&
-echo -e "clean::\n\trm -f $WORKING $PENDING" >> .singlemake &&
-echo -e "list:\n\t@echo $(echo $WORKING $PENDING | tr ' ' '\n' | sort | xargs)"\
- >> .singlemake &&
-echo -e "list_working:\n\t@echo $(echo $WORKING | tr ' ' '\n' | sort | xargs)" \
- >> .singlemake &&
-echo -e "list_pending:\n\t@echo $(echo $PENDING | tr ' ' '\n' | sort | xargs)" \
- >> .singlemake
-)
+done &&
+echo -e "clean::\n\trm -f $WORKING $PENDING" &&
+echo -e "list:\n\t@echo $(echo $WORKING $PENDING | tr ' ' '\n' | sort | xargs)" &&
+echo -e "list_working:\n\t@echo $(echo $WORKING | tr ' ' '\n' | sort | xargs)" &&
+echo -e "list_pending:\n\t@echo $(echo $PENDING | tr ' ' '\n' | sort | xargs)" &&
+echo -e ".PHONY: $WORKING $PENDING" | sed 's/ \([^ ]\)/ test_\1/g'
+) > .singlemake
diff --git a/scripts/install.sh b/scripts/install.sh
index 8891a314..961341e6 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -4,31 +4,24 @@
source ./configure
-# Parse command line arguments.
+[ -z "$PREFIX" ] && PREFIX="/usr/toybox"
-[ -z "$PREFIX" ] && PREFIX="."
+# Parse command line arguments.
LONG_PATH=""
while [ ! -z "$1" ]
do
# Create symlinks instead of hardlinks?
-
[ "$1" == "--symlink" ] && LINK_TYPE="-s"
# Uninstall?
-
- [ "$1" == "--uninstall" ] && UNINSTALL=1
+ [ "$1" == "--uninstall" ] && UNINSTALL=Uninstall
# Delete destination command if it exists?
-
[ "$1" == "--force" ] && DO_FORCE="-f"
# Use {,usr}/{bin,sbin} paths instead of all files in one directory?
-
- if [ "$1" == "--long" ]
- then
- LONG_PATH="bin/"
- fi
+ [ "$1" == "--long" ] && LONG_PATH="bin/"
shift
done
@@ -38,22 +31,24 @@ echo "Compile instlist..."
$DEBUG $HOSTCC -I . scripts/install.c -o generated/instlist || exit 1
COMMANDS="$(generated/instlist $LONG_PATH)"
-echo "Install commands..."
+echo "${UNINSTALL:-Install} commands..."
# Copy toybox itself
if [ -z "$UNINSTALL" ]
then
- mkdir -p ${PREFIX}/${LONG_PATH} || exit 1
+ mkdir -p "${PREFIX}/${LONG_PATH}" &&
+ rm -f "${PREFIX}/${LONG_PATH}/toybox" &&
cp toybox ${PREFIX}/${LONG_PATH} || exit 1
else
- rm "${PREFIX}/${LONG_PATH}/toybox" 2>/dev/null
- rmdir "${PREFIX}/${LONG_PATH}" 2>/dev/null
+ rm -f "${PREFIX}/${LONG_PATH}/toybox" 2>/dev/null
fi
-cd "${PREFIX}"
+cd "$PREFIX" || exit 1
# Make links to toybox
+EXIT=0
+
for i in $COMMANDS
do
# Figure out target of link
@@ -64,20 +59,19 @@ do
else
# Create subdirectory for command to go in (if necessary)
- DOTPATH="$(echo $i | sed 's@\(.*/\).*@\1@')"
+ DOTPATH="$(dirname "$i")"/
if [ -z "$UNINSTALL" ]
then
mkdir -p "$DOTPATH" || exit 1
- else
- rmdir "$DOTPATH" 2>/dev/null
fi
if [ -z "$LINK_TYPE" ]
then
- dotpath="bin/"
+ DOTPATH="bin/"
else
if [ "$DOTPATH" != "$LONG_PATH" ]
then
+ # For symlinks we need ../../bin style relative paths
DOTPATH="$(echo $DOTPATH | sed -e 's@[^/]*/@../@g')"$LONG_PATH
else
DOTPATH=""
@@ -86,7 +80,12 @@ do
fi
# Create link
- [ -z "$UNINSTALL" ] &&
- ln $DO_FORCE $LINK_TYPE ${DOTPATH}toybox $i ||
- rm $i 2>/dev/null
+ if [ -z "$UNINSTALL" ]
+ then
+ ln $DO_FORCE $LINK_TYPE ${DOTPATH}toybox $i || EXIT=1
+ else
+ rm -f $i || EXIT=1
+ fi
done
+
+exit $EXIT
diff --git a/scripts/make.sh b/scripts/make.sh
index 8be4c3be..d3dc8eb9 100755
--- a/scripts/make.sh
+++ b/scripts/make.sh
@@ -7,7 +7,9 @@ export LC_ALL=C
set -o pipefail
source ./configure
-[ -z "$KCONFIG_CONFIG" ] && KCONFIG_CONFIG=".config"
+[ -z "$KCONFIG_CONFIG" ] && KCONFIG_CONFIG=.config
+[ -z "$OUTNAME" ] && OUTNAME=toybox
+UNSTRIPPED="generated/unstripped/$(basename "$OUTNAME")"
# Since each cc invocation is short, launch half again as many processes
# as we have processors so they don't exit faster than we can start them.
@@ -30,7 +32,7 @@ isnewer()
echo "Generate headers from toys/*/*.c..."
-mkdir -p generated
+mkdir -p generated/unstripped
if isnewer generated/Config.in toys
then
@@ -111,7 +113,7 @@ fi
# LINK needs optlibs.dat, above
-LINK="$(echo $LDOPTIMIZE $LDFLAGS -o toybox_unstripped -Wl,--as-needed $(cat generated/optlibs.dat))"
+LINK="$(echo $LDOPTIMIZE $LDFLAGS -o "$UNSTRIPPED" -Wl,--as-needed $(cat generated/optlibs.dat))"
genbuildsh > generated/build.sh && chmod +x generated/build.sh || exit 1
echo "Make generated/config.h from $KCONFIG_CONFIG."
@@ -293,9 +295,10 @@ done
[ $DONE -ne 0 ] && exit 1
do_loudly $BUILD $LFILES $LINK || exit 1
-if [ ! -z "$NOSTRIP" ] || ! do_loudly ${CROSS_COMPILE}strip toybox_unstripped -o toybox
+if [ ! -z "$NOSTRIP" ] ||
+ ! do_loudly ${CROSS_COMPILE}strip "$UNSTRIPPED" -o "$OUTNAME"
then
- echo "strip failed, using unstripped" && cp toybox_unstripped toybox ||
+ echo "strip failed, using unstripped" && cp "$UNSTRIPPED" "$OUTNAME" ||
exit 1
fi
@@ -303,6 +306,6 @@ fi
# its output the way SUSv4 suggests it do so. While we're at it, make sure
# we don't have the "w" bit set so things like bzip2's "cp -f" install don't
# overwrite our binary through the symlink.
-do_loudly chmod 555 toybox || exit 1
+do_loudly chmod 555 "$OUTNAME" || exit 1
echo
diff --git a/scripts/single.sh b/scripts/single.sh
index e3c9ebbd..cadb2fcd 100755
--- a/scripts/single.sh
+++ b/scripts/single.sh
@@ -38,6 +38,6 @@ do
echo "# CONFIG_TOYBOX is not set" >> "$KCONFIG_CONFIG" &&
grep "CONFIG_TOYBOX_" .config >> "$KCONFIG_CONFIG" &&
- make &&
- mv -f toybox $PREFIX$i || exit 1
+ rm -f "$PREFIX$i" &&
+ OUTNAME="$PREFIX$i" scripts/make.sh || exit 1
done