#!/bin/sh -x
#
# Build script for Realtek Modules x86 & x86_64
. /etc/init.d/tc-functions
useBusybox

##############################################
## place these 2 files in /tmp dir
#
# realtek_compile.sh (this script)
# rtl*(version).tar.gz
# 
# note "deps" may need adjusting as at time of
# build squashfs-tools-4.x.tcz was not available
# in x86_64 repo
# 
# then run this build script 
##############################################

name=realtek
pkgdir=/tmp/${name}_build
archive=$( echo rtl*z )
srcname=${archive%.tar*}
ver=${srcname#*-}



tceinstalled="/usr/local/tce.installed"
optional_path="/etc/sysconfig/tcedir/optional"
cd $optional_path
tce_path=$(realpath ${PWD%/*})

## load build deps
echo -e "\n\nFetching build dependencies... "

deps="compiletc.tcz \
linux-kernel-sources-env.tcz \
squashfs-tools-4.x.tcz \
bash.tcz"

for i in $deps ; do 

pkgname=${i%.tcz}
if [ ! -f ${tce_path}/optional/"$i" ]; then
	tce-load -wil "$pkgname"
	[ x$? != x0 ] && tce-load -wil "$pkgname"
	[ -f ${tceinstalled}/"$pkgname" ] || exit
elif [ ! -f ${tceinstalled}/"$pkgname" ]; then
	tce-load -i "$pkgname"
fi
done


[ -e /lib/modules/3.8.13-tinycore/build ] || cliorx linux-kernel-sources-env.sh


###########################################################################
## extract archive 
sleep 1

#cleanup
[ $PWD ==  /tmp ] || cd /tmp
echo -e "\n$PWD\n"

[ -d "$pkgdir" ] && rm -rf "$pkgdir"
sleep .5
[ -d "$pkgdir" ] || mkdir -p ${pkgdir}/$srcname
tar xpvf $archive -C ${pkgdir}
[ -d "$pkgdir/$srcname" ] && cd $pkgdir/$srcname


###########################################################################
##configure, make, make install

set +x; echo -e "\n\n ${BLUE}Export compiler flags... ${NORMAL}"; set -x
case $( uname -r ) in
3.8.13-tinycore) 
echo "compile flags for x86"
export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe"
;;
3.8.13-tinycore64) 
echo "compile flags for x86_64"
export CFLAGS="-mtune=generic -Os -pipe"
export CXXFLAGS="-mtune=generic -Os -pipe -fno-exceptions -fno-rtti"
;;
esac

set +x; echo "${MAGENTA}run make${NORMAL}"; sleep 0.5; set -x
make


module=$(ls *.ko)
[ -f ${module} ] || exit
strip --strip-debug --strip-unneeded ${module}
gzip ${module}


###########################################################################
set +x; echo "${BLUE}create extention${NORMAL}"; set -x

sudo mkdir -p ${pkgdir}/pkg/lib/modules/$(uname -r)/kernel/drivers/net/wireless
sudo cp ./${module}.gz ${pkgdir}/pkg/lib/modules/$(uname -r)/kernel/drivers/net/wireless
sudo chown -R tc:staff ${pkgdir}/pkg
sudo chown root:root ${pkgdir}/pkg/lib/modules/$(uname -r)/kernel/drivers/net/wireless/${module}.gz

[ "${PWD}" == "$pkgdir" ] || cd "$pkgdir"

ext=wl-rtl${module%.*}-$(uname -r).tcz
[ -e ${tceinstalled}/squashfs-tools-4.x ] && mksquashfs pkg/ $ext -noappend

set +x
[ -f ${pkgdir}/"$ext" ] || echo "${GREEN}module in /tmp/pkg directory${NORMAL}"  
[ -f ${pkgdir}/"$ext" ] && echo "${GREEN}done${NORMAL}"


exit

