From b9cae21853934cf294e5c02f7fe005d7494f4156 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 18 Nov 2021 01:35:51 -0600 Subject: [PATCH] Remove scripts/single.sh depedency on existing defconfig for global symbols. It'll use it if there, but creates its own defconfig in .singleconfig if not, thus using default values. --- scripts/single.sh | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/scripts/single.sh b/scripts/single.sh index ba30441f..023ccea6 100755 --- a/scripts/single.sh +++ b/scripts/single.sh @@ -2,26 +2,24 @@ # Build a standalone toybox command -if [ -z "$1" ] -then - echo "usage: single.sh command..." >&2 - exit 1 -fi +[ -z "$1" ] && { echo "usage: single.sh command..." >&2; exit 1; } # Add trailing / to PREFIX when it's set but hasn't got one [ "$PREFIX" == "${PREFIX%/}" ] && PREFIX="${PREFIX:+$PREFIX/}" -# Harvest TOYBOX_* symbols from .config +# Harvest TOYBOX_* symbols from .config, or fresh defconfig if none +export KCONFIG_CONFIG if [ ! -e ${KCONFIG_CONFIG:=.config} ] then - echo "Need $KCONFIG_CONFIG for toybox global settings. Run defconfig/menuconfig." >&2 - exit 1 + KCONFIG_CONFIG=.singleconfig + make defconfig +else + # Force dependencies to rebuild headers if we build multiplexer after this. + touch "$KCONFIG_CONFIG" fi +GLOBDEP="$(sed -n 's/CONFIG_\(TOYBOX_[^=]*\)=y/\1/p' "$KCONFIG_CONFIG")" +KCONFIG_CONFIG=.singleconfig -# Force dependencies to rebuild headers if we build multiplexer after this. -touch -c "$KCONFIG_CONFIG" - -SINGLE_CONFIG=.singleconfig for i in "$@" do echo -n "$i:" @@ -33,10 +31,9 @@ do exit 1 fi - KCONFIG_CONFIG="$SINGLE_CONFIG" make allnoconfig > /dev/null || exit 1 + make allnoconfig > /dev/null || exit 1 - DEPENDS= - MPDEL= + unset DEPENDS MPDEL if [ "$i" == sh ] then DEPENDS="$(sed -n 's/USE_\([^(]*\)(NEWTOY([^,]*,.*TOYFLAG_MAYFORK.*/\1/p' toys/*/*.c)" @@ -45,13 +42,13 @@ do fi # Enable stuff this command depends on - DEPENDS="$({ echo $DEPENDS; sed -n "/^config *$i"'$/,/^$/{s/^[ \t]*depends on //;T;s/[!][A-Z0-9_]*//g;s/ *&& */|/g;p}' $TOYFILE; sed -n 's/CONFIG_\(TOYBOX_[^=]*\)=y/\1/p' "$KCONFIG_CONFIG";}| xargs | tr ' ' '|')" + DEPENDS="$({ echo $DEPENDS $GLOBDEP; sed -n "/^config *$i"'$/,/^$/{s/^[ \t]*depends on //;T;s/[!][A-Z0-9_]*//g;s/ *&& */|/g;p}' $TOYFILE;}| xargs | tr ' ' '|')" NAME=$(echo $i | tr a-z- A-Z_) sed -ri -e "$MPDEL" \ -e "s/# (CONFIG_($NAME|${NAME}_.*${DEPENDS:+|$DEPENDS})) is not set/\1=y/" \ - "$SINGLE_CONFIG" || exit 1 + "$KCONFIG_CONFIG" || exit 1 export OUTNAME="$PREFIX$i" rm -f "$OUTNAME" && - KCONFIG_CONFIG="$SINGLE_CONFIG" scripts/make.sh || exit 1 + scripts/make.sh || exit 1 done -- 2.39.2