_smart_include_dir=
dnl # Add variants with the different prefixes and one with no prefix
-for prefix in $smart_prefix ""; do
- for dir in $smart_try_dir; do
- _smart_try_dir="${_smart_try_dir} ${dir}/${prefix}"
+for _prefix in $smart_prefix ""; do
+ for _dir in $smart_try_dir; do
+ _smart_try_dir="${_smart_try_dir} ${_dir}/${_prefix}"
done
- for dir in $smart_include_dir; do
- _smart_include_dir="${_smart_include_dir} ${dir}/${prefix}"
+ for _dir in $smart_include_dir; do
+ _smart_include_dir="${_smart_include_dir} ${_dir}/${_prefix}"
done
done
dnl # Try using the default includes (with prefixes).
dnl #
if test "x$smart_include" = "x"; then
- for prefix in $smart_prefix; do
- AC_MSG_CHECKING([for ${prefix}/$1])
+ for _prefix in $smart_prefix; do
+ AC_MSG_CHECKING([for ${_prefix}/$1])
AC_TRY_COMPILE([$2
#include <$1>],
[int a = 1;],
[
- smart_include="-isystem ${prefix}/"
+ smart_include="-isystem ${_prefix}/"
AC_MSG_RESULT(yes)
break
],
if test "x$smart_include" = "x"; then
for prefix in $smart_prefix; do
- FR_LOCATE_DIR(_smart_include_dir,"${prefix}/${1}")
+ FR_LOCATE_DIR(_smart_include_dir,"${_prefix}/${1}")
done
FR_LOCATE_DIR(_smart_include_dir, $1)
dnl #
AC_DEFUN([FR_HAVE_BUILTIN_CHOOSE_EXPR],
[
- AC_MSG_CHECKING(for __builtin_choose_expr support in compiler)
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE(
- [[
- int main(int argc, char **argv) {
- return __builtin_choose_expr(0, 1, 0);
- }
- ]])
- ],[have_builtin_choose_expr=yes],[have_builtin_choose_expr=no],[have_builtin_choose_expr=no])
- AC_MSG_RESULT($have_builtin_choose_expr)
- if test "x$have_builtin_choose_expr" = "xyes"; then
+ AC_CACHE_CHECK([for __builtin_choose_expr support in compiler], [ax_cv_cc_builtin_choose_expr],[
+ AC_RUN_IFELSE(
+ [
+ AC_LANG_SOURCE(
+ [
+ int main(int argc, char **argv) {
+ if ((argc < 0) || !argv) return 1; /* -Werror=unused-parameter */
+ return __builtin_choose_expr(0, 1, 0);
+ }
+ ])
+ ],
+ [ax_cv_cc_builtin_choose_expr=yes],
+ [ax_cv_cc_builtin_choose_expr=no]
+ )
+ ])
+ if test "x$ax_cv_cc_builtin_choose_expr" = "xyes"; then
AC_DEFINE([HAVE_BUILTIN_CHOOSE_EXPR],1,[Define if the compiler supports __builtin_choose_expr])
fi
])
dnl #
AC_DEFUN([FR_HAVE_BUILTIN_TYPES_COMPATIBLE_P],
[
- AC_MSG_CHECKING(for __builtin_types_compatible_p support in compiler)
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE(
- [[
- int main(int argc, char **argv) {
- return !(__builtin_types_compatible_p(char *, char *));
- }
- ]])
- ],[have_builtin_types_compatible_p=yes],[have_builtin_types_compatible_p=no],[have_builtin_types_compatible_p=no])
- AC_MSG_RESULT($have_builtin_types_compatible_p)
- if test "x$have_builtin_types_compatible_p" = "xyes"; then
+ AC_CACHE_CHECK([for __builtin_types_compatible_p support in compiler], [ax_cv_cc_builtin_types_compatible_p],[
+ AC_RUN_IFELSE(
+ [
+ AC_LANG_SOURCE(
+ [
+ int main(int argc, char **argv) {
+ if ((argc < 0) || !argv) return 1; /* -Werror=unused-parameter */
+ return !(__builtin_types_compatible_p(char *, char *));
+ }
+ ])
+ ],
+ [ax_cv_cc_builtin_types_compatible_p=yes],
+ [ax_cv_cc_builtin_types_compatible_p=no]
+ )
+ ])
+ if test "x$ax_cv_cc_builtin_types_compatible_p" = "xyes"; then
AC_DEFINE([HAVE_BUILTIN_TYPES_COMPATIBLE_P],1,[Define if the compiler supports __builtin_types_compatible_p])
fi
])
dnl #
dnl # Check if we have the bwsap64 builtin
dnl #
-AC_DEFUN([FR_HAVE_BUILTIN_BSWAP_64],
+AC_DEFUN([FR_HAVE_BUILTIN_BSWAP64],
[
+ AC_CACHE_CHECK([for __builtin_bswap64 support in compiler], [ax_cv_cc_builtin_bswap64],[
+ AC_RUN_IFELSE(
+ [
+ AC_LANG_SOURCE([
+ int main(int argc, char **argv) {
+ if ((argc < 0) || !argv) return 1; /* -Werror=unused-parameter */
+ return (__builtin_bswap64(0));
+ }
+ ])
+ ],
+ [ax_cv_cc_builtin_bswap64=yes],
+ [ax_cv_cc_builtin_bswap64=no]
+ )
+ ])
+ if test "x$ax_cv_cc_builtin_bswap64" = "xyes"; then
+ AC_DEFINE([HAVE_BUILTIN_BSWAP_64],1,[Define if the compiler supports __builtin_bswap64])
+ fi
+])
+
dnl #
-dnl # See if the compilation works with __thread, for thread-local storage
+dnl # Check if we have __attribute__((__bounded__)) (usually only OpenBSD with GCC)
dnl #
- AC_MSG_CHECKING(for __builtin_bswap64 support in compiler)
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE(
- [[
- int main(int argc, char **argv) {
- return (__builtin_bswap64(0));
- }
- ]])
- ],[have_builtin_bswap64=yes],[have_builtin_bswap64=no],[have_builtin_bswap64=no])
- AC_MSG_RESULT($have_builtin_bswap64)
- if test "x$have_builtin_bswap64" = "xyes"; then
- AC_DEFINE([HAVE_BUILTIN_BSWAP_64],1,[Define if the compiler supports __builtin_types_compatible_p])
+AC_DEFUN([FR_HAVE_BOUNDED_ATTRIBUTE],[
+ AC_CACHE_CHECK([for __attribute__((__bounded__)) support in compiler], [ax_cv_cc_bounded_attribute],[
+ CFLAGS_SAVED=$CFLAGS
+ CFLAGS="$CFLAGS -Werror"
+ AC_RUN_IFELSE(
+ [
+ AC_LANG_SOURCE([
+ void test(char *buff) __attribute__ ((__bounded__ (__string__, 1, 1)));
+ int main(int argc, char **argv) {
+ if ((argc < 0) || !argv) return 1; /* -Werror=unused-parameter */
+ return 0;
+ }
+ ])
+ ],
+ [ax_cv_cc_bounded_attribute=yes],
+ [ax_cv_cc_bounded_attribute=no]
+ )
+ CFLAGS="$CFLAGS_SAVED"
+ ])
+ if test "x$ax_cv_cc_bounded_attribute" = "xyes"; then
+ AC_DEFINE(HAVE_ATTRIBUTE_BOUNDED, 1, [Define if your compiler supports the __bounded__ attribute (usually OpenBSD gcc).])
fi
])