configure.ac: move checks of -std=gnu99 and _XOPEN_SOURCE on Solaris
* configure.ac (ansi_options): On Solaris, "-std=gnu99" should be appended to CPPFLAGS instead of warnflags and strict_warnflags, because the flag affects existance of functions and macros. * configure.ac (solaris*): Check _XOPEN_SOURCE just after checking "-std=gnu99" on Solaris. Because _XOPEN_SOURCE also affects existance of many functions and macros, it is good to define it earlier. The check is simplified to use AC_TRY_COMPILE with RUBY_WERROR_FLAG. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
52b29a3314
commit
88cb22e979
86
configure.ac
86
configure.ac
@ -582,6 +582,50 @@ AS_IF([test "$GCC" = yes], [
|
|||||||
[cygwin*|darwin*|netbsd*], [
|
[cygwin*|darwin*|netbsd*], [
|
||||||
# need lgamma_r(), finite()
|
# need lgamma_r(), finite()
|
||||||
],
|
],
|
||||||
|
[solaris*], [
|
||||||
|
# ANSI (no XCFLAGS because this is C only)
|
||||||
|
# Because "-std=gnu99" affects existance of functions on Solaris,
|
||||||
|
# "-std=gnu99" will be appended to CPPFLAGS.
|
||||||
|
for ansi_options in -std=gnu99; do
|
||||||
|
RUBY_TRY_CFLAGS(${ansi_options}, [
|
||||||
|
RUBY_APPEND_OPTIONS(CPPFLAGS, ${ansi_options})
|
||||||
|
], [ansi_options=])
|
||||||
|
test "x${ansi_options}" = x || break
|
||||||
|
done
|
||||||
|
AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given)
|
||||||
|
AC_TRY_COMPILE([#include <unistd.h>
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
#error _XOPEN_SOURCE is not defined
|
||||||
|
#endif
|
||||||
|
], [],
|
||||||
|
[given_xopen_source=yes], [given_xopen_source=no])
|
||||||
|
AC_MSG_RESULT($given_xopen_source)
|
||||||
|
AS_IF([test $given_xopen_source = no], [
|
||||||
|
AC_MSG_CHECKING(appropriate _XOPEN_SOURCE value to define)
|
||||||
|
define_xopen_source=""
|
||||||
|
for tmp_xpg in 7 6 5; do
|
||||||
|
AS_IF([test x"$define_xopen_source" != x], [
|
||||||
|
break
|
||||||
|
])
|
||||||
|
RUBY_WERROR_FLAG([AC_TRY_COMPILE([
|
||||||
|
#define _XOPEN_SOURCE ${tmp_xpg}00
|
||||||
|
#include <unistd.h>
|
||||||
|
#ifndef _XPG${tmp_xpg}
|
||||||
|
#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00
|
||||||
|
#endif
|
||||||
|
], [],
|
||||||
|
[define_xopen_source=${tmp_xpg}00], [])
|
||||||
|
])
|
||||||
|
done
|
||||||
|
AS_IF([test x"$define_xopen_source" = x], [
|
||||||
|
define_xopen_source=no
|
||||||
|
])
|
||||||
|
AC_MSG_RESULT($define_xopen_source)
|
||||||
|
AS_IF([test x"$define_xopen_source" != xno], [
|
||||||
|
RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
],
|
||||||
[
|
[
|
||||||
# ANSI (no XCFLAGS because this is C only)
|
# ANSI (no XCFLAGS because this is C only)
|
||||||
for ansi_options in -std=gnu99; do
|
for ansi_options in -std=gnu99; do
|
||||||
@ -821,48 +865,6 @@ main()
|
|||||||
ac_cv_c_inline=no],
|
ac_cv_c_inline=no],
|
||||||
[solaris*], [ LIBS="-lm $LIBS"
|
[solaris*], [ LIBS="-lm $LIBS"
|
||||||
ac_cv_func_vfork=no
|
ac_cv_func_vfork=no
|
||||||
AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given)
|
|
||||||
AC_TRY_COMPILE([#include <unistd.h>
|
|
||||||
#ifndef _XOPEN_SOURCE
|
|
||||||
#error _XOPEN_SOURCE is not defined
|
|
||||||
#endif
|
|
||||||
], [],
|
|
||||||
[given_xopen_source=yes], [given_xopen_source=no])
|
|
||||||
AC_MSG_RESULT($given_xopen_source)
|
|
||||||
AS_IF([test $given_xopen_source = no], [
|
|
||||||
AC_MSG_CHECKING(appropriate _XOPEN_SOURCE value to define)
|
|
||||||
define_xopen_source=""
|
|
||||||
for tmp_xpg in 7 6 5; do
|
|
||||||
AS_IF([test x"$define_xopen_source" != x], [
|
|
||||||
break
|
|
||||||
])
|
|
||||||
# Both AC_TRY_CPP and AC_TRY_COMPILE should pass
|
|
||||||
# because some options may not be set to CPPFLAGS.
|
|
||||||
AC_TRY_CPP([
|
|
||||||
#define _XOPEN_SOURCE ${tmp_xpg}00
|
|
||||||
#include <unistd.h>
|
|
||||||
#ifndef _XPG${tmp_xpg}
|
|
||||||
#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00
|
|
||||||
#endif
|
|
||||||
], [
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
#define _XOPEN_SOURCE ${tmp_xpg}00
|
|
||||||
#include <unistd.h>
|
|
||||||
#ifndef _XPG${tmp_xpg}
|
|
||||||
#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00
|
|
||||||
#endif
|
|
||||||
], [],
|
|
||||||
[define_xopen_source=${tmp_xpg}00], [])
|
|
||||||
], [])
|
|
||||||
done
|
|
||||||
AS_IF([test x"$define_xopen_source" = x], [
|
|
||||||
define_xopen_source=no
|
|
||||||
])
|
|
||||||
AC_MSG_RESULT($define_xopen_source)
|
|
||||||
AS_IF([test x"$define_xopen_source" != xno], [
|
|
||||||
RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source)
|
|
||||||
])
|
|
||||||
])
|
|
||||||
],
|
],
|
||||||
[haiku*], [
|
[haiku*], [
|
||||||
LIBS="$LIBS" # m lib is include in root
|
LIBS="$LIBS" # m lib is include in root
|
||||||
|
Loading…
x
Reference in New Issue
Block a user