#!/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` \<version\>
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