#! /bin/bash

CCROOT="${HOME}/root/cross-compilers"
SETUP_CC="${CCROOT}/setup-cc"

if [ -z "$1" ]; then
	platforms="i386-pc-solaris2.10@solaris2.10-ix86 i386-pc-solaris2.10,64@solaris2.10-x86_64 mipsel-unknown-linux-uclibc@linux-glibc2.0-mipsel sparc-sun-solaris2.8@solaris2.8-sparc sparc-sun-solaris2.8,64@solaris2.8-sparc64 sparc-sun-solaris2.10@solaris2.10-sparc sparc-sun-solaris2.10,64@solaris2.10-sparc64 x86_64-unknown-freebsd8@freebsd8-x86_64 x86_64-unknown-netbsd5@netbsd5-x86_64 arm-android9-linux-androideabi@linux-unknown-arm"
else
	platforms="$1"
fi

for platform in ${platforms}; do
	echo "  * Building for ${platform}"
	cc_platform="$(echo "${platform}" | cut -f 1 -d '@')"
	tcl_platform="$(echo "${platform}" | cut -f 2 -d '@')"
	opts=''
	setup_cc_opts=''
	configure_opts=''

	if echo "${cc_platform}" | grep ',' >/dev/null; then
		opts="$(echo "${cc_platform}" | cut -f 2- -d ',' | sed 's@,@ @g')"
		cc_platform="$(echo "${cc_platform}" | cut -f 1 -d ',')"
	fi

	case "${tcl_platform}" in
		*64)
			is64bit='1'
			;;
		*)
			is64bit='0'
			;;
	esac

	for opt in $opts; do
		case "${opt}" in
			64)
				setup_cc_opts="${setup_cc_opts} 64"
				is64bit='1'
				;;
		esac
	done

	if [ "${is64bit}" = '1' ]; then
		configure_opts="${configure_opts} --enable-64bit"
	fi

	(
		eval "$("${SETUP_CC}" "${cc_platform}" ${setup_cc_opts} || echo exit 1)"

		FORCE_PLATFORM="${tcl_platform}"
		export FORCE_PLATFORM

		./build_all.sh clean

		./build_all.sh --host="${cc_platform}" ${configure_opts}
	)
done

