diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-23 05:22:53 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-23 05:22:53 +0000 |
commit | a56b1bc27b70d2ce609a456043b05161a20a1082 (patch) | |
tree | 92ab735338ba5d59053bd7e774e60a0a852624d2 | |
parent | 9a8d0e83c0bb5501185ecb3f080f448a908fc874 (diff) | |
download | ruby-a56b1bc27b70d2ce609a456043b05161a20a1082.tar.gz |
* configure.in (warnflags): use -Wextra only when
-Wno-missing-field-initializers is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | configure.in | 32 |
2 files changed, 26 insertions, 11 deletions
@@ -1,4 +1,7 @@ -Fri Oct 23 14:06:10 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> +Fri Oct 23 14:22:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * configure.in (warnflags): use -Wextra only when + -Wno-missing-field-initializers is available. * configure.in (optflags): removed -fomit-frame-pointer by default. diff --git a/configure.in b/configure.in index 73b92995ba..db5ff50db5 100644 --- a/configure.in +++ b/configure.in @@ -387,19 +387,31 @@ AC_SUBST(CHDIR) dnl } dnl compiler section { -if test "$GCC:${warnflags+set}:no" = yes::no; then +AC_DEFUN(RUBY_TRY_CFLAGS, [ save_CFLAGS="$CFLAGS" - for wflag in -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings \ + CFLAGS="[$]CFLAGS $1" + AC_MSG_CHECKING([whether ]$1[ is accepted]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [$2 + AC_MSG_RESULT(yes)], + [$3 + AC_MSG_RESULT(no)]) + CFLAGS="$save_CFLAGS" + save_CFLAGS= +]) + +if test "$GCC:${warnflags+set}:no" = yes::no; then + for wflag in -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings \ -Wno-missing-field-initializers -Wshorten-64-to-32; do - CFLAGS="$CFLAGS $wflag" - AC_MSG_CHECKING([whether $wflag is accepted]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], - [warnflags="${warnflags+$warnflags }$wflag" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + RUBY_TRY_CFLAGS($wflag, [warnflags="${warnflags+$warnflags }$wflag"]) done - CFLAGS="$save_CFLAGS" - unset save_CFLAGS + case " $warnflags " in + when(*" -Wno-missing-field-initializers "*) + wflag=-Wextra;; + when(*) + wflag=-Wall;; + esac + RUBY_TRY_CFLAGS($wflag, [warnflags="$wflag${warnflags+ $warnflags}"]) fi test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" && eval CFLAGS="\"$cflags $ARCH_FLAG\"" |