#! /bin/sh -e

# Note that this script should be run with "sh -e" so that it will exit
# if something fails.

# Before starting the script, make sure you have these set correctly
# If you use distcc and/or ccache you will want to set these variables

# Make sure that if you are mixing operating systems, you use the same
# compiler-version on all machines (most of the times, for example
# mixing 3.3 versions works, but 3.4 and 3.3 versions will probably not
# work and will cause 'undefined reference __something'-like errors)

# export CC="ccache distcc gcc34"
# export DISTCC_HOSTS=""

# If you have a symmetric multi processing machine or if you are going
# to use distcc, you want to set this variable. The '5' should be replaced
# with the amount of processors that will be used multiplied by two

# MAKEOPTS=-j5


if [ -z "$PKG_CONFIG_PATH" ]; then
export PKG_CONFIG_PATH=/opt/kdrive/lib/pkgconfig
else
export PKG_CONFIG_PATH="/opt/kdrive/lib/pkgconfig:$PKG_CONFIG_PATH"
fi

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xproto
pushd Xproto
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdmcp
pushd Xdmcp
./autogen.sh --prefix=/opt/kdrive
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co XExtensions
pushd XExtensions
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xtrans
pushd xtrans
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xau
pushd Xau
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co X11
pushd X11
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xext
pushd Xext
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Randr
pushd Randr
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Render
pushd Render
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrender
pushd Xrender
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrandr
pushd Xrandr

# configure.ac needs to be patched or the build fails?
patch<<EOF
--- configure.ac.orig   2005-01-11 21:26:37.477229960 -0500
+++ configure.ac        2005-01-11 21:28:01.666431256 -0500
@@ -33,11 +33,13 @@
 dnl protocol, so Xrandr version l.n.m corresponds to protocol version l.n
 dnl
 AC_INIT(libXrandr, 1.0.2, [keithp@keithp.com], libXrandr)
+
+AC_CONFIG_AUX_DIR(.)
+
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE

 AM_CONFIG_HEADER(config.h)
-AC_CONFIG_AUX_DIR(.)

 # Check for progs
 AC_PROG_CC
EOF

./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co FixesExt
pushd FixesExt
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co DamageExt
pushd DamageExt

# Again, configure.ac causes autoconf to bail bacause 
# AC_CONFIG_AUX_DIR(.) needs to be called before AM_INIT_AUTOMAKE

patch<<EOF
--- configure.ac.orig   2005-01-11 21:41:16.596583504 -0500
+++ configure.ac        2005-01-11 21:41:40.943882152 -0500
@@ -25,9 +25,9 @@

 AC_PREREQ([2.57])
 AC_INIT([damageext], [1.0], [keithp@keithp.com], damageext)
+AC_CONFIG_AUX_DIR(.)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
-AC_CONFIG_AUX_DIR(.)

 PKG_CHECK_MODULES(FIXESEXT, fixesext)
EOF

./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfont
pushd Xfont
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co ResourceExt
pushd ResourceExt
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co RecordExt
pushd RecordExt
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co CompositeExt
pushd CompositeExt
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xkbfile
pushd xkbfile
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xserver co xserver
pushd xserver
./autogen.sh --prefix=/opt/kdrive --enable-composite
make $MAKEOPTS
sudo install -d /opt/kdrive/bin
sudo make install
sudo chmod +s /opt/kdrive/bin/X*
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfixes
pushd Xfixes
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xcomposite
pushd Xcomposite
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdamage
pushd Xdamage
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
popd

# http://cvs.freedesktop.org/xapps/
wget http://www.freedesktop.org/xapps/release/xcompmgr-1.1.tar.gz
tar zxf xcompmgr-1.1.tar.gz
pushd xcompmgr-1.1
./autogen.sh --prefix=/opt/kdrive
make $MAKEOPTS
sudo make install
sudo strip -R .comment /opt/kdrive/{bin/*,lib/*} > /dev/null 2>&1
sudo strip --strip-unneeded /opt/kdrive/{bin/*,lib/*} > /dev/null 2>&1
popd

