#!/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 -fvisibility=hidden -O2"
export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib -fvisibility=hidden"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

TODAY=`date +%Y/%m/%d`
PACKAGE="e17"
SEP="-"
VERSION="0.16.999.60138"
#MIRROR="http://download.enlightenment.org/snapshots/LATEST/"
MIRROR="http://svn.enlightenment.org/svn/e/trunk/"
DESCRIPTION="The Enlightenment DR17 Desktop Environment"
AUTHORS="See http://enlightenment.org/p.php?p=contact&l=en"
HOMEPAGE="enlightenment.org"
LICENSE="GPL"
ME="Althalus,jls_legalize <unsenepopiu at tin dot it>"
DEPS="edje.tcz \
eeze.tcz \
eina.tcz \
efreet.tcz \
evas.tcz \
e_dbus.tcz \
glib2.tcz \
gnutls.tcz \
libxcb.tcz" 
#Linux-PAM.tcz" 
#udev-lib.tcz" 
#SDL.tcz \
#libxcb.tcz \
#libiconv.tcz \
BUILDDEPS="alsa-dev.tcz \
e_dbus-dev.tcz \
eina-dev.tcz \
evas-dev.tcz \
ecore-dev.tcz \
edje-dev.tcz \
eet-dev.tcz \
efreet-dev.tcz \
eeze-dev.tcz \
ftgl-dev.tcz \
gettext.tcz \
glib2-dev.tcz \
libjpeg-utils.tcz \
libtool-dev.tcz \
libx11-xcb.tcz \
libxp-dev.tcz \
lua-dev.tcz" 
#Linux-PAM-dev.tcz \
FLAGS="--prefix=/usr/local \
--enable-battery \
--enable-clock \
--enable-comp \
--enable-conf_applications \
--enable-conf_borders \
--enable-conf_clientlist \
--enable-conf_colors \
--enable-conf_desk \
--enable-conf_desklock \
--enable-conf_desks \
--enable-conf_dialogs \
--enable-conf_display \
--enable-conf_dpms \
--enable-conf_edgebindings \
--enable-conf \
--enable-conf_engine \
--enable-conf_fonts \
--enable-conf_icon_theme \
--enable-conf_imc \
--enable-conf_interaction \
--enable-conf_intl \
--enable-conf_keybindings \
--enable-conf_menus \
--enable-conf_mime \
--enable-conf_mousebindings \
--enable-conf_mouse_cursor \
--enable-conf_mouse \
--enable-conf_paths \
--enable-conf_performance \
--enable-conf_profiles \
--enable-conf_scale \
--enable-conf_screensaver \
--enable-conf_shelves \
--enable-conf_startup \
--enable-conf_theme \
--enable-conf_transitions \
--enable-conf_wallpaper2 \
--enable-conf_wallpaper \
--enable-conf_window_display \
--enable-conf_window_focus \
--enable-conf_window_manipulation \
--enable-conf_window_remembers \
--enable-conf_winlist \
--enable-connman \
--enable-cpufreq \
--enable-dropshadow \
--enable-everything \
--enable-fileman \
--enable-fileman_opinfo \
--enable-gadman \
--enable-ibar \
--enable-ibox \
--enable-mixer \
--enable-pager \
--enable-start \
--enable-syscon \
--enable-systray \
--enable-temperature \
--enable-winlist \
--enable-wizard \
--disable-pam \
--host=i686-pc-linux-gnu \
--build=i686-pc-linux-gnu \
--target=i686-pc-linux-gnu" 
#--enable-mount-eeze \
#--enable-device-udev \
#--enable-mount-udisks \
#--disable-mount-hal \
#--disable-device-hal \
#--disable-illume \
#--disable-illume2 \
DOCS=""


TCUSER=`cat /etc/sysconfig/tcuser`
#SRC="enlightenment${SEP}${VERSION}.tar.bz2"
SRC="e"
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${THISDIR}/${PACKAGE}/${SRC}"
#SRCDIR="${PKGDIR}/enlightenment${SEP}${VERSION}"
TCEDIR="$(cat /opt/.tce_dir)"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in svn.tcz autoconf.tcz automake.tcz cvs.tcz compiletc.tcz ${DEPS} ${BUILDDEPS}; do
#	for each in compiletc.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}
#	svn co ${MIRROR}${SRC}
#	getMirror
#	busybox wget "$MIRROR/$PACKAGE.tcz.info"
#	busybox wget "$MIRROR/$PACKAGE-locale.tcz.info"
#	busybox wget "$MIRROR/$PACKAGE-dev.tcz.info"
}

