Difference between revisions of "ARts"

From CBLFS
Jump to navigationJump to search
(Non-Multilib: No detection of SSE instruction availability)
(Inconsistant Change: Undo revision 18259 by Ssot (Talk))
 
(10 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
!Download Source:
 
!Download Source:
 
| ftp://ftp.kde.org/pub/kde/stable/{{KDE-Version}}/src/arts-{{aRts-Version}}.tar.bz2
 
| ftp://ftp.kde.org/pub/kde/stable/{{KDE-Version}}/src/arts-{{aRts-Version}}.tar.bz2
 +
|}
 +
{| style="text-align: left; background-color: AliceBlue;"
 +
|-valign="top"
 +
!Download Source:
 +
| http://svn.cross-lfs.org/svn/repos/patches/arts/arts-{{aRts-Version}}-fix_mmx-1.patch
 
|}
 
|}
  
 
----
 
----
  
== Introduction to aRts ==
+
{{Package-Introduction|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.
  
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).|http://www.kde.org}}
 
 
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 ==
 
== Dependencies ==
  
 
=== Required ===
 
=== Required ===
 +
* [[KDE Pre-Installation Configuration]]
 
* [[Qt3]]
 
* [[Qt3]]
 
* [[Glib2]]
 
* [[Glib2]]
Line 33: Line 33:
 
* [[MAS]]
 
* [[MAS]]
 
* [[JACK]]
 
* [[JACK]]
 +
 +
== Test Suite Note ==
 +
 +
The test suite can be run with:
 +
 +
make check
 +
 +
It compiles and runs correctly with GCC 4.1.1, but it apparently does not work properly with earlier GCC 4.x versions.
  
 
== Non-Multilib ==
 
== 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:
+
On x86_64, aRTS 'configure' fails to detect if the hardware provides MMX, SSE, 3DNOW! or floating point to int conversion instructions. Apply the following patch to allow aRts to use multimedia 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
+
  patch -Np1 -i ../arts-{{aRts-Version}}-fix_mmx-1.patch
--- 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
+
Correct error with new linux-headers:
  @@ -38958,7 +38958,7 @@
+
  sed -i "39i\#include <linux/limits.h>" mcop/mcoputils.cc
  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:
 
Compile the package:
Line 142: Line 94:
  
 
=== 64Bit ===
 
=== 64Bit ===
 +
 +
On x86_64, aRTS 'configure' fails to detect if the hardware provides MMX, SSE, 3DNOW! or floating point to int conversion instructions. Apply the following patch to allow aRts to use multimedia instructions and hardware float to int conversions on your x86_64 machine:
 +
 +
patch -Np1 -i ../arts-{{aRts-Version}}-fix_mmx-1.patch
  
 
Compile the package:
 
Compile the package:

Latest revision as of 12:59, 25 April 2009

Download Source: ftp://ftp.kde.org/pub/kde/stable/3.5.10/src/arts-1.5.10.tar.bz2
Download Source: http://svn.cross-lfs.org/svn/repos/patches/arts/arts-1.5.10-fix_mmx-1.patch

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).

Project Homepage: http://www.kde.org

Dependencies

Required

Recommended

Optional

Test Suite Note

The test suite can be run with:

make check

It compiles and runs correctly with GCC 4.1.1, but it apparently does not work properly with earlier GCC 4.x versions.

Non-Multilib

On x86_64, aRTS 'configure' fails to detect if the hardware provides MMX, SSE, 3DNOW! or floating point to int conversion instructions. Apply the following patch to allow aRts to use multimedia instructions and hardware float to int conversions on your x86_64 machine:

patch -Np1 -i ../arts-1.5.10-fix_mmx-1.patch

Correct error with new linux-headers:

sed -i "39i\#include <linux/limits.h>" mcop/mcoputils.cc

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

On x86_64, aRTS 'configure' fails to detect if the hardware provides MMX, SSE, 3DNOW! or floating point to int conversion instructions. Apply the following patch to allow aRts to use multimedia instructions and hardware float to int conversions on your x86_64 machine:

patch -Np1 -i ../arts-1.5.10-fix_mmx-1.patch

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
Retrieved from "?title=ARts&oldid=18260"