blob: af0d0bd4ea508fc6fe3d3f307b791efeb1280507 [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright (c) 2015 Google Inc.
# Kevin Klues <klueska@cs.berkeley.edu>
# See LICENSE for details.
inst_dir_default="\"\${ARCH}_INSTDIR based on the configured architecture in akaros_root\""
function short_description() {
echo "Rebuild the Akaros cross compiler and all of its dependencies"
}
function usage() {
echo "Usage:"
echo " ${cmd} -h | --help"
echo " ${cmd} [ --akaros-root=<ak> ]"
echo " ${cmd//?/ } [ --inst-dir=<dir> ]"
echo ""
echo "Options:"
echo " -h --help Display this screen and exit"
echo " --akaros-root=<ak> The path to the root of the akaros tree"
echo " [default: \$AKAROS_ROOT]"
echo " --inst-dir=<dir> The installation path of the cross compiler"
echo " [default: ${inst_dir_default} ]"
}
function main() {
# Check the sanity of our incoming variables
check_vars akaros_root inst_dir
check_dirs akaros_root
# Set some local variables
local arch="$(basename $(readlink ${akaros_root}/kern/include/arch))"
if [ "${arch}" = "x86" ]; then
arch="x86_64"
fi
local make_jobs=$(expr `cat /proc/cpuinfo | grep processor | wc -l` - 1)
# Set real default of $inst_dir
if [ "${inst_dir}" != "${inst_dir_default}" ]; then
inst_dir="$(eval echo \$${arch^^}_INSTDIR)"
fi
# Rebuild the cross compiler
cd "${akaros_root}"
eval ${arch^^}_INSTDIR=${inst_dir} \
make -j ${make_jobs} xcc-upgrade-from-scratch
cd - > /dev/null
}