changeset 12586:a31a6238f2a3 draft

(svn r17026) -Fix [FS#3076]: "[bd]ash"-ism in configure
author rubidium <rubidium@openttd.org>
date Sat, 01 Aug 2009 16:57:30 +0000
parents 25900cef760d
children 4b825b4a26a6
files config.lib configure
diffstat 2 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/config.lib
+++ b/config.lib
@@ -1434,7 +1434,9 @@
 	# 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
--- a/configure
+++ b/configure
@@ -86,7 +86,7 @@
 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 @@
 			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