Only use -fgnu89-inline if the compiler actually supports it.
authorBen Pfaff <blp@gnu.org>
Sat, 4 Oct 2008 03:59:44 +0000 (20:59 -0700)
committerBen Pfaff <blp@gnu.org>
Sat, 4 Oct 2008 04:01:57 +0000 (21:01 -0700)
Jason Stover pointed out that we were using -fgnu89-inline even when the
compiler didn't support it.  Obviously that's not good.

acinclude.m4

index 728359ec46a30d317d70ab32ea844bc2e16a7c25..75fcb0d023d5e547b559afa9e7c9bf6a82f85694 100644 (file)
@@ -70,10 +70,10 @@ AC_DEFUN([PSPP_LIBPLOT],
   fi
 ])
 
-dnl Check whether a C compiler option is accepted.
-dnl If so, add it to CFLAGS.
-dnl Example: PSPP_ENABLE_OPTION(-Wdeclaration-after-statement)
-AC_DEFUN([PSPP_ENABLE_OPTION],
+dnl PSPP_CHECK_CC_OPTION([OPTION], [ACTION-IF-ACCEPTED], [ACTION-IF-REJECTED])
+dnl Check whether the given C compiler OPTION is accepted.
+dnl If so, execute ACTION-IF-ACCEPTED, otherwise ACTION-IF-REJECTED.
+AC_DEFUN([PSPP_CHECK_CC_OPTION],
 [
   m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-], [_])])dnl
   AC_CACHE_CHECK([whether $CC accepts $1], [pspp_cv_name], 
@@ -82,10 +82,19 @@ AC_DEFUN([PSPP_ENABLE_OPTION],
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,)], [pspp_cv_name[]=yes], [pspp_cv_name[]=no])
      CFLAGS="$pspp_save_CFLAGS"])
   if test $pspp_cv_name = yes; then
-    CFLAGS="$CFLAGS $1"
+    m4_if([$2], [], [;], [$2])
+  else
+    m4_if([$3], [], [:], [$3])
   fi
 ])
 
+dnl PSPP_ENABLE_OPTION([OPTION])
+dnl Check whether the given C compiler OPTION is accepted.
+dnl If so, add it to CFLAGS.
+dnl Example: PSPP_ENABLE_OPTION([-Wdeclaration-after-statement])
+AC_DEFUN([PSPP_ENABLE_OPTION], 
+  [PSPP_CHECK_CC_OPTION([$1], [CFLAGS="$CFLAGS $1"])])
+
 dnl Check for readline and history libraries.
 
 dnl Modified for PSPP, based on readline.m4 serial 3 from
@@ -258,17 +267,19 @@ AC_DEFUN([PSPP_GSL_NEEDS_FGNU89_INLINE],
  # make sure that it has run by the time we run this test, otherwise we'll
  # get a false result.
  AC_REQUIRE([gl_INLINE])
- AC_CACHE_CHECK([whether GSL needs -fgnu89-inline to link],
-                pspp_cv_gsl_needs_fgnu89_inline, [
-               PSPP_LINK2_IFELSE(
-                 [AC_LANG_PROGRAM([#include <gsl/gsl_math.h>
-                                   ], [GSL_MAX_INT(1,2);])],
-                  [AC_LANG_SOURCE([#include <gsl/gsl_math.h>
-                                   void x (void) {}])],
-                  [pspp_cv_gsl_needs_fgnu89_inline=no],
-                 [pspp_cv_gsl_needs_fgnu89_inline=yes])])
- if test "$pspp_cv_gsl_needs_fgnu89_inline" = "yes"; then
-     CFLAGS="$CFLAGS -fgnu89-inline"
- fi
+ PSPP_CHECK_CC_OPTION(
+   [-fgnu89-inline],
+   [AC_CACHE_CHECK([whether GSL needs -fgnu89-inline to link],
+                   pspp_cv_gsl_needs_fgnu89_inline, [
+                   PSPP_LINK2_IFELSE(
+                     [AC_LANG_PROGRAM([#include <gsl/gsl_math.h>
+                                      ], [GSL_MAX_INT(1,2);])],
+                     [AC_LANG_SOURCE([#include <gsl/gsl_math.h>
+                                      void x (void) {}])],
+                     [pspp_cv_gsl_needs_fgnu89_inline=no],
+                     [pspp_cv_gsl_needs_fgnu89_inline=yes])])
+     if test "$pspp_cv_gsl_needs_fgnu89_inline" = "yes"; then
+        CFLAGS="$CFLAGS -fgnu89-inline"
+     fi])
 ])
 dnl acinclude.m4 ends here