#!/bin/sh -ex

# ISSUE: Verify current working directory.
if [ ! -x "tile-build" ]; then
    echo "$0: Must be run inside '$(dirname $0)'." >&2
    exit 1
fi

# Detect leading "--install".
install=
if [ "$1" = "--install" ]; then
    install=1
    shift
fi

# Useful subdirs.
TRB=${TILERA_ROOT}/bin
TRT=${TILERA_ROOT}/tile

# Verify "TILERA_ROOT".
if [ -z "${TILERA_ROOT}" -o ! -x "$TRB/tile-cc" ]; then
    echo "TILERA_ROOT must point to a valid Tilera MDE." >&2
    exit 1
fi

# Verify dependencies.
for dep in $DEPS; do
    if [ ! -f "$TRT$dep" ]; then
        echo "Missing '$TRT$dep'." >&2
        exit 1
    fi
done

# Standard cross configure tools.
# We use "CONFIG_SITE" to supply a bunch of configure variables.
# HACK: We use "F77=none" to avoid checking for fortran.
# ISSUE: Note that "STRIP" defaults to being empty for "vim".
CROSS_CONFIGURE_VARS=" \
  CONFIG_SITE=$TRT/etc/config.site \
  AR=$TRB/tile-ar \
  AS=$TRB/tile-as \
  CC=$TRB/tile-gcc \
  CXX=$TRB/tile-g++ \
  RANLIB=$TRB/tile-ranlib \
  STRIP=$TRB/tile-strip \
  F77=none \
"

# Normal cross configure args.
# ISSUE: We should probably use "--build=`.../config.guess`".
CROSS_CONFIGURE_ARGS_TILE=" \
  --build=x86_64-unknown-linux-gnu \
  --host=`$TRB/tile-cc -dumpmachine` \
  $CROSS_CONFIGURE_VARS \
"

# Hacky cross configure args.
# ISSUE: We should probably use "--build=`.../config.guess`".
# HACK: We approximate "--host=tile" as "--host=none-tilera-linux-gnu".
CROSS_CONFIGURE_ARGS_NONE=" \
  --build=x86_64-unknown-linux-gnu \
  --host=none-tilera-linux-gnu \
  $CROSS_CONFIGURE_VARS \
"

DESTDIR=`pwd -P`/tile
rm -rf $DESTDIR

./configure \
    --prefix=/usr \
    --enable-bashcomp \
    --enable-logrotate \
    --disable-static \
    $CROSS_CONFIGURE_ARGS_TILE

LANG=C make

LANG=C make -j1 install DESTDIR=$DESTDIR

# Only install if requested.
if [ -z "$install" ]; then exit 0; fi
tar -C $DESTDIR -cf - . | tar -C $TRT -xf -

