Changeset 5a96b059302cea50584969fe7b0bfbd2589d29bf

Show
Ignore:
Timestamp:
04/28/08 18:25:24 (3 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1209399924 +0300
git-parent:

[f458ada1046dcf8ab43b33010ebac061c8512f11]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1209399924 +0300
Message:

Fix accelerated modules configure options.

Only enable those modules that were enabled, rather than _all_ of them
(which should fix --disable-sse and --disable-mmx). Also don't run
checks if we know we're not going to enable the modules anyway.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • configure.ac

    r074ed67 r5a96b05  
    12411241dnl  Accelerated modules 
    12421242dnl 
    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 
     1243AC_ARG_WITH(,[]) 
     1244AC_ARG_WITH(,[Optimization options:]) 
     1245 
     1246dnl  Check for fully working MMX intrinsics 
    12541247dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a 
    12551248dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963) 
    1256 AC_CACHE_CHECK([if \$CC groks MMX intrinsics], 
     1249AC_ARG_ENABLE(mmx, 
     1250[  --disable-mmx       disable MMX optimizations (default auto)],,[ 
     1251  case "${host_cpu}" in 
     1252    i?86|x86_64) 
     1253      enable_mmx="yes" 
     1254      ;; 
     1255    *) 
     1256      enable_mmx="no" 
     1257      ;; 
     1258  esac 
     1259]) 
     1260AS_IF([test "${enable_mmx}" != "no"], [ 
     1261  ARCH="${ARCH} mmx" 
     1262 
     1263  AC_CACHE_CHECK([if $CC groks MMX intrinsics], 
    12571264    [ac_cv_c_mmx_intrinsics], 
    12581265    [CFLAGS="${CFLAGS_save} -O -mmmx" 
     
    12711278                    [ac_cv_c_mmx_intrinsics=yes], 
    12721279                    [ac_cv_c_mmx_intrinsics=no])]) 
    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]) 
    12771312 
    12781313dnl  Check for fully workin SSE2 intrinsics 
    12791314dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a 
    12801315dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963) 
    1281 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics], 
     1316AC_ARG_ENABLE(sse, 
     1317[  --disable-sse       disable SSE (1 and 2) optimizations (default auto)],, [ 
     1318  case "${host_cpu}" in 
     1319    i686|x86_64) 
     1320      enable_sse=yes 
     1321      ;; 
     1322    *) 
     1323      enable_sse=no 
     1324      ;; 
     1325  esac 
     1326]) 
     1327AS_IF([test "${enable_sse}" != "no"], [ 
     1328  ARCH="${ARCH} sse sse2" 
     1329 
     1330  AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], 
    12821331    [ac_cv_c_sse2_intrinsics], 
    12831332    [CFLAGS="${CFLAGS_save} -O -msse2" 
     
    12961345                    [ac_cv_c_sse2_intrinsics=yes], 
    12971346                    [ac_cv_c_sse2_intrinsics=no])]) 
    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], 
    13051355    [CFLAGS="${CFLAGS_save}" 
    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], 
    13151365    [CFLAGS="${CFLAGS_save}" 
    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 
     1377AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], 
    13241378    [ac_cv_3dnow_inline], 
    13251379    [CFLAGS="${CFLAGS_save}" 
    13261380     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));], 
    13271381                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)]) 
    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], 
     1382AS_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 
     1388AC_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]) 
     1393AS_IF([test "${enable_altivec}" = "yes"], [ 
     1394  ARCH="${ARCH} altivec"; 
     1395  AC_CACHE_CHECK([if $CC groks AltiVec inline assembly], 
    13551396    [ac_cv_altivec_inline], 
    13561397    [CFLAGS="${CFLAGS_save}" 
    13571398     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");], 
    1358          ac_cv_altivec_inline=yes
     1399         ac_cv_altivec_inline="yes"
    13591400         [CFLAGS="${CFLAGS_save} -Wa,-m7400" 
    13601401          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");], 
     
    13621403            ac_cv_altivec_inline=no) 
    13631404         ])]) 
    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  ]) 
    13751418 
    13761419dnl The AltiVec C extensions 
     
    13841427dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec 
    13851428dnl - Others: test should fail 
    1386 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions], 
     1429  AC_CACHE_CHECK([if \$CC groks AltiVec C extensions], 
    13871430  [ac_cv_c_altivec], 
    13881431  [# OS X/PPC test (gcc 4.x) 
     
    14201463   CFLAGS="${CFLAGS_save}" 
    14211464  ]) 
    1422  
    1423 if test "${ac_cv_c_altivec}" != "no"; then 
    1424   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}" 
    1425 fi 
    1426  
    1427 AS_IF( test "${enable_altivec}" != "no", 
    1428 
     1465  AS_IF([test "${ac_cv_c_altivec}" != "no"], [ 
     1466    CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}" 
     1467  ]) 
     1468 
    14291469  AC_CHECK_HEADERS(altivec.h) 
    14301470  CPPFLAGS="${CPPFLAGS_save}" 
    14311471   
    1432   if test "${ac_cv_c_altivec}" != "no"; then 
    1433     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.) 
     1472  AS_IF([test "${ac_cv_c_altivec}" != "no"], [ 
     1473    AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, 
     1474              [Define to 1 if C AltiVec extensions are available.]) 
    14341475    VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}]) 
    14351476    VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}]) 
    14361477    VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}]) 
    1437     if test "${ac_cv_altivec_inline}" = "no"; then 
    1438       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}" 
    1439     fi 
    1440   fi 
    1441 ],[ 
    1442   CPPFLAGS="${CPPFLAGS_save}" 
    1443 ]) 
    1444  
    1445 AC_CACHE_CHECK([if linker needs -framework vecLib], 
     1478    VLC_ADD_PLUGINS([memcpyaltivec]) 
     1479    VLC_ADD_PLUGINS([i420_yuy2_altivec]) 
     1480  ]) 
     1481 
     1482  AC_CACHE_CHECK([if linker needs -framework vecLib], 
    14461483    [ac_cv_ld_altivec], 
    14471484    [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib" 
     
    14491486     LDFLAGS="${LDFLAGS_save}" 
    14501487    ]) 
    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]) 
    14581492 
    14591493dnl 
     
    14961530 
    14971531dnl 
    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 
    15161532dnl  Memory usage 
    15171533dnl 
     
    15341550   fi 
    15351551fi 
    1536  
    1537 dnl 
    1538 dnl  AltiVec acceleration 
    1539 dnl 
    1540 AC_ARG_ENABLE(altivec, 
    1541 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)], 
    1542 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec"; 
    1543     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ], 
    1544 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec"; 
    1545     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ]) 
    15461552 
    15471553dnl