Commit | Line | Data |
---|---|---|
f240aacb LC |
1 | # inline.m4 serial 4 |
2 | dnl Copyright (C) 2006, 2009 Free Software Foundation, Inc. | |
d7014610 LC |
3 | dnl This file is free software; the Free Software Foundation |
4 | dnl gives unlimited permission to copy and/or distribute it, | |
5 | dnl with or without modifications, as long as this notice is preserved. | |
6 | ||
7 | dnl Test for the 'inline' keyword or equivalent. | |
8 | dnl Define 'inline' to a supported equivalent, or to nothing if not supported, | |
9 | dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an | |
10 | dnl equivalent is effectively supported, i.e. if the compiler is likely to | |
11 | dnl drop unused 'static inline' functions. | |
12 | AC_DEFUN([gl_INLINE], | |
13 | [ | |
14 | AC_REQUIRE([AC_C_INLINE]) | |
15 | AC_CACHE_CHECK([whether the compiler generally respects inline], | |
16 | [gl_cv_c_inline_effective], | |
17 | [if test $ac_cv_c_inline = no; then | |
18 | gl_cv_c_inline_effective=no | |
19 | else | |
20 | dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is | |
21 | dnl specified. | |
22 | dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result | |
23 | dnl depends on optimization flags, which can be in CFLAGS. | |
24 | dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) | |
25 | AC_COMPILE_IFELSE( | |
26 | [AC_LANG_PROGRAM([[]], | |
27 | [[#ifdef __NO_INLINE__ | |
28 | #error "inline is not effective" | |
29 | #endif]])], | |
30 | [gl_cv_c_inline_effective=yes], | |
31 | [gl_cv_c_inline_effective=no]) | |
32 | fi | |
33 | ]) | |
34 | if test $gl_cv_c_inline_effective = yes; then | |
f240aacb | 35 | AC_DEFINE([HAVE_INLINE], [1], |
d7014610 LC |
36 | [Define to 1 if the compiler supports one of the keywords |
37 | 'inline', '__inline__', '__inline' and effectively inlines | |
38 | functions marked as such.]) | |
39 | fi | |
40 | ]) |