#!/bin/sh
#
######################################################
# build script for TinyCore 2.x                      #
#                                                    #
# 2010-02-27                                         #
######################################################

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

SRCNAM=openssl-0.9.8m.tar.gz
WRKDIR=openssl-0.9.8m
EXTNAM=openssl-0.9.8m
TMPDIR=/tmp/package/${EXTNAM}
EXTYPE=""
ADDEXT="-dev -doc"
PREFIX=/usr/local

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

which gcc > /dev/null || tce-load -wi compiletc
which perl > /dev/null || tce-load -wi perl5
which mksquashfs > /dev/null || tce-load -wi squashfs-tools-4.0

######################################################
# prepare extension creation                         #
######################################################

# remove dirs and files left from previous creation
rm -rf $WRKDIR

for EXT in '' $ADDEXT ; do
	rm -rf ${TMPDIR}${EXT}
done

#### Create temporary directory
###
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"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

# unpack source in current directory
tar xf $SRCNAM

# configure it
cd $WRKDIR
patch -p0 < ../openssl.optsx86.diff
sleep 3
./config --prefix=$PREFIX --openssldir=${PREFIX}/etc/ssl shared 

# compile
make

# install in base temp dir
make INSTALL_PREFIX=${TMPDIR} MANDIR=${PREFIX}/share/man install

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

# remove unneded dirs and files

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

# strip executables
find $TMPDIR | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find $TMPDIR | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null


# move files from base to dev extension
mkdir -p ${TMPDIR}-dev/usr/local/lib
mv ${TMPDIR}/usr/local/include ${TMPDIR}-dev/usr/local
mv ${TMPDIR}/usr/local/lib/*.a ${TMPDIR}-dev/usr/local/lib
mv ${TMPDIR}/usr/local/lib/pkgconfig ${TMPDIR}-dev/usr/local/lib

# move files from base to doc extension
mkdir -p ${TMPDIR}-doc/usr/local/share
mv ${TMPDIR}/usr/local/share/man ${TMPDIR}-doc/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
	if [ -z $EXT ] ; then
		FILE=${EXTNAM}.tcz${EXTYPE}
	else
		FILE=${EXTNAM}${EXT}.tcz
	fi
	DIR=${TMPDIR}${EXT}

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

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

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

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


