Compile icecast in the Unix-Like Environment
這兒是說明如何在 *nix 下編譯 icecast 的麻瓜用 shellscript ,文件及 Shellscript 的編寫者為 AndCycle 。
(註:整組編譯完的空間約需200MB e_e )
Contents of Shellscript
#!/bin/bash
mkdir testCompile
cd testCompile
testCompilePath=`pwd`
mkdir install
cd install
installPath=`pwd`
cd $testCompilePath
gragAndUntar ()
{
echo "grab $1"
if wget $1
then echo "Done"
else exit 1
fi
echo "untar $1"
if tar --extract --ungzip --file $2
then echo "Done"
else exit 1
fi
}
gragAndUntar "http://curl.haxx.se/download/curl-7.14.0.tar.gz" "curl-7.14.0.tar.gz"
gragAndUntar "ftp://xmlsoft.org/libxml2-2.6.17.tar.gz" "libxml2-2.6.17.tar.gz"
gragAndUntar "ftp://xmlsoft.org/libxslt-1.1.12.tar.gz" "libxslt-1.1.12.tar.gz"
gragAndUntar "http://www.libsdl.org/release/SDL-1.2.8.tar.gz" "SDL-1.2.8.tar.gz"
gragAndUntar "http://downloads.xiph.org/releases/ogg/libogg-1.1.2.tar.gz" "libogg-1.1.2.tar.gz"
gragAndUntar "http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.0.tar.gz" "libvorbis-1.1.0.tar.gz"
gragAndUntar "http://downloads.xiph.org/releases/theora/libtheora-1.0alpha4.tar.gz" "libtheora-1.0alpha4.tar.gz"
gragAndUntar "http://downloads.xiph.org/releases/icecast/icecast-2.2.0.tar.gz" "icecast-2.2.0.tar.gz"
gragAndUntar "http://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz" "ucl-1.03.tar.gz"
gragAndUntar "http://upx.sourceforge.net/download/upx-1.25-src.tar.gz" "upx-1.25-src.tar.gz"
makeInstall ()
{
echo "working in $1"
if cd $1
then echo "Done"
else exit 1
fi
echo "configure $1"
if ./configure $2
then echo "Done"
else exit 1
fi
echo "make $1"
if [ "$3" ]
then
if make $3
then echo "Done"
else exit 1
fi
else
if make
then echo "Done"
else exit 1
fi
fi
echo "make installe $1"
if make install
then echo "Done"
else exit 1
fi
cd $testCompilePath
}
makeInstall "curl-7.14.0" "--prefix=$installPath"
makeInstall "libxml2-2.6.17" "--prefix=$installPath"
makeInstall "libxslt-1.1.12" "--prefix=$installPath --with-libxml-prefix=$installPath"
makeInstall "SDL-1.2.8" "--prefix=$installPath"
makeInstall "libogg-1.1.2" "--prefix=$installPath"
makeInstall "libvorbis-1.1.0" "--prefix=$installPath --with-ogg=$installPath --disable-oggtest"
makeInstall "libtheora-1.0alpha4" "--prefix=$installPath --with-ogg=$installPath --with-vorbis=$installPath --with-sdl-prefix=$installPath --disable-oggtest --disable-vorbistest --disable-sdltest"
#icecast need blablabla-config executable
cd libxslt-1.1.12
chmod +x xslt-config
cd $testCompilePath
cd curl-7.14.0
chmod +x curl-config
cd $testCompilePath
makeInstall "icecast-2.2.0" "--prefix=$installPath --with-xslt-config=$testCompilePath/libxslt-1.1.12/xslt-config --with-curl-config=$testCompilePath/curl-7.14.0/curl-config --with-vorbis=$installPath --with-theora=$installPath" "static"
cp $installPath/bin/icecast $testCompilePath
makeInstall "ucl-1.03" "--prefix=$installPath"
cd ucl-1.03
export UCLDIR=`pwd`
cd $testCompilePath
cd upx-1.25
cd src
make
chmod 755 upx
./upx -9 $testCompilePath/icecast
cd $testCompilePath
mkdir build
cd build
cp --recursive $installPath/share/icecast/* ./
mv $testCompilePath/icecast ./
echo "we have done all the need in testCompile/build directory."