Compiling
Here's how to do it. It can be tough, but if you follow the instructions it shouldn't be a big problem. However, if you have never built packages from source before, this is probably not the time to learn. Aqualung depends on quite a few libraries and installing them the right way before attempting to compile Aqualung is an earnest of success.
Aqualung uses the GNU autotools (autoconf, automake, autoheader), make, and relies on pkg-config to gain information about your system and installed libraries needed to setup a working build environment. So, it is the usual ./configure, make, make install stuff, with a few specialized points.
Part of Aqualung's functionality is optionally built. That means you can build Aqualung without certain features if you don't need them, and in such cases you won't need the libraries supporting that particular functionality either. When running ./configure without options, the script will detect the libraries present on the system and try to adapt the configuration accordingly. If an optional library is missing, the feature provided by that library will not be compiled in Aqualung. The absence of mandatory libs will cause hard errors.
You can use the appropriate --without-foo option from the table if you want to turn something off that would otherwise be automatically detected and compiled in. Conversely, use --with-foo to make sure that the absence of the corresponding optional library causes a hard error and doesn't get through unnoticed.
Upon successful completion of the configure step, the configuration is printed in tabular form. You can also access this info later by looking in the About box or typing aqualung --version.
To get a list of all the valid configuration options, type ./configure --help.
Mandatory packages | |||
---|---|---|---|
package | provided functionality | where to get it | how to turn it off |
GTK+-2.0 | Graphical user interface, requires version 2.18 | http://www.gtk.org | |
libXML2 | XML parser library | http://xmlsoft.org | |
Optional packages providing optional features | |||
package | provided functionality | where to get it | how to turn it off |
liblrdf | A library for manipulating RDF files about LADSPA plugins | http://sourceforge.net/projects/lrdf | --without-ladspa |
libcdio | Library to read Audio CD | http://www.gnu.org/software/libcdio | --without-cdda |
libcddb | Library to access CDDB/FreeDB server | http://sourceforge.net/projects/libcddb | --without-cddb |
libsamplerate | Library for high quality Sample Rate Conversion | http://www.mega-nerd.com/SRC | --without-src |
libifp | Library to support iRiver iFP driver | http://sourceforge.net/projects/ifp-driver | --without-ifp |
Podcast support | --without-podcast | ||
Lua ≥ 5.1 | Lua (scripting extensions) support | http://www.lua.org | --without-lua |
Optional packages providing decoding/encoding support | |||
package | provided functionality | where to get it | how to turn it off |
libsndfile | Library to decode uncompressed file formats (WAV, AIFF, AU, etc.) and encode WAV audio files | http://www.mega-nerd.com/libsndfile | --without-sndfile |
libFLAC | Library to decode and encode FLAC audio files | http://flac.sourceforge.net | --without-flac |
libvorbis libvorbisfile |
Library to decode Ogg Vorbis audio files | http://www.vorbis.com | --without-ogg |
libvorbis libvorbisenc |
Library to encode Ogg Vorbis audio files | http://www.vorbis.com | --without-vorbisenc |
liboggz libspeex |
Library to decode Ogg Speex audio files | http://www.annodex.net/software/liboggz/ http://speex.org |
--without-speex |
libmad | Library to decode MPEG Audio files (MP3 and friends) | http://www.underbit.com/products/mad | --without-mpeg |
libmp3lame | Library to encode MP3 audio files | http://lame.sourceforge.net | --without-lame |
libmodplug | Library to decode MOD files (MOD, S3M, XM, IT, etc.) | http://modplug-xmms.sourceforge.net | --without-mod |
libmpcdec | Library to decode Musepack files | http://www.musepack.net | --without-mpc |
libmac | Library to decode Monkey's Audio files | http://etree.org/shnutils/shntool/support | --without-mac |
libwavpack | Library to decode WavPack files | http://www.wavpack.com | --without-wavpack |
FFmpeg | Numerous audio/video codecs including AC3, AAC, WMA, WavPack and movie formats. If you don't want to compile this from source, recent distro packages of libavcodec, libavformat and libavutil should be OK. | http://ffmpeg.mplayerhq.hu | --without-lavc |
Optional packages providing output driver support | |||
package | provided functionality | where to get it | how to turn it off |
sndio.h | sndio output support | --without-sndio | |
soundcard.h | OSS sound support | --without-oss | |
libasound | ALSA sound library | http://www.alsa-project.org | --without-alsa |
JACK | JACK Audio Connection Kit | http://jackit.sf.net | --without-jack |
libpulse-simple | PulseAudio | http://pulseaudio.org | --without-pulse |
Note that you can turn off any and all input format support libraries – naturally, you should not turn them off at once, or the program will be completely useless. The same applies for output drivers.
Debug build
The configure option --enable-debug builds Aqualung with debugging support enabled (gcc -rdynamic -ggdb -g -O0). Furthermore, a signal handler is installed which runs when the program receives a SEGV, FPE, ILL, BUS or ABRT signal, and prints useful debug info (most notably a stack trace). If you get such a report, please email it to the mailing list along with a short description of what you were doing when the program crashed. Please also send the output of `aqualung -v'.
Platform-specific notes
FreeBSD, OpenBSD
Aqualung compiles under FreeBSD and OpenBSD (and perhaps other BSDs too, but this is untested) without much hassle. However, the LDFLAGS environment variable has to be set in the shell before running ./configure, or else no libraries will be found. For example:
setenv LDFLAGS -L/usr/local/lib; ./configure
has to be issued instead of plain ./configure.
Microsoft Windows
Aqualung compiles and runs on Microsoft Windows natively or using the Cygwin UNIX emulation layer. If you use the native version (strongly recommended), all you have to do is download the installer and proceed through the steps of the setup wizard.
Aqualung builds out of the box in a standard Cygwin shell. Naturally, you have to install relevant dependency libs (with their respective development packages) before compiling, just like on UNIX. Some libs may not be part of the Cygwin distribution; you'll have to build and install them from source.
Please note that running Aqualung on Windows (esp. under Cygwin) may suffer from stability and usability problems. While we are striving to provide stable and easily usable software on all platforms, keep in mind that this is still experimental.
Installing Aqualung
make install will put the executable, the manpage, the icons and the skins in the right places. What the right places are depends on your system, and can be set manually by using standard ./configure options, most notably --prefix. If you are not familiar with this, ./configure --help is your friend.