]> git.sesse.net Git - vlc/blobdiff - configure.in
Alsa module now builds with alsa 0.9 thanks to Jeffrey Baker's patch
[vlc] / configure.in
index 33fe2a50150e5368a51e3e6e06d1c746ae85ae35..2c380c1043409ef1ea0d310e4861512868d1c285 100644 (file)
@@ -105,10 +105,10 @@ void foo() { int meuh; ntohl(meuh); }],,
 
 dnl Check for -rdynamic flag
 CFLAGS="${CFLAGS} -rdynamic -Wall -Werror"
-AC_MSG_CHECKING([if \$CC groks -rdynamic without complaining too much])
+AC_MSG_CHECKING([if \$CC miserably fails with the -rdynamic flag])
 AC_TRY_COMPILE([],,
  LCFLAGS="${LCFLAGS} -rdynamic"
- AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
+ AC_MSG_RESULT(no), AC_MSG_RESULT(yes))
 
 dnl End of the bizarre compilation tests
 CFLAGS="${save_CFLAGS}"
@@ -136,26 +136,62 @@ dnl
 dnl  default modules
 dnl
 BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion"
+
+dnl
+dnl  Accelerated modules
+dnl
 case x$host_os in
-  xbeos|xnto-qnx)
-    ACCEL_PLUGINS="yuvmmx idctmmx motionmmx"
-    ;;
   xmingw32msvc)
-    ACCEL_PLUGINS="idctmmx idctmmxext motionmmx motionmmxext"
+    MMX_PLUGINS="idctmmx motionmmx"
     ;;
   *)
-    ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext"
+    MMX_PLUGINS="yuvmmx idctmmx motionmmx"
     ;;
 esac
 
+AC_MSG_CHECKING([if \$CC groks MMX inline assembly])
+AC_TRY_COMPILE([void quux(){void *p;asm("packuswb %%mm1,%%mm2"::"r"(p));}],,
+  ACCEL_PLUGINS="${ACCEL_PLUGINS} ${MMX_PLUGINS}"
+  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
+
+AC_MSG_CHECKING([if \$CC groks MMX EXT (SSE) inline assembly])
+AC_TRY_COMPILE([void quux(){void *p;asm("maskmovq %%mm1,%%mm2"::"r"(p));}],,
+  ACCEL_PLUGINS="${ACCEL_PLUGINS} idctmmxext motionmmxext"
+  AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
+
 dnl
 dnl  DVD module: check for DVD ioctls
 dnl
 AC_CHECK_HEADERS(sys/ioctl.h,[
   BUILTINS="${BUILTINS} dvd"
-  AC_CHECK_HEADERS(linux/cdrom.h)
-  AC_EGREP_HEADER(dvd,linux/cdrom.h,[
-    AC_DEFINE(LINUX_DVD,1, DVD support for linux)
+  AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h)
+  BSD_DVD_STRUCT=0
+  dnl
+  dnl Old FreeBSD: sys/cdio.h
+  dnl
+  AC_EGREP_HEADER(dvd_struct,sys/dvdio.h,[
+    AC_DEFINE(DVD_STRUCT_IN_SYS_DVDIO_H, 1,
+              Define if <sys/dvdio.h> defines dvd_struct.)
+    BSD_DVD_STRUCT=1
+  ])
+  dnl
+  dnl Newer FreeBSD: sys/dvdio.h
+  dnl
+  AC_EGREP_HEADER(dvd_struct,sys/cdio.h,[
+    AC_DEFINE(DVD_STRUCT_IN_SYS_CDIO_H, 1,
+              Define if <sys/cdio.h> defines dvd_struct.)
+    BSD_DVD_STRUCT=1
+  ])
+  if test x$BSD_DVD_STRUCT = x1; then
+    AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
+              Define if BSD-like dvd_struct is defined.)
+  fi
+  dnl
+  dnl Linux: linux/cdrom.h
+  dnl
+  AC_EGREP_HEADER(dvd_struct,linux/cdrom.h,[
+    AC_DEFINE(DVD_STRUCT_IN_LINUX_CDROM_H, 1,
+              Define if <linux/cdrom.h> defines DVD_STRUCT.)
   ])
 ])