Blame MakeTools/funcs-ext.sh

Packit 857059
#!/bin/bash -v
Packit 857059
# BEGIN_ICS_COPYRIGHT8 ****************************************
Packit 857059
# 
Packit 857059
# Copyright (c) 2015-2017, Intel Corporation
Packit 857059
# 
Packit 857059
# Redistribution and use in source and binary forms, with or without
Packit 857059
# modification, are permitted provided that the following conditions are met:
Packit 857059
# 
Packit 857059
#     * Redistributions of source code must retain the above copyright notice,
Packit 857059
#       this list of conditions and the following disclaimer.
Packit 857059
#     * Redistributions in binary form must reproduce the above copyright
Packit 857059
#       notice, this list of conditions and the following disclaimer in the
Packit 857059
#       documentation and/or other materials provided with the distribution.
Packit 857059
#     * Neither the name of Intel Corporation nor the names of its contributors
Packit 857059
#       may be used to endorse or promote products derived from this software
Packit 857059
#       without specific prior written permission.
Packit 857059
# 
Packit 857059
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit 857059
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit 857059
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Packit 857059
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
Packit 857059
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit 857059
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Packit 857059
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Packit 857059
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Packit 857059
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit 857059
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit 857059
# 
Packit 857059
# END_ICS_COPYRIGHT8   ****************************************
Packit 857059
Packit 857059
# Override default funcs.sh functions from $ICSBIN.
Packit 857059
Packit 857059
#Following taken from funcs.sh
Packit 857059
# These are included here to permit rpm builds by customers without needing
Packit 857059
# our devtools (which includes funcs.sh)
Packit 857059
# to aid tracking, if a change is needed for any of these functions
Packit 857059
# move the given function toward the bottom of the script after the
Packit 857059
# "END TAKEN FROM FUNCS.SH" line and then make the necessary edits
Packit 857059
# this way it will be clear which functions should track devtools and which
Packit 857059
# represent possibly product or generation specific adjustments
Packit 857059
# This way this script will also have only 1 copy of each function and
Packit 857059
# hence will avoid confusion to others reading it
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	toupper
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	a string to convert to upper case
Packit 857059
# Description:	converts the given string to upper case
Packit 857059
#			and returns the result to stdout
Packit 857059
#			only alphabetic characters are affected
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function toupper()
Packit 857059
{
Packit 857059
    echo "$1"|tr '[a-z]' '[A-Z]'
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	getBuildPlatform
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	echo only the first six characters of the system name
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------                           
Packit 857059
function getBuildPlatform()
Packit 857059
{
Packit 857059
     echo `uname -s | cut -c1-6`
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	findTopDir
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	$1 --silent
Packit 857059
# Description:	return top level directory
Packit 857059
#               if --silent, the if top level not found then return $PWD
Packit 857059
#               else return an error message
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function findTopDir()
Packit 857059
{
Packit 857059
    if   [ `getBuildPlatform` == "CYGWIN" ]; then
Packit 857059
	tl_dir=`cygpath -w $PWD | sed 's/\\\/\//g'`
Packit 857059
    else
Packit 857059
	tl_dir=`pwd`
Packit 857059
    fi
Packit 857059
    while [ ! -f "$tl_dir/Makerules/Makerules.global" ]
Packit 857059
    do
Packit 857059
    	tl_dir=`dirname $tl_dir`
Packit 857059
    	if [ "$tl_dir" == "/" -o "$tl_dir" == "." ]
Packit 857059
    	then
Packit 857059
            if [ "$1" == "--silent" ]; then               
Packit 857059
                return
Packit 857059
            else
Packit 857059
                echo "Unable to locate TL_DIR, Makerules not found" >&2
Packit 857059
    		return
Packit 857059
            fi 
Packit 857059
    	fi
Packit 857059
    done
Packit 857059
    
Packit 857059
    echo $tl_dir
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	settl
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:
Packit 857059
# Description:	find the top level directory, and set TL_DIR, else
Packit 857059
#               set TL_DIR to the currect directory
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function settl()
Packit 857059
{
Packit 857059
      
Packit 857059
	export TL_DIR=`findTopDir --silent`
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	setwindbase
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	directory for WIND_BASE
Packit 857059
# Description:	sets WIND_BASE and related variables
Packit 857059
#		WIND_BASE, WIND_HOST_TYPE, WRS_HOST, WRS_BIN,
Packit 857059
#		MIPS_BIN, MIPS_LIB, MIPS_PATH, UWIND_BASE, WIN_WRS_BIN
Packit 857059
# Uses:         
Packit 857059
#       None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
setwindbase()
Packit 857059
{
Packit 857059
    #### WindRiver Tornado 2 Environment Variables
Packit 857059
            ## we compute UWIND_BASE and WIN_WRS_BIN here to save time
Packit 857059
            ## during make (ie. it doesn't have to be recomputed in each makefile)
Packit 857059
	    
Packit 857059
   
Packit 857059
    if [ "$1" == "" ]; then
Packit 857059
        export WIND_BASE=
Packit 857059
	return
Packit 857059
    fi
Packit 857059
    
Packit 857059
	    
Packit 857059
    if   [ `getBuildPlatform` == "CYGWIN" ]; then
Packit 857059
	
Packit 857059
	export WIND_BASE=`cygpath -w $1 | sed 's/\\\/\//g'`
Packit 857059
	export WIND_HOST_TYPE=x86-win32
Packit 857059
Packit 857059
    else
Packit 857059
Packit 857059
	export WIND_BASE=$1		
Packit 857059
	export WIND_HOST_TYPE=unix
Packit 857059
    fi
Packit 857059
    
Packit 857059
    export WRS_HOST=$WIND_BASE/host/$WIND_HOST_TYPE
Packit 857059
    export WRS_BIN=$WRS_HOST/bin
Packit 857059
Packit 857059
} # end function                      
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	isAllEmb
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:
Packit 857059
# Description:	determine if environment is an embedded checkout
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function isAllEmb()
Packit 857059
{
Packit 857059
	if [ "$TL_DIR" == "" ]; then
Packit 857059
		settl
Packit 857059
	fi
Packit 857059
Packit 857059
	[ `ls -d $TL_DIR/*_Firmware 2>/dev/null|wc -l` -ne 0 ]
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	setbsp
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	show available bsp's for TL_DIR project.
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function setbsp()
Packit 857059
{
Packit 857059
    local x=0
Packit 857059
    local topLevelDir
Packit 857059
    local the_selection
Packit 857059
Packit 857059
    if [ "$1" == "" ]; then
Packit 857059
        if [ "$TL_DIR" == "" ]; then
Packit 857059
            topLevelDir=`findTopDir`
Packit 857059
        else
Packit 857059
            topLevelDir=$TL_DIR
Packit 857059
        fi
Packit 857059
                
Packit 857059
        SUPPORTED_BSP_FILE=""
Packit 857059
        if [ -f "$topLevelDir/SUPPORTED_TARGET_BSPS" ]; then                
Packit 857059
            SUPPORTED_BSP_FILE="$topLevelDir/SUPPORTED_TARGET_BSPS"
Packit 857059
        fi
Packit 857059
        if [ -f "$topLevelDir/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS" ]; then                
Packit 857059
            SUPPORTED_BSP_FILE="$topLevelDir/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS"
Packit 857059
        fi
Packit 857059
        if [ "$SUPPORTED_BSP_FILE" != "" ]; then
Packit 857059
            for i in `cat $SUPPORTED_BSP_FILE`
Packit 857059
            do       
Packit 857059
                echo "$(( x += 1 )) ) $i"
Packit 857059
            done
Packit 857059
            
Packit 857059
            printf "choice: "
Packit 857059
            read the_selection
Packit 857059
            
Packit 857059
            export TARGET_BSP=`cut -d" " -f$the_selection $SUPPORTED_BSP_FILE`
Packit 857059
	    if [ "$TL_DIR" != "" ]; then
Packit 857059
	    	echo $TARGET_BSP > $TL_DIR/.defaultBSP
Packit 857059
	    fi
Packit 857059
        else
Packit 857059
            echo "Can not find SUPPORTED_TARGET_BSPS file in TL_DIR ($TL_DIR) or in a Firmware directory - try doing setct first"
Packit 857059
        fi
Packit 857059
    else
Packit 857059
        export TARGET_BSP=$1
Packit 857059
		if [ "$TL_DIR" != "" ]; then
Packit 857059
			echo $TARGET_BSP > $TL_DIR/.defaultBSP
Packit 857059
		fi
Packit 857059
	fi
Packit 857059
	if [ "$TARGET_BSP" != "" ]; then
Packit 857059
		if [ "$PROJ_FILE_DIR" != "" ]; then
Packit 857059
			grep -qsw "$TARGET_BSP" "$TL_DIR/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS"
Packit 857059
		else
Packit 857059
			grep -qsw "$TARGET_BSP" "$TL_DIR/SUPPORTED_TARGET_BSPS"
Packit 857059
		fi
Packit 857059
Packit 857059
		if [ $? -ne 0 ] ; then
Packit 857059
			echo "Warning: '$TARGET_BSP' does not appear do be a supported BSP (using it anyway)"
Packit 857059
		fi
Packit 857059
    fi
Packit 857059
    
Packit 857059
} # end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	resetct
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	clear card type for ALL_EMB builds
Packit 857059
# Uses:
Packit 857059
#	None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function resetct()
Packit 857059
{
Packit 857059
    unset CARD_TYPE
Packit 857059
    unset PROJ_FILE_DIR
Packit 857059
	if [ "$TL_DIR" != "" ]; then
Packit 857059
		rm -f $TL_DIR/.defaultCT
Packit 857059
	fi
Packit 857059
    echo "CARD_TYPE has been reset"
Packit 857059
}
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	targetos
Packit 857059
# In Script:	funcs.sh
Packit 857059
# Arguments:	1 = target operating system
Packit 857059
# Description:	specify target operating system for make to build for
Packit 857059
# Uses:
Packit 857059
#	sets BUILD_TARGET_OS
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function targetos()
Packit 857059
{
Packit 857059
    local targetOsType=`toupper $1`
Packit 857059
Packit 857059
    if   [ `getBuildPlatform` == "CYGWIN" ]; then
Packit 857059
Packit 857059
	case $targetOsType in
Packit 857059
	VXWORKS)
Packit 857059
	    export BUILD_TARGET_OS=VXWORKS
Packit 857059
	    ;;
Packit 857059
	WIN32)
Packit 857059
	    export BUILD_TARGET_OS=WIN32
Packit 857059
	    ;;
Packit 857059
	CYGWIN)
Packit 857059
	    export BUILD_TARGET_OS=CYGWIN
Packit 857059
	    ;;	
Packit 857059
	*)
Packit 857059
	    printf "Usage: targetos [cygwin|vxworks|win32]\n\n"
Packit 857059
	    return
Packit 857059
	    ;;
Packit 857059
	esac
Packit 857059
    elif   [ `getBuildPlatform` == "Darwin" ]; then
Packit 857059
    	case $targetOsType in
Packit 857059
	DARWIN)
Packit 857059
	    export BUILD_TARGET_OS=DARWIN
Packit 857059
	    ;;
Packit 857059
	*)
