Difference between revisions of "PortAudio"
(→Non-Multilib) |
(Fix typo that could clobber ld.so.conf) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
| http://www.portaudio.com/archives/portaudio_v18_1.zip | | http://www.portaudio.com/archives/portaudio_v18_1.zip | ||
|- | |- | ||
+ | ! and/or Download v19 Source: | ||
+ | | http://www.portaudio.com/archives/pa_snapshot.tgz | ||
|} | |} | ||
Line 9: | Line 11: | ||
{{Package-Introduction|PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' that will compile and run on many platforms including Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS. PortAudio is intended to promote the exchange of audio synthesis software between developers on different platforms.|http://www.portaudio.com/}} | {{Package-Introduction|PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' that will compile and run on many platforms including Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS. PortAudio is intended to promote the exchange of audio synthesis software between developers on different platforms.|http://www.portaudio.com/}} | ||
+ | |||
+ | {{Note|The Csound package requires portaudio version 19. Csound.com states that version 18 will not work, and to use the version 19 devel svn. Portaudio.com shows a "stable" v19 dated 07 December 2007, although, judging only by the naming of the tar archive, it "looks" like a development snapshot. Portaudio.com further states that that "stable" v19 snapshot is missing many features and recommends building from the latest v19 trunk snapshot instead. | ||
+ | The v19 build instructions shown here were tested using the 25-July-2009 v19 trunk snapshot. | ||
+ | |||
+ | Since the v19 API is not compatible with v18, I am adding v19 build instructions without removing the existing v18 build instructions here.}} | ||
---- | ---- | ||
− | == Non-Multilib == | + | == Dependencies == |
+ | |||
+ | From v19. | ||
+ | |||
+ | === Optional === | ||
+ | * [[ALSA Library]] | ||
+ | * [[JACK]] | ||
+ | * [[OSS]] | ||
+ | * [[asihpi]] | ||
+ | * [[pkg-config]] | ||
+ | * todo: others? (not well documented) | ||
+ | |||
+ | == Configuration Information == | ||
+ | |||
+ | From v19. | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | |''--enable-cxx:'' build C++ wrapper | ||
+ | |} | ||
+ | |||
+ | == Non-Multilib v18 == | ||
Compile the package: | Compile the package: | ||
Line 23: | Line 51: | ||
make -f Makefile.linux libinstall | make -f Makefile.linux libinstall | ||
− | == Multilib == | + | == Non-Multilib v19 == |
+ | |||
+ | If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning. | ||
+ | |||
+ | {{Note|Don't do this if your libportaudio.so already has versioning! If you do, libportaudio.so is already | ||
+ | a softlink to libportaudio.so.0.0.18, so you'll clobber the existing library file.}} | ||
+ | |||
+ | mv /usr/lib/libportaudio.so /usr/lib/libportaudio.so.0.0.18 && | ||
+ | pushd /usr/lib && | ||
+ | ln -s libportaudio.so.0.0.18 libportaudio.so && | ||
+ | popd | ||
+ | |||
+ | {{Note|The v18 autotools-based build does not install a libportaudio.so.0, nor a libportaudio.la.}} | ||
+ | |||
+ | Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt. | ||
+ | |||
+ | Compile the package: | ||
+ | |||
+ | ./configure --prefix=/opt/portaudio && | ||
+ | make | ||
+ | |||
+ | Install the package: | ||
+ | |||
+ | make install && | ||
+ | |||
+ | cat >> /etc/ld.so.conf < "EOF" | ||
+ | |||
+ | # Begin portaudio addition to /etc/ld.so.conf | ||
+ | |||
+ | /opt/portaudio/lib | ||
+ | |||
+ | # End portaudio addition | ||
+ | EOF | ||
+ | |||
+ | cat > /etc/profile.d/50-portaudio.sh < "EOF" | ||
+ | # Begin /etc/profile.d/50-portaudio.sh | ||
+ | |||
+ | export PORTAUDIODIR="/opt/portaudio" | ||
+ | |||
+ | export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}${PORTAUDIODIR}/lib/pkgconfig" | ||
+ | |||
+ | # End /etc/profile.d/50-portaudio.sh | ||
+ | EOF | ||
+ | |||
+ | source /etc/profile.d/50-portaudio.sh | ||
+ | ldconfig | ||
+ | |||
+ | == Multilib v18 == | ||
+ | |||
+ | == 32Bit == | ||
+ | |||
+ | todo | ||
+ | |||
+ | The obvious transformation of the non-multilib commands works. (Author could not log in at the time.) Write this up some day. | ||
+ | |||
+ | == N32 == | ||
+ | |||
+ | todo | ||
+ | |||
+ | == 64bit == | ||
+ | |||
+ | todo | ||
+ | |||
+ | The obvious transformation of the non-multilib commands works. (Author could not log in at the time.) Write this up some day. | ||
− | + | == Multilib v19 == | |
=== 32Bit === | === 32Bit === | ||
− | + | If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning. | |
+ | |||
+ | {{Note|Don't do this if your libportaudio.so already has versioning! If you do, libportaudio.so is already | ||
+ | a softlink to libportaudio.so.0.0.18, so you'll clobber the existing library file.}} | ||
+ | |||
+ | mv /usr/lib/libportaudio.so /usr/lib/libportaudio.so.0.0.18 && | ||
+ | pushd /usr/lib && | ||
+ | ln -s libportaudio.so.0.0.18 libportaudio.so && | ||
+ | popd | ||
+ | |||
+ | {{Note|The v18 autotools-based build does not install a libportaudio.so.0, nor a libportaudio.la.}} | ||
+ | |||
+ | Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt. | ||
+ | |||
+ | Compile the package: | ||
+ | |||
+ | ./configure --prefix=/opt/portaudio && | ||
+ | make | ||
+ | |||
+ | Install the package: | ||
+ | |||
+ | make install | ||
=== N32 === | === N32 === | ||
Line 37: | Line 149: | ||
=== 64Bit === | === 64Bit === | ||
− | + | If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning. | |
+ | |||
+ | {{Note|Don't do this if your libportaudio.so already has versioning! If you do, libportaudio.so is already | ||
+ | a softlink to libportaudio.so.0.0.18, so you'll clobber the existing library file.}} | ||
+ | |||
+ | mv /usr/lib64/libportaudio.so /usr/lib64/libportaudio.so.0.0.18 && | ||
+ | pushd /usr/lib64 && | ||
+ | ln -s libportaudio.so.0.0.18 libportaudio.so && | ||
+ | popd | ||
+ | |||
+ | {{Note|The v18 autotools-based build does not install a libportaudio.so.0, nor a libportaudio.la.}} | ||
+ | |||
+ | Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt. | ||
+ | |||
+ | Compile the package: | ||
+ | |||
+ | ./configure --prefix=/opt/portaudio --libdir=/opt/portaudio/lib64 && | ||
+ | make | ||
+ | |||
+ | Install the package: | ||
+ | |||
+ | make install && | ||
+ | |||
+ | cat >> /etc/ld.so.conf < "EOF" | ||
+ | |||
+ | # Begin portaudio addition to /etc/ld.so.conf | ||
+ | |||
+ | /opt/portaudio/lib | ||
+ | /opt/portaudio/lib32 | ||
+ | /opt/portaudio/lib64 | ||
+ | |||
+ | # End portaudio addition | ||
+ | EOF | ||
+ | |||
+ | cat > /etc/profile.d/50-portaudio.sh < "EOF" | ||
+ | # Begin /etc/profile.d/50-portaudio.sh | ||
+ | |||
+ | export PORTAUDIODIR="/opt/portaudio" | ||
+ | |||
+ | export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}${PORTAUDIODIR}/lib/pkgconfig" | ||
+ | export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}${PORTAUDIODIR}/lib32/pkgconfig" | ||
+ | export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}${PORTAUDIODIR}/lib64/pkgconfig" | ||
+ | |||
+ | # End /etc/profile.d/50-portaudio.sh | ||
+ | EOF | ||
+ | |||
+ | source /etc/profile.d/50-portaudio.sh | ||
+ | ldconfig | ||
+ | |||
== Contents == | == Contents == | ||
− | |||
− | |||
{| style="text-align: left;" | {| style="text-align: left;" | ||
− | |||
|-valign="top" | |-valign="top" | ||
!Installed Libraries: | !Installed Libraries: | ||
|libportaudio.so | |libportaudio.so | ||
|} | |} | ||
+ | |||
+ | [[Category:Media Libraries]] |
Latest revision as of 12:24, 26 July 2009
Download Source: | http://www.portaudio.com/archives/portaudio_v18_1.zip |
---|---|
and/or Download v19 Source: | http://www.portaudio.com/archives/pa_snapshot.tgz |
Contents
Introduction to PortAudio
PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' that will compile and run on many platforms including Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS. PortAudio is intended to promote the exchange of audio synthesis software between developers on different platforms.
Project Homepage: http://www.portaudio.com/
The v19 build instructions shown here were tested using the 25-July-2009 v19 trunk snapshot.
Since the v19 API is not compatible with v18, I am adding v19 build instructions without removing the existing v18 build instructions here.Dependencies
From v19.
Optional
- ALSA Library
- JACK
- OSS
- asihpi
- pkg-config
- todo: others? (not well documented)
Configuration Information
From v19.
--enable-cxx: build C++ wrapper |
Non-Multilib v18
Compile the package:
sed -i -e "s@/usr/local@/usr@g" Makefile.linux make -f Makefile.linux
Install the package:
make -f Makefile.linux libinstall
Non-Multilib v19
If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning.
mv /usr/lib/libportaudio.so /usr/lib/libportaudio.so.0.0.18 && pushd /usr/lib && ln -s libportaudio.so.0.0.18 libportaudio.so && popd
Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt.
Compile the package:
./configure --prefix=/opt/portaudio && make
Install the package:
make install && cat >> /etc/ld.so.conf < "EOF" # Begin portaudio addition to /etc/ld.so.conf /opt/portaudio/lib # End portaudio addition EOF cat > /etc/profile.d/50-portaudio.sh < "EOF" # Begin /etc/profile.d/50-portaudio.sh export PORTAUDIODIR="/opt/portaudio" export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}${PORTAUDIODIR}/lib/pkgconfig" # End /etc/profile.d/50-portaudio.sh EOF source /etc/profile.d/50-portaudio.sh ldconfig
Multilib v18
32Bit
todo
The obvious transformation of the non-multilib commands works. (Author could not log in at the time.) Write this up some day.
N32
todo
64bit
todo
The obvious transformation of the non-multilib commands works. (Author could not log in at the time.) Write this up some day.
Multilib v19
32Bit
If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning.
mv /usr/lib/libportaudio.so /usr/lib/libportaudio.so.0.0.18 && pushd /usr/lib && ln -s libportaudio.so.0.0.18 libportaudio.so && popd
Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt.
Compile the package:
./configure --prefix=/opt/portaudio && make
Install the package:
make install
N32
TO DO
64Bit
If you already have v18 installed, the sharable library was probably installed without versioning. (That's what the v18 instructions here do.) To prevent conflict between the two versions, add library versioning.
mv /usr/lib64/libportaudio.so /usr/lib64/libportaudio.so.0.0.18 && pushd /usr/lib64 && ln -s libportaudio.so.0.0.18 libportaudio.so && popd
Now, the two versions of the library could co-exist in the same directory, but there are also two different incompatible versions of the header file, which would likely cause problems with future builds of other packages that need one or the other of these versions. So we had better install v19 in /opt.
Compile the package:
./configure --prefix=/opt/portaudio --libdir=/opt/portaudio/lib64 && make
Install the package:
make install && cat >> /etc/ld.so.conf < "EOF" # Begin portaudio addition to /etc/ld.so.conf /opt/portaudio/lib /opt/portaudio/lib32 /opt/portaudio/lib64 # End portaudio addition EOF cat > /etc/profile.d/50-portaudio.sh < "EOF" # Begin /etc/profile.d/50-portaudio.sh export PORTAUDIODIR="/opt/portaudio" export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}${PORTAUDIODIR}/lib/pkgconfig" export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}${PORTAUDIODIR}/lib32/pkgconfig" export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}${PORTAUDIODIR}/lib64/pkgconfig" # End /etc/profile.d/50-portaudio.sh EOF source /etc/profile.d/50-portaudio.sh ldconfig
Contents
Installed Libraries: | libportaudio.so |
---|