# HG changeset patch # User rubidium # Date 2009-08-01 16:57:30 # Node ID 635f721eaad44cab132b1c88c59b06eb5fa04b31 # Parent 7a6d47e4fe35d338673f86524ef24f238a3e2192 (svn r17026) -Fix [FS#3076]: "[bd]ash"-ism in configure diff --git a/config.lib b/config.lib --- a/config.lib +++ b/config.lib @@ -1434,7 +1434,9 @@ make_cflags_and_ldflags() { # Also make makedepend aware of compiler's built-in defines. if [ "$with_makedepend" != "0" ] || [ "$enable_builtin_depend" != "0" ]; then cflags_makedep="`echo | $cxx_host -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`" - cflags_makedep="$cflags_makedep `echo "$CFLAGS" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`" + + # Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations + cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`" else makedepend="" fi diff --git a/configure b/configure --- a/configure +++ b/configure @@ -86,7 +86,7 @@ if [ ! -f "$LANG_DIR/english.txt" ]; the fi # Read the source.list and process it -SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk ' +AWKCOMMAND=' { } /^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; } /^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; } @@ -131,13 +131,17 @@ SRCS="`< $ROOT_DIR/source.list tr '\r' ' print $0; } } -' | $PIPE_SORT`" +' + +# Read the source.list and process it +# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations +SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | $PIPE_SORT`" -OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`" -OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`" -OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/ { gsub(".mm$", ".o", $0); print $0; }'`" -OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`" -SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`" +OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.c$/ { gsub(\".c$\", \".o\", $0); print $0; }'`" +OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.cpp$/ { gsub(\".cpp$\", \".o\", $0); print $0; }'`" +OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.mm$/ { gsub(\".mm$\", \".o\", $0); print $0; }'`" +OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.rc$/ { gsub(\".rc$\", \".o\", $0); print $0; }'`" +SRCS="` echo \"$SRCS\" | $awk ' { ORS = \" \" } { print $0; }'`" # In makefiles, we always use -u for sort if [ -z "$sort" ]; then