Packit 857059
	    printf "Usage: targetos [darwin]\n\n"
Packit 857059
	    return
Packit 857059
	    ;;
Packit 857059
	esac
Packit 857059
    else
Packit 857059
    	case $targetOsType in
Packit 857059
	VXWORKS)
Packit 857059
	    export BUILD_TARGET_OS=VXWORKS
Packit 857059
	    ;;
Packit 857059
	LINUX)
Packit 857059
	    export BUILD_TARGET_OS=LINUX
Packit 857059
	    ;;
Packit 857059
	*)
Packit 857059
	    printf "Usage: targetos [linux]\n\n"
Packit 857059
	    return
Packit 857059
	    ;;
Packit 857059
	esac
Packit 857059
    fi
Packit 857059
    
Packit 857059
    echo "Build target operating system set to $BUILD_TARGET_OS"
Packit 857059
} # end function                      
Packit 857059
Packit 857059
Packit 857059
Packit 857059
################################################################################
Packit 857059
####END TAKEN FROM FUNCS.SH
Packit 857059
################################################################################
Packit 857059
Packit 857059
Packit 857059
Packit 857059
# NOTE: This function changes often when environment variables are added
Packit 857059
#       to display to end users.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	showenv
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	show the intel cde environment settings
Packit 857059
# Uses:         
Packit 857059
#       None
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function showenv()
Packit 857059
{
Packit 857059
    local SMP
Packit 857059
Packit 857059
    printf "Intel CDE Environment Settings:\n\n"
Packit 857059
Packit 857059
    if [[ "$BUILD_TARGET" == "" || "$1" == "-h" ]]; then
Packit 857059
        local TARGET_COMMENT="[use: target] "
Packit 857059
    fi      
Packit 857059
    if [[ "$BUILD_UNIT_TEST" == "" || "$1" == "-h" ]]; then
Packit 857059
        local UNIT_TEST_COMMENT="[use: settest|setnotest] "
Packit 857059
    fi
Packit 857059
    if [[ "$BUILD_CONFIG" == "" || "$1" == "-h" ]]; then
Packit 857059
        local CONFIG_COMMENT="[use: setdbg|setrel command] "
Packit 857059
    fi
Packit 857059
    if [[ "$BUILD_TARGET_OS_VERSION" == "" || "$1" == "-h" ]]; then
Packit 857059
        local OS_COMMENT="[use: setver] "
Packit 857059
    fi    	
Packit 857059
    if [[ "$RELEASE_TAG" == "" || "$1" == "-h" ]]; then
Packit 857059
        local RELEASE_TAG_COMMENT="[use: export RELEASE_TAG=R#] "
Packit 857059
    fi    	
Packit 857059
    if [[ "$OPA_FEATURE_SET" == "" || "$1" == "-h" ]]; then
Packit 857059
        local OPA_FEATURE_SET_COMMENT="[use: setfs] "
Packit 857059
    fi
Packit 857059
Packit 857059
    echo "Build Target       : $TARGET_COMMENT$BUILD_TARGET"
Packit 857059
    echo "Build Target OS    : $TARGET_COMMENT$OS_COMMENT$BUILD_TARGET_OS_VENDOR $BUILD_TARGET_OS $BUILD_TARGET_OS_VERSION $SMP"
Packit 857059
    echo "Build Platform     : $TARGET_COMMENT$BUILD_PLATFORM_OS_VENDOR $BUILD_PLATFORM"
Packit 857059
    echo "Build Target Tools : $TARGET_COMMENT$BUILD_TARGET_TOOLCHAIN"
Packit 857059
    echo "Build Unit Test    : $UNIT_TEST_COMMENT$BUILD_UNIT_TEST"
Packit 857059
    echo "Build Configuration: $CONFIG_COMMENT$BUILD_CONFIG"
Packit 857059
    echo "Release Tag        : $RELEASE_TAG_COMMENT$RELEASE_TAG"
Packit 857059
    echo "Build Feature Set  : $OPA_FEATURE_SET_COMMENT$OPA_FEATURE_SET"
Packit 857059
    
Packit 857059
    if [ "$BUILD_TARGET_OS" == "VXWORKS" ]; then
Packit 857059
        if [[ "$BUILD_TMS" == "" || "$1" == "-h" ]]; then
Packit 857059
            local TMS_COMMENT="[use: export BUILD_TMS=(yes|no)] "
Packit 857059
        fi
Packit 857059
        if [[ "$TGT_SUBDIR_NAME" == "" || "$1" == "-h" ]]; then
Packit 857059
            local SUBDIR_COMMENT="[use: export TGT_SUBDIR_NAME=(target|tmsTarget)] "
Packit 857059
        fi
Packit 857059
        if [[ "$EVAL_HARDWARE" == "" || "$1" == "-h" ]]; then
Packit 857059
            local EVAL_COMMENT="[use: export EVAL_HARDWARE=(yes|no)] "
Packit 857059
        fi
Packit 857059
        if [[ "$NO_SSP" == "" || "$1" == "-h" ]]; then
Packit 857059
            local SSP_COMMENT="[use: export NO_SSP=(1|0)] "
Packit 857059
        fi		
Packit 857059
        if [[ "$STOP_ON_ERROR" == "" || "$1" == "-h" ]]; then
Packit 857059
            local STOP_ON_ERROR_COMMENT="[use: export STOP_ON_ERROR=(yes|no)] "
Packit 857059
        fi
Packit 857059
        if [[ "$TARGET_BSP" == "" || "$1" == "-h" ]]; then
Packit 857059
            local BSP_COMMENT="[use: setbsp (`cat $TL_DIR/SUPPORTED_TARGET_BSPS 2> /dev/null`)] "
Packit 857059
        fi         	    	
Packit 857059
        if [[ "$WIND_BASE" == "" || "$1" == "-h" ]]; then
Packit 857059
            local WIND_BASE_COMMENT="[use: target | setwindbase] "
Packit 857059
        fi                
Packit 857059
        local CARD_TYPE_COMMENT
Packit 857059
        if isAllEmb; then
Packit 857059
            if [[ "$CARD_TYPE" == "" || "$1" == "-h" ]]; then
Packit 857059
                    CARD_TYPE_COMMENT="[use: setct] "
Packit 857059
            fi	    
Packit 857059
        else
Packit 857059
            if [[ "$CARD_TYPE" != "" || "$1" == "-h" ]]; then
Packit 857059
                    CARD_TYPE_COMMENT="[ALL_EMB only, use: resetct] "
Packit 857059
            else
Packit 857059
                    CARD_TYPE_COMMENT="[ALL_EMB only] "
Packit 857059
            fi
Packit 857059
        fi
Packit 857059
        if [[ "$WEB_STANDALONE" == "" || "$1" == "-h" ]]; then
Packit 857059
            local WEB_STANDALONE_COMMENT="[use: export WEB_STANDALONE=(1|0)] "
Packit 857059
        fi 
Packit 857059
                                       
Packit 857059
        echo   "Build TMS          : $TMS_COMMENT$BUILD_TMS"
Packit 857059
        echo   "Build Target Subdir: $SUBDIR_COMMENT$TGT_SUBDIR_NAME"
Packit 857059
        echo   "EVAL HARDWARE      : $EVAL_COMMENT$EVAL_HARDWARE"		
Packit 857059
        echo   "NO SSP             : $SSP_COMMENT$NO_SSP"	    
Packit 857059
        echo   "STOP ON ERROR      : $STOP_ON_ERROR_COMMENT$STOP_ON_ERROR"       
Packit 857059
        echo   "Target BSP         : $BSP_COMMENT$TARGET_BSP"      
Packit 857059
        echo   "Tornado Base       : $WIND_BASE_COMMENT$WIND_BASE"
Packit 857059
        echo   "Card Type          : $CARD_TYPE_COMMENT$CARD_TYPE"
Packit 857059
        echo   "Web Standalone     : $WEB_STANDALONE_COMMENT$WEB_STANDALONE"
Packit 857059
	else
Packit 857059
        if [[ "$OFED_STACK_PREFIX" == "" || "$1" == "-h" ]]; then
Packit 857059
            local OFED_STACK_PREFIX_COMMENT="[use: export OFED_STACK_PREFIX=/dir] "
Packit 857059
        fi
Packit 857059
        #if [[ "$BUILD_ULPS" == "" || "$1" == "-h" ]]; then
Packit 857059
        #    local BUILD_ULPS_COMMENT="[use: setulps 'ulp list'] "
Packit 857059
        #fi
Packit 857059
        #if [[ "$BUILD_SKIP_ULPS" == "" || "$1" == "-h" ]]; then
Packit 857059
        #    local BUILD_SKIP_ULPS_COMMENT="[use: setskipulps 'ulp list'] "
Packit 857059
        #fi
Packit 857059
        echo   "OFED Stack Prefix  : $OFED_STACK_PREFIX_COMMENT$OFED_STACK_PREFIX"
Packit 857059
        #echo   "Build ULPs         : $BUILD_ULPS_COMMENT$BUILD_ULPS"
Packit 857059
        #echo   "Build Skip ULPs    : $BUILD_SKIP_ULPS_COMMENT$BUILD_SKIP_ULPS"
Packit 857059
    fi
Packit 857059
Packit 857059
    if [[ "$TL_DIR" == "" || "$1" == "-h" ]]; then
Packit 857059
       local TL_DIR_COMMENT="[use: target] "
Packit 857059
    fi 
Packit 857059
    echo   "Top Level Directory: $TL_DIR_COMMENT$TL_DIR"
Packit 857059
Packit 857059
    if [[ "$PROJ_FILE_DIR" == "" || "$1" == "-h" ]]; then
Packit 857059
        local PROJ_FILE_DIR_COMMENT="[use: export PROJ_FILE_DIR as needed] "
Packit 857059
    fi      
Packit 857059
    echo   "Proj File Dir      : $PROJ_FILE_DIR_COMMENT$PROJ_FILE_DIR"
Packit 857059
Packit 857059
    if [[ "$PRODUCT" == "" || "$1" == "-h" ]]; then
Packit 857059
        local PRODUCT_COMMENT="[use: export PRODUCT as needed] "
Packit 857059
    fi      
Packit 857059
    echo   "Product            : $PRODUCT_COMMENT$PRODUCT"
Packit 857059
Packit 857059
} # end function        
Packit 857059
Packit 857059
setbsp ()
Packit 857059
{
Packit 857059
    local x=0;
Packit 857059
    local topLevelDir;
Packit 857059
    local the_selection;
Packit 857059
    if [ "$1" == "" ]; then
Packit 857059
        if [ "$TL_DIR" == "" ]; then
Packit 857059
            topLevelDir=`findTopDir`;
Packit 857059
        else
Packit 857059
            topLevelDir=$TL_DIR;
Packit 857059
        fi;
Packit 857059
        SUPPORTED_BSP_FILE="";
Packit 857059
        if [ -f "$topLevelDir/SUPPORTED_TARGET_BSPS" ]; then
Packit 857059
            SUPPORTED_BSP_FILE="$topLevelDir/SUPPORTED_TARGET_BSPS";
Packit 857059
        fi;
Packit 857059
        if [ -f "$topLevelDir/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS" ]; then
Packit 857059
            SUPPORTED_BSP_FILE="$topLevelDir/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS";
Packit 857059
        fi;
Packit 857059
        if [ "$SUPPORTED_BSP_FILE" != "" ]; then
Packit 857059
            for i in `cat $SUPPORTED_BSP_FILE`;
Packit 857059
            do
Packit 857059
                echo "$(( x += 1 )) ) $i";
Packit 857059
            done;
Packit 857059
            printf "choice: ";
Packit 857059
            read the_selection;
Packit 857059
            export TARGET_BSP=`cut -d" " -f$the_selection $SUPPORTED_BSP_FILE`;
Packit 857059
			export TARGET_BSP_UPCASE=`echo $TARGET_BSP | tr '[:lower:]' '[:upper:]'`
Packit 857059
            if [ "$TL_DIR" != "" ]; then
Packit 857059
                echo $TARGET_BSP >$TL_DIR/.defaultBSP;
Packit 857059
            fi;
Packit 857059
        else
Packit 857059
            echo "Can not find SUPPORTED_TARGET_BSPS file in TL_DIR ($TL_DIR) or in a Firmware directory - try doing setct first";
Packit 857059
        fi;
Packit 857059
    else
Packit 857059
        export TARGET_BSP=$1;
Packit 857059
        export TARGET_BSP_UPCASE=`echo $TARGET_BSP | tr '[:lower:]' '[:upper:]'`
Packit 857059
        if [ "$TL_DIR" != "" ]; then
Packit 857059
            echo $TARGET_BSP >$TL_DIR/.defaultBSP;
Packit 857059
        fi;
Packit 857059
    fi;
Packit 857059
    if [ "$TARGET_BSP" != "" ]; then
Packit 857059
		export TARGET_BSP_UPCASE=`echo $TARGET_BSP | tr '[:lower:]' '[:upper:]'`
Packit 857059
        if [ "$PROJ_FILE_DIR" != "" ]; then
Packit 857059
            grep -qsw "$TARGET_BSP" "$TL_DIR/$PROJ_FILE_DIR/SUPPORTED_TARGET_BSPS";
Packit 857059
        else
Packit 857059
            grep -qsw "$TARGET_BSP" "$TL_DIR/SUPPORTED_TARGET_BSPS";
Packit 857059
        fi;
Packit 857059
        if [ $? -ne 0 ]; then
Packit 857059
            echo "Warning: '$TARGET_BSP' does not appear do be a supported BSP (using it anyway)";
Packit 857059
        fi;
Packit 857059
    fi
Packit 857059
}
Packit 857059
Packit 857059
function settarget()
Packit 857059
{
Packit 857059
    local targetType=`toupper $1`
Packit 857059
    local message
Packit 857059
Packit 857059
    if [[ "$1" == "-h" ]]; then
Packit 857059
        printf "Usage: target ia32|ia64|x86_64|em64t|mips|atom|ppc|ppc64\n"
Packit 857059
        return
Packit 857059
    fi
Packit 857059
    
Packit 857059
    export BUILD_PLATFORM_OS_VENDOR=`os_vendor`
Packit 857059
    export BUILD_PLATFORM_OS_VENDOR_VERSION=`os_vendor_version $BUILD_PLATFORM_OS_VENDOR`    
Packit 857059
    export BUILD_TARGET_OS_VENDOR=$BUILD_PLATFORM_OS_VENDOR
Packit 857059
    export BUILD_TARGET_OS_VENDOR_VERSION=$BUILD_PLATFORM_OS_VENDOR_VERSION
Packit 857059
   
Packit 857059
    if   [ `getBuildPlatform` == "CYGWIN" ]; then
Packit 857059
Packit 857059
            if [ "$TL_DIR" == "" ]; then
Packit 857059
                settl            
Packit 857059
            fi
Packit 857059
                    
Packit 857059
            if [ "$WIND_BASE" == "" ]; then
Packit 857059
                setwindbase $TL_DIR
Packit 857059
            fi
Packit 857059
       
Packit 857059
	    isBSP=`toupper $2`                             
Packit 857059
                                 
Packit 857059
            case $targetType in
Packit 857059
            MIPS)
