| #!/bin/bash |
| |
| # set environment variables used by scripts/make.sh |
| |
| # People run ./configure out of habit, so do "defconfig" for them. |
| |
| if [ "$(basename "$0")" == configure ] |
| then |
| echo "Assuming you want 'make defconfig', but you should probably check the README." |
| make defconfig |
| exit $? |
| fi |
| |
| # Warn about stuff, disable stupid warnings, be 8-bit clean for utf8. |
| CFLAGS="$CFLAGS -Wall -Wundef -Wno-char-subscripts -Werror=implicit-function-declaration -Wno-char-subscripts -Wno-pointer-sign -Wno-string-plus-int -funsigned-char" |
| |
| # Set default values if variable not already set |
| : ${CC:=cc} ${HOSTCC:=cc} ${GENDIR:=generated} ${KCONFIG_CONFIG:=.config} |
| : ${OUTNAME:=toybox${TARGET:+-$TARGET}} |
| : ${OPTIMIZE:=-Os -ffunction-sections -fdata-sections -fno-asynchronous-unwind-tables -fno-strict-aliasing} |
| |
| # set ASAN=1 to enable "address sanitizer" and debuggable backtraces |
| [ -z "$ASAN" ] || { CFLAGS="$CFLAGS -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address"; NOSTRIP=1; } |
| |
| # We accept LDFLAGS, but by default don't have anything in it |
| if [ "$(uname)" == "Darwin" ] |
| then |
| : ${LDOPTIMIZE:=-Wl,-dead_strip} ${STRIP:=strip} |
| else |
| : ${LDOPTIMIZE:=-Wl,--gc-sections -Wl,--as-needed} ${STRIP:=strip -s -R .note* -R .comment} |
| # LDASNEEDED="-Wl,--as-needed" # must go at end of compiler command line |
| fi |