#!/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="pygtk"
SEP="-"
VERSION="2.16.0"
MIRROR="http://ftp.gnome.org/pub/GNOME/sources/$PACKAGE/2.16/"
EXT="tcz"
DESCRIPTION="GTK+ for Python"
AUTHORS="Original author: James Henstridge <james@daa.com.au> Current maintainer: Johan Dahlin <johan@gnome.org>"
HOMEPAGE="http://www.pygtk.org/"
LICENSE="GPLv2"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS="pygobject.tcz \
pycairo.tcz \
gtk2.tcz"
BUILDDEPS="libglade-dev.tcz \
python-dev.tcz \
pygobject-dev.tcz \
pycairo-dev.tcz \
gtk2-dev.tcz \
libffi-dev.tcz \
Xorg-7.5-dev.tcz \
perl5.tcz"
FLAGS="--prefix=/usr/local"
DOCS="usr/local/share/gtk-doc"


TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}${SEP}${VERSION}.tar.bz2"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}"

environment(){
	TCEDIR="$(cat /opt/.tce_dir)"
	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}

	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

	#mkdir -pm 775 usr/local/tce.installed
	#cat <<EOF> usr/local/tce.install/${PACKAGE}
##!/bin/sh

#EOF
	#   chmod 775 usr/local/tce.installed/${PACKAGE}

	#mkdir -pm 775 usr/local/tce.menu
	#cat <<EOF> usr/local/tce.menu/${PACKAGE}
#<JWM>
 # <Program label="$PACKAGE">$PACKAGE</Program>
#</JWM>
#EOF
#	chmod 644 usr/local/tce.menu/${PACKAGE}

#	mkdir -pm 775 usr/local/tce.icons
#	cp ${SRCDIR}/${PACKAGE}/pixmaps/icons/hicolor/48x48/apps/$PACKAGE.png usr/local/tce.icons/
#	cat <<EOF> usr/local/tce.icons/${PACKAGE}
#i: /usr/local/tce.icons/$PACKAGE.png
#t: $PACKAGE
#c: $PACKAGE
#EOF
#	chmod 644 usr/local/tce.icons/*

	#dont clobber tc setup
#	chown -R root:staff usr/local/tce.*

	#package specific stuff
	#locale
	#mkdir -p ../locale/usr/local/share/locale
	#mv usr/local/share/locale ../locale/usr/local/share
	
	#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}.${EXT}.list
   done

   mksquashfs . ../${PACKAGE}.${EXT}

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

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

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

cat <<EOF> ${PACKAGE}.${EXT}.info
Title:		${PACKAGE}.${EXT}
Description:	${DESCRIPTION}
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	PyGTK lets you to easily create programs
		with a graphical user interface using the
		Python programming language. The underlying GTK+
		library provides all kind of visual elements and
		utilities for it and, if needed, you can develop
		full featured applications for the GNOME Desktop.

		PyGTK applications are truly multiplatform and 
		they're able to run, unmodified, on Linux, Windows,
		MacOS X and other platforms.

		Other distinctive features of PyGTK are,
		besides its ease of use and rapid prototyping,
		its first class accesibility support or the capability
		to deal with complex multilingual or bidirectional 
		text for fully localized applications.
		------------------------------------------
		This extension is PPI compatible.
Change-log:     2009/03/25 Initial packaging
                2009/08/28 Upgraded to 2.14.1 and built with python 2.6.2.
                2009/12/12 updated to 2.16.0
	        2009/12/22 Recompiled with glade support by bmarkus
		2010/06/28 Recompiled
Current:        ${TODAY}   Recompiled with glade support

EOF

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

   #mksquashfs . ../${PACKAGE}-locale.tcz

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

   #for each in ${DEPS}; do echo ${each} >> ${PACKAGE}-locale.tcz.dep; done
   #echo ${PACKAGE}.${EXT} >> ${PACKAGE}-locale.tcz.dep
   
   #size=`du -h ${PACKAGE}-locale.tcz | cut -f 1`

   #cat <<EOF> ${PACKAGE}-locale.tcz.info
#Title:		${PACKAGE}-locale.tcz
#Description:	${DESCRIPTION} locale files
#Version:	${VERSION}
#Author:		${AUTHORS}
#Original-site:	${HOMEPAGE}
#Copying-policy:	${LICENSE}
#Size:		${size}
#Extension_by:	${ME}
#Comments:	locale 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.)
#Current:	${TODAY} updated to 2.20
#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

   for each in ${BUILDDEPS}; do echo ${each} >> ${PACKAGE}.${EXT}-dev.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}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	dev files
				
		This extension is PPI compatible
Change-log:     2009/03/25 Initial packaging
                2009/08/28 Upgraded to 2.14.1 and built with python 2.6.2.
                2009/12/12 updated to 2.16.0
	        2009/12/22 Recompiled with glade support by bmarkus
		2010/06/28 Recompiled
Current:        ${TODAY}   Recompiled with glade support
EOF
}
	
#here we go

#environment
#buildit
workit
packageit