Packit 857059
                targetos VXWORKS       
Packit 857059
                export MIPS_LIB=$WRS_HOST/lib/gcc-lib/mips-wrs-vxworks/cygnus-2.7.2-960126	    
Packit 857059
                export MIPS_PATH=`cygpath -u $WRS_BIN 2> /dev/null`
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
                export BUILD_TARGET_OS_VENDOR=WindRiver
Packit 857059
                export BUILD_TARGET=MIPS
Packit 857059
                ;;
Packit 857059
            X86|I386)
Packit 857059
                targetos VXWORKS
Packit 857059
                export I386_LIB=$WRS_HOST/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126
Packit 857059
                export I386_PATH=$WRS_BIN	
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
                export BUILD_TARGET=I386
Packit 857059
                ;;
Packit 857059
            CYGWIN)
Packit 857059
                targetos CYGWIN
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=CYGWIN
Packit 857059
                ;;
Packit 857059
            WIN32)
Packit 857059
                targetos WIN32
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=WIN32
Packit 857059
                export BUILD_TARGET=WIN32
Packit 857059
                ;;
Packit 857059
            *)
Packit 857059
                printf "Unknown target $1\n"
Packit 857059
                printf "Usage: target [cygwin | mips | win32] [bsp]\n\n"
Packit 857059
                return
