#!/bin/sh

dobuild=true
doinstall=true

case "x$1" in
x)
	;;
x-b)
	dobuild=true
	doinstall=false
	;;
x-c)
	dobuild=false
	doinstall=true
	;;
*)
	echo 'usage: INSTALL [-b | -c]' 1>&2
	exit 1
esac

PLAN9=`pwd` export PLAN9
PATH=/bin:/usr/bin:$PLAN9/bin:$PATH export PATH

echo "+ Mailing list: http://groups.google.com/group/plan9port-dev"
echo "+ Issue tracker: http://code.swtch.com/plan9port/issues/"
echo "+ Submitting changes: http://swtch.com/go/codereview"
echo " "
echo "* Resetting $PLAN9/config"
rm -f config

(
echo "* Compiler version:"
9c -v 2>&1 | grep -v 'Configured with:' | grep -i version | sed 's/^/	/'

if [ `uname` = Linux ]; then
	# On Linux, we use the kernel version to decide whether
	# to use pthreads or not.  On 2.6 versions that aren't
	# linking with NPTL by default, pretend to be an older kernel.
	echo "* Running on Linux: checking for NPTL..."
	gcc lib/linux-isnptl.c -lpthread
	if ./a.out >/dev/null
	then	
		echo "	NPTL found."
		echo "SYSVERSION=2.6.x" >$PLAN9/config
	else
		echo "	NPTL not found."
		echo "SYSVERSION=2.4.x" >$PLAN9/config
	fi
	rm -f ./a.out
fi

if [ -f LOCAL.config ]; then
	echo Using LOCAL.config options:
	sed 's/^/	/' LOCAL.config
	cat LOCAL.config >>config
fi

cd src
if $dobuild; then
	if [ ! -x ../bin/mk ]; then
		echo "* Building mk..."
		../dist/buildmk 2>&1 | sed 's/^[+] //'
	fi
	if [ ! -x ../bin/mk ]; then
		echo "* Error: mk failed to build."
		exit 1
	fi
	
	echo "* Building everything (be patient)..."
	mk clean
	mk libs-nuke
	mk all || exit 1
	if [ ! -x $PLAN9/src/cmd/o.cleanname -o ! -x $PLAN9/src/cmd/acme/o.acme ]; then
		echo "* Warning: not all binaries built successfully."
	fi
	echo "* Installing everything in $PLAN9/bin..."
	mk install || exit 1
	if [ ! -x $PLAN9/bin/cleanname -o ! -x $PLAN9/bin/acme -o ! -x $PLAN9/bin/sam ]; then
		echo " "
		echo "* Warning: not all binaries built successfully."
	fi
	echo "* Cleaning up..."
	mk clean
fi

if $doinstall; then
	if [ ! -x $PLAN9/bin/cleanname -o ! -x $PLAN9/bin/sam ]; then
		# Cleanname and sam are needed for moveplan9.sh and the man updates.
		if [ ! -x $PLAN9/bin/cleanname ]; then
			echo " "
			echo "* Installation failed: $PLAN9/bin/cleanname does not exist."
			exit 1
		fi
		if [ ! -x $PLAN9/bin/sam ]; then
			echo " "
			echo "* Installation failed: $PLAN9/bin/sam does not exist."
			exit 1
		fi
		echo "* NOT renaming hard-coded /usr/local/plan9 paths."
		echo "* NOT building web manual."
	else
		echo "* Renaming hard-coded /usr/local/plan9 paths..."
		cd $PLAN9
		sh lib/moveplan9.sh
		echo "* Building web manual..."
		(
			cd $PLAN9/dist
			echo cd `pwd`';' mk man
			mk man
		)
	fi
	
	if [ -x LOCAL.INSTALL ]; then
		echo "* Running local modifications..."
		echo cd `pwd`';' ./LOCAL.INSTALL
		./LOCAL.INSTALL
	fi
	
	echo "* Done. "
	echo "	"
	echo "* Add these to your profile environment."
	echo "	PLAN9=$PLAN9 export PLAN9"
	echo '	PATH=$PATH:$PLAN9/bin export PATH'
fi
) 2>&1 | tee install.log | awk -f $PLAN9/dist/isum.awk -v 'copy='install.sum