buildit(){
	cd ${SRCDIR}
#	make clean
	./autogen.sh ${FLAGS} || exit 1 
#	./configure ${FLAGS} || exit 1 
#	echo -n "Press Enter key."
#	read gagme
	make -j5 || exit 1 
	make DESTDIR=${PKGDIR}/tmp install-strip || exit 1 
}

workit(){
	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 -m 775 usr/local/share/applications
	cat <<EOF> usr/local/share/applications/exittc.desktop
[Desktop Entry]
Hidden=false
Icon[it_IT]=power
Exec=exittc
Icon=power
Type=Application
NoDisplay=false
Version=1.0
StartupNotify=false
Terminal=false
Name=Exit
Name[it_IT]=Uscita
EOF

	mkdir -pm 775 usr/local/tce.installed
	cat <<EOF> usr/local/tce.installed/${PACKAGE}
#!/bin/sh
[ -e /usr/local/tce.installed/ecomp ] || echo "enlightenment_start" > /etc/sysconfig/desktop
EOF
	#don't clobber tc setup
	chown -R root:staff usr/local/tce.*
	chmod 775 usr/local/tce.installed/${PACKAGE}

	#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

	rm -rf usr/local/include
	rm -rf usr/local/lib/pkgconfig
}

packageit(){
   if [ ! -f /usr/local/tce.installed/squashfs-tools-4.x ]; then
	if [ ! -e ${TCEDIR}/optional/squashfs-tools-4.x.tcz ]; then
		sudo -u ${TCUSER} tce-load -w squashfs-tools-4.x.tcz 
	fi
	su ${TCUSER} -c "tce-load -is squashfs-tools-4.x.tcz"
   fi
   cd ${PKGDIR}/tmp
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}.tcz.list
   done

   [ -e ../${PACKAGE}.tcz ] && rm ../${PACKAGE}.tcz*
   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`

   sed -i "s/Version:.*/Version:	${VERSION}/" ${PACKAGE}.tcz.info
   sed -i "s/Size:.*/Size:	${size}/" ${PACKAGE}.tcz.info
   sed -i "s/Current:/	/" $PACKAGE.tcz.info
   echo "Current:	${TODAY} Updated to ${VERSION}" >> $PACKAGE.tcz.info

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

   [ -e ../${PACKAGE}-locale.tcz ] && rm ../${PACKAGE}-locale.tcz*
   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`

   sed -i "s/Version:.*/Version:	${VERSION}/" ${PACKAGE}-locale.tcz.info
   sed -i "s/Size:.*/Size:	${size}/" ${PACKAGE}-locale.tcz.info
   sed -i "s/Current:/	/" ${PACKAGE}-locale.tcz.info
   echo "Current:	${TODAY} Updated to ${VERSION}" >> $PACKAGE-locale.tcz.info
   
   #dev
   cd ${PKGDIR}/dev
   for dir in `ls -A`; do
      find ${dir} -not -type d | sort >> ../${PACKAGE}-dev.tcz.list
   done

   [ -e ../${PACKAGE}-dev.tcz ] && rm ../${PACKAGE}-dev.tcz*
   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`

   sed -i "s/Version:.*/Version:	${VERSION}/" ${PACKAGE}-dev.tcz.info
   sed -i "s/Size:.*/Size:	${size}/" ${PACKAGE}-dev.tcz.info
   sed -i "s/Current:/	/" $PACKAGE-dev.tcz.info
   echo "Current:	${TODAY} Updated to ${VERSION}" >> $PACKAGE-dev.tcz.info
}
checkit(){
	sudo chown ${TCUSER}:staff ${THISDIR}
	cd ${PKGDIR}
	if [ ! -f /usr/local/tce.installed/submitqc ]; then
		if [ ! -e ${TCEDIR}/optional/submitqc ]; then
			sudo -u ${TCUSER} tce-load -w submitqc
		fi
		su ${TCUSER} -c "tce-load -is submitqc"
	fi
	submitqc
}
tarit(){	
	cd ${PKGDIR}
	[ -e ../${PACKAGE}.tar.bz2 ] && rm ../${PACKAGE}.tar.bz2
	cp ../${PACKAGE}.tcbuild .
	tar	cjvf ../${PACKAGE}${SEP}${VERSION}.tar.bz2 \
		${PACKAGE}.tcz* \
		${PACKAGE}-dev.tcz* \
		${PACKAGE}-locale.tcz* \
		${PACKAGE}.tcbuild 
#		${SRC}
}

#here we go

#clean
#environment
#echo -n "Press Enter key."
#read gagme
#buildit
#echo -n "Press Enter key."
#read gagme
#workit
#echo -n "Press Enter key."
#read gagme
#packageit
#echo -n "Press Enter key."
#read gagme
checkit
tarit
