#!/bin/sh

#
# This script is meant to be run under debian unstable, with the mingw
# package installed, as well as a bunch of other packages, including but
# not limited to, mysql-client-dev, imagemagick-dev, and oracle-occi
#

if [ "$USER" == "pixel" ] || [ "$USER" == "nnoble" ] ; then
    prefix="ssh+git://pixel@"
    path="/pub/repo.git"
else
    prefix="http://"
    path=""
fi

tar xvfz Mesa-7.4.4-osmesa-linux-precomp.tar.gz
tar xvfz tinyxml-src.tar.gz

git clone ${prefix}git.grumpycoder.net${path}/Baltisot
git clone ${prefix}git.grumpycoder.net${path}/mogltk
git clone ${prefix}git.grumpycoder.net${path}/lua-interface
git clone ${prefix}git.grumpycoder.net${path}/lua-modules
git clone ${prefix}git.grumpycoder.net${path}/lua-modules-cd-tool
git clone ${prefix}git.grumpycoder.net${path}/PSX-Bundle
git clone ${prefix}git.grumpycoder.net${path}/lua-modules-iup
git clone ${prefix}git.grumpycoder.net${path}/LuaJIT

cd Baltisot/lib/
./genloadlib.sh > loadlualibs.ii
cd ../..

mkdir -p lua-interface-distrib/linux


###############################
## prepare win32 compilation ##
## skip if you don't want it ##
###############################
git clone lua-interface lua-interface-win32
git clone lua-interface lua-interface-win32-light
ln -s ../lua-interface-win32/lua-interface.a lua-interface
git clone lua-modules lua-modules-win32
git clone lua-modules-cd-tool lua-modules-cd-tool-win32
git clone lua-modules-iup lua-modules-iup-win32
git clone LuaJIT LuaJIT-win32
###############################

cd LuaJIT
colormake || exit -1
cd ..

cd lua-interface
colormake || exit -1
./lua-interface -e 'print "Hello, world!"'
cp lua-interface ../lua-interface-distrib/linux
cd ..

cd lua-modules
cp ../lua-interface/lua-interface.so .
colormake || exit -1
cp *.so ../lua-interface-distrib/linux
cd ..

cd lua-modules-cd-tool
cp ../lua-interface/lua-interface.so .
colormake || exit -1
cp *.so ../lua-interface-distrib/linux
cd ..

cd lua-modules-iup
cp ../lua-interface/lua-interface.so .
colormake || exit -1
cp *.so ../lua-interface-distrib/linux
cd ..


########################################
## linux version done - next is win32 ##
########################################

tar xvfz Mesa-7.0.3-osmesa-win32-precomp.tar.gz
tar xvfz ftgl-win32-precomp.tar.gz
tar xvfz freetype-win32-precomp.tar.gz
tar xvfz mysql-5.0.51b-win32-precomp.tar.gz 
tar xvfz pthreads-w32-2-8-0-release-win32-precomp.tar.gz
tar xvfz gnuwin32-digested-tar.gz
gunzip libreadline-static.a.gz

mkdir -p lua-interface-distrib/win32
mkdir -p lua-interface-distrib/win32-light

cd LuaJIT-win32
make -f Makefile.mingw32 || exit -1
cd ..

cd lua-interface-win32
make -f Makefile.mingw32 || exit -1
cp *.exe *.dll ../lua-interface-distrib/win32
cd ..

cd lua-modules-win32
make -f Makefile.mingw32 || exit -1
cp *.dll ../lua-interface-distrib/win32
cd ..

cd lua-modules-cd-tool-win32
make -f Makefile.mingw32 || exit -1
cp *.dll ../lua-interface-distrib/win32
cd ..

cd lua-modules-iup-win32
make -f Makefile.mingw32 || exit -1
cp *.dll ../lua-interface-distrib/win32
cd ..

cd lua-interface-win32-light
make -f Makefile.mingw32 lua-interface-light.exe || exit -1
cp *.exe *.dll ../lua-interface-distrib/win32-light
cd ..

cp win32-dlls/* lua-interface-distrib/win32

cp lua-interface/lua-interface.lua lua-interface-distrib/linux
cp lua-interface/lua-interface.lua lua-interface-distrib/win32
cp lua-interface/lua-interface.lua lua-interface-distrib/win32-light
cp PSX-Bundle/COPYING Baltisot/AUTHORS lua-interface-distrib/linux
cp PSX-Bundle/COPYING Baltisot/AUTHORS lua-interface-distrib/win32
cp PSX-Bundle/COPYING Baltisot/AUTHORS lua-interface-distrib/win32-light
cp lua-interface-distrib/win32/luacd.dll lua-interface-distrib/win32-light
cp lua-interface-distrib/win32/luapsx.dll lua-interface-distrib/win32-light
cp lua-interface-distrib/win32/pthreadGC2.dll lua-interface-distrib/win32-light
cp lua-interface-distrib/win32/ucl1.dll lua-interface-distrib/win32-light
cp lua-interface-distrib/win32/zlib1.dll lua-interface-distrib/win32-light

cd lua-interface-distrib

mv linux lua-interface
strip --strip-unneeded lua-interface/*
zip -r lua-interface-linux.zip lua-interface
mv lua-interface linux

mv win32 lua-interface
i586-mingw32msvc-strip --strip-unneeded lua-interface/*
zip -r lua-interface-win32.zip lua-interface
mv lua-interface win32

mv win32-light lua-interface-light
i586-mingw32msvc-strip --strip-unneeded lua-interface-light/*
i586-mingw32msvc-strip lua-interface-light/*.exe
rm lua-interface/lua-interface-light.dll
zip -r lua-interface-win32-light.zip lua-interface-light
mv lua-interface-light win32-light