#!/bin/bash
#
######################################################
# build script for TinyCore 2.x                      #
#                                                    #
# 2010-04-15                                         #
# extensions required :                              #
#    compiletc.tcz                                   #
#    squashfs-tools-4.0.tcz                          #
#    gettext.tcz             # to produce locale ext.#
#    help2man.tcz            # to produce man-pages  #
#    texinfo.tcz             # to produce info-pages #
#    ncurses-lib-dev				     #
#    ncurses-lib				     #
#    ncurses-utils				     #
#    lzo2					     #
#    lzo2-dev					     #	
######################################################

######################################################
# configure extension creation parameters            #
######################################################

SRCNAM=grub-1.98.tar.gz
WRKDIR=grub-1.98
EXTNAM=grub2
TMPDIR=${PWD}/package/${EXTNAM}
ADDEXT="-locale"
PREFIX=/usr/local

######################################################
# ensure required extenstions are installed          #
######################################################

for EXT in gcc compiletc squashfs-tools-4.0 gettext \
			ncurses-lib-dev automake \
			ncurses-lib ncurses-utils lzo2 lzo2-dev; do
	
	ls /usr/local/tce.installed/"$EXT" > /dev/null || su tc -c "tce-load -w -i $EXT" 
done
	
######################################################
# prepare extension creation                         #
######################################################

# remove dirs and files left from a previous run
[ -d $WRKDIR ] && rm -rf $WRKDIR

for EXT in '' $ADDEXT ; do
	[ -d ${TMPDIR}${EXT} ] && rm -rf ${TMPDIR}${EXT}
	ls "${TMPDIR}${EXT}.tcz"* 2> /dev/null && rm -f "${TMPDIR}${EXT}.tcz"*
done

# create temporary directory for installation
[ -d ${TMPDIR} ] || mkdir -p ${TMPDIR}

######################################################
# compile extension                                  #
######################################################

# export variables needed for compilation
export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti"

# unpack source in current directory
tar xzf $SRCNAM
##chmod +x $WRKDIR/install-sh		# otherwise the creation of docs fails

# configure it
cd $WRKDIR
./autogen.sh

./configure --prefix=$PREFIX --enable-grub-mkfont
# compile
make 

# install in base temp dir
DESTDIR=${TMPDIR} make install

# delete compilation work directory
cd ..
###rm -rf $WRKDIR

# remove unneeded dirs and files
# (none for this extension)

# adjust directory access rights
find $TMPDIR -type d | xargs chmod -v 755


# move files from base to doc extension
mkdir -p ${TMPDIR}-doc/usr/local/share
mv ${TMPDIR}/usr/local/share/info ${TMPDIR}-doc/usr/local/share
mv ${TMPDIR}/usr/local/share/man ${TMPDIR}-doc/usr/local/share

# move files from base to locale extension
mkdir -p ${TMPDIR}-locale/usr/local/share
mv ${TMPDIR}/usr/local/share/locale ${TMPDIR}-locale/usr/local/share

# remove empty directories from base extension
while [ -n "`find $TMPDIR -type d -empty `" ] ; do
	find $TMPDIR -type d -empty | xargs rm -rf
done

###################################################
# create (various) extensions in temp dir         #
###################################################

for EXT in '' $ADDEXT ; do
	FILE=${EXTNAM}${EXT}.tcz
	DIR=${TMPDIR}${EXT}

	# create extension (as squashFS)
	cd ${DIR}/..
	mksquashfs $DIR $FILE

	# create list file
	cd $DIR
	find usr -not -type d | sort > ../${FILE}.list
	cd ..

	# create md5 file
	md5sum $FILE > ${FILE}.md5.txt

	# cleanup temp directory
###	rm -rf usr
done