Packit 857059
                ;;	
Packit 857059
            esac           
Packit 857059
            
Packit 857059
            if [ "$isBSP" == "BSP" ]; then
Packit 857059
                message="for BSP development"
Packit 857059
                    UWRS_BIN=`cygpath -u $WRS_BIN`
Packit 857059
                    export WIND_BASE=`cygpath -w $WIND_BASE 2> /dev/null`
Packit 857059
                export PATH=`update_path_start $PATH $UWRS_BIN $UWRS_BIN`
Packit 857059
            fi    
Packit 857059
    elif   [ `getBuildPlatform` == "Darwin" ]; then
Packit 857059
        settl
Packit 857059
        case $targetType in
Packit 857059
        PPC)
Packit 857059
            targetos DARWIN
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET=PPC
Packit 857059
            ;;
Packit 857059
        *)		    
Packit 857059
            if [ "$1" != "" ]; then
Packit 857059
               printf "Unknown target $1\n"
Packit 857059
            fi
Packit 857059
            printf "Usage: target ppc\n\n"
Packit 857059
            return
Packit 857059
            ;;    
Packit 857059
        esac
Packit 857059
    else
Packit 857059
    
Packit 857059
        settl
Packit 857059
        setwindbase $TL_DIR
Packit 857059
Packit 857059
        case $targetType in
Packit 857059
		ATOM)
Packit 857059
            targetos VXWORKS       
Packit 857059
			export TGT_SUBDIR_NAME=target
Packit 857059
			export TGT_DIR=$TL_DIR/target
Packit 857059
            export ATOM_PATH=
Packit 857059
            export ATOM_LIB=$TGT_DIR/lib/pentium/ATOM/common/libgcc.a
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET_OS_VENDOR=WindRiver
Packit 857059
            export BUILD_TARGET_OS_VERSION=6.9.4.6
Packit 857059
            export BUILD_TARGET=ATOM
Packit 857059
            export WIND_HOST_TYPE=x86-linux2
Packit 857059
            if [ "$LD_LIBRARY_PATH" == "" ] ; then
Packit 857059
            	export LD_LIBRARY_PATH=$TL_DIR/host/wrs/gnu/lib64
Packit 857059
            else
Packit 857059
                export LD_LIBRARY_PATH=$TL_DIR/host/wrs/gnu/lib64:$LD_LIBRARY_PATH
Packit 857059
            fi
Packit 857059
            export PATH=$PATH:$ICSLOCAL/Emb_Utils:$TL_DIR/host/wrs/gnu/4.3.3-vxworks-6.9/x86-linux2/bin:$TL_DIR/host/wrs/gnu/4.3.3-vxworks-6.9/x86-linux2/libexec/gcc/i586-wrs-vxworks/4.3.3
Packit 857059
Packit 857059
            ;;
Packit 857059
        MIPS)
Packit 857059
            targetos VXWORKS       
Packit 857059
			export TGT_SUBDIR_NAME=tmsTarget
Packit 857059
			export TGT_DIR=$TL_DIR/tmsTarget
Packit 857059
            export MIPS_PATH=
Packit 857059
            export MIPS_LIB=$TL_DIR/host/$WIND_HOST_TYPE/lib/gcc-lib/mips-wrs-vxworks/cygnus-2.7.2-960126/mips3/libgcc.a
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET_OS_VENDOR=WindRiver
Packit 857059
            export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
            export BUILD_TARGET=MIPS
Packit 857059
            ;;
Packit 857059
        LINUX)
Packit 857059
            targetos LINUX
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET=IA32
Packit 857059
            ;;
Packit 857059
        IA32)
Packit 857059
            targetos LINUX
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET=IA32
Packit 857059
            ;;
Packit 857059
        LINUX64)
Packit 857059
            targetos LINUX
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET=IA64
Packit 857059
            ;;
Packit 857059
        IA64)
Packit 857059
            targetos LINUX
Packit 857059
            export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
            export BUILD_TARGET=IA64
Packit 857059
            ;;
Packit 857059
	X86_64)
Packit 857059
	    targetos LINUX
Packit 857059
	    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
	    export BUILD_TARGET=X86_64
Packit 857059
	    ;;
Packit 857059
	PPC64)
Packit 857059
	    targetos LINUX
Packit 857059
	    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
	    export BUILD_TARGET=PPC64
Packit 857059
	    ;;
Packit 857059
	EM64T)
Packit 857059
	    targetos LINUX
Packit 857059
	    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
	    export BUILD_TARGET=EM64T
Packit 857059
	    ;;
Packit 857059
        *)		    
Packit 857059
            if [ "$1" != "" ]; then
Packit 857059
               printf "Unknown target $1\n"
Packit 857059
            fi
