summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorKristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>2016-01-08 22:16:43 -0800
committerKristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>2016-01-08 22:16:43 -0800
commitf0993f81c7fab4ceb99b010d8ee2facbf4fdc737 (patch)
tree2da8aeaa95a0337d9177f4d808837f7c5cbdbc25 /configure.ac
parentcfdc955fd5e1e965c458e50f4dc877653a463684 (diff)
parentda5d4583e53fc9cdc86aba7d2ac770e01baa158d (diff)
downloadexternal_mesa3d-f0993f81c7fab4ceb99b010d8ee2facbf4fdc737.zip
external_mesa3d-f0993f81c7fab4ceb99b010d8ee2facbf4fdc737.tar.gz
external_mesa3d-f0993f81c7fab4ceb99b010d8ee2facbf4fdc737.tar.bz2
Merge ../mesa into vulkan
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac76
1 files changed, 76 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 577ca22..b13a6c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -396,6 +396,61 @@ fi
AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
+dnl Check for Endianness
+AC_C_BIGENDIAN(
+ little_endian=no,
+ little_endian=yes,
+ little_endian=no,
+ little_endian=no
+)
+
+dnl Check for POWER8 Architecture
+PWR8_CFLAGS="-mpower8-vector"
+have_pwr8_intrinsics=no
+AC_MSG_CHECKING(whether gcc supports -mpower8-vector)
+save_CFLAGS=$CFLAGS
+CFLAGS="$PWR8_CFLAGS $CFLAGS"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8))
+#error "Need GCC >= 4.8 for sane POWER8 support"
+#endif
+#include <altivec.h>
+int main () {
+ vector unsigned char r;
+ vector unsigned int v = vec_splat_u32 (1);
+ r = __builtin_vec_vgbbd ((vector unsigned char) v);
+ return 0;
+}]])], have_pwr8_intrinsics=yes)
+CFLAGS=$save_CFLAGS
+
+AC_ARG_ENABLE(pwr8,
+ [AC_HELP_STRING([--disable-pwr8-inst],
+ [disable POWER8-specific instructions])],
+ [enable_pwr8=$enableval], [enable_pwr8=auto])
+
+if test "x$enable_pwr8" = xno ; then
+ have_pwr8_intrinsics=disabled
+fi
+
+if test $have_pwr8_intrinsics = yes && test $little_endian = yes ; then
+ DEFINES="$DEFINES -D_ARCH_PWR8"
+ CXXFLAGS="$CXXFLAGS $PWR8_CFLAGS"
+ CFLAGS="$CFLAGS $PWR8_CFLAGS"
+else
+ PWR8_CFLAGS=
+fi
+
+AC_MSG_RESULT($have_pwr8_intrinsics)
+if test "x$enable_pwr8" = xyes && test $have_pwr8_intrinsics = no ; then
+ AC_MSG_ERROR([POWER8 compiler support not detected])
+fi
+
+if test $have_pwr8_intrinsics = yes && test $little_endian = no ; then
+ AC_MSG_WARN([POWER8 optimization is enabled only on POWER8 Little-Endian])
+fi
+
+AC_SUBST([PWR8_CFLAGS], $PWR8_CFLAGS)
+
dnl Can't have static and shared libraries, default to static if user
dnl explicitly requested. If both disabled, set to static since shared
dnl was explicitly requested.
@@ -421,8 +476,29 @@ AC_ARG_ENABLE([debug],
[enable_debug="$enableval"],
[enable_debug=no]
)
+
+AC_ARG_ENABLE([profile],
+ [AS_HELP_STRING([--enable-profile],
+ [enable profiling of code @<:@default=disabled@:>@])],
+ [enable_profile="$enableval"],
+ [enable_profile=no]
+)
+
+if test "x$enable_profile" = xyes; then
+ DEFINES="$DEFINES -DPROFILE"
+ if test "x$GCC" = xyes; then
+ CFLAGS="$CFLAGS -fno-omit-frame-pointer"
+ fi
+ if test "x$GXX" = xyes; then
+ CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
+ fi
+fi
+
if test "x$enable_debug" = xyes; then
DEFINES="$DEFINES -DDEBUG"
+ if test "x$enable_profile" = xyes; then
+ AC_MSG_WARN([Debug and Profile are enabled at the same time])
+ fi
if test "x$GCC" = xyes; then
if ! echo "$CFLAGS" | grep -q -e '-g'; then
CFLAGS="$CFLAGS -g"