aboutsummaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2008-10-15 18:10:02 +0000
committerYang Tse <yangsita@gmail.com>2008-10-15 18:10:02 +0000
commitbe760bed7e544136eaa175f0fe58251da1ff6e41 (patch)
treee3920c485d2fe66920ece96bce0d1075e727b392 /m4
parent357383159e9840c65a850e738dd95cf5fc02d67b (diff)
Ensure that shell variable contents which have active meaning
to the shell echo command are not interpreted when trying to remove extra whitespace from shell variable content.
Diffstat (limited to 'm4')
-rw-r--r--m4/curl-compilers.m474
1 files changed, 58 insertions, 16 deletions
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index b97315f22..860db5200 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 33
+# serial 34
dnl CURL_CHECK_COMPILER
@@ -384,6 +384,7 @@ dnl headers from these locations, even though this is
dnl not reliable on ancient GNUC versions.
AC_DEFUN([CURL_CONVERT_INCLUDE_TO_ISYSTEM], [
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
tmp_has_include="no"
tmp_chg_FLAGS=$CFLAGS
for word1 in $tmp_chg_FLAGS; do
@@ -396,7 +397,8 @@ AC_DEFUN([CURL_CONVERT_INCLUDE_TO_ISYSTEM], [
if test "$tmp_has_include" = "yes"; then
tmp_chg_FLAGS=`echo $tmp_chg_FLAGS | sed 's/^-I/ -isystem /g'`
tmp_chg_FLAGS=`echo $tmp_chg_FLAGS | sed 's/ -I/ -isystem /g'`
- CFLAGS=`eval echo $tmp_chg_FLAGS`
+ CFLAGS="$tmp_chg_FLAGS"
+ squeeze CFLAGS
fi
tmp_has_include="no"
tmp_chg_FLAGS=$CPPFLAGS
@@ -410,7 +412,8 @@ AC_DEFUN([CURL_CONVERT_INCLUDE_TO_ISYSTEM], [
if test "$tmp_has_include" = "yes"; then
tmp_chg_FLAGS=`echo $tmp_chg_FLAGS | sed 's/^-I/ -isystem /g'`
tmp_chg_FLAGS=`echo $tmp_chg_FLAGS | sed 's/ -I/ -isystem /g'`
- CPPFLAGS=`eval echo $tmp_chg_FLAGS`
+ CPPFLAGS="$tmp_chg_FLAGS"
+ squeeze CPPFLAGS
fi
])
@@ -493,6 +496,7 @@ dnl options.
AC_DEFUN([CURL_SET_COMPILER_BASIC_OPTS], [
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
#
if test "$compiler_id" != "unknown"; then
#
@@ -621,13 +625,15 @@ AC_DEFUN([CURL_SET_COMPILER_BASIC_OPTS], [
#
esac
#
- tmp_CPPFLAGS=`eval echo $tmp_CPPFLAGS`
- tmp_CFLAGS=`eval echo $tmp_CFLAGS`
+ squeeze tmp_CPPFLAGS
+ squeeze tmp_CFLAGS
#
if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
AC_MSG_CHECKING([if compiler accepts some basic options])
- CPPFLAGS=`eval echo $tmp_save_CPPFLAGS $tmp_CPPFLAGS`
- CFLAGS=`eval echo $tmp_save_CFLAGS $tmp_CFLAGS`
+ CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
+ CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
+ squeeze CPPFLAGS
+ squeeze CFLAGS
CURL_COMPILER_WORKS_IFELSE([
AC_MSG_RESULT([yes])
AC_MSG_NOTICE([compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS])
@@ -652,6 +658,7 @@ dnl on configure's debug option.
AC_DEFUN([CURL_SET_COMPILER_DEBUG_OPTS], [
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
#
if test "$compiler_id" != "unknown"; then
#
@@ -673,8 +680,10 @@ AC_DEFUN([CURL_SET_COMPILER_DEBUG_OPTS], [
tmp_options="$flags_dbg_off"
fi
#
- CPPFLAGS=`eval echo $tmp_CPPFLAGS`
- CFLAGS=`eval echo $tmp_CFLAGS $tmp_options`
+ CPPFLAGS="$tmp_CPPFLAGS"
+ CFLAGS="$tmp_CFLAGS $tmp_options"
+ squeeze CPPFLAGS
+ squeeze CFLAGS
CURL_COMPILER_WORKS_IFELSE([
AC_MSG_RESULT([yes])
AC_MSG_NOTICE([compiler options added: $tmp_options])
@@ -698,6 +707,7 @@ dnl on configure's optimize option.
AC_DEFUN([CURL_SET_COMPILER_OPTIMIZE_OPTS], [
AC_REQUIRE([CURL_CHECK_OPTION_OPTIMIZE])dnl
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
#
if test "$compiler_id" != "unknown"; then
#
@@ -746,8 +756,10 @@ AC_DEFUN([CURL_SET_COMPILER_OPTIMIZE_OPTS], [
AC_MSG_CHECKING([if compiler accepts optimizer disabling options])
tmp_options="$flags_opt_off"
fi
- CPPFLAGS=`eval echo $tmp_CPPFLAGS`
- CFLAGS=`eval echo $tmp_CFLAGS $tmp_options`
+ CPPFLAGS="$tmp_CPPFLAGS"
+ CFLAGS="$tmp_CFLAGS $tmp_options"
+ squeeze CPPFLAGS
+ squeeze CFLAGS
CURL_COMPILER_WORKS_IFELSE([
AC_MSG_RESULT([yes])
AC_MSG_NOTICE([compiler options added: $tmp_options])
@@ -772,6 +784,7 @@ dnl configure's warnings given option.
AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
AC_REQUIRE([CURL_CHECK_OPTION_WARNINGS])dnl
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
#
if test "$compiler_id" != "unknown"; then
#
@@ -988,13 +1001,15 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
#
esac
#
- tmp_CPPFLAGS=`eval echo $tmp_CPPFLAGS`
- tmp_CFLAGS=`eval echo $tmp_CFLAGS`
+ squeeze tmp_CPPFLAGS
+ squeeze tmp_CFLAGS
#
if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then
AC_MSG_CHECKING([if compiler accepts strict warning options])
- CPPFLAGS=`eval echo $tmp_save_CPPFLAGS $tmp_CPPFLAGS`
- CFLAGS=`eval echo $tmp_save_CFLAGS $tmp_CFLAGS`
+ CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS"
+ CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
+ squeeze CPPFLAGS
+ squeeze CFLAGS
CURL_COMPILER_WORKS_IFELSE([
AC_MSG_RESULT([yes])
AC_MSG_NOTICE([compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS])
@@ -1011,6 +1026,28 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
])
+dnl CURL_SHFUNC_SQUEEZE
+dnl -------------------------------------------------
+dnl Declares a shell function squeeze() which removes
+dnl redundant whitespace out of a shell variable.
+
+AC_DEFUN([CURL_SHFUNC_SQUEEZE], [
+squeeze() {
+ _sqz_result=""
+ eval _sqz_input=\[$][$]1
+ for _sqz_token in $_sqz_input; do
+ if test -z "$_sqz_result"; then
+ _sqz_result="$_sqz_token"
+ else
+ _sqz_result="$_sqz_result $_sqz_token"
+ fi
+ done
+ eval [$]1=\$_sqz_result
+ return 0
+}
+])
+
+
dnl CURL_PROCESS_DEBUG_BUILD_OPTS
dnl -------------------------------------------------
dnl Settings which depend on configure's debug given
@@ -1019,10 +1056,12 @@ dnl Don't use this macro for compiler dependant stuff.
AC_DEFUN([CURL_PROCESS_DEBUG_BUILD_OPTS], [
AC_REQUIRE([CURL_CHECK_OPTION_DEBUG])dnl
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
#
if test "$want_debug" = "yes"; then
CPPFLAGS="$CPPFLAGS -DCURLDEBUG"
+ squeeze CPPFLAGS
fi
#
])
@@ -1086,6 +1125,7 @@ dnl as whitespace separated lists of words. Each word
dnl from VALUE is removed from VARNAME when present.
AC_DEFUN([CURL_VAR_STRIP], [
+ AC_REQUIRE([CURL_SHFUNC_SQUEEZE])dnl
ac_var_stripped=""
for word1 in $[$1]; do
ac_var_strip_word="no"
@@ -1099,5 +1139,7 @@ AC_DEFUN([CURL_VAR_STRIP], [
fi
done
dnl squeeze whitespace out of result
- [$1]=`eval echo $ac_var_stripped`
+ [$1]="$ac_var_stripped"
+ squeeze [$1]
])
+