Packit 857059
            printf "Usage: target ia32|ia64|x86_64|em64t|mips|atom|ppc64\n\n"
Packit 857059
            return
Packit 857059
            ;;    
Packit 857059
        esac
Packit 857059
    fi
Packit 857059
	set_os_identifier
Packit 857059
Packit 857059
    echo "Build target set to $BUILD_TARGET $message"
Packit 857059
Packit 857059
    if isAllEmb && [[ "$BUILD_TARGET_OS" = "VXWORKS" ]]; then
Packit 857059
       if [ -e "$TL_DIR/.defaultCT" ]; then
Packit 857059
          export CARD_TYPE=`cat $TL_DIR/.defaultCT 2>&1 /dev/null`
Packit 857059
          export PROJ_FILE_DIR=$CARD_TYPE"_Firmware"
Packit 857059
          echo "Card type set to $CARD_TYPE"
Packit 857059
       fi
Packit 857059
    else
Packit 857059
       resetct > /dev/null
Packit 857059
    fi
Packit 857059
    
Packit 857059
    if [[ "$BUILD_TARGET_OS" = "VXWORKS" && -e "$TL_DIR/.defaultBSP" ]]; then
Packit 857059
        export TARGET_BSP=`cat $TL_DIR/.defaultBSP 2>&1 /dev/null`
Packit 857059
        export TARGET_BSP_UPCASE=`echo $TARGET_BSP | tr '[:lower:]' '[:upper:]'`
Packit 857059
        echo "Target BSP is ${TARGET_BSP:-empty.}"
Packit 857059
    fi        
Packit 857059
    
Packit 857059
    if [[ -e "$TL_DIR/.defaultBuildConfig" ]]; then
Packit 857059
        export BUILD_CONFIG=`cat $TL_DIR/.defaultBuildConfig 2>&1 /dev/null`
Packit 857059
        echo "Build Configuration is ${BUILD_CONFIG:-empty.}"
Packit 857059
    fi        
Packit 857059
    if [[ -e "$TL_DIR/.defaultBuildUlps" ]]; then
Packit 857059
        export BUILD_ULPS=`cat $TL_DIR/.defaultBuildUlps 2>&1 /dev/null`
Packit 857059
        echo "Build ULPs is ${BUILD_ULPS:-empty.}"
Packit 857059
    else
Packit 857059
        export BUILD_ULPS=${BUILD_ULPS:-all}
Packit 857059
    fi        
Packit 857059
    if [[ -e "$TL_DIR/.defaultBuildSkipUlps" ]]; then
Packit 857059
        export BUILD_SKIP_ULPS=`cat $TL_DIR/.defaultBuildSkipUlps 2>&1 /dev/null`
Packit 857059
        echo "Build Skip ULPs is ${BUILD_SKIP_ULPS:-empty.}"
Packit 857059
    else
Packit 857059
        export BUILD_SKIP_ULPS=${BUILD_SKIP_ULPS:-none}
Packit 857059
    fi        
Packit 857059
} # end function
Packit 857059
Packit 857059
# NOTE: This function is changed whenever we add different platform or
Packit 857059
#       target support.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	os_vendor
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	determine the os vendor based on build system
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function os_vendor()
Packit 857059
{
Packit 857059
    if [ -f /etc/os-release ]
Packit 857059
    then
Packit 857059
        id=$(grep ^ID= /etc/os-release | cut -f2 -d= | cut -f2 -d\")
Packit 857059
        case $id in
Packit 857059
            rhel)
Packit 857059
                rval=redhat
Packit 857059
                ;;
Packit 857059
            sles)
Packit 857059
                rval=SuSE
Packit 857059
                ;;
Packit 857059
            centos)
Packit 857059
                rval=redhat
Packit 857059
                ;;
Packit 857059
            fedora)
Packit 857059
                rval=redhat
Packit 857059
                ;;
Packit 857059
            *)
Packit 857059
                rval=""
Packit 857059
                ;;
Packit 857059
        esac
Packit 857059
    elif [ `uname -s` == "Darwin" ]
Packit 857059
    then
Packit 857059
        # Apple Mac
Packit 857059
        rval=apple
Packit 857059
    else
Packit 857059
        filelist=($('ls' /etc/*-release | egrep -v lsb | egrep -v os))
Packit 857059
        rval=""
Packit 857059
        if [ ${#filelist[@]} -eq 0 ] && [ -f /etc/lsb-release ]; then
Packit 857059
            rval=$(cat /etc/lsb-release | egrep DISTRIB_ID | cut -d'=' -f2 | tr '[:upper:]' '[:lower:]')
Packit 857059
        fi
Packit 857059
        for file in $filelist
Packit 857059
        do
Packit 857059
	    if [ -f $file ]
Packit 857059
	    then
Packit 857059
		rval=$(basename $file -release)
Packit 857059
		if [ $rval = 'SuSE' ]
Packit 857059
		then
Packit 857059
			if [ -f /etc/UnitedLinux-release ]
Packit 857059
			then
Packit 857059
				rval=UnitedLinux
Packit 857059
			fi
Packit 857059
		elif [ $rval = 'centos' ]
Packit 857059
		then
Packit 857059
			rval=redhat
Packit 857059
		elif [ $rval != 'os' ]
Packit 857059
		then
Packit 857059
			break
Packit 857059
		fi
Packit 857059
	    fi
Packit 857059
        done
Packit 857059
    fi
Packit 857059
    echo $rval
Packit 857059
}
Packit 857059
Packit 857059
# NOTE: This function is changed whenever we add different platform or
Packit 857059
#       target support.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	os_vendor_version
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	1 = os_vendor
Packit 857059
# Description:	determine the os vendor release level based on build system
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function os_vendor_version()
Packit 857059
{
Packit 857059
	if [[ -e /etc/os-release ]]; then
Packit 857059
		. /etc/os-release
Packit 857059
		# - use VERSION_ID - it has a common format among distros 
Packit 857059
		# - mimic old way and drop $minor if eq 0 (see redhat handling below)
Packit 857059
		# - drop '.'(dot)
Packit 857059
		if [ $1 = "ubuntu" ]; then
Packit 857059
			rval=ES$(echo $VERSION_ID | sed -e 's/\.//')
Packit 857059
		else
Packit 857059
			rval=ES$(echo $VERSION_ID | sed -e 's/\.[0]//' -e 's/\.//')
Packit 857059
        	fi
Packit 857059
		echo $rval
Packit 857059
		return
Packit 857059
	fi
Packit 857059
Packit 857059
	# using old way if '/etc/os-release' not found
Packit 857059
	case $1 in
Packit 857059
	apple)
Packit 857059
    	rval=`sw_vers -productVersion|cut -f1-2 -d.`
Packit 857059
		;;
Packit 857059
	rocks)
Packit 857059
		rval=`cat /etc/rocks-release | cut -d' ' -f3`
Packit 857059
		;;
Packit 857059
	scyld)
Packit 857059
		rval=`cat /etc/scyld-release | cut -d' ' -f4`
Packit 857059
		;;
Packit 857059
	mandrake)
Packit 857059
		rval=`cat /etc/mandrake-release | cut -d' ' -f4`
Packit 857059
		;;
Packit 857059
	fedora)
Packit 857059
		if grep -qi core /etc/fedora-release
Packit 857059
		then
Packit 857059
			rval=`cat /etc/fedora-release | cut -d' ' -f4`
Packit 857059
		else
Packit 857059
			rval=`cat /etc/fedora-release | cut -d' ' -f3`
Packit 857059
		fi
Packit 857059
		;;
Packit 857059
	redhat)
Packit 857059
		if grep -qi advanced /etc/redhat-release
Packit 857059
		then
Packit 857059
			rval=`cat /etc/redhat-release | cut -d' ' -f7`
Packit 857059
		elif grep -qi enterprise /etc/redhat-release
Packit 857059
		then
Packit 857059
			# /etc/redhat-release = "Red Hat Enterprise Linux Server release $a.$b ($c)"
Packit 857059
			rval="ES"`cat /etc/redhat-release | cut -d' ' -f7 | cut -d. -f1`
Packit 857059
			major=`cat /etc/redhat-release | cut -d' ' -f7 | cut -d. -f1`
Packit 857059
			minor=`cat /etc/redhat-release | cut -d' ' -f7 | cut -d. -f2`
Packit 857059
			if [ \( $major -ge 7 -a $minor -ne 0 \) -o \( $major -eq 6 -a $minor -ge 7 \) ]
Packit 857059
			then
Packit 857059
				rval=$rval$minor
Packit 857059
			fi
Packit 857059
		elif grep -qi centos /etc/redhat-release
Packit 857059
		then
Packit 857059
			# CentOS 
Packit 857059
			rval="ES"`cat /etc/redhat-release | sed -r 's/^.+([[:digit:]])\.([[:digit:]]).+$/\1\2/'`
Packit 857059
		elif grep -qi scientific /etc/redhat-release
Packit 857059
		then
Packit 857059
			# Scientific Linux.
Packit 857059
			rval="ES"`cat /etc/redhat-release | sed -r 's/^.+([[:digit:]])\.([[:digit:]]).+$/\1/'`
Packit 857059
		else
Packit 857059
			rval=`cat /etc/redhat-release | cut -d' ' -f5`
Packit 857059
		fi
Packit 857059
		;;
Packit 857059
	UnitedLinux)
Packit 857059
		rval=`grep United /etc/UnitedLinux-release | cut -d' ' -f2`
Packit 857059
		;;
Packit 857059
	SuSE)
Packit 857059
		if grep -qi enterprise /etc/SuSE-release
Packit 857059
		then
Packit 857059
			rval="ES"`grep -i enterprise /etc/SuSE-release | cut -d' ' -f5`
Packit 857059
		else
Packit 857059
			rval=`grep -i SuSE /etc/SuSE-release | cut -d' ' -f3`
Packit 857059
		fi
Packit 857059
		;;
Packit 857059
	turbolinux)
Packit 857059
		rval=`cat /etc/turbolinux-release | cut -d' ' -f3`
Packit 857059
		;;
Packit 857059
	esac
Packit 857059
	echo $rval
Packit 857059
}
Packit 857059
Packit 857059
# NOTE: This function is changed whenever we add different platform or
Packit 857059
#       target support.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	os_identifier
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	None
Packit 857059
# Description:	generate concise ID for targer/vendor/major version
Packit 857059
# Uses:
Packit 857059
#	BUILD_TARGET, BUILD_TARGET_OS_VENDOR, BUILD_TARGET_OS_VENDOR_VERSION
Packit 857059
#	sets BUILD_TARGET_OS_ID
Packit 857059
function set_os_identifier()
Packit 857059
{
Packit 857059
	local arch ver
Packit 857059
    arch=`echo $BUILD_TARGET | tr '[:upper:]' '[:lower:]'`
Packit 857059
	case "$BUILD_TARGET_OS_VENDOR" in
Packit 857059
	redhat)
Packit 857059
		ver=RH$(echo $BUILD_TARGET_OS_VENDOR_VERSION|sed -e 's/ES/EL/' -e 's/\..*//');;
Packit 857059
	SuSE)
Packit 857059
		ver=SL$(echo $BUILD_TARGET_OS_VENDOR_VERSION|sed -e 's/\..*//');;
Packit 857059
	*)
