#!/bin/sh

dobuild=true
doinstall=true

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

PLAN9=`pwd` export PLAN9
PATH=/bin:/usr/bin:$PLAN9/bin:$PATH export PATH
case `uname` in
SunOS)
	awk=nawk
	;;
*)
	awk=awk
	;;
esac

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` = FreeBSD ]; then
       echo "* Running on FreeBSD, adjusting linker flags"
       echo "LDFLAGS='-L/usr/local/lib'" >> $PLAN9/config
fi

if [ `uname` = OpenBSD ]; then
       echo "* Running on OpenBSD, adjusting linker flags"
       echo "LDFLAGS='-L/usr/X11R6/lib -pthread'" >> $PLAN9/config
fi

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 [ `uname` = Darwin ]; then
	# On Darwin, uname -m -p cannot be trusted.
	echo "* Running on Darwin: checking architecture..."
	rm -f ./a.out
	gcc lib/darwin-main.c >/dev/null 2>&1
	case "$(file ./a.out 2>/dev/null)" in
	*x86_64*)
		echo "	x86-64 found."
		echo "OBJTYPE=x86_64" >>$PLAN9/config
		;;
	*i386*)
		echo "	i386 found."
		echo "OBJTYPE=386" >>$PLAN9/config
		;;
	*ppc*)
		echo "  power found."
		echo "OBJTYPE=power" >>$PLAN9/config
		;;
	esac
	rm -f ./a.out
fi

if [ `uname` != Darwin ]; then
	# Determine whether fontsrv X11 files are available.
	rm -f a.out
	gcc -o a.out -c -Iinclude -I/usr/include -I/usr/local/include -I/usr/include/freetype2 -I/usr/local/include/freetype2 src/cmd/fontsrv/x11.c >/dev/null 2>&1
	if [ -f a.out ]; then
		echo "	fontsrv dependencies found."
		echo "FONTSRV=fontsrv" >>$PLAN9/config
	else
		echo "	fontsrv dependencies not found."
		echo "FONTSRV=" >>$PLAN9/config
		rm -f bin/fontsrv
	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 -k 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

