#!/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`
VERSION="3.12.0"
MIRROR="http://caml.inria.fr/pub/distrib/ocaml-3.12/"
PACKAGE="ocaml"
SEP="-"
EXT="tcz"
DESCRIPTION="a general purpose programming language"
AUTHORS=""
HOMEPAGE="http://caml.inria.fr/"
LICENSE="Copyright INRIA"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS=""
BUILDDEPS=""
DOCS=""
FLAGS=""

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

environment(){
   for each in squashfs-tools-4.x.tcz compiletc.tcz ${BUILDDEPS} ${DEPS}; 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} || exit 1
#   make world || exit 1
#   make opt || exit 1
   touch /tmp/mark
   make install || exit 1
}
workit(){
	cd ${PKGDIR}
#	find /usr/local -newer /tmp/mark -not -type d > list
#	rm /tmp/mark
#	tar -T list -czvf ${PACKAGE}.tar.gz
	cd ${PKGDIR}/tmp
	tar -xf  ../${PACKAGE}.tar.gz

	rm -rf ${DOCS}

	mkdir -p usr/local/share/doc/License
	cp ${SRCDIR}/LICENSE 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

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

packageit(){
   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`

cat <<EOF> ${PACKAGE}.tcz.info
Title:		${PACKAGE}.tcz
Description:	${DESCRIPTION}
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	This extension is PPI compatible
Change-log:     -----------------------------
Current:	${TODAY} first version ${VERSION}
EOF

   #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`

   cat <<EOF> ${PACKAGE}-dev.tcz.info
Title:		${PACKAGE}-dev.tcz
Description:	${DESCRIPTION}. Development files
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	development files
				
		This extension is PPI compatible
Change-log:	---------------------------
Current:	${TODAY} first version ${VERSION}
EOF
}
checkit(){
	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}
	rm ${PACKAGE}.tar.bz2
	cp ../${PACKAGE}.tcbuild .
	tar	cjvf ${PACKAGE}.tar.bz2 \
		${PACKAGE}.tcz* \
		${PACKAGE}-dev.tcz* \
		${PACKAGE}.tcbuild
}
#here we go

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