Packit 857059
		ver="$BUILD_TARGET_OS_VENDOR.$BUILD_TARGET_OS_VENDOR_VERSION"''
Packit 857059
	esac
Packit 857059
	export BUILD_TARGET_OS_ID=$ver-$arch
Packit 857059
}
Packit 857059
Packit 857059
# NOTE: This function is changed whenever we add different platform or
Packit 857059
#       target support.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	target
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	1 = target platform
Packit 857059
#               2 = bsp [optional] on cygwin build platform only
Packit 857059
# Description:	specify target platform for make to build for
Packit 857059
# Uses:
Packit 857059
#	sets BUILD_TARGET
Packit 857059
#       if bsp development is specified then export PATH to allow the
Packit 857059
#       compiler to be used on the command line
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function target()
Packit 857059
{
Packit 857059
    local targetType=`toupper $1`
Packit 857059
    local message
Packit 857059
Packit 857059
    # always set top level directoy
Packit 857059
    settl
Packit 857059
    
Packit 857059
    export BUILD_PLATFORM_OS_VENDOR=`os_vendor`    
Packit 857059
    export BUILD_PLATFORM_OS_VENDOR_VERSION=`os_vendor_version $BUILD_PLATFORM_OS_VENDOR`    
Packit 857059
    export BUILD_TARGET_OS_VENDOR=$BUILD_PLATFORM_OS_VENDOR
Packit 857059
    export BUILD_TARGET_OS_VENDOR_VERSION=$BUILD_PLATFORM_OS_VENDOR_VERSION
Packit 857059
Packit 857059
    #  Allows us to override functions that change often.
Packit 857059
    if [[ "$TL_DIR" != "" && -e "$TL_DIR/MakeTools/funcs-ext.sh" ]]; then
Packit 857059
        if [[ -e "$ICSBIN/funcs.sh" ]]; then
Packit 857059
          echo "Resourcing default $ICSBIN/funcs.sh"
Packit 857059
          . $ICSBIN/funcs.sh $*
Packit 857059
          . $TL_DIR/MakeTools/funcs-ext.sh $*
Packit 857059
          echo "Using $TL_DIR/MakeTools/funcs-ext.sh"
Packit 857059
          settarget $*
Packit 857059
        else
Packit 857059
          echo "The development environment is not properly configured.  Please source ics.sh file."
Packit 857059
          return
Packit 857059
        fi
Packit 857059
    else
Packit 857059
    	if [[ "$1" == "-h" ]]; then
Packit 857059
	    printf "Usage: target ia32|ia64|x86_64|em64t|mips|atom|ppc64\n"
Packit 857059
	    return
Packit 857059
	fi    
Packit 857059
            
Packit 857059
        echo "Using default functions."
Packit 857059
        if   [ `getBuildPlatform` == "CYGWIN" ]; then
Packit 857059
    
Packit 857059
        	if [ "$TL_DIR" == "" ]; then
Packit 857059
        	    settl            
Packit 857059
        	fi
Packit 857059
                	
Packit 857059
        	if [ "$WIND_BASE" == "" ]; then
Packit 857059
        	    setwindbase $TL_DIR
Packit 857059
        	fi
Packit 857059
           
Packit 857059
                isBSP=`toupper $2`                             
Packit 857059
                                     
Packit 857059
        	case $targetType in
Packit 857059
			ATOM)
Packit 857059
                targetos VXWORKS       
Packit 857059
				export TGT_SUBDIR_NAME=target
Packit 857059
				export TGT_DIR=$TL_DIR/target
Packit 857059
                export ATOM_PATH=
Packit 857059
                export ATOM_LIB=$TGT_DIR/lib/pentium/ATOM/common/libgcc.a
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET_OS_VENDOR=WindRiver
Packit 857059
                export BUILD_TARGET_OS_VERSION=6.9.2
Packit 857059
                export BUILD_TARGET=ATOM
Packit 857059
            	export WIND_HOST_TYPE=x86-linux2
Packit 857059
                ;;
Packit 857059
        	MIPS)
Packit 857059
        	    #if checkwindbase; then 
Packit 857059
        	    #	return
Packit 857059
        	    #fi
Packit 857059
            
Packit 857059
        	    targetos VXWORKS       
Packit 857059
        	    export TGT_SUBDIR_NAME=tmsTarget
Packit 857059
        	    export TGT_DIR=$TL_DIR/tmsTarget
Packit 857059
         	    export MIPS_LIB=$WRS_HOST/lib/gcc-lib/mips-wrs-vxworks/cygnus-2.7.2-960126	    
Packit 857059
        	    export MIPS_PATH=`cygpath -u $WRS_BIN 2> /dev/null`
Packit 857059
                    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
        	    export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
        	    export BUILD_TARGET=MIPS
Packit 857059
        	    ;;
Packit 857059
        	X86|I386)
Packit 857059
        	    #if checkwindbase; then 
Packit 857059
        	    #	return
Packit 857059
        	    #fi
Packit 857059
        	    
Packit 857059
        	    targetos VXWORKS
