📄 ax_cflags_gcc_option.m4
字号:
dnl @synopsis AX_CFLAGS_GCC_OPTION (optionflag [,[shellvar][,[A][,[NA]]])dnldnl AX_CFLAGS_GCC_OPTION(-fvomit-frame) would show a message as likednl "checking CFLAGS for gcc -fvomit-frame ... yes" and addsdnl the optionflag to CFLAGS if it is understood. You can overridednl the shellvar-default of CFLAGS of course. The order of argumentsdnl stems from the explicit macros like AX_CFLAGS_WARN_ALL.dnldnl The cousin AX_CXXFLAGS_GCC_OPTION would check for an option to adddnl to CXXFLAGS - and it uses the autoconf setup for C++ instead of Cdnl (since it is possible to use different compilers for C and C++).dnldnl The macro is a lot simpler than any special AX_CFLAGS_* macro (ordnl ac_cxx_rtti.m4 macro) but allows to check for arbitrary options.dnl However, if you use this macro in a few places, it would be greatdnl if you would make up a new function-macro and submit it to thednl ac-archive.dnldnl - $1 option-to-check-for : required ("-option" as non-value)dnl - $2 shell-variable-to-add-to : CFLAGS (or CXXFLAGS in the other case)dnl - $3 action-if-found : add value to shellvariablednl - $4 action-if-not-found : nothingdnldnl note: in earlier versions, $1-$2 were swapped. We try to detect thednl situation and accept a $2=~/-/ as being the old option-to-check-for.dnldnl also: there are other variants that emerged from the original macrodnl variant which did just test an option to be possibly added. However,dnl some compilers accept an option silently, or possibly for justdnl another option that was not intended. Therefore, we have to do adnl generic test for a compiler family. For gcc we check "-pedantic"dnl being accepted which is also understood by compilers who just wantdnl to be compatible with gcc even when not being made from gcc sources.dnldnl see also:dnl AX_CFLAGS_SUN_OPTION AX_CFLAGS_HPUX_OPTIONdnl AX_CFLAGS_AIX_OPTION AX_CFLAGS_IRIX_OPTIONdnldnl @, tested, experimentaldnl @version $Id: ax_cflags_gcc_option.m4,v 1.1 2006/01/14 22:47:08 robilad Exp $dnl @author Guido Draheim <guidod@gmx.de>dnlAC_DEFUN([AX_CFLAGS_GCC_OPTION_OLD], [dnlAS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnlAS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$2])dnlAC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS"for ac_arg dnlin "-pedantic % m4_ifval($2,$2,-option)" dnl GCC #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_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 ]) ;;esacAS_VAR_POPDEF([VAR])dnlAS_VAR_POPDEF([FLAGS])dnl])dnl the only difference - the LANG selection... and the default FLAGSAC_DEFUN([AX_CXXFLAGS_GCC_OPTION_OLD], [dnlAS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnlAS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$2])dnlAC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CXX ac_save_[]FLAGS="$[]FLAGS"for ac_arg dnlin "-pedantic % m4_ifval($2,$2,-option)" dnl GCC #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_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 ]) ;;esacAS_VAR_POPDEF([VAR])dnlAS_VAR_POPDEF([FLAGS])dnl])dnl -------------------------------------------------------------------------AC_DEFUN([AX_CFLAGS_GCC_OPTION_NEW], [dnlAS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnlAS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$1])dnlAC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS"for ac_arg dnlin "-pedantic % m4_ifval($1,$1,-option)" dnl GCC #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_ifvaln($3,$3,[ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" fi ]) ;;esacAS_VAR_POPDEF([VAR])dnlAS_VAR_POPDEF([FLAGS])dnl])dnl the only difference - the LANG selection... and the default FLAGSAC_DEFUN([AX_CXXFLAGS_GCC_OPTION_NEW], [dnlAS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnlAS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$1])dnlAC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CXX ac_save_[]FLAGS="$[]FLAGS"for ac_arg dnlin "-pedantic % m4_ifval($1,$1,-option)" dnl GCC #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_ifvaln($3,$3,[ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"]) m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR" fi ]) ;;esacAS_VAR_POPDEF([VAR])dnlAS_VAR_POPDEF([FLAGS])dnl])AC_DEFUN([AX_CFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,[AX_CFLAGS_GCC_OPTION_NEW($@)],[AX_CFLAGS_GCC_OPTION_OLD($@)])])AC_DEFUN([AX_CXXFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,[AX_CXXFLAGS_GCC_OPTION_NEW($@)],[AX_CXXFLAGS_GCC_OPTION_OLD($@)])])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -