#!/bin/sh
# Intel(R) Application Debugger for Linux
# Copyright (C) 2000 - 2012 Intel Corporation. All rights reserved.
INSTALLDIR=/opt/intel/composer_xe_2013.2.146

if [ -z "${INTEL_LICENSE_FILE}" ]
then
    INTEL_LICENSE_FILE="$INSTALLDIR/licenses:/opt/intel/licenses:${HOME}/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses"; export INTEL_LICENSE_FILE
else
    INTEL_LICENSE_FILE="${INTEL_LICENSE_FILE}:$INSTALLDIR/licenses:/opt/intel/licenses:${HOME}/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses"; export INTEL_LICENSE_FILE
fi

export LD_LIBRARY_PATH="$INSTALLDIR/bin/intel64:$INSTALLDIR/debugger/lib/intel64:$INSTALLDIR/debugger/gui/intel64":$LD_LIBRARY_PATH
export PATH="$INSTALLDIR/bin/intel64:$INSTALLDIR/debugger/gui/intel64":$PATH

export IDB_GUI_DEBUGGER="$INSTALLDIR/bin/intel64/iidb"
export IDB_COMMANDLINE="$INSTALLDIR/bin/intel64/idbc"
export LOGPATH="$HOME/.idb_13.0_linux_intel64_app/workspace/.metadata/.log"
export INTEL_ITTNOTIFY_GROUPS=sync
export INTEL_LIBITTNOTIFY64="$INSTALLDIR/compiler/lib/intel64/libpdbx.so.5"
export INTEL_LIBITTNOTIFY32="$INSTALLDIR/compiler/lib/ia32/libpdbx.so.5"
#export IDB_MIC_SLAVE_DEBUGGER="$INSTALLDIR/bin/intel64_mic/idb_mic"
export IDB_MIC_SLAVE_DEBUGGER="$INSTALLDIR/bin/mic/idb_mic"

GUIPID=0

cleanup()
{
    if [ $GUIPID -ne 0 ] ; then
        kill $GUIPID
        sleep 1
        check=`ps -o pid= -p $GUIPID`
        if [ -n "$check" ]
        then
            kill -9 $GUIPID
        fi
    fi
}

IDB_ARGUMENTS="$@"
JAVA_MIN_VERSION=1.5
JAVA_MIN_MINOR_VERSION=`expr "$JAVA_MIN_VERSION" : '[0-9]*\.\([0-9]*\)'`
PARALLEL_DEBUGGING=`echo " ${IDB_ARGUMENTS}" | grep " -parallel "`
HELP_REQUESTED=`echo " ${IDB_ARGUMENTS}" | grep " +(-h|-he|-hel|-help|--h|--he|--hel|--help) +"`

if [ "${HELP_REQUESTED}" ]; then
    ${IDB_GUI_DEBUGGER} -help
elif [ "${PARALLEL_DEBUGGING}" ]; then
    ${IDB_COMMANDLINE} ${IDB_ARGUMENTS}
elif [ "`which java`" ]; then
    JAVA_VERSION_STRING=`"java" -version 2>&1`
    JAVA_VERSION_NUMBER=`expr "$JAVA_VERSION_STRING" : '[^\.]*\([0-9]\.[0-9]*\).*'`
    JAVA_MAJOR_VERSION=`expr "$JAVA_VERSION_NUMBER" : '\([0-9]*\)'`
    JAVA_MINOR_VERSION=`expr "$JAVA_VERSION_NUMBER" : '[0-9]*\.\([0-9]*\)'`
    if [ "$JAVA_MAJOR_VERSION" = "" ]; then
        echo "The Java Runtime Environment found in PATH is not supported by this product, version $JAVA_MIN_VERSION or higher is required."
        echo "For more information, please read the release notes."
    elif [ -z $HOME ] ; then
	    echo "Environment variable \$HOME is not defined."
	    echo "Please set \$HOME to your home directory."
    else
        if [ "$JAVA_MAJOR_VERSION" -ge "5" ] || ( [ "$JAVA_MAJOR_VERSION" -eq "1" ] && [ "$JAVA_MINOR_VERSION" -ge "$JAVA_MIN_MINOR_VERSION" ] ); then
            trap cleanup 1 2 15
            rm -f $LOGPATH
            TTY="-tty /dev/tty"
            for arg in $IDB_ARGUMENTS
            do
                if [ "$arg" == "-tty" ]; then
                    TTY=""
                    break
                fi
            done
            java -jar $INSTALLDIR/debugger/gui/intel64/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar -showsplash -gui -native $TTY $IDB_ARGUMENTS&
            GUIPID=$!
            wait $GUIPID
            STAT=$?
            if [ $STAT -ne 0 ]
            then
                echo "There were problems starting IDB."
                echo "This usually indicates Java Runtime or library compatibility issues."
                echo "Please check your environment."
                echo "For details check the log file at $LOGPATH."
            fi
        else
            echo "Detected Java Runtime version $JAVA_VERSION_NUMBER. A Java Runtime version $JAVA_MIN_VERSION or higher is required, please upgrade your Java Runtime."
            echo "For more information, please read the release notes."
        fi
    fi
else
    echo "No Java Runtime found in PATH, please make sure that a Java Runtime version $JAVA_MIN_VERSION or higher is installed and in the PATH."
    echo "For more information, please read the release notes."
fi