Packit 857059
        	    export I386_LIB=$WRS_HOST/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126
Packit 857059
        	    export I386_PATH=$WRS_BIN	
Packit 857059
                    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
        	    export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
        	    export BUILD_TARGET=I386
Packit 857059
        	    ;;
Packit 857059
        	CYGWIN)
Packit 857059
        	    targetos CYGWIN
Packit 857059
                    export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
        	    export BUILD_TARGET=CYGWIN
Packit 857059
        	    ;;
Packit 857059
        	WIN32)
Packit 857059
        	    targetos WIN32
Packit 857059
                    export BUILD_TARGET_TOOLCHAIN=WIN32
Packit 857059
        	    export BUILD_TARGET=WIN32
Packit 857059
        	    ;;
Packit 857059
        	*)
Packit 857059
        	    printf "Unknown target $1\n"
Packit 857059
        	    printf "Usage: target [cygwin | mips | atom | win32] [bsp]\n\n"
Packit 857059
        	    return
Packit 857059
        	    ;;	
Packit 857059
                esac           
Packit 857059
                
Packit 857059
                if [ "$isBSP" == "BSP" ]; then
Packit 857059
                    message="for BSP development"
Packit 857059
        	        UWRS_BIN=`cygpath -u $WRS_BIN`
Packit 857059
        	        export WIND_BASE=`cygpath -w $WIND_BASE 2> /dev/null`
Packit 857059
                    export PATH=`update_path_start $PATH $UWRS_BIN $UWRS_BIN`
Packit 857059
                fi    
Packit 857059
        elif   [ `getBuildPlatform` == "DARWIN" ]; then
Packit 857059
            case $targetType in
Packit 857059
            PPC)
Packit 857059
                targetos DARWIN
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=PPC
Packit 857059
                ;;
Packit 857059
            *)		    
Packit 857059
                if [ "$1" != "" ]; then
Packit 857059
                   printf "Unknown target $1\n"
Packit 857059
                fi
Packit 857059
                printf "Usage: target ppc\n\n"
Packit 857059
                return
Packit 857059
            esac
Packit 857059
        else
Packit 857059
                    
Packit 857059
            if [[ "$TL_DIR" == "" ]]; then
Packit 857059
               echo "Unable to determine top level directory."
Packit 857059
               echo "The top level directory must have a ./Makerules/Makerules.global file."
Packit 857059
               return  
Packit 857059
            fi
Packit 857059
            
Packit 857059
            setwindbase $TL_DIR
Packit 857059
    
Packit 857059
            case $targetType in
Packit 857059
            MIPS)
Packit 857059
                targetos VXWORKS       
Packit 857059
                export MIPS_PATH=
Packit 857059
                export MIPS_LIB=$TL_DIR/host/$WIND_HOST_TYPE/lib/gcc-lib/mips-wrs-vxworks/cygnus-2.7.2-960126/mips3/libgcc.a
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET_OS_VERSION=5.4
Packit 857059
                export BUILD_TARGET=MIPS
Packit 857059
                ;;
Packit 857059
            LINUX)
Packit 857059
                targetos LINUX
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=IA32
Packit 857059
                ;;
Packit 857059
            IA32)
Packit 857059
                targetos LINUX
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=IA32
Packit 857059
                ;;
Packit 857059
            LINUX64)
Packit 857059
                targetos LINUX
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=IA64
Packit 857059
                ;;
Packit 857059
            IA64)
Packit 857059
                targetos LINUX
Packit 857059
                export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
                export BUILD_TARGET=IA64
Packit 857059
                ;;
Packit 857059
	    X86_64)
Packit 857059
	        targetos LINUX
Packit 857059
	        export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
	        export BUILD_TARGET=X86_64
Packit 857059
		;;
Packit 857059
	    PPC64)
Packit 857059
	        targetos LINUX
Packit 857059
	        export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
	        export BUILD_TARGET=PPC64
Packit 857059
		;;
Packit 857059
	    EM64T)
Packit 857059
		targetos LINUX
Packit 857059
		export BUILD_TARGET_TOOLCHAIN=GNU
Packit 857059
		export BUILD_TARGET=EM64T
Packit 857059
	    ;;
Packit 857059
            *)		    
Packit 857059
                if [ "$1" != "" ]; then
Packit 857059
                   printf "Unknown target $1\n"
Packit 857059
                fi
Packit 857059
                printf "Usage: target ia32|ia64|x86_64|em64t|mips|atom|ppc64\n\n"
Packit 857059
                return
Packit 857059
                ;;    
Packit 857059
            esac
Packit 857059
        fi
Packit 857059
    
Packit 857059
		set_os_identifier
Packit 857059
        echo "Build target set to $BUILD_TARGET $message"
Packit 857059
    
Packit 857059
    	if isAllEmb; then
Packit 857059
    	   if [ -e "$TL_DIR/.defaultCT" ]; then
Packit 857059
    	      export CARD_TYPE=`cat $TL_DIR/.defaultCT 2>&1 /dev/null`
Packit 857059
    	      export PROJ_FILE_DIR=$CARD_TYPE"_Firmware"
Packit 857059
    	      echo "Card type set to $CARD_TYPE"
Packit 857059
    	   fi
Packit 857059
    	else
Packit 857059
    	   resetct > /dev/null
Packit 857059
    	fi
Packit 857059
        
Packit 857059
        if [[ "$BUILD_TARGET_OS" != "LINUX" && -e "$TL_DIR/.defaultBSP" ]]; then
Packit 857059
    	    export TARGET_BSP=`cat $TL_DIR/.defaultBSP 2>&1 /dev/null`
Packit 857059
            export TARGET_BSP_UPCASE=`echo $TARGET_BSP | tr '[:lower:]' '[:upper:]'`
Packit 857059
    	    echo "Target BSP is ${TARGET_BSP:-empty.}"
Packit 857059
        fi
Packit 857059
    
Packit 857059
    	if [[ -e "$TL_DIR/.defaultBuildConfig" ]]; then
Packit 857059
        	export BUILD_CONFIG=`cat $TL_DIR/.defaultBuildConfig 2>&1 /dev/null`
Packit 857059
        	echo "Build Configuration is ${BUILD_CONFIG:-empty.}"
Packit 857059
    	fi        
Packit 857059
Packit 857059
    	if [[ -e "$TL_DIR/.defaultFS" ]]; then
Packit 857059
        	export OPA_FEATURE_SET=`cat $TL_DIR/.defaultFS 2>&1 /dev/null`
Packit 857059
        	echo "OPA_FEATURE_SET is ${OPA_FEATURE_SET:-empty.}"
Packit 857059
    	fi
Packit 857059
Packit 857059
    fi       
Packit 857059
    
