AC_PROG_CC
AC_PROG_LIBTOOL
+# endianness
+AC_C_BIGENDIAN
+
# Check for dependencies
#PKG_CHECK_MODULES(DEP, x11)
*) CFLAGS="$CFLAGS -Wall" ;;
esac fi changequote([,])dnl
+dnl ===========================================================================
+dnl Check for MMX
+
+MMX_CFLAGS="-mmmx -msse -Winline --param inline-unit-growth=10000 --param large-function-growth=10000"
+
+have_mmx_intrinsics=no
+AC_MSG_CHECKING(For MMX/SSE intrinsics in the compiler)
+xserver_save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $MMX_CFLAGS"
+AC_COMPILE_IFELSE([
+#if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4))
+#error "Need GCC >= 3.4 for MMX intrinsics"
+#endif
+#include <mmintrin.h>
+#include <xmmintrin.h>
+int main () {
+ __m64 v = _mm_cvtsi32_si64 (1);
+ v = _mm_shuffle_pi16 (v, _MM_SHUFFLE(3, 3, 3, 3));
+ return _mm_cvtsi64_si32 (v);
+}], have_mmx_intrinsics=yes)
+CFLAGS=$xserver_save_CFLAGS
+AC_MSG_RESULT($have_mmx_intrinsics)
+
+if test $have_mmx_intrinsics = yes ; then
+ AC_DEFINE(USE_MMX, 1, [use MMX compiler intrinsics])
+else
+ MMX_CFLAGS=
+fi
+AC_SUBST(MMX_CFLAGS)
+
+AM_CONDITIONAL(USE_MMX, test $have_mmx_intrinsics = yes)
+
+dnl ========================================================
+
PKG_CHECK_MODULES(GTK, [gtk+-2.0], [HAVE_GTK=yes], [HAVE_GTK=no])
AM_CONDITIONAL(HAVE_GTK, [test "x$HAVE_GTK" = xyes])
lib_LTLIBRARIES = libpixman.la
-libpixman_la_CFLAGS = -DUSE_MMX # FIXME - detect it properly
libpixman_la_LIBADD = @DEP_LIBS@ -lm
libpixman_la_SOURCES = \
pixman-utils.c
+if USE_MMX
noinst_LTLIBRARIES = libpixman-mmx.la
libpixman_mmx_la_SOURCES = \
pixman-mmx.c \
pixman-mmx.h
-libpixman_mmx_la_CFLAGS = $(DEP_CFLAGS) -mmmx -DUSE_MMX
+libpixman_mmx_la_CFLAGS = $(DEP_CFLAGS) $(MMX_CFLAGS)
libpixman_mmx_la_LIBADD = $(DEP_LIBS)
libpixman_la_LIBADD += libpixman-mmx.la
+endif
libpixmanincludedir = $(includedir)/pixman
libpixmaninclude_HEADERS = pixman.h