#!/bin/bash

INVOCATION_ABS_DIR=`pwd`
BUILD_TYPE="None"
CMD_LINE_ARGS=""

#-------------------------------------------------------------------
#  Part 1: Check for and handle command-line arguments
#-------------------------------------------------------------------
for ARGI; do
    if [ "${ARGI}" = "--help" -o "${ARGI}" = "-h" ] ; then
	printf "%s [SWITCHES]                       \n" $0
	printf "Switches:                           \n" 
	printf "  --help, -h                        \n" 
        printf "  --debug,   -d                     \n"
        printf "  --release, -r                     \n"
	printf "Notes:                              \n"
	printf " (1) All other command line args will be passed as args    \n"
	printf "     to \"make\" when it is eventually invoked.            \n"
	printf " (2) For example -k will continue making when/if a failure \n"
	printf "     is encountered in building one of the subdirectories. \n"
	printf " (3) For example -j2 will utilize a 2nd core in the build  \n"
	printf "     if your machine has two cores. -j4 etc for quad core. \n"
	exit 0;
    elif [ "${ARGI}" = "--debug" -o "${ARGI}" = "-d" ] ; then
        BUILD_TYPE="Debug"
    elif [ "${ARGI}" = "--release" -o "${ARGI}" = "-r" ] ; then
        BUILD_TYPE="Release"
    else
	CMD_LINE_ARGS=$CMD_LINE_ARGS" "$ARGI
    fi
done

#-------------------------------------------------------------------
#  Part 2: Invoke the call to make in the build directory
#-------------------------------------------------------------------

mkdir -p build
cd build

cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ../ || exit 1

make ${CMD_LINE_ARGS}
cd ${INVOCATION_ABS_DIR}


