| 1243 | | MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx" |
|---|
| 1244 | | #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx" |
|---|
| 1245 | | MMXEXT_MODULES="memcpymmxext" |
|---|
| 1246 | | #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext" |
|---|
| 1247 | | THREEDNOW_MODULES="memcpy3dn" |
|---|
| 1248 | | SSE_MODULES="" |
|---|
| 1249 | | SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2" |
|---|
| 1250 | | ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec" |
|---|
| 1251 | | #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec" |
|---|
| 1252 | | |
|---|
| 1253 | | dnl Check for fully workin MMX intrinsics |
|---|
| | 1243 | AC_ARG_WITH(,[]) |
|---|
| | 1244 | AC_ARG_WITH(,[Optimization options:]) |
|---|
| | 1245 | |
|---|
| | 1246 | dnl Check for fully working MMX intrinsics |
|---|
| 1273 | | if test "${ac_cv_c_mmx_intrinsics}" != "no"; then |
|---|
| 1274 | | AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.) |
|---|
| 1275 | | VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx]) |
|---|
| 1276 | | fi |
|---|
| | 1280 | AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [ |
|---|
| | 1281 | AC_DEFINE(HAVE_MMX_INTRINSICS, 1, |
|---|
| | 1282 | [Define to 1 if MMX intrinsics are available.]) |
|---|
| | 1283 | VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx]) |
|---|
| | 1284 | ]) |
|---|
| | 1285 | |
|---|
| | 1286 | AC_CACHE_CHECK([if $CC groks MMX inline assembly], |
|---|
| | 1287 | [ac_cv_mmx_inline], |
|---|
| | 1288 | [CFLAGS="${CFLAGS_save}" |
|---|
| | 1289 | AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));], |
|---|
| | 1290 | ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)]) |
|---|
| | 1291 | AS_IF([test "${ac_cv_mmx_inline}" != "no"], [ |
|---|
| | 1292 | AC_DEFINE(CAN_COMPILE_MMX, 1, |
|---|
| | 1293 | [Define to 1 inline MMX assembly is available.]) |
|---|
| | 1294 | VLC_ADD_PLUGINS([memcpymmx]) |
|---|
| | 1295 | VLC_ADD_PLUGINS([i420_rgb_mmx]) |
|---|
| | 1296 | VLC_ADD_PLUGINS([i420_yuy2_mmx]) |
|---|
| | 1297 | VLC_ADD_PLUGINS([i422_yuy2_mmx]) |
|---|
| | 1298 | VLC_ADD_PLUGINS([i420_ymga_mmx]) |
|---|
| | 1299 | ]) |
|---|
| | 1300 | |
|---|
| | 1301 | AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly], |
|---|
| | 1302 | [ac_cv_mmxext_inline], |
|---|
| | 1303 | [CFLAGS="${CFLAGS_save}" |
|---|
| | 1304 | AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));], |
|---|
| | 1305 | ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)]) |
|---|
| | 1306 | AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [ |
|---|
| | 1307 | AC_DEFINE(CAN_COMPILE_MMXEXT, 1, |
|---|
| | 1308 | [Define to 1 if MMX EXT inline assembly is available.]) |
|---|
| | 1309 | VLC_ADD_PLUGINS([memcpymmxext]) |
|---|
| | 1310 | ]) |
|---|
| | 1311 | ]) |
|---|
| 1298 | | if test "${ac_cv_c_sse2_intrinsics}" != "no"; then |
|---|
| 1299 | | AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.) |
|---|
| 1300 | | VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2]) |
|---|
| 1301 | | fi |
|---|
| 1302 | | |
|---|
| 1303 | | AC_CACHE_CHECK([if \$CC groks MMX inline assembly], |
|---|
| 1304 | | [ac_cv_mmx_inline], |
|---|
| | 1347 | AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [ |
|---|
| | 1348 | AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, |
|---|
| | 1349 | [Define to 1 if SSE2 intrinsics are available.]) |
|---|
| | 1350 | VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2]) |
|---|
| | 1351 | ]) |
|---|
| | 1352 | |
|---|
| | 1353 | AC_CACHE_CHECK([if $CC groks SSE inline assembly], |
|---|
| | 1354 | [ac_cv_sse_inline], |
|---|
| 1306 | | AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));], |
|---|
| 1307 | | ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)]) |
|---|
| 1308 | | if test "${ac_cv_mmx_inline}" != "no"; then |
|---|
| 1309 | | AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.) |
|---|
| 1310 | | ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}" |
|---|
| 1311 | | fi |
|---|
| 1312 | | |
|---|
| 1313 | | AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly], |
|---|
| 1314 | | [ac_cv_mmxext_inline], |
|---|
| | 1356 | AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));], |
|---|
| | 1357 | ac_cv_sse_inline=yes, ac_cv_sse_inline=no)]) |
|---|
| | 1358 | AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [ |
|---|
| | 1359 | AC_DEFINE(CAN_COMPILE_SSE, 1, |
|---|
| | 1360 | [Define to 1 if SSE inline assembly is available.]) |
|---|
| | 1361 | ]) |
|---|
| | 1362 | |
|---|
| | 1363 | AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], |
|---|
| | 1364 | [ac_cv_sse2_inline], |
|---|
| 1316 | | AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));], |
|---|
| 1317 | | ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)]) |
|---|
| 1318 | | if test "${ac_cv_mmxext_inline}" != "no"; then |
|---|
| 1319 | | AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.) |
|---|
| 1320 | | ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}" |
|---|
| 1321 | | fi |
|---|
| 1322 | | |
|---|
| 1323 | | AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly], |
|---|
| | 1366 | AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));], |
|---|
| | 1367 | ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)]) |
|---|
| | 1368 | AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [ |
|---|
| | 1369 | AC_DEFINE(CAN_COMPILE_SSE2, 1, |
|---|
| | 1370 | [Define to 1 if SSE2 inline assembly is available.]) |
|---|
| | 1371 | VLC_ADD_PLUGINS([i420_rgb_sse2]) |
|---|
| | 1372 | VLC_ADD_PLUGINS([i420_yuy2_sse2]) |
|---|
| | 1373 | VLC_ADD_PLUGINS([i422_yuy2_sse2]) |
|---|
| | 1374 | ]) |
|---|
| | 1375 | ]) |
|---|
| | 1376 | |
|---|
| | 1377 | AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], |
|---|
| 1328 | | if test "${ac_cv_3dnow_inline}" != "no"; then |
|---|
| 1329 | | AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.) |
|---|
| 1330 | | ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}" |
|---|
| 1331 | | fi |
|---|
| 1332 | | |
|---|
| 1333 | | AC_CACHE_CHECK([if \$CC groks SSE inline assembly], |
|---|
| 1334 | | [ac_cv_sse_inline], |
|---|
| 1335 | | [CFLAGS="${CFLAGS_save}" |
|---|
| 1336 | | AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));], |
|---|
| 1337 | | ac_cv_sse_inline=yes, ac_cv_sse_inline=no)]) |
|---|
| 1338 | | if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then |
|---|
| 1339 | | AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.) |
|---|
| 1340 | | ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}" |
|---|
| 1341 | | fi |
|---|
| 1342 | | |
|---|
| 1343 | | AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly], |
|---|
| 1344 | | [ac_cv_sse2_inline], |
|---|
| 1345 | | [CFLAGS="${CFLAGS_save}" |
|---|
| 1346 | | AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));], |
|---|
| 1347 | | ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)]) |
|---|
| 1348 | | if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then |
|---|
| 1349 | | AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.) |
|---|
| 1350 | | ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}" |
|---|
| 1351 | | fi |
|---|
| 1352 | | |
|---|
| 1353 | | if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then |
|---|
| 1354 | | AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly], |
|---|
| | 1382 | AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [ |
|---|
| | 1383 | AC_DEFINE(CAN_COMPILE_3DNOW, 1, |
|---|
| | 1384 | [Define to 1 if 3D Now! inline assembly is available.]) |
|---|
| | 1385 | VLC_ADD_PLUGINS([memcpy3dn]) |
|---|
| | 1386 | ]) |
|---|
| | 1387 | |
|---|
| | 1388 | AC_ARG_ENABLE(altivec, |
|---|
| | 1389 | [ --disable-altivec disable AltiVec optimizations (default auto)],, [ |
|---|
| | 1390 | AS_IF([test "${host_cpu}" = "powerpc"], |
|---|
| | 1391 | [enable_altivec=yes], [enable_altivec=no]) |
|---|
| | 1392 | ]) |
|---|
| | 1393 | AS_IF([test "${enable_altivec}" = "yes"], [ |
|---|
| | 1394 | ARCH="${ARCH} altivec"; |
|---|
| | 1395 | AC_CACHE_CHECK([if $CC groks AltiVec inline assembly], |
|---|
| 1364 | | if test "${ac_cv_altivec_inline}" != "no"; then |
|---|
| 1365 | | AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.) |
|---|
| 1366 | | if test "${ac_cv_altivec_inline}" != "yes"; then |
|---|
| 1367 | | VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}]) |
|---|
| 1368 | | VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}]) |
|---|
| 1369 | | VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}]) |
|---|
| 1370 | | VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}]) |
|---|
| 1371 | | VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}]) |
|---|
| 1372 | | fi |
|---|
| 1373 | | ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}" |
|---|
| 1374 | | fi |
|---|
| | 1405 | AS_IF([test "${ac_cv_altivec_inline}" != "no"], [ |
|---|
| | 1406 | AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, |
|---|
| | 1407 | [Define to 1 if AltiVec inline assembly is available.]) |
|---|
| | 1408 | AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [ |
|---|
| | 1409 | VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}]) |
|---|
| | 1410 | VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}]) |
|---|
| | 1411 | VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}]) |
|---|
| | 1412 | VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}]) |
|---|
| | 1413 | VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}]) |
|---|
| | 1414 | ]) |
|---|
| | 1415 | VLC_ADD_PLUGINS([memcpyaltivec]) |
|---|
| | 1416 | VLC_ADD_PLUGINS([i420_yuy2_altivec]) |
|---|
| | 1417 | ]) |
|---|
| 1451 | | if test "${ac_cv_ld_altivec}" != "no"; then |
|---|
| 1452 | | VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib]) |
|---|
| 1453 | | fi |
|---|
| 1454 | | fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" |
|---|
| 1455 | | |
|---|
| 1456 | | AC_ARG_WITH(,[]) |
|---|
| 1457 | | AC_ARG_WITH(,[Optimization options:]) |
|---|
| | 1488 | AS_IF([test "${ac_cv_ld_altivec}" != "no"], [ |
|---|
| | 1489 | VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib]) |
|---|
| | 1490 | ]) |
|---|
| | 1491 | ]) |
|---|
| 1498 | | dnl x86 accelerations |
|---|
| 1499 | | dnl |
|---|
| 1500 | | AC_ARG_ENABLE(mmx, |
|---|
| 1501 | | [ --disable-mmx disable MMX optimizations (default enabled on x86)], |
|---|
| 1502 | | [ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx"; |
|---|
| 1503 | | VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ], |
|---|
| 1504 | | [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "x86_64"; then |
|---|
| 1505 | | ARCH="${ARCH} mmx" |
|---|
| 1506 | | VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ]) |
|---|
| 1507 | | |
|---|
| 1508 | | AC_ARG_ENABLE(sse, |
|---|
| 1509 | | [ --disable-sse disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)], |
|---|
| 1510 | | [ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2"; |
|---|
| 1511 | | VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ], |
|---|
| 1512 | | [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2"; |
|---|
| 1513 | | VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ]) |
|---|
| 1514 | | |
|---|
| 1515 | | dnl |
|---|