| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | dnl as-compiler-flag.m4 0.1.0 | 
 | 2 |  | 
 | 3 | dnl autostars m4 macro for detection of compiler flags | 
 | 4 |  | 
 | 5 | dnl David Schleef <ds@schleef.org> | 
 | 6 |  | 
 | 7 | dnl $Id: as-compiler-flag.m4,v 1.1 2005/12/15 23:35:19 ds Exp $ | 
 | 8 |  | 
 | 9 | dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) | 
 | 10 | dnl Tries to compile with the given CFLAGS. | 
 | 11 | dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, | 
 | 12 | dnl and ACTION-IF-NOT-ACCEPTED otherwise. | 
 | 13 |  | 
 | 14 | AC_DEFUN([AS_COMPILER_FLAG], | 
 | 15 | [ | 
 | 16 |   AC_MSG_CHECKING([to see if compiler understands $1]) | 
 | 17 |  | 
 | 18 |   save_CFLAGS="$CFLAGS" | 
 | 19 |   CFLAGS="$CFLAGS $1" | 
 | 20 |  | 
 | 21 |   AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) | 
 | 22 |   CFLAGS="$save_CFLAGS" | 
 | 23 |  | 
 | 24 |   if test "X$flag_ok" = Xyes ; then | 
 | 25 |     m4_ifvaln([$2],[$2]) | 
 | 26 |     true | 
 | 27 |   else | 
 | 28 |     m4_ifvaln([$3],[$3]) | 
 | 29 |     true | 
 | 30 |   fi | 
 | 31 |   AC_MSG_RESULT([$flag_ok]) | 
 | 32 | ]) | 
 | 33 |  | 
 | 34 | dnl AS_COMPILER_FLAGS(VAR, FLAGS) | 
 | 35 | dnl Tries to compile with the given CFLAGS. | 
 | 36 |  | 
 | 37 | AC_DEFUN([AS_COMPILER_FLAGS], | 
 | 38 | [ | 
 | 39 |   list=$2 | 
 | 40 |   flags_supported="" | 
 | 41 |   flags_unsupported="" | 
 | 42 |   AC_MSG_CHECKING([for supported compiler flags]) | 
 | 43 |   for each in $list | 
 | 44 |   do | 
 | 45 |     save_CFLAGS="$CFLAGS" | 
 | 46 |     CFLAGS="$CFLAGS $each" | 
 | 47 |     AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) | 
 | 48 |     CFLAGS="$save_CFLAGS" | 
 | 49 |  | 
 | 50 |     if test "X$flag_ok" = Xyes ; then | 
 | 51 |       flags_supported="$flags_supported $each" | 
 | 52 |     else | 
 | 53 |       flags_unsupported="$flags_unsupported $each" | 
 | 54 |     fi | 
 | 55 |   done | 
 | 56 |   AC_MSG_RESULT([$flags_supported]) | 
 | 57 |   if test "X$flags_unsupported" != X ; then | 
 | 58 |     AC_MSG_WARN([unsupported compiler flags: $flags_unsupported]) | 
 | 59 |   fi | 
 | 60 |   $1="$$1 $flags_supported" | 
 | 61 | ]) | 
 | 62 |  |