#!/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
#

githostname="git.grumpycoder.net"
localhostname=`hostname`

if [ "x$USER" = "xpixel" ] || [ "x$USER" = "xnnoble" ] ; then
    if [ "x$localhostname" = "xgrumpy" ] ; then
        githostname=""
    else
        prefix="ssh+git://pixel@"
    fi
    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}${githostname}${path}/Baltisot
git clone ${prefix}${githostname}${path}/mogltk
git clone ${prefix}${githostname}${path}/lua-interface
git clone ${prefix}${githostname}${path}/lua-modules
git clone ${prefix}${githostname}${path}/lua-modules-cd-tool
git clone ${prefix}${githostname}${path}/PSX-Bundle
git clone ${prefix}${githostname}${path}/lua-modules-iup
git clone ${prefix}${githostname}${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
###############################

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

cd LuaJIT
make BUILDMODE=static || exit -1
cd ..

cd lua-interface
colormake || exit -1
./lua-interface -e 'print "Hello, world!"'
cp lua-interface luac ../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 CROSS=i586-mingw32msvc- TARGET_SYS=Windows BUILDMODE=static || 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


##########################################
## win32 version done - next is darwin9 ##
##########################################

tar xvfz Mesa-7.4.4-osmesa-darwin9-precomp.tar.gz

mkdir -p lua-interface-distrib/darwin9

cd LuaJIT-darwin9
make CROSS=i686-apple-darwin9- TARGET_SYS=Darwin BUILDMODE=static TARGET_XLDOPTS=-mmacosx-version-min=10.5 || exit -1
cd ..

cd lua-interface-darwin9
SYSTEM=Darwin make || exit -1
cp lua-interface *.dylib ../lua-interface-distrib/darwin9
cd ..

cd lua-modules-darwin9
SYSTEM=Darwin make || exit -1
cp *.dylib ../lua-interface-distrib/darwin9
cd ..

cd lua-modules-cd-tool-darwin9
SYSTEM=Darwin make || exit -1
cp *.dylib ../lua-interface-distrib/darwin9
cd ..

cd lua-modules-iup-darwin9
SYSTEM=Darwin make || exit -1
cp *.dylib ../lua-interface-distrib/darwin9
cd ..


##########################
## All done, packing up ##
##########################

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 lua-interface/lua-interface.lua lua-interface-distrib/darwin9
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 PSX-Bundle/COPYING Baltisot/AUTHORS lua-interface-distrib/darwin9
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/*
zip -r lua-interface-win32-light.zip lua-interface-light
mv lua-interface-light win32-light

mv darwin9 lua-interface
i686-apple-darwin9-strip -x lua-interface/*
rm lua-interface/lua-interface-mesa.dylib
zip -r lua-interface-darwin9.zip lua-interface
mv lua-interface darwin9