Pre-requisites

  • You have a basic knowledge of Unix/Linux as a user;
  • You have the basic tools for compiling (gcc, g++, cpp, etc);
  • You have an account on the machine you plan to install Icecast on, and the authorization of the system administrator of course.

Now, we will compile everything from source, which includes:

  • libxml2;
  • libxslt;
  • libogg;
  • libvorbis;
  • libtheora;
  • libspeex;
  • curl;
  • Icecast.

First of all...

We will put the compiled binaries in a directory in your home directory. This way, you'll be able to add it to your $PATH easily.

$ mkdir /home/myuser/build/

Of course, replace "myuser" by your username.

XML

Download libxml2 from xmlsoft's FTP server.

$ ./configure --prefix=/home/myuser/build/
$ make
$ make install

XSLT

Download libxslt from xmlsoft's FTP server.

$ ./configure --prefix=/home/myuser/build/ --with-libxml-src=../libxml2-2.6.28/
$ make
$ make install

I assume you extracted the libxslt archive in the same archive as libxml2's one. Replace libxml2-2.6.28 by the correct version number.

Ogg

Download libogg from Xiph's website.

$ ./configure --prefix=/home/myuser/build/
$ make
$ make install

Vorbis

Download libvorbis from Xiph's website.

$ LD_LIBRARY_PATH=/home/myuser/build/lib/:$LD_LIBRARY_PATH
   ./configure
   --prefix=/home/myuser/build/
   --with-ogg-libraries=/home/myuser/build/lib/ 
   --with-ogg-includes=/home/myuser/build/include
$ make
$ make install

Theora

Download libtheora from Xiph's website.

$ LD_LIBRARY_PATH=/home/myuser/build/lib/:$LD_LIBRARY_PATH
   ./configure
   --prefix=/home/myuser/build/
   --with-ogg-libraries=/home/myuser/build/lib/ 
   --with-ogg-includes=/home/myuser/build/include/
   --with-vorbis-libraries=/home/myuser/build/lib/
   --with-vorbis-includes=/home/myuser/build/include/
$ make
$ make install

Speex

Download speex from Xiph's website.

$ ./configure
   --prefix=/home/myuser/build/
   --with-ogg-libraries=/home/myuser/build/lib/ 
   --with-ogg-includes=/home/myuser/build/include
$ make
$ make install

Curl

Download curl from Curl's website. Attention! Don't chose the latest version, Icecast seems to be a little outdated with regard to the latest API. I used version 7.15.5.

$ ./configure --prefix=/home/myuser/build/
$ make
$ make install

And now, Icecast!

Now we get to the interesting part: putting all those libraries together! Download Icecast from Icecast's website.

$ CFLAGS="-I/home/myuser/build/include/libxml2/"
   LDFLAGS="-L/home/myuser/build/lib/"
   LD_LIBRARY_PATH=/home/myuser/build/lib/:$LD_LIBRARY_PATH
   ./configure
   --prefix=/home/myuser/build/
   --with-xslt-config=/home/myuser/build/bin/xslt-config
   --with-ogg=/home/myuser/build/
   --with-vorbis=/home/myuser/build/
   --with-theora=/home/myuser/build/
   --with-speex=/home/myuser/build/
   --with-curl=/home/myuser/build/
$ make
$ make install

And that should be it! Now don't forget to edit the configuration file (/home/myuser/build/etc/icecast.xml) in order to adapt it to your reduced rights. Pay attention to the paths (change them so that they point to directories and files you can read and write).