AX_CFLAGS_WARN_ALL_ANSI [(shellvar [,default, [A/NA]])] ,
2006年12月12日
Guido U. Draheim <guidod@gmx.de>
GPLWithACException
This program is free software; you can
redistribute it and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation. As a special exception, the respective
Autoconf Macro's copyright owner gives unlimited permission to copy, distribute and modify
the configure scripts that are the output of Autoconf when processing the Macro. You
need not follow the terms of the
GNU General Public License when using or distributing such scripts
guidod's C Support (released)
Try to find a compiler option that enables most reasonable warnings. This macro is directly derived from VL_PROG_CC_WARNINGS which is split up into two AX_CFLAGS_WARN_ALL and AX_CFLAGS_WARN_ALL_ANSI
For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The result is added to the shellvar being CFLAGS by default.
Currently this macro knows about GCC, Solaris C compiler, Digital Unix C compiler, C for AIX Compiler, HP-UX C compiler, IRIX C compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos 10.0.0.8) C compiler.
- 1ドル shell-variable-to-add-to : CFLAGS
- 2ドル add-value-if-not-found : nothing
- 3ドル action-if-found : add value to shellvariable
- 4ドル action-if-not-found : nothing
AC_DEFUN([AX_CFLAGS_WARN_ALL_ANSI],[dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all_ansi])dnl AC_CACHE_CHECK([m4_ifval(1,ドル1,ドルFLAGS) for maximum ansi warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" # IRIX C compiler: # -use_readonly_const is the default for IRIX C, # puts them into .rodata, but they are copied later. # need to be "-G0 -rdatashared" for strictmode but # I am not sure what effect that has really. - guidod for ac_arg dnl in "-pedantic % -Wall -ansi -pedantic" dnl GCC "-xstrconst % -v -Xc" dnl Solaris C "-std1 % -verbose -w0 -warnprotos -std1" dnl Digital Unix " % -qlanglvl=ansi -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX " % -ansi -ansiE -fullwarn" dnl IRIX "+ESlit % +w1 -Aa" dnl HP-UX C "-Xc % -pvctl[,]fullmsg -Xc" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2 -h conform" 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_ANSI],[dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_warn_all_ansi])dnl AC_CACHE_CHECK([m4_ifval(1,ドル1,ドルFLAGS) for maximum ansi warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_[]FLAGS="$[]FLAGS" # IRIX C compiler: # -use_readonly_const is the default for IRIX C, # puts them into .rodata, but they are copied later. # need to be "-G0 -rdatashared" for strictmode but # I am not sure what effect that has really. - guidod for ac_arg dnl in "-pedantic % -Wall -ansi -pedantic" dnl GCC "-xstrconst % -v -Xc" dnl Solaris C "-std1 % -verbose -w0 -warnprotos -std1" dnl Digital Unix " % -qlanglvl=ansi -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX " % -ansi -ansiE -fullwarn" dnl IRIX "+ESlit % +w1 -Aa" dnl HP-UX C "-Xc % -pvctl[,]fullmsg -Xc" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2 -h conform" 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 ])