#!/bin/sh
. /etc/init.d/tc-functions

checkroot

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti"
export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

TODAY=`date +%Y/%m/%d`
PACKAGE="pygobject"
SEP="-"
VERSION="2.21"
SUBVERSION="3"
MIRROR="http://ftp.gnome.org/pub/GNOME/sources/${PACKAGE}/${VERSION}/"
DESCRIPTION="bindings for the GLib, GObject and GIO,to be used in Python"
AUTHORS="Original author: James Henstridge <james@daa.com.au> Current maintainer: Johan Dahlin <johan@gnome.org>"
HOMEPAGE="http://ftp.gnome.org/pub/GNOME/sources/pygobject/"
LICENSE="GPLv2"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS="glib2.tcz python.tcz libffi.tcz"
BUILDDEPS="libffi-dev.tcz \
python-dev.tcz \
glib2-dev.tcz"
FLAGS="--prefix=/usr/local"
DOCS="usr/local/share/gtk-doc"
TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}${SEP}${VERSION}.${SUBVERSION}.tar.bz2"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}.${SUBVERSION}"
TCEDIR="$(cat /opt/.tce_dir)"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in compiletc.tcz squashfs-tools-4.0.tcz ${DEPS} ${BUILDDEPS}; do
		APPNAME=$(getbasefile "$each" 1)
		if [ ! -f /usr/local/tce.installed/"${APPNAME}" ]; then
			if [ ! -e ${TCEDIR}/optional/${each} ]; then
				sudo -u ${TCUSER} tce-load -w ${each}
			fi
			sudo -u ${TCUSER} tce-load -i ${TCEDIR}/optional/${each}
		fi
	done
	[ -d "${PKGDIR}" ] && rm -rf ${PKGDIR}
	mkdir -p ${PKGDIR}/tmp
	cd ${PKGDIR} && wget ${MIRROR}${SRC}
	tar xjf ${SRC}
}

buildit(){
	cd ${SRCDIR}
	./configure ${FLAGS}
	make
	touch /tmp/mark
	make DESTDIR=${PKGDIR}/tmp install
}

workit(){
	if [ "`ls -A ${PKGDIR}/tmp`" ]; then
		rm /tmp/mark
	else
		cd /
		find usr/ -newer /tmp/mark -not -type d > /tmp/${PACKAGE}.list
		tar czO -T /tmp/${PACKAGE}.list | tar xzf - -C ${PKGDIR}/tmp
		rm /tmp/${PACKAGE}.list
	fi

	cd ${PKGDIR}/tmp
	rm -rf ${DOCS}

	chmod 755 usr/local/bin/pygobject-codegen-2.0
	mkdir -p usr/local/share/doc/License
	cp ${SRCDIR}/COPYING usr/local/share/doc/License/${PACKAGE}.txt

	find usr/ | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
	find usr/ | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null

	#dev
	for I in $(find `ls` -name *.h); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done

	for I in $(find `ls` -name *.a); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done

	for I in $(find `ls` -name *.la); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done
	
	for I in $(find `ls` -name *.pc); do 
		export DIR=`dirname "$I"`; 
		[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
		mv "$I" ../dev/"$DIR"/; 
	done
}

packageit(){
   cd ${PKGDIR}/tmp
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}.tcz.list
   done

   mksquashfs . ../${PACKAGE}.tcz

   cd ${PKGDIR}
   md5sum ${PACKAGE}.tcz > ${PACKAGE}.tcz.md5.txt

   for each in ${DEPS}; do echo ${each} >> ${PACKAGE}.tcz.dep; done

   size=`du -h ${PACKAGE}.tcz | cut -f 1`

cat <<EOF> ${PACKAGE}.tcz.info
Title:		${PACKAGE}.tcz
Description:	${DESCRIPTION}
Version:	${VERSION}.${SUBVERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	This archive contains bindings for the GLib, GObject and GIO,
		to be used in Python. It is a fairly complete set of bindings,
		it's already rather useful, and is usable to write moderately
		complex programs.  (see the examples directory for some examples
		of the simpler programs you could write).
		
		If you have any enhancements or bug reports, please file them in
		bugzilla at:
		http://bugzilla.gnome.org/enter_bug.cgi?product=pygobject

		If you have a patch, file the bug first and then use the "create new
		attachment" link on the bug's info page.  My preferred format for
		patches is unified diff format (ie. diff -u).  Please don't send me
		diffs which don't have any context, as these make it very difficult to
		see what the patch does.
		-----------------------------------------------------	
		This extension is PPI compatible.

Changelog:	2009/03/25 Initial packaging
		2009/08/26 Rebuilt against python 2.6.2 and updated to 2.18.0. (Jason W -
		  I will field issues with this build.)
		2009/12/12 updated to 2.20.0
		2010/06/17 updated to 2.20.0
Current:	${TODAY} updated to ${VERSION}.${SUBVERSION}
EOF

   
   #dev
   cd ${PKGDIR}/dev
    for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}-dev.tcz.list
   done

   mksquashfs . ../${PACKAGE}-dev.tcz

   cd ${PKGDIR}
   md5sum ${PACKAGE}-dev.tcz > ${PACKAGE}-dev.tcz.md5.txt

   echo ${PACKAGE}.tcz > ${PACKAGE}-dev.tcz.dep
   for each in ${BUILDDEPS}; do echo ${each} >> ${PACKAGE}-dev.tcz.dep; done

   size=`du -h ${PACKAGE}-dev.tcz | cut -f 1`

   cat <<EOF> ${PACKAGE}-dev.tcz.info
Title:		${PACKAGE}-dev.tcz
Description:	${DESCRIPTION} dev files
Version:	${VERSION}.${SUBVERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	dev files
				
		This extension is PPI compatible
Changelog: 	2009/03/25 Initial packaging
		2009/08/26 Rebuilt against python 2.6.2 and updated to 2.18.0. (Jason W -
		  I will field issues with this build.)
		2009/12/12 updated to 2.20.0
		2010/06/17 updated to 2.20.0
Current:	${TODAY} updated to ${VERSION}.${SUBVERSION}
EOF
}
tarit(){	
	cd ${PKGDIR}
	cp ${THISDIR}/${PACKAGE}.tcbuild .
	tar cvf ${PACKAGE}.tar ${PACKAGE}.tcz* ${PACKAGE}-dev* ${PACKAGE}.tcbuild ${SRC}
}		
#here we go
clean
environment
buildit
workit
packageit
tarit