# $TRT/usr/share/man/man5/ctid.conf.5
# $TRT/usr/share/man/man5/vz.conf.5
# $TRT/usr/share/man/man8/vzeventd.8
# $TRT/usr/share/man/man8/vzcalc.8
# $TRT/usr/share/man/man8/vzpid.8
# $TRT/usr/share/man/man8/vzcfgvalidate.8
# $TRT/usr/share/man/man8/vzlist.8
# $TRT/usr/share/man/man8/vzmemcheck.8
# $TRT/usr/share/man/man8/arpsend.8
# $TRT/usr/share/man/man8/vzifup-post.8
# $TRT/usr/share/man/man8/vzmigrate.8
# $TRT/usr/share/man/man8/vzsplit.8
# $TRT/usr/share/man/man8/vzctl.8
# $TRT/usr/share/man/man8/vzcpucheck.8
# $TRT/usr/lib/libvzctl-0.0.3.so
# $TRT/usr/lib/libvzctl.la
# $TRT/usr/lib/vzctl/scripts/vzevent-stop
# $TRT/usr/lib/vzctl/scripts/vps-net_del
# $TRT/usr/lib/vzctl/scripts/vzevent-reboot
# $TRT/usr/lib/vzctl/scripts/vps-pci
# $TRT/usr/lib/vzctl/scripts/initd-functions
# $TRT/usr/lib/vzctl/scripts/vps-create
# $TRT/usr/lib/vzctl/scripts/vps-net_add
# $TRT/usr/lib/vzctl/scripts/vps-functions
# $TRT/usr/sbin/vzcfgvalidate
# $TRT/usr/sbin/vznetaddbr
# $TRT/usr/sbin/vzlist
# $TRT/usr/sbin/vzcalc
# $TRT/usr/sbin/vzctl
# $TRT/usr/sbin/vzsplit
# $TRT/usr/sbin/vzcpucheck
# $TRT/usr/sbin/vzmigrate
# $TRT/usr/sbin/vzeventd
# $TRT/usr/sbin/arpsend
# $TRT/usr/sbin/vzifup-post
# $TRT/usr/sbin/ndsend
# $TRT/usr/sbin/vzpid
# $TRT/usr/sbin/vzmemcheck
# $TRT/usr/sbin/vznetcfg
# $TRT/etc/vz/vz.conf
# $TRT/etc/vz/osrelease.conf
# $TRT/etc/vz/dists/centos-3.conf
# $TRT/etc/vz/dists/rhel-4.conf
# $TRT/etc/vz/dists/suse-8.0.conf
# $TRT/etc/vz/dists/altlinux.conf
# $TRT/etc/vz/dists/slackware.conf
# $TRT/etc/vz/dists/altlinux-4.0.conf
# $TRT/etc/vz/dists/fedora.conf
# $TRT/etc/vz/dists/slackware-9.1.conf
# $TRT/etc/vz/dists/ubuntu-5.1.conf
# $TRT/etc/vz/dists/fedora-core-5.conf
# $TRT/etc/vz/dists/fedora-7.conf
# $TRT/etc/vz/dists/suse.conf
# $TRT/etc/vz/dists/ubuntu.conf
# $TRT/etc/vz/dists/rhel-3.conf
# $TRT/etc/vz/dists/redhat-7.0.conf
# $TRT/etc/vz/dists/suse-9.1.conf
# $TRT/etc/vz/dists/arch-0.7.conf
# $TRT/etc/vz/dists/debian-3.0.conf
# $TRT/etc/vz/dists/fedora-core-1.conf
# $TRT/etc/vz/dists/debian-4.0.conf
# $TRT/etc/vz/dists/redhat-7.1.conf
# $TRT/etc/vz/dists/redhat-8.0.conf
# $TRT/etc/vz/dists/suse-8.1.conf
# $TRT/etc/vz/dists/altlinux-3.0.conf
# $TRT/etc/vz/dists/slackware-9.0.conf
# $TRT/etc/vz/dists/fedora-core-2.conf
# $TRT/etc/vz/dists/redhat.conf
# $TRT/etc/vz/dists/suse-9.0.conf
# $TRT/etc/vz/dists/sles.conf
# $TRT/etc/vz/dists/fedora-10.conf
# $TRT/etc/vz/dists/centos-4.conf
# $TRT/etc/vz/dists/sles-9.conf
# $TRT/etc/vz/dists/debian.conf
# $TRT/etc/vz/dists/redhat-7.3.conf
# $TRT/etc/vz/dists/arch-0.8.conf
# $TRT/etc/vz/dists/suse-7.3.conf
# $TRT/etc/vz/dists/fedora-13.conf
# $TRT/etc/vz/dists/fedora-core.conf
# $TRT/etc/vz/dists/suse-8.2.conf
# $TRT/etc/vz/dists/fedora-core-4.conf
# $TRT/etc/vz/dists/fedora-core-7.conf
# $TRT/etc/vz/dists/owl.conf
# $TRT/etc/vz/dists/fedora-12.conf
# $TRT/etc/vz/dists/fedora-core-6.conf
# $TRT/etc/vz/dists/scripts/set_ugid_quota.sh
# $TRT/etc/vz/dists/scripts/set_dns.sh
# $TRT/etc/vz/dists/scripts/arch-del_ip.sh
# $TRT/etc/vz/dists/scripts/slackware-del_ip.sh
# $TRT/etc/vz/dists/scripts/postcreate.sh
# $TRT/etc/vz/dists/scripts/etcnet-add_ip.sh
# $TRT/etc/vz/dists/scripts/slackware-set_ugid_quota.sh
# $TRT/etc/vz/dists/scripts/debian-del_ip.sh
# $TRT/etc/vz/dists/scripts/slackware-9.x_add_ip.sh
# $TRT/etc/vz/dists/scripts/debian-add_ip.sh
# $TRT/etc/vz/dists/scripts/slackware-9.x_del_ip.sh
# $TRT/etc/vz/dists/scripts/slackware-add_ip.sh
# $TRT/etc/vz/dists/scripts/redhat-set_hostname.sh
# $TRT/etc/vz/dists/scripts/arch-set_hostname.sh
# $TRT/etc/vz/dists/scripts/debian-set_hostname.sh
# $TRT/etc/vz/dists/scripts/redhat-del_ip.sh
# $TRT/etc/vz/dists/scripts/suse-8.x_del_ip.sh
# $TRT/etc/vz/dists/scripts/gentoo-add_ip.sh
# $TRT/etc/vz/dists/scripts/gentoo-del_ip.sh
# $TRT/etc/vz/dists/scripts/arch-add_ip.sh
# $TRT/etc/vz/dists/scripts/gentoo-set_ugid_quota.sh
# $TRT/etc/vz/dists/scripts/functions
# $TRT/etc/vz/dists/scripts/arch-set_ugid_quota.sh
# $TRT/etc/vz/dists/scripts/gentoo-set_hostname.sh
# $TRT/etc/vz/dists/scripts/set_userpass.sh
# $TRT/etc/vz/dists/scripts/suse-del_ip.sh
# $TRT/etc/vz/dists/scripts/suse-7.x_add_ip.sh
# $TRT/etc/vz/dists/scripts/suse-set_hostname.sh
# $TRT/etc/vz/dists/scripts/slackware-set_hostname.sh
# $TRT/etc/vz/dists/scripts/redhat-add_ip.sh
# $TRT/etc/vz/dists/scripts/suse-8.x_add_ip.sh
# $TRT/etc/vz/dists/scripts/suse-add_ip.sh
# $TRT/etc/vz/dists/scripts/redhat-7.x_add_ip.sh
# $TRT/etc/vz/dists/scripts/etcnet-del_ip.sh
# $TRT/etc/vz/dists/distribution.conf-template
# $TRT/etc/vz/dists/gentoo.conf
# $TRT/etc/vz/dists/slackware-10.0.conf
# $TRT/etc/vz/dists/suse-9.2.conf
# $TRT/etc/vz/dists/redhat-7.2.conf
# $TRT/etc/vz/dists/altlinux-2.4.conf
# $TRT/etc/vz/dists/centos.conf
# $TRT/etc/vz/dists/fedora-9.conf
# $TRT/etc/vz/dists/redhat-9.conf
# $TRT/etc/vz/dists/fedora-8.conf
# $TRT/etc/vz/dists/mandrake.conf
# $TRT/etc/vz/dists/suse-9.3.conf
# $TRT/etc/vz/dists/fedora-11.conf
# $TRT/etc/vz/dists/slackware-10.1.conf
# $TRT/etc/vz/dists/debian-3.1.conf
# $TRT/etc/vz/dists/default
# $TRT/etc/vz/dists/opensuse.conf
# $TRT/etc/vz/dists/fedora-core-3.conf
# $TRT/etc/vz/dists/arch.conf
# $TRT/etc/vz/conf/ve-vswap-256m.conf-sample
# $TRT/etc/vz/conf/ve-vswap-1024m.conf-sample
# $TRT/etc/vz/conf/ve-vswap-512m.conf-sample
# $TRT/etc/vz/conf/ve-light.conf-sample
# $TRT/etc/vz/conf/ve-unlimited.conf-sample
# $TRT/etc/vz/conf/ve-basic.conf-sample
# $TRT/etc/vz/conf/0.conf
# $TRT/etc/bash_completion.d/vzctl.sh
# $TRT/etc/logrotate.d/vzctl
# $TRT/etc/udev/rules.d/60-vzctl.rules
