#!/bin/bash function get_time() { START=${1}_START END=${1}_END LTIME=$(($END - $START)) SECONDS=$LTIME MINUTES=$(($SECONDS / 60)) SECONDS=$(($SECONDS % 60)) HOURS=$(($MINUTES / 60)) MINUTES=$(($MINUTES % 60)) LTIME="$HOURS:$MINUTES:$SECONDS" eval ${1}_TIME=\$LTIME } function start_time() { eval ${1}_START=`date +%s` } function end_time() { eval ${1}_END=`date +%s` get_time $1 } ORIG_DIR=`pwd` source ~/.kde4buildinc VERSION=$1 VERSIONS=( `ls $KDE_SRC | cut -f2 -d- | sed -e 's/copy//' | sort -u` ) #VERSIONS=( `ls $KDE_SRC | cut -f2 -d- | sort -u` ) PACKAGES=`ls $KDE_SRC | cut -f1 -d- | sed -e s,qt,, -e s,kdelibs,, -e s,kdepimlibs,, -e s,strigi,, -e s,kdebase,, | sort -u` #PACKAGES="kdelibs kdepimlibs kdebase $PACKAGES" PACKAGES="kdepimlibs strigi kdelibs kdebase $PACKAGES" GLOBAL_START=`date +%s` if [ ${#VERSIONS[@]} -gt 1 ] then if [ "$VERSION" != "" ] then FOUND=0 for i in ${VERSIONS[*]} do if [ "$i" == "$VERSION" ] then FOUND=1 fi done if [ $FOUND -eq 0 ] then echo You specified an invalid version of kde4 to build. echo Please pick one of: ${VERSIONS[*]} exit fi else echo Found more than one version of kde4: "${VERSIONS[*]}" echo Please select one and run this script again as: `basename $0` \ exit fi else if [ "$VERSION" != "" ] && [ "$VERSION" != "${VERSIONS[0]}" ] then echo You selected an invalid version of kde4. echo This is the only version I found: ${VERSIONS[0]} echo Either pick that, or don\'t explicitly specify a version. exit else echo Selecting version ${VERSIONS[0]}. VERSION=${VERSIONS[0]} fi fi KDE_PACKAGE_SOURCE_DIRS="" for i in $PACKAGES do SRC_DIR=$KDE_SRC/$i-$VERSION if [ ! -d $SRC_DIR ] then if [ "$i" == "kdelibs" ] || [ "$i" == "kdebase" ] then echo Source missing for $i-$VERSION. echo This is a fatal error, exiting. exit else if [ "$VERSION" == "svn" ] then echo Checking out $i svn. if [ "$i" == "strigi" ] then svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/strigi $SRC_DIR else svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/$i $SRC_DIR fi else echo Source missing for $i-$VERSION. echo Skipping... fi fi else if [ "$VERSION" == "svn" ] then echo Updating $i svn. svn cleanup $SRC_DIR svn up $SRC_DIR fi KDE_PACKAGE_SOURCE_DIRS="$KDE_PACKAGE_SOURCE_DIRS $SRC_DIR" fi done for i in $KDE_PACKAGE_SOURCE_DIRS do PACKAGE=`basename $i | cut -f1 -d-` BUILD_DIR=`echo $i | sed -e $OBJ_REPLACEMENT` echo Building: $PACKAGE. if [ ! -d "$i" ] then echo fi if [ ! -d "$BUILD_DIR" ] then echo Creating: `echo $BUILD_DIR | sed s,$HOME/,,` mkdir -p $BUILD_DIR fi if [ ! -d $i ] then if [ "$PACKAGE" == "kdelibs" ] || [ "$PACKAGE" == "kdebase" ] then echo Failed: $PACKAGE. echo This is a fatal error, exiting. exit fi echo Was expecting $i to exist as a directory, skipping $PACKAGE continue else echo Running: cmakekde `echo $i | sed -e s,$HOME/,,` cd $i cmakekde $i fi done cd $ORIG_DIR GLOBAL_END=`date +%s` GLOBAL_TIME=$(($GLOBAL_END-$GLOBAL_START)) get_time GLOBAL_TIME $GLOBAL_START $GLOBAL_END echo Total Time: $GLOBAL_TIME