#!/bin/sh

PREFIX=/opt/timo/qemu

echo "Checking out qemu from kju-app.org SVN..."
svn co -r 123 http://svn.kju-app.org/trunk/qemu/qemu qemu-src

echo
echo "Checking out qemu patches from kju-app.org SVN..."
svn co -r 123 http://svn.kju-app.org/trunk/qemu/patches qemu-patches

echo "Creating build directory..."
rm -rf "qemu-build" > /dev/null
cp -Rfv "qemu-src" "qemu-build"
cd "qemu-build"

echo
echo
echo "Applying patches..."

# add patches for Intel
patch -p1 -u < "../qemu-patches/qemu-0.9.1-gcc4.patch"
patch -p1 -u < "../qemu-patches/qemu-0.7.2-dyngen-check-stack-clobbers.patch"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-gcc4-opts.patch"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-gcc4-hacks.patch"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-enforce-16byte-stack-boundary.patch"
patch -p1 -u -f < "../qemu-patches/qemu-0.9.0-i386-FORCE_RET.patch"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-osx-intel-port.patch"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-osx-bugfix.patch"

# Q ***** Leopard patches
patch -p0 -u < "../qemu-patches/Leopard-dyngen.dSYM.diff"
patch -p0 -u < "../qemu-patches/qemu-img-CF+IO.diff"
patch -p1 -u < "../qemu-patches/qemu-0.9.1-always_inline.patch"

# Q ***** add 2nd Bootdevice
#patch -p0 -u <   "../qemu-patches/qemu-2ndbootdevice_04.diff"

# Q ***** use custom cocoa.m <--- only useful in conjunction with Q.app. NOT for standalone QEMU!
#cp "../qemu-patches/cocoa.m" "cocoa.m"

patch -p0 -u < "../qemu-patches/q_block_int.h_hdled_1.diff"
patch -p0 -u < "../qemu-patches/q_block.c_hdled_1.diff"


# tweaking version number
echo "-timo" >> VERSION


# build only for i386 by default
echo
echo
echo "Running \"configure\"..."
./configure --prefix="$PREFIX" --enable-cocoa --enable-adlib --disable-gcc-check --target-list=i386-softmmu
# other targets: --target-list=i386-softmmu,ppc-softmmu,sparc-softmmu,mips-softmmu,arm-softmmu

echo
echo
echo "Compiling..."
make -j4

echo
echo
echo "Installing in $PREFIX..."
sudo make install

cd ..

echo
echo "Creating binary distribution..."
VERSION=`cat qemu-build/VERSION`
tar cvjf qemu-$VERSION-bin.tar.bz2 /opt/timo/qemu


echo
echo "Cleaning up..."
rm -rf "qemu-build"

