# Contributor: Fyda # This script compiles the cairo-dock plugins from SVN. # Cairo-dock can be found at: # http://developer.berlios.de/projects/cairo-dock/ # Cairo-dock is released under the GPL. # You'll need at least the following to build this successfully: # libxxf86vm vte subversion autoconf automake intltool pkgconfig libtool perlxml # NOTE: This script sets /usr/local as the prefix (not /usr). # It also does a `sudo make install' for each item, so you might need to # stick around and type in the password when it brings up a prompt for that. # USAGE:- # Put this script in its own directory, eg. ~/cairo-dock # make it executable, and run it with: ./cairo_dock.sh # You can blacklist specific plug-ins here. Separate items with a space. _blacklist="template" # Where should the files be installed to? (Don't change this unless you know # what you're doing.) _installprefix="/usr/local" # Where is the SVN repo located? (You shouldn't normally have to change this.) _svntrunk="http://svn.berlios.de/svnroot/repos/cairo-dock/trunk" # The directory name of cairo-dock itself _svncdock="cairo-dock" # And the directory name containing all the individual plugin subdirectories _svnplugs="plug-ins" ### SCRIPT BEGINS BELOW ### if [ -d $_svncdock ] ; then cd $_svncdock svn update || return 1 echo "Cairo-Dock is up to date." else svn checkout $_svntrunk/$_svncdock || return 1 cd $_svncdock echo "Cairo-Dock checkout complete." echo "Compiling $_svncdock..." echo "Executing autoreconf..." autoreconf -isvf if [ $? -ne 0 ]; then echo "WARNING: $_svncdock failed during autoreconf!" else echo "Performing configure for $_svncdock..." CFLAGS="$CFLAGS -Wno-error" CXXFLAGS="$CXXFLAGS -Wno-error" ./configure --prefix=$_installprefix if [ $? -ne 0 ]; then echo "WARNING: $_svncdock did not pass pre-build checks! You might be missing some build dependencies." else echo "Making $_svncdock..." make if [ $? -ne 0 ]; then echo "WARNING: $a failed to build!" else echo "Installing $_svncdock..." sudo make install if [ $? -ne 0 ]; then echo "WARNING: Failed to install $_svncdock!" else echo "Successfully made and installed $_svncdock." fi fi fi fi fi cd .. if [ -d $_svnplugs ] ; then cd $_svnplugs svn update || return 1 echo "Files are up to date." else svn checkout $_svntrunk/$_svnplugs || return 1 cd $_svnplugs fi echo "SVN checkout done." echo "Starting make..." # get directory listing, clean it up to remove the trailing slashes _itemstocompile="$(echo */ | sed s/\\///g)" # create lists of items that failed at 1) autoreconf, 2) configure, and 3) make _failedarc="" _failedconf="" _failedmake="" # and a list of successfully built items _successfulitems="" # apply the blacklist so we remove those plug-ins from the to-compile list if [ ! -z "$_blacklist" ] ; then echo "** You have blacklisted the following plug-ins:" echo "$_blacklist" for a in $_blacklist ; do _itemstocompile="$(echo $_itemstocompile | sed s/$a//)" done fi for a in $_itemstocompile ; do echo "Doing autoreconf for $a..." cd $a autoreconf -isvf if [ $? -ne 0 ]; then _failedarc="$_failedarc $a" echo "WARNING: $a failed during autoreconf!" else echo "Doing configure for $a..." CFLAGS="$CFLAGS -Wno-error" CXXFLAGS="$CXXFLAGS -Wno-error" ./configure --prefix=$_installprefix if [ $? -ne 0 ]; then _failedconf="$_failedconf $a" echo "WARNING: $a did not pass pre-build checks! You are probably missing some build dependencies." else echo "Making $a..." make if [ $? -ne 0 ]; then _failedmake="$_failedmake $a" echo "WARNING: $a failed to build!" else echo "Doing make install for $a..." sudo make install if [ $? -ne 0 ]; then echo "WARNING: Failed to install $a!" else _successfulitems="$_successfulitems $a" echo "Successfully made and installed $a." fi fi fi fi cd .. done if [ ! -z "$_failedarc" ]; then echo "** The following plug-ins failed during autoreconf:" echo "$_failedarc" fi if [ ! -z "$_failedconf" ]; then echo "** The following plug-ins failed during configure (probably missing build dependencies):" echo "$_failedconf" fi if [ ! -z "$_failedmake" ]; then echo "** The following plug-ins failed to build:" echo "$_failedmake" fi if [ ! -z "$_blacklist" ]; then echo "** The following blacklisted plug-ins were not built:" echo "$_blacklist" fi if [ ! -z "$_successfulitems" ]; then echo "** The following plug-ins were successfully built:" echo "$_successfulitems" fi