aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2015-02-28 12:39:16 -0600
committerRob Landley <rob@landley.net>2015-02-28 12:39:16 -0600
commit57f93c8badf944b5b3ed712e2887b3db33147efb (patch)
treed601b7eb3c04c032cd819f8fc682bc356a6223dc
parentab5cbfcb8bdbf8802d793520ec7b81c5eb392b5f (diff)
downloadtoybox-57f93c8badf944b5b3ed712e2887b3db33147efb.tar.gz
Add LDFLAGS and STRIP=no support.
-rw-r--r--configure12
-rwxr-xr-xscripts/make.sh9
2 files changed, 16 insertions, 5 deletions
diff --git a/configure b/configure
index fc58de6d..59a30dc6 100644
--- a/configure
+++ b/configure
@@ -4,14 +4,20 @@
# A synonym.
[ -z "$CROSS_COMPILE" ] && CROSS_COMPILE="$CROSS"
+
+# CFLAGS and OPTIMIZE are different so you can add extra CFLAGS without
+# disabling default optimizations
[ -z "$CFLAGS" ] && CFLAGS="-Wall -Wundef -Wno-char-subscripts"
# Required for our expected ABI. we're 8-bit clean thus "char" must be unsigned.
CFLAGS="$CFLAGS -funsigned-char"
-
[ -z "$OPTIMIZE" ] && OPTIMIZE="-Os -ffunction-sections -fdata-sections -fno-asynchronous-unwind-tables"
+
+# We accept LDFLAGS, but by default don't have anything in it
[ -z "$LDOPTIMIZE" ] && LDOPTIMIZE="-Wl,--gc-sections"
+
[ -z "$CC" ] && CC=cc
-[ -z "$STRIP" ] && STRIP=strip
+[ -z "$STRIP" ] && STRIP=strip # set STRIP=no to skip stripping entirely
-# If HOSTCC needs CFLAGS, add them to the variable ala HOSTCC="blah-cc --static"
+# If HOSTCC needs CFLAGS or LDFLAGS, just add them to the variable
+# ala HOSTCC="blah-cc --static"
[ -z "$HOSTCC" ] && HOSTCC=gcc
diff --git a/scripts/make.sh b/scripts/make.sh
index 207a0827..9e4b83e9 100755
--- a/scripts/make.sh
+++ b/scripts/make.sh
@@ -102,7 +102,7 @@ fi
# LINK needs optlibs.dat, above
-LINK="$(echo $LDOPTIMIZE -o toybox_unstripped -Wl,--as-needed $(cat generated/optlibs.dat))"
+LINK="$(echo $LDOPTIMIZE $LDFLAGS -o toybox_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."
@@ -268,7 +268,12 @@ done
[ $DONE -ne 0 ] && exit 1
do_loudly $BUILD $LFILES $LINK || exit 1
-do_loudly ${CROSS_COMPILE}${STRIP} toybox_unstripped -o toybox || exit 1
+if [ "$STRIP" == no ]
+then
+ mv toybox_unstripped toybox
+else
+ do_loudly ${CROSS_COMPILE}${STRIP} toybox_unstripped -o toybox || exit 1
+fi
# gcc 4.4's strip command is buggy, and doesn't set the executable bit on
# its output the way SUSv4 suggests it do so.
do_loudly chmod +x toybox || exit 1