#!/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="meld"
SEP="-"
VERSION="1.3"
SUBVERSION="1"
MIRROR="http://ftp.gnome.org/pub/gnome/sources/meld/${VERSION}/"
DESCRIPTION="visual diff and merge tool"
AUTHORS="Stephen Kennedy <steve9000@users.sourceforge.net>"
HOMEPAGE="http://meld.sourceforge.net/"
LICENSE="GPL/MIT"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS="gamin.tcz \
hicolor-icon-theme.tcz \
libglade.tcz \
pygtk.tcz \
shared-mime-info.tcz"
BUILDEPS="intltool-0.40.5.tcz \
gettext.tcz \
libiconv.tcz \
perl5.tcz \
scrollkeeper.tcz"
FLAGS=""
DOCS="usr/local/share/man"
TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}${SEP}${VERSION}.${SUBVERSION}.tar.gz"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}.${SUBVERSION}"
TCEDIR="$(cat /opt/.tce_dir)"
ICON="/usr/local/share/pixmaps/${PACKAGE}.png"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in squashfs-tools-4.0.tcz compiletc.tcz ${DEPS} ${BUILDEPS}; 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 xzf ${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
	cat <<EOF> usr/local/tce.icons/${PACKAGE}
i: ${ICON}
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
}

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:	Meld is a visual diff and merge tool. You can compare two or
			three files and edit them in place (diffs update dynamically).
			You can compare two or three folders and launch file
			comparisons. You can browse and view a working copy from
			popular version control systems such such as CVS, Subversion,
			Bazaar-ng and Mercurial.
			----------------------
			Dep file is recursive
			---------------------
			PPI compatible
Change-log:	2009/10/26 First packging ${VERSION}.${SUBVERSION}
Current:		${TODAY} Recompiled & Repackaged
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

   echo ${PACKAGE}.tcz > ${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}.${SUBVERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:${LICENSE}
Size:		${size}
Extension_by:	${ME}	
Comments:	locale files
	                ------------------------
        	        Dep file is recursive
			----------------------------------------	
			This extension is PPI compatible
Change-log:	2009/10/26 First packging ${VERSION}.${SUBVERSION}
Current:		${TODAY} Recompiled & Repackaged
EOF
}
tarit(){	
	cd ${THISDIR}
	tar cvf 	${PACKAGE}.tar \
			${PACKAGE}.tcbuild \
			${PACKAGE}/${PACKAGE}.tcz* \
			${PACKAGE}/${PACKAGE}-locale.tcz*
}	
#here we go
clean
environment
buildit
workit
packageit
tarit