stiansjogren icon

Xlinix source script

stiansjogren | PRO | 04/27/16 09:23:44 PM UTC | 0 ⭐ | 723 👁️ | Never ⏰ | []
Bash |

3.64 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
 
# Change the following definition to reflect any given install location
ROOTDIR=/packages/LabSoC/Xilinx
 
declare -A tools
# tools["ISE"]="ISE"
tools["Vivado"]="VIVADO"
 
# Echoes
str=''
idt='  '
tab=''
function indent {
    tab+="${idt}"
}
function dedent {
    tab="${tab/%$idt}"
}
function append {
    str+="${1}"
}
function eol {
    append $'\n'
}
function log {
    append "${tab}${*}"
    eol
}
 
# Common environment variables modifications
function vappend {
    tmp="${!1}"
    if [ "x${tmp}" == "x" ]; then
        export ${1}=${2}
    elif [[ "${tmp}" != ${2} && "${tmp}" != ${2}:* && "${tmp}" != *:${2} && "${tmp}" != *:${2}:* ]]; then
        export ${1}=${tmp}:${2}
    fi
}
function vprepend {
    tmp="${!1}"
    if [ "x${tmp}" == "x" ]; then
        export ${1}=${2}
    elif [[ "${tmp}" != ${2} && "${tmp}" != ${2}:* && "${tmp}" != *:${2} && "${tmp}" != *:${2}:* ]]; then
        export ${1}=${2}:${tmp}
    fi
}
lm_license_file=${LM_LICENSE_FILE}
path=${PATH}
lang=${LANG}
lc_ctype=${LC_CTYPE}
lc_numeric=${LC_NUMERIC}
ld_library_path=${LD_LIBRARY_PATH}
 
# Architecture
arch="32"
brch=""
uname -a | grep x86_64 > /dev/null
if [ $? -eq 0 ]; then
    arch="64"
    brch="_x86_64"
fi
 
echo "Xilinx tools configuration:"
indent
log $'Selected architecture:'
indent
if [ "x${XILINX_ARCH}" = "x" ]; then
    XILINX_ARCH="${arch}"
    log "None, trying ${XILINX_ARCH} bits. Please set the XILINX_ARCH environment variable to 32 or 64 in order to change this"
else
    log "${XILINX_ARCH} bits. Please set the XILINX_ARCH environment variable to 32 or 64 in order to change this"
fi
dedent
 
for tool in "${!tools[@]}"; do
    TOOL=${tools[$tool]}
    v="XILINX_${TOOL}_VERSION"
    if [ "x${!v}" = "x" ]; then
        version=Default
    else
        version="${!v}"
    fi
    if [ -d "${ROOTDIR}/$tool" ]; then
        log "${tool}:"
        indent
        log "Selected version: ${version}. Please set the XILINX_${TOOL}_VERSION environment variable to change this. Available versions:"
        indent
        for n in ${ROOTDIR}/${tool}/*; do
            n=$(basename "${n}")
            log "${n}"
        done
        dedent
        log "Configuring ${tool}:"
        indent
        root="${ROOTDIR}/${tool}/${version}"
        if [ "${tool}" = "ISE" ]; then
            root+="/ISE_DS"
        fi
        if [ -f "${root}/settings${XILINX_ARCH}.sh" ]; then
            log "source ${root}/settings${XILINX_ARCH}.sh"
            source ${root}/settings${XILINX_ARCH}.sh
        else
            log "${root} does not seam to be a valid installation directory for ${tool} (${version} version) ${arch} bits. Skipping ${tool} configuration."
        fi
        dedent
        dedent
    elif [ "x${!v}" != "x" ]; then
        log "Could not find installation directory of ${tool} (${version} version) ${arch} bits. Skipping ${tool} configuration."
    fi
done
 
# Licenses
log "Licenses:"
indent
export LM_LICENSE_FILE="27000@lmgrd"
log "LM_LICENSE_FILE=${LM_LICENSE_FILE}"
dedent
 
# Locales
export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
 
# Prompt, message
cp=0
for V in LM_LICENSE_FILE PATH LD_LIBRARY_PATH LANG LC_CTYPE LC_NUMERIC; do
    v=${V,,}
    if [ "x${!V}" != "x${!v}" ]; then
        log "Warning: the $V environment variable has been modified:"
        indent
        log "Was: ${!v}"
        log "Now: ${!V}"
        dedent
        cp=1
    fi
done
if [ "$cp" == 1 ]; then
    log 'The prompt is modified to reflect these changes.'
    PS1="\[\e[0;31m\]XILINX\[\e[0m\] $PS1"
fi
echo "$str"
str=''
tab=''

Comments