Difference between revisions of "ARts"
(→Non-Multilib: No detection of SSE instruction availability) |
|||
Line 20: | Line 20: | ||
=== Required === | === Required === | ||
+ | * [[KDE Pre-Installation Configuration]] | ||
* [[Qt3]] | * [[Qt3]] | ||
* [[Glib2]] | * [[Glib2]] |
Revision as of 11:23, 4 February 2007
Download Source: | ftp://ftp.kde.org/pub/kde/stable/3.5.10/src/arts-1.5.10.tar.bz2 |
---|
Contents
Introduction to aRts
The Analog Realtime Synthesizer (aRts) enables the playing of multiple audio or video streams concurrently - be it on the desktop or over a network. ARts is a full-featured sound system and includes filters, a modular analog synthesizer, and a mixer. Its architecture allows developers to create additional filter plugins and users to apply sequences of filters using a graphical drag-n-drop approach. Video support is available for MPEG versions 1, 2 and 4 (experimental), as well as the AVI and DivX formats.
ARts is a core component of the KDE 3 desktop environment and provides the basis for the KdeMultimedia package. However, it can also be used independently of KDE (i.e. doesn't use Qt or KdeLibs for most things).
Old Project Home Page: http://www.arts-project.org/
Current Project Home Page: http://www.kde.org
Dependencies
Required
Recommended
Optional
Non-Multilib
On x86_64, aRTS 'configure' fails to detect if the hardware provides SSE floating point to int conversion instructions.
Apply the following patch to allow aRTS to use SSE instructions and hardware float to int conversions on your x86_64 machine:
diff -Naur arts-1.5.6/configure arts-1.5.6.new/configure --- arts-1.5.6/configure 2007-01-15 22:45:45.000000000 -0800 +++ arts-1.5.6.new/configure 2007-01-31 23:10:21.000000000 -0800 @@ -38958,7 +38958,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined(__i386__) +#if defined(__i386__) || defined(__x86_64__) static inline long QRound (float inval) { long ret; @@ -39047,7 +39047,7 @@ main () { -#if defined(__GNUC__) && defined(__i386__) +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) __asm__("movups %xmm0, (%esp)"); #else /* IRIX's cc treats #error as a warning, make sure it errors out here */ diff -Naur arts-1.5.6/flow/cpuinfo.cc arts-1.5.6.new/flow/cpuinfo.cc --- arts-1.5.6/flow/cpuinfo.cc 2005-09-10 01:13:33.000000000 -0700 +++ arts-1.5.6.new/flow/cpuinfo.cc 2007-01-31 23:16:20.000000000 -0800 @@ -29,7 +29,23 @@ using namespace Arts; +#ifdef __x86_64__ + + /* + HACK: This assumes that x86_64 processors have all the MMX, 3DNow!, + and SSE instructions, which is true as far as I know, but I haven't + checked for other than K8. + + It also bypasses the original codes' checking of the hardware CPUID + for that info, and hard codes it instead. + */ + +int CpuInfo::s_flags = CpuMMX + CpuEMMX + Cpu3DNow + CpuSSE; +#else int CpuInfo::s_flags = 0; +#endif + + namespace Arts { @@ -53,7 +69,7 @@ void CpuInfoStartup::startup() { -#ifdef HAVE_X86_SSE +#if defined(HAVE_X86_SSE) && !defined(__x86_64__) /* * Taken with thanks from mmx.h: * @@ -226,7 +242,7 @@ } signal(SIGILL, oldHandler); } -#endif /* HAVE_X86_SSE */ +#endif /* HAVE_X86_SSE && ! __x86_64__*/ } static CpuInfoStartup cpuInfoStartup;
Compile the package:
./configure --prefix=$KDE_PREFIX --disable-debug \ --disable-dependency-tracking && make
Install the package
make install
Multilib
32Bit
Compile the package:
CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" USE_ARCH=32 PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" \ ./configure --prefix=$KDE_PREFIX --disable-debug --disable-dependency-tracking \ --x-libraries=${XORG_PREFIX}/lib --with-qt-libraries=${QTDIR}/lib \ --enable-libsuffix=none && make
Install the package
make install && mv -v ${KDE_PREFIX}/bin/artsc-config{,-32}
N32
Compile the package:
CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" USE_ARCH=n32 PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" \ ./configure --prefix=$KDE_PREFIX --libdir=${KDE_PREFIX}/lib32 --disable-debug \ --disable-dependency-tracking --x-libraries=${XORG_PREFIX}/lib32 --with-qt-libraries=${QTDIR}/lib32 \ --enable-libsuffix=32 && make
Install the package
make install && mv -v ${KDE_PREFIX}/bin/artsc-config{,-n32}
64Bit
Compile the package:
CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" USE_ARCH=64 PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" \ ./configure --prefix=$KDE_PREFIX --libdir=${KDE_PREFIX}/lib64 --disable-debug \ --disable-dependency-tracking --x-libraries=${XORG_PREFIX}/lib64 --with-qt-libraries=${QTDIR}/lib64 \ --enable-libsuffix=64 && make
Install the package
make install && mv -v ${KDE_PREFIX}/bin/artsc-config{,-64} && ln -sfv /usr/bin/multiarch_wrapper ${KDE_PREFIX}/bin/artsc-config