+AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
+ [ac_cv_mmx_inline],
+ [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
+ ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
+if test x"$ac_cv_mmx_inline" != x"no"; then
+ ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
+ [ac_cv_mmxext_inline],
+ [AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
+ ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
+if test x"$ac_cv_mmxext_inline" != x"no"; then
+ ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
+ [ac_cv_3dnow_inline],
+ [AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
+ ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
+if test x"$ac_cv_3dnow_inline" != x"no"; then
+ AC_DEFINE(HAVE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
+ ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
+ [ac_cv_sse_inline],
+ [AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
+ ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
+if test x"$ac_cv_sse_inline" != x"no"; then
+ AC_DEFINE(HAVE_SSE, 1, Define if \$CC groks SSE inline assembly.)
+ ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
+ [ac_cv_altivec_inline],
+ [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
+ ac_cv_altivec_inline=yes,
+ [save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Wa,-m7400"
+ AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
+ [ac_cv_altivec_inline=yes; CFLAGS_ALTIVEC="-Wa,-m7400"],
+ ac_cv_altivec_inline=no)
+ CFLAGS=$save_CFLAGS
+ ])])
+if test x"$ac_cv_altivec_inline" != x"no"; then
+ AC_DEFINE(HAVE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
+ ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
+fi
+
+AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
+ [ac_cv_c_altivec],
+ [save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -faltivec"
+ # Darwin test
+ AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
+ ac_cv_c_altivec=-faltivec, [
+ # Linux/PPC test
+ CFLAGS="$save_CFLAGS $CFLAGS_ALTIVEC -fvec"
+ AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
+ [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
+ ])
+ CFLAGS=$save_CFLAGS
+ ])
+if test x"$ac_cv_c_altivec" != x"no"; then
+ AC_DEFINE(HAVE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
+ CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_c_altivec"
+ ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
+fi
+
+AC_CACHE_CHECK([if linker needs -framework vecLib],
+ [ac_cv_ld_altivec],
+ [save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -framework vecLib"
+ AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
+ LDFLAGS=$save_LDFLAGS
+ ])
+if test x"$ac_cv_ld_altivec" != x"no"; then
+ LIB_ALTIVEC="-framework vecLib"
+fi
+
+dnl
+dnl Check the operating system
+dnl
+case ${target_os} in
+ bsdi*)
+ SYS=bsdi
+ ;;
+ darwin*)
+ SYS=darwin
+ ;;
+ *mingw32*)
+ SYS=mingw32
+ ;;
+ *)
+ SYS=${target_os}
+ ;;
+esac
+
+dnl
+dnl Windoze specific section
+dnl
+if test $SYS = mingw32; then
+AC_CHECK_TOOL(WINDRES, windres, :)
+fi
+
+dnl
+dnl libdvdcss: check for DVD ioctls
+dnl
+
+dnl default is no
+CAN_BUILD_LIBDVDCSS=0
+
+dnl for windoze
+AC_CHECK_HEADERS(winioctl.h,[
+ CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
+])
+
+dnl for Un*x and BeOS
+AC_CHECK_HEADERS(sys/ioctl.h,[
+ CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
+ AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
+ BSD_DVD_STRUCT=0
+ LINUX_DVD_STRUCT=0
+ OPENBSD_DVD_STRUCT=0
+ dnl
+ dnl Old FreeBSD: sys/cdio.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.)
+ AC_EGREP_HEADER(struct dvd_struct,sys/cdio.h,[
+ BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1; OPENBSD_DVD_STRUCT=1])
+ ])
+ dnl
+ dnl Newer FreeBSD: sys/dvdio.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.)
+ AC_EGREP_HEADER(struct dvd_struct,sys/dvdio.h,[
+ BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1])
+ ])
+ 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.)
+ LINUX_DVD_STRUCT=1
+ ])
+ dnl
+ dnl BSDI: dvd.h
+ dnl
+ NEED_BSDI_LIBDVD=0
+ AC_EGREP_HEADER(dvd_struct,dvd.h,[
+ AC_DEFINE(DVD_STRUCT_IN_DVD_H, 1,
+ Define if <dvd.h> defines DVD_STRUCT.)
+ LIB_LIBDVDCSS="${LIB_LIBDVDCSS} -ldvd"
+ LINUX_DVD_STRUCT=1
+ ],[
+ dnl
+ dnl BSDI: /sys/dev/scsi/scsi_ioctl.h, using our own libdvd
+ dnl
+ AC_CHECK_HEADERS(/sys/dev/scsi/scsi_ioctl.h,[
+ NEED_BSDI_LIBDVD=1
+ AC_DEFINE(DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H, 1,
+ Define if <extras/BSDI_dvdioctl/dvd.h> defines DVD_STRUCT.)
+ OBJ_LIBDVDCSS="${OBJ_LIBDVDCSS} bsdi_dvdioctl.o"
+ LINUX_DVD_STRUCT=1
+ ])
+ ])
+ dnl
+ dnl Solaris: sys/scsi/scsi_types.h, sys/scsi/impl/uscsi.h
+ dnl
+ AC_CHECK_HEADER(sys/scsi/scsi_types.h,[
+ AC_CHECK_HEADER(sys/scsi/impl/uscsi.h,[
+ AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
+ ])
+ ])
+ dnl
+ dnl Final tests to check what was detected
+ dnl
+ if test x$LINUX_DVD_STRUCT = x1; then
+ AC_DEFINE(HAVE_LINUX_DVD_STRUCT, 1,
+ Define if Linux-like dvd_struct is defined.)
+ if test x$OPENBSD_DVD_STRUCT = x1; then
+ AC_DEFINE(HAVE_OPENBSD_DVD_STRUCT, 1,
+ Define if OpenBSD-like dvd_struct is defined.)
+ fi
+ else
+ if test x$BSD_DVD_STRUCT = x1; then
+ AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
+ Define if FreeBSD-like dvd_struct is defined.)
+ fi
+ fi
+])
+
+dnl
+dnl Special arch tuning
+dnl
+AC_ARG_WITH(tuning,
+[ --with-tuning=[arch] Enable special tuning for an architecture
+ (default i686 on IA-32 and 750 on PPC)])
+if test "x$withval" != "x"; then
+ TUNING=$withval
+else
+ if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
+ else
+ if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
+ fi
+fi
+
+dnl
+dnl Enable release-specific flags
+dnl
+AC_ARG_ENABLE(release,
+[ --enable-release Activate extra optimizations (default disabled)],
+[ if test x$enableval = xyes; then RELEASE=1; fi ],
+[ VLC_VERSION="${VLC_VERSION}_`date +%Y-%m-%d`";
+ LIBDVDCSS_VERSION="${LIBDVDCSS_VERSION}_`date +%Y-%m-%d`"; ])
+
+dnl
+dnl MMX acceleration
+dnl