#! /bin/sh -ex
d=`pwd`
libs=$d/9libs-1.0.tar.gz
wily=$d/wily-9libs.tar.gz
prefix=$d/inst

MAKE=${MAKE:-make}
export MAKE

libs_dir=`basename $libs .tar.gz`
wily_dir=`basename $wily .tar.gz`

# ignore user's options, so we get close to clean build
CONFIG_SITE=/does/not/exist
export CONFIG_SITE

check_runnable () {
	if $1/wily -h 2>&1 | grep 'wily.*ncolumns.*tabsize.*command' >/dev/null
	then
		:
	else
		echo wily executable couldn\'t be run
		exit
	fi
}

# first build 9libs normally, and install it so wily builds will spot it
mkdir $prefix
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
./configure --prefix=$prefix $*
$MAKE
$MAKE install
cd $d
rm -rf build

# build wily, telling it where 9libs is installed
mkdir build
cd build
gzip -dc $wily | tar xf -
cd $wily_dir
./configure --prefix=$prefix $*
$MAKE
LD_LIBRARY_PATH=$prefix/lib
export LD_LIBRARY_PATH
check_runnable ./wily
unset LD_LIBRARY_PATH
cd $d
rm -rf build

# build each distribution with separate src and build dir
mkdir build
cd build
gzip -dc $libs | tar xf -
mkdir build
cd build
../$libs_dir/configure $*
$MAKE
cd $d
rm -rf build

mkdir build
cd build
gzip -dc $wily | tar xf -
mkdir build
cd build
../$wily_dir/configure --prefix=$prefix $*
$MAKE
LD_LIBRARY_PATH=$prefix/lib
export LD_LIBRARY_PATH
check_runnable ./wily
unset LD_LIBRARY_PATH
cd $d
rm -rf build

# we're done with the installed copy of 9libs now
rm -rf $prefix

# build both together, wily inside 9libs
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
gzip -dc $wily | tar xf -
./configure $*
$MAKE
check_runnable ./$wily_dir/wily
cd $d
rm -rf build

# build both together, wily inside 9libs, separate src and build
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
gzip -dc $wily | tar xf -
cd $d/build
mkdir build
cd build
../$libs_dir/configure $*
$MAKE
check_runnable ./$wily_dir/wily
cd $d
rm -rf build

# build both together, wily and 9libs separate
mkdir build
cd build
gzip -dc $libs | tar xf -
gzip -dc $wily | tar xf -
cd $libs_dir
./configure $*
$MAKE
cd ../$wily_dir
./configure $*
$MAKE
check_runnable ./wily
cd $d
rm -rf build

# build both together, separate src and build
mkdir build
cd build
gzip -dc $libs | tar xf -
gzip -dc $wily | tar xf -
mkdir build build/$libs_dir build/$wily_dir
cd build/$libs_dir
../../$libs_dir/configure $*
$MAKE
cd ../$wily_dir
../../$wily_dir/configure $*
$MAKE
check_runnable ./wily
cd $d
rm -rf build

# build 9libs, install, build wily and install
mkdir $prefix
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
./configure --prefix=$prefix $*
$MAKE install
cd ..
rm -rf $libs_dir
gzip -dc $wily | tar xf -
cd $wily_dir
./configure --prefix=$prefix $*
$MAKE install
LD_LIBRARY_PATH=$prefix/lib
export LD_LIBRARY_PATH
check_runnable $prefix/bin
unset LD_LIBRARY_PATH
cd $d
rm -rf build $prefix

# build 9libs and wily, install
mkdir $prefix
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
gzip -dc $wily | tar xf -
./configure --prefix=$prefix $*
$MAKE install
LD_LIBRARY_PATH=$prefix/lib
export LD_LIBRARY_PATH
check_runnable $prefix/bin
unset LD_LIBRARY_PATH
cd $d
rm -rf build $prefix

# build 9libs; install binaries and shared files separately; same for wily
mkdir $prefix
mkdir build
cd build
gzip -dc $libs | tar xf -
cd $libs_dir
./configure --prefix=$prefix/share --exec-prefix=$prefix/arch $*
$MAKE install
cd ..
rm -rf $libs_dir
gzip -dc $wily | tar xf -
cd $wily_dir
./configure --prefix=$prefix/share --exec-prefix=$prefix/arch $*
$MAKE install
LD_LIBRARY_PATH=$prefix/arch/lib
export LD_LIBRARY_PATH
check_runnable $prefix/arch/bin
unset LD_LIBRARY_PATH
cd $d
rm -rf build $prefix
