You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

212 lines
8.1 KiB

  1. # ===========================================================================
  2. # http://www.gnu.org/software/autoconf-archive/ax_cflags_sun_option.html
  3. # ===========================================================================
  4. #
  5. # SYNOPSIS
  6. #
  7. # AX_CFLAGS_SUN_OPTION (optionflag [,[shellvar][,[A][,[NA]]])
  8. #
  9. # DESCRIPTION
  10. #
  11. # AX_CFLAGS_SUN_OPTION(+xtreme) would show a message as like "checking
  12. # CFLAGS for sun/cc +xtreme ... yes" and adds the optionflag to CFLAGS if
  13. # it is understood. You can override the shellvar-default of CFLAGS of
  14. # course. The order of arguments stems from the explicit macros like
  15. # AX_CFLAGS_WARN_ALL.
  16. #
  17. # The cousin AX_CXXFLAGS_SUN_OPTION would check for an option to add to
  18. # CXXFLAGS - and it uses the autoconf setup for C++ instead of C (since it
  19. # is possible to use different compilers for C and C++).
  20. #
  21. # The macro is a lot simpler than any special AX_CFLAGS_* macro (or
  22. # ax_cxx_rtti.m4 macro) but allows to check for arbitrary options.
  23. # However, if you use this macro in a few places, it would be great if you
  24. # would make up a new function-macro and submit it to the ac-archive.
  25. #
  26. # - $1 option-to-check-for : required ("-option" as non-value)
  27. # - $2 shell-variable-to-add-to : CFLAGS (or CXXFLAGS in the other case)
  28. # - $3 action-if-found : add value to shellvariable
  29. # - $4 action-if-not-found : nothing
  30. #
  31. # note: in earlier versions, $1-$2 were swapped. We try to detect the
  32. # situation and accept a $2=~/-/ as being the old option-to-check-for.
  33. #
  34. # see also: AX_CFLAGS_GCC_OPTION for the widely used original variant.
  35. #
  36. # LICENSE
  37. #
  38. # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
  39. #
  40. # This program is free software; you can redistribute it and/or modify it
  41. # under the terms of the GNU General Public License as published by the
  42. # Free Software Foundation; either version 2 of the License, or (at your
  43. # option) any later version.
  44. #
  45. # This program is distributed in the hope that it will be useful, but
  46. # WITHOUT ANY WARRANTY; without even the implied warranty of
  47. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
  48. # Public License for more details.
  49. #
  50. # You should have received a copy of the GNU General Public License along
  51. # with this program. If not, see <http://www.gnu.org/licenses/>.
  52. #
  53. # As a special exception, the respective Autoconf Macro's copyright owner
  54. # gives unlimited permission to copy, distribute and modify the configure
  55. # scripts that are the output of Autoconf when processing the Macro. You
  56. # need not follow the terms of the GNU General Public License when using
  57. # or distributing such scripts, even though portions of the text of the
  58. # Macro appear in them. The GNU General Public License (GPL) does govern
  59. # all other use of the material that constitutes the Autoconf Macro.
  60. #
  61. # This special exception to the GPL applies to versions of the Autoconf
  62. # Macro released by the Autoconf Archive. When you make and distribute a
  63. # modified version of the Autoconf Macro, you may extend this special
  64. # exception to the GPL to apply to your modified version as well.
  65. #serial 7
  66. AC_DEFUN([AX_CFLAGS_SUN_OPTION_OLD], [dnl
  67. AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
  68. AS_VAR_PUSHDEF([VAR],[ax_cv_cflags_sun_option_$2])dnl
  69. AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for sun/cc m4_ifval($2,$2,-option)],
  70. VAR,[AS_VAR_SET([VAR],["no, unknown"])
  71. AC_LANG_SAVE
  72. AC_LANG_C
  73. ac_save_[]FLAGS="$[]FLAGS"
  74. for ac_arg dnl
  75. in "+xstrconst -Xc % m4_ifval($2,$2,-option)" dnl Solaris C
  76. #
  77. do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
  78. AC_TRY_COMPILE([],[return 0;],
  79. [AS_VAR_SET([VAR],[`echo $ac_arg | sed -e 's,.*% *,,'`]); break])
  80. done
  81. FLAGS="$ac_save_[]FLAGS"
  82. AC_LANG_RESTORE
  83. ])
  84. m4_ifdef([AS_VAR_COPY],[AS_VAR_COPY([var],[VAR])],[var=AS_VAR_GET([VAR])])
  85. case ".$var" in
  86. .ok|.ok,*) m4_ifvaln($3,$3) ;;
  87. .|.no|.no,*) m4_ifvaln($4,$4) ;;
  88. *) m4_ifvaln($3,$3,[
  89. if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $var " 2>&1 >/dev/null
  90. then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $var])
  91. else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $var"])
  92. m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $var"
  93. fi ]) ;;
  94. esac
  95. AS_VAR_POPDEF([VAR])dnl
  96. AS_VAR_POPDEF([FLAGS])dnl
  97. ])
  98. dnl the only difference - the LANG selection... and the default FLAGS
  99. AC_DEFUN([AX_CXXFLAGS_SUN_OPTION_OLD], [dnl
  100. AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
  101. AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_sun_option_$2])dnl
  102. AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for sun/cc m4_ifval($2,$2,-option)],
  103. VAR,[AS_VAR_SET([VAR],["no, unknown"])
  104. AC_LANG_SAVE
  105. AC_LANG_CPLUSPLUS
  106. ac_save_[]FLAGS="$[]FLAGS"
  107. for ac_arg dnl
  108. in "+xstrconst -Xc % m4_ifval($2,$2,-option)" dnl Solaris C
  109. #
  110. do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
  111. AC_TRY_COMPILE([],[return 0;],
  112. [AS_VAR_SET([VAR],[`echo $ac_arg | sed -e 's,.*% *,,'`]); break])
  113. done
  114. FLAGS="$ac_save_[]FLAGS"
  115. AC_LANG_RESTORE
  116. ])
  117. m4_ifdef([AS_VAR_COPY],[AS_VAR_COPY([var],[VAR])],[var=AS_VAR_GET([VAR])])
  118. case ".$var" in
  119. .ok|.ok,*) m4_ifvaln($3,$3) ;;
  120. .|.no|.no,*) m4_ifvaln($4,$4) ;;
  121. *) m4_ifvaln($3,$3,[
  122. if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $var " 2>&1 >/dev/null
  123. then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $var])
  124. else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $var"])
  125. m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $var"
  126. fi ]) ;;
  127. esac
  128. AS_VAR_POPDEF([VAR])dnl
  129. AS_VAR_POPDEF([FLAGS])dnl
  130. ])
  131. dnl -----------------------------------------------------------------------
  132. AC_DEFUN([AX_CFLAGS_SUN_OPTION_NEW], [dnl
  133. AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
  134. AS_VAR_PUSHDEF([VAR],[ax_cv_cflags_sun_option_$1])dnl
  135. AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for sun/cc m4_ifval($1,$1,-option)],
  136. VAR,[AS_VAR_SET([VAR],["no, unknown"])
  137. AC_LANG_SAVE
  138. AC_LANG_C
  139. ac_save_[]FLAGS="$[]FLAGS"
  140. for ac_arg dnl
  141. in "+xstrconst -Xc % m4_ifval($1,$1,-option)" dnl Solaris C
  142. #
  143. do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
  144. AC_TRY_COMPILE([],[return 0;],
  145. [AS_VAR_SET([VAR],[`echo $ac_arg | sed -e 's,.*% *,,'`]); break])
  146. done
  147. FLAGS="$ac_save_[]FLAGS"
  148. AC_LANG_RESTORE
  149. ])
  150. m4_ifdef([AS_VAR_COPY],[AS_VAR_COPY([var],[VAR])],[var=AS_VAR_GET([VAR])])
  151. case ".$var" in
  152. .ok|.ok,*) m4_ifvaln($3,$3) ;;
  153. .|.no|.no,*) m4_ifvaln($4,$4) ;;
  154. *) m4_ifvaln($3,$3,[
  155. if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $var " 2>&1 >/dev/null
  156. then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $var])
  157. else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $var"])
  158. m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $var"
  159. fi ]) ;;
  160. esac
  161. AS_VAR_POPDEF([VAR])dnl
  162. AS_VAR_POPDEF([FLAGS])dnl
  163. ])
  164. dnl the only difference - the LANG selection... and the default FLAGS
  165. AC_DEFUN([AX_CXXFLAGS_SUN_OPTION_NEW], [dnl
  166. AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
  167. AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_sun_option_$1])dnl
  168. AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for sun/cc m4_ifval($1,$1,-option)],
  169. VAR,[AS_VAR_SET([VAR],["no, unknown"])
  170. AC_LANG_SAVE
  171. AC_LANG_CPLUSPLUS
  172. ac_save_[]FLAGS="$[]FLAGS"
  173. for ac_arg dnl
  174. in "+xstrconst -Xc % m4_ifval($1,$1,-option)" dnl Solaris C
  175. #
  176. do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
  177. AC_TRY_COMPILE([],[return 0;],
  178. [AS_VAR_SET([VAR],[`echo $ac_arg | sed -e 's,.*% *,,'`]); break])
  179. done
  180. FLAGS="$ac_save_[]FLAGS"
  181. AC_LANG_RESTORE
  182. ])
  183. m4_ifdef([AS_VAR_COPY],[AS_VAR_COPY([var],[VAR])],[var=AS_VAR_GET([VAR])])
  184. case ".$var" in
  185. .ok|.ok,*) m4_ifvaln($3,$3) ;;
  186. .|.no|.no,*) m4_ifvaln($4,$4) ;;
  187. *) m4_ifvaln($3,$3,[
  188. if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $var " 2>&1 >/dev/null
  189. then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $var])
  190. else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $var"])
  191. m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $var"
  192. fi ]) ;;
  193. esac
  194. AS_VAR_POPDEF([VAR])dnl
  195. AS_VAR_POPDEF([FLAGS])dnl
  196. ])
  197. AC_DEFUN([AX_CFLAGS_SUN_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,
  198. [AX_CFLAGS_SUN_OPTION_NEW($@)],[AX_CFLAGS_SUN_OPTION_OLD($@)])])
  199. AC_DEFUN([AX_CXXFLAGS_SUN_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,
  200. [AX_CXXFLAGS_SUN_OPTION_NEW($@)],[AX_CXXFLAGS_SUN_OPTION_OLD($@)])])