#!/bin/bash
# -----------------------------------------------------------------------------
#
# Common host setup script for hybrid performance tool scripts.
#
# -----------------------------------------------------------------------------
# Licensed Materials - Property of IBM
# 5724-S84
# (C) Copyright IBM Corp. 2007,2007 All Rights Reserved
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with
# IBM Corp.
#

if [ `uname -m` != "x86_64" ] ; then
        echo "This program must run on an Opteron node of a hybrid system."
        exit 1
fi

if [ ! "$PERF_TOOLS_USR_ENV" ] ; then
  export PERF_TOOLS_USR_ENV=$HYBRID_PERF_TOOLS_DIR/perfToolUsrEnv
fi

# include the user environment variable setup file
source $PERF_TOOLS_USR_ENV

# Global Declarations
declare -rx SCRIPT=${0##*/}
declare -rx mkdir="/bin/mkdir"
declare -rx echo="/bin/echo"
declare -rx hostname="/bin/hostname"

# Sanity Checks
if test -z "$BASH" ;  then
  printf "$SCRIPT:$LINENO: Please runthis script with the BASH shell.\n"
  exit 192
fi
if test ! -x  "$mkdir" ;  then
  printf "$SCRIPT:$LINENO: the command $mkdir is not available - aborting.\n"
  exit 192
fi
if test ! -x  "$echo" ;  then
  printf "$SCRIPT:$LINENO: the command $echo is not available - aborting.\n"
  exit 192
fi
if test ! -x  "$hostname" ;  then
  printf "$SCRIPT:$LINENO: the command $hostname is not available - aborting.\n"
  exit 192
fi

# Base environment variables:
export USERNAME=`id --user --real --name`

# Performance Tools and common environment variables & setup.
export PERF_DATA_DIR=$PERF_DATA_ROOT/$USERNAME/`hostname`; 
mkdir -p $PERF_DATA_DIR  # Create the data directory if it does not alreay exist.

if [ "$SDK_ROOT" ] ; then
  export PATH=$SDK_ROOT/usr/bin:$PATH
# export LD_LIBRARY_PATH=$SDK_ROOT/usr/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=$SDK_ROOT/usr/lib64:$LD_LIBRARY_PATH
  export ACCEL_LD_LIBRARY_PATH64=$SDK_ROOT/usr/lib64
else
# export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH
  export ACCEL_LD_LIBRARY_PATH64=/usr/lib64
fi

if [ "$SDK_PROTOTYPE_ROOT" ] ; then
  export PATH=$SDK_PROTOTYPE_ROOT/usr/bin:$PATH
# export LD_LIBRARY_PATH=$SDK_PROTOTYPE_ROOT/usr/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=$SDK_PROTOTYPE_ROOT/usr/lib64:$LD_LIBRARY_PATH
  export ACCEL_LD_LIBRARY_PATH64=$SDK_PROTOTYPE_ROOT/usr/lib64:$ACCEL_LD_LIBRARY_PATH64
fi

if [ "$HOST_APP_PATH" ] ; then
  export PATH=$HOST_APP_PATH:$PATH
fi

if [ "$HOST_APP_LD_LIBRARY_PATH" ] ; then
  if [ "$LD_LIBRARY_PATH" ] ; then
    export LD_LIBRARY_PATH=$HOST_APP_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
  else
    export LD_LIBRARY_PATH=$HOST_APP_LD_LIBRARY_PATH
  fi
fi


if [ "$DACS_START_ENV_LIST" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;SDK_ROOT;SDK_PROTOTYPE_ROOT;PERF_DATA_DIR"
else
  export DACS_START_ENV_LIST="SDK_ROOT;SDK_PROTOTYPE_ROOT;PERF_DATA_DIR"
fi
if [ "$SCRIPT_DEBUG" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;SCRIPT_DEBUG"
fi
if [ "$ACCEL_APP_PATH" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;ACCEL_APP_PATH"
fi
if [ "$ACCEL_APP_LD_LIBRARY_PATH" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;ACCEL_APP_LD_LIBRARY_PATH"
fi
if [ "$ACCEL_LD_LIBRARY_PATH64" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;ACCEL_LD_LIBRARY_PATH64"
fi
if [ "$HYBRID_PERF_TOOLS_DIR" ] ; then
  export DACS_START_ENV_LIST="$DACS_START_ENV_LIST;HYBRID_PERF_TOOLS_DIR"
fi

(taskset -p 0x00000001 $$)

if [ "$SCRIPT_DEBUG" ] ; then
  echo
  echo "****** perfToolHostSetup Environment Variables *******"
  echo "PATH                     = $PATH"
  echo "LD_LIBRARY_PATH          = $LD_LIBRARY_PATH"
  echo "HOST_APP_PATH            = $HOST_APP_PATH"
  echo "HOST_APP_LD_LIBRARY_PATH = $HOST_APP_LD_LIBRARY_PATH"
  echo "ACCEL_APP_PATH           = $ACCEL_APP_PATH"
  echo "ACCEL_APP_LD_LIBRARY_PATH= $ACCEL_APP_LD_LIBRARY_PATH"
  echo "ACCEL_LD_LIBRARY_PATH64  = $ACCEL_LD_LIBRARY_PATH64"
  echo "SDK_ROOT                 = $SDK_ROOT"
  echo "SDK_PROTOTYPE_ROOT       = $SDK_PROTOTYPE_ROOT"
  echo "PERF_DATA_ROOT           = $PERF_DATA_ROOT"
  echo "PERF_DATA_DIR            = $PERF_DATA_DIR"
  echo "HYBRID_PERF_TOOLS_DIR    = $HYBRID_PERF_TOOLS_DIR"
  echo "PERF_TOOLS_USR_ENV       = $PERF_TOOLS_USR_ENV"

  echo "DACS_START_ENV_LIST      = $DACS_START_ENV_LIST"
  echo "****** perfToolHostSetup complete *******"
  echo
fi

# Cleanup

return 0 # successful completion
