PortAudio

From CBLFS
Revision as of 11:24, 26 July 2009 by Tdshepard (talk | contribs) (Fix typo that could clobber ld.so.conf)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Download Source: http://www.portaudio.com/archives/portaudio_v18_1.zip
and/or Download v19 Source: http://www.portaudio.com/archives/pa_snapshot.tgz

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/

Caution.png

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.

Dependencies

From v19.

Optional

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.

Caution.png

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
Caution.png

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

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.

Caution.png

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
Caution.png

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

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.

Caution.png

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
Caution.png

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

Installed Libraries: libportaudio.so