Packit 857059
} # end function
Packit 857059
Packit 857059
function setrel()
Packit 857059
{
Packit 857059
	export BUILD_CONFIG=release
Packit 857059
	if [ "$TL_DIR" != "" ]; then
Packit 857059
		echo $BUILD_CONFIG > $TL_DIR/.defaultBuildConfig
Packit 857059
	fi
Packit 857059
}
Packit 857059
Packit 857059
function setdbg()
Packit 857059
{
Packit 857059
	export BUILD_CONFIG=debug
Packit 857059
	if [ "$TL_DIR" != "" ]; then
Packit 857059
		echo $BUILD_CONFIG > $TL_DIR/.defaultBuildConfig
Packit 857059
	fi
Packit 857059
}
Packit 857059
Packit 857059
setulps()
Packit 857059
{
Packit 857059
    export BUILD_ULPS="${1:-all}"
Packit 857059
    if [ "$TL_DIR" != "" ]; then
Packit 857059
         echo $BUILD_ULPS > $TL_DIR/.defaultBuildUlps
Packit 857059
    fi
Packit 857059
}
Packit 857059
Packit 857059
setskipulps()
Packit 857059
{
Packit 857059
    export BUILD_SKIP_ULPS="${1:-none}"
Packit 857059
    if [ "$TL_DIR" != "" ]; then
Packit 857059
        echo $BUILD_SKIP_ULPS > $TL_DIR/.defaultBuildSkipUlps
Packit 857059
    fi
Packit 857059
}
Packit 857059
Packit 857059
Packit 857059
settools()
Packit 857059
{
Packit 857059
    local choices
Packit 857059
    local x=0
Packit 857059
Packit 857059
    if [ "$TL_DIR" == "" -o "$BUILD_TARGET_OS" == "" -o "$BUILD_TARGET" == "" ]; then
Packit 857059
      echo "Please use the target command to enable the build environment."                   
Packit 857059
      return
Packit 857059
    fi
Packit 857059
Packit 857059
    if [ "$1" != "" ]; then
Packit 857059
       export BUILD_TARGET_TOOLCHAIN=$1
Packit 857059
    else
Packit 857059
       choices=`for x in $TL_DIR/Makerules/Target.*; do echo ${x##*/} | cut -d. -f3; done | sort | uniq`    
Packit 857059
       if [ "$choices" != "" ]; then
Packit 857059
         for choice in $choices
Packit 857059
         do
Packit 857059
           echo "$(( x += 1 )) ) $choice"
Packit 857059
         done
Packit 857059
         printf "choice: "
Packit 857059
         read the_selection
Packit 857059
	 x=0
Packit 857059
         for choice in $choices
Packit 857059
         do
Packit 857059
	   if [ "$the_selection" == "$(( x += 1 ))" ]; then
Packit 857059
             export BUILD_TARGET_TOOLCHAIN="$choice"
Packit 857059
	     echo "Setting target tool chain to $choice."
Packit 857059
	     return
Packit 857059
	   fi
Packit 857059
         done
Packit 857059
	 echo "Unknown choice."
Packit 857059
       else
Packit 857059
         echo "No choices available."
Packit 857059
       fi
Packit 857059
    fi
Packit 857059
} #end function
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	getosversions
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	none
Packit 857059
# Description:	returns relevant os version
Packit 857059
# Uses:
Packit 857059
#	Control the version string for all builds.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function getosversions()
Packit 857059
{
Packit 857059
        if   [ `getBuildPlatform` == "Darwin" ]; then
Packit 857059
	    tempchoices=`ls -1 $TL_DIR/Makerules/$BUILD_TARGET_OS/$BUILD_TARGET.$BUILD_TARGET_OS_VENDOR.*.h|xargs -n 1 basename|cut -d"." -f2-|xargs -n 1 -J % basename % .h 2> /dev/null`
Packit 857059
        else
Packit 857059
	    tempchoices=`ls --indicator-style=none /lib/modules`
Packit 857059
        fi
Packit 857059
	rval=""
Packit 857059
        if [ "$BUILD_TARGET_OS" == "LINUX" ]; then
Packit 857059
		for rel in $tempchoices
Packit 857059
		do
Packit 857059
			if [ -d /lib/modules/$rel/build ]
Packit 857059
			then
Packit 857059
				rval="$rval ${BUILD_TARGET_OS_VENDOR}.${rel}"
Packit 857059
			fi
Packit 857059
		done
Packit 857059
        else
Packit 857059
           rval="$tempchoices"
Packit 857059
        fi
Packit 857059
	echo "$rval ${BUILD_TARGET_OS_VENDOR}.NONE"
Packit 857059
}
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	computebuild26
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	None
Packit 857059
# Description:	Set BUILD_26 for LINUX
Packit 857059
# Uses: BUILD_TARGET_OS, BUILD_TARGET_OS_VERSION
Packit 857059
function computebuild26()
Packit 857059
{
Packit 857059
    if [ "$BUILD_TARGET_OS" == "LINUX" ]
Packit 857059
    then
Packit 857059
        if echo $BUILD_TARGET_OS_VERSION|grep -q '^2\.6'
Packit 857059
        then
Packit 857059
            export BUILD_26=1
Packit 857059
        elif echo $BUILD_TARGET_OS_VERSION | grep -q '^3.'
Packit 857059
        then
Packit 857059
            export BUILD_26=1
Packit 857059
        else
Packit 857059
            unset BUILD_26
Packit 857059
        fi
Packit 857059
    fi
Packit 857059
}
Packit 857059
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
# Function:	setver
Packit 857059
# In Script:	funcs-ext.sh
Packit 857059
# Arguments:	$1 [optional], set the os version at the command line.
Packit 857059
# Description:	Set the BUILD_TARGET_OS_VERSION for the os, and arch.
Packit 857059
# Uses:
Packit 857059
#	Control the version string for all builds.
Packit 857059
#---------------------------------------------------------------------------
Packit 857059
function setver()
Packit 857059
{
Packit 857059
    local x=0
Packit 857059
    local vendor
Packit 857059
    local version
Packit 857059
    if [ "$TL_DIR" == "" -o "$BUILD_TARGET_OS" == "" -o "$BUILD_TARGET" == "" ]; then
Packit 857059
      echo "Please use the target command to enable the build environment."                   
Packit 857059
      return
Packit 857059
    fi
Packit 857059
    if [ "$1" != "" ]; then
Packit 857059
       export BUILD_TARGET_OS_VENDOR=$1
Packit 857059
       export BUILD_TARGET_OS_VERSION=$2
Packit 857059
       computebuild26
Packit 857059
	   set_os_identifier
Packit 857059
       echo "Setting os version to $BUILD_TARGET_OS_VENDOR $BUILD_TARGET_OS_VERSION (26=${BUILD_26:-0})."
Packit 857059
    else
Packit 857059
       if [ "$TL_DIR" == "" -o "$BUILD_TARGET_OS" == "" -o "$BUILD_TARGET" == "" ]; then
Packit 857059
          echo "Please use the target command to enable the build environment."                   
Packit 857059
          return
Packit 857059
       fi
Packit 857059
       choices=`getosversions`
Packit 857059
       if [ "$choices" != "" ]; then
Packit 857059
         for choice in $choices
Packit 857059
         do
Packit 857059
	   vendor=`echo $choice|cut -d"." -f1`
Packit 857059
	   version=`echo $choice|cut -d"." -f2-`
Packit 857059
           echo "$(( x += 1 )) ) $vendor $version"
Packit 857059
         done
Packit 857059
         printf "choice: "
Packit 857059
         read the_selection
Packit 857059
	 x=0
Packit 857059
         for choice in $choices
Packit 857059
         do	  
Packit 857059
	   if [ "$the_selection" == "$(( x += 1 ))" ]; then
Packit 857059
	     vendor=`echo $choice|cut -d"." -f1`
Packit 857059
	     version=`echo $choice|cut -d"." -f2-`
Packit 857059
	     export BUILD_TARGET_OS_VENDOR="$vendor"
Packit 857059
             export BUILD_TARGET_OS_VERSION="$version"                         
Packit 857059
             computebuild26
Packit 857059
			 set_os_identifier
Packit 857059
	     echo "Setting os version to $BUILD_TARGET_OS_VENDOR $BUILD_TARGET_OS_VERSION (26=${BUILD_26:-0})."
Packit 857059
	     return
Packit 857059
	   fi
Packit 857059
         done
Packit 857059
	 echo "Unknown choice."
Packit 857059
       else
Packit 857059
         echo "No version choices available."
Packit 857059
       fi
Packit 857059
    fi
Packit 857059
} #end function
Packit 857059
Packit 857059
##
Packit 857059
## getIntelcompilervarsfile
Packit 857059
##
Packit 857059
## Parameters:
Packit 857059
##   prefix - directory pattern to search for in /opt/intel
Packit 857059
##   subdir - subdirectory under the pattern - can be null
Packit 857059
## 
Packit 857059
## Looks for a list of directories matching the pattern and selects the newest
Packit 857059
##
Packit 857059
Packit 857059
getIntelcompilervarsfile()
Packit 857059
{
Packit 857059
	prefix=$1
Packit 857059
	subdir=$2
Packit 857059
	foundfile=
Packit 857059
	for f in $(ls -rd /opt/intel/${prefix}*)
Packit 857059
	do
Packit 857059
		if [ -f $f/$subdir/bin/compilervars.sh ]
Packit 857059
		then
Packit 857059
			foundfile=$f/$subdir/bin/compilervars.sh
Packit 857059
			break
Packit 857059
		fi
Packit 857059
	done
Packit 857059
	echo "$foundfile"
Packit 857059
}