From 305f923b438c4244c49d10b115e23ef62440406c Mon Sep 17 00:00:00 2001 From: terencehill Date: Sat, 17 Jul 2010 17:02:06 +0200 Subject: [PATCH] Fix compile command to handle correctly the optional argument In case the first arg (eventually after -c|-n): - it's an empty string "" just skip it (default clients will be used). - doesn't contain any valid client, then assume it's not a client option but a generic option. - contains at least one valid client, then compile valid ones and warn about invalid ones. Now finally ./all compile -n FTEQCCFLAGS_WATERMARK= works :) --- all | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/all b/all index bb0fa483..4fa99d1a 100755 --- a/all +++ b/all @@ -457,22 +457,37 @@ case "$cmd" in cleanqc=true # version info ;; esac - if [ -n "$1" ]; then + if [ $# -gt 0 ] && [ x"$1" = x"" ]; then + # if we give the command make the arg "", it will surely fail (invalid filename), + # so better handle it as an empty client option + BAD_TARGETS=" " + shift + elif [ -n "$1" ]; then + BAD_TARGETS= + TARGETS_SAVE=$TARGETS TARGETS= for X in $1; do case "$X" in sdl) - TARGETS="sdl-debug $TARGETS" + TARGETS="$TARGETS sdl-debug" ;; glx|agl|wgl) - TARGETS="cl-debug $TARGETS" + TARGETS="$TARGETS cl-debug" ;; dedicated) - TARGETS="sv-debug $TARGETS" + TARGETS="$TARGETS sv-debug" + ;; + *) + BAD_TARGETS="$BAD_TARGETS $X" ;; esac done - shift + if [ "$TARGETS" ]; then # at least a valid client + shift + else # no valid client, let's assume this option is not meant to be a client then + TARGETS=$TARGETS_SAVE + BAD_TARGETS= + fi fi if [ -z "$MAKEFLAGS" ]; then if [ -f /proc/cpuinfo ]; then @@ -504,12 +519,18 @@ case "$cmd" in verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS enter "$d0/darkplaces" verbose + if [ x"$BAD_TARGETS" = x" " ]; then + echo "Warning: invalid empty client, default clients will be used." + fi if $cleandp; then verbose make $MAKEFLAGS clean fi for T in $TARGETS; do verbose make $MAKEFLAGS "$@" "$T" done + for T in $BAD_TARGETS; do + echo "Warning: discarded invalid client $T." + done verbose "$SELF" update-maps ;; -- 2.39.2