AX_CFLAGS_IRIX_OPTION (optionflag [,[shellvar][,[A][,[NA]]]) ,
2006年10月13日
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
cryp.to ac-archive's C Support (released)
AX_CFLAGS_IRIX_OPTION(-go_for_it) would show a message as like "checking CFLAGS for irix/cc -go_for_it ... yes" and adds the optionflag to CFLAGS if it is understood. You can override the shellvar-default of CFLAGS of course. The order of arguments stems from the explicit macros like AX_CFLAGS_WARN_ALL.
The cousin AX_CXXFLAGS_IRIX_OPTION would check for an option to add to CXXFLAGS - and it uses the autoconf setup for C++ instead of C (since it is possible to use different compilers for C and C++).
The macro is a lot simpler than any special AX_CFLAGS_* macro (or ac_cxx_rtti.m4 macro) but allows to check for arbitrary options. However, if you use this macro in a few places, it would be great if you would make up a new function-macro and submit it to the ac-archive.
- 1ドル option-to-check-for : required ("-option" as non-value)
- 2ドル shell-variable-to-add-to : CFLAGS (or CXXFLAGS in the other case)
- 3ドル action-if-found : add value to shellvariable
- 4ドル action-if-not-found : nothing
note: in earlier versions, 1ドル-2ドル were swapped. We try to detect the situation and accept a 2ドル=~/-/ as being the old option-to-check-for.
see also: AX_CFLAGS_GCC_OPTION for the widely used original variant.
AC_DEFUN([AX_CFLAGS_IRIX_OPTION_OLD], [dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_irix_option_2ドル])dnl AC_CACHE_CHECK([m4_ifval(1,ドル1,ドルFLAGS) for irix/cc m4_ifval(2,ドル2,ドル-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-fullwarn -use_readonly_const % m4_ifval(2,ドル2,ドル-option)" dnl IRIX C # 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 ]) ;; 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_IRIX_OPTION_OLD], [dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_irix_option_2ドル])dnl AC_CACHE_CHECK([m4_ifval(1,ドル1,ドルFLAGS) for irix/cc m4_ifval(2,ドル2,ドル-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CXX ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-fullwarn -use_readonly_const % m4_ifval(2,ドル2,ドル-option)" dnl IRIX C # 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 ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl -------------------------------------------------------------------------- AC_DEFUN([AX_CFLAGS_IRIX_OPTION_NEW], [dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_irix_option_1ドル])dnl AC_CACHE_CHECK([m4_ifval(2,ドル2,ドルFLAGS) for irix/cc m4_ifval(1,ドル1,ドル-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-fullwarn -use_readonly_const % m4_ifval(1,ドル1,ドル-option)" dnl IRIX C # 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 ]) ;; 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_IRIX_OPTION_NEW], [dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_irix_option_1ドル])dnl AC_CACHE_CHECK([m4_ifval(2,ドル2,ドルFLAGS) for irix/cc m4_ifval(1,ドル1,ドル-option)], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CXX ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-fullwarn -use_readonly_const % m4_ifval(1,ドル1,ドル-option)" dnl IRIX C # 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 ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) AC_DEFUN([AX_CFLAGS_IRIX_OPTION],[ifelse(m4_regexp([2ドル],[-]),-1, [AX_CFLAGS_IRIX_OPTION_NEW($@)],[AX_CFLAGS_IRIX_OPTION_OLD($@)])]) AC_DEFUN([AX_CXXFLAGS_IRIX_OPTION],[ifelse(m4_regexp([2ドル],[-]),-1, [AX_CXXFLAGS_IRIX_OPTION_NEW($@)],[AX_CXXFLAGS_IRIX_OPTION_OLD($@)])])