Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Unix configure: add -Wdeclaration-after-statement by default in CFLAG…
…S to issue 'warning: ISO C90 forbids mixed declarations and code' with GCC, which means that compilation will fails with MSVC, so something that *MUST* be fixed
- Loading branch information
Showing
3 changed files
with
274 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
dnl @synopsis AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] | ||
dnl | ||
dnl Try to find a compiler option that enables most reasonable | ||
dnl warnings. This macro is directly derived from VL_PROG_CC_WARNINGS | ||
dnl which is split up into two AX_CFLAGS_WARN_ALL and | ||
dnl AX_CFLAGS_WARN_ALL_ANSI | ||
dnl | ||
dnl For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The | ||
dnl result is added to the shellvar being CFLAGS by default. | ||
dnl | ||
dnl Currently this macro knows about GCC, Solaris C compiler, Digital | ||
dnl Unix C compiler, C for AIX Compiler, HP-UX C compiler, IRIX C | ||
dnl compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos | ||
dnl 10.0.0.8) C compiler. | ||
dnl | ||
dnl - $1 shell-variable-to-add-to : CFLAGS | ||
dnl - $2 add-value-if-not-found : nothing | ||
dnl - $3 action-if-found : add value to shellvariable | ||
dnl - $4 action-if-not-found : nothing | ||
dnl | ||
dnl @category C | ||
dnl @author Guido Draheim <guidod@gmx.de> | ||
dnl @version 2003-01-06 | ||
dnl @license GPLWithACException | ||
|
||
AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl | ||
AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl | ||
AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl | ||
AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], | ||
VAR,[VAR="no, unknown" | ||
AC_LANG_SAVE | ||
AC_LANG(C) | ||
ac_save_[]FLAGS="$[]FLAGS" | ||
for ac_arg dnl | ||
in "-pedantic -Wdeclaration-after-statement % dnl | ||
-Wall -Wdeclaration-after-statement" dnl works since GCC version 3 | ||
"-pedantic % -Wall" dnl older GCC | ||
"-xstrconst % -v" dnl Solaris C | ||
"-std1 % -verbose -w0 -warnprotos" dnl Digital Unix | ||
"-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX | ||
"-ansi -ansiE % -fullwarn" dnl IRIX | ||
"+ESlit % +w1" dnl HP-UX C | ||
"-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) | ||
"-h conform % -h msglevel 2" dnl Cray C (Unicos) | ||
# | ||
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` | ||
AC_TRY_COMPILE([],[return 0;], | ||
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) | ||
done | ||
FLAGS="$ac_save_[]FLAGS" | ||
AC_LANG_RESTORE | ||
]) | ||
case ".$VAR" in | ||
.ok|.ok,*) m4_ifvaln($3,$3) ;; | ||
.|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ | ||
AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) | ||
m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; | ||
*) m4_ifvaln($3,$3,[ | ||
if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null | ||
then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) | ||
else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) | ||
m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" | ||
fi ]) ;; | ||
esac | ||
AS_VAR_POPDEF([VAR])dnl | ||
AS_VAR_POPDEF([FLAGS])dnl | ||
]) | ||
|
||
dnl the only difference - the LANG selection... and the default FLAGS | ||
|
||
AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl | ||
AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl | ||
AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_warn_all])dnl | ||
AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], | ||
VAR,[VAR="no, unknown" | ||
AC_LANG_SAVE | ||
AC_LANG(C++) | ||
ac_save_[]FLAGS="$[]FLAGS" | ||
for ac_arg dnl | ||
in "-pedantic % -Wall" dnl GCC | ||
"-xstrconst % -v" dnl Solaris C | ||
"-std1 % -verbose -w0 -warnprotos" dnl Digital Unix | ||
"-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX | ||
"-ansi -ansiE % -fullwarn" dnl IRIX | ||
"+ESlit % +w1" dnl HP-UX C | ||
"-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) | ||
"-h conform % -h msglevel 2" dnl Cray C (Unicos) | ||
# | ||
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` | ||
AC_TRY_COMPILE([],[return 0;], | ||
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) | ||
done | ||
FLAGS="$ac_save_[]FLAGS" | ||
AC_LANG_RESTORE | ||
]) | ||
case ".$VAR" in | ||
.ok|.ok,*) m4_ifvaln($3,$3) ;; | ||
.|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ | ||
AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) | ||
m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; | ||
*) m4_ifvaln($3,$3,[ | ||
if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null | ||
then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) | ||
else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) | ||
m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" | ||
fi ]) ;; | ||
esac | ||
AS_VAR_POPDEF([VAR])dnl | ||
AS_VAR_POPDEF([FLAGS])dnl | ||
]) | ||
|
||
dnl implementation tactics: | ||
dnl the for-argument contains a list of options. The first part of | ||
dnl these does only exist to detect the compiler - usually it is | ||
dnl a global option to enable -ansi or -extrawarnings. All other | ||
dnl compilers will fail about it. That was needed since a lot of | ||
dnl compilers will give false positives for some option-syntax | ||
dnl like -Woption or -Xoption as they think of it is a pass-through | ||
dnl to later compile stages or something. The "%" is used as a | ||
dnl delimimiter. A non-option comment can be given after "%%" marks. |