diff options
author | Liming Gao <liming.gao@intel.com> | 2015-10-08 09:29:56 +0000 |
---|---|---|
committer | lgao4 <lgao4@Edk2> | 2015-10-08 09:29:56 +0000 |
commit | 094a67398f2e84fb11955ae8f8588647f9bd67cc (patch) | |
tree | 5ae7b1939e11aed56c64ecbe5a9003fc7a7b92c0 /BaseTools/BuildEnv | |
parent | 485eb3a252b21becb5bace55320ddbfdc8e1c83f (diff) | |
download | edk2-platforms-094a67398f2e84fb11955ae8f8588647f9bd67cc.tar.xz |
BaseTools: Update edksetup.sh to support multiple workspaces
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Wu Hao A <hao.a.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18584 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BaseTools/BuildEnv')
-rwxr-xr-x | BaseTools/BuildEnv | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/BaseTools/BuildEnv b/BaseTools/BuildEnv index 6a1281b96b..7c77454bf8 100755 --- a/BaseTools/BuildEnv +++ b/BaseTools/BuildEnv @@ -2,7 +2,7 @@ # Setup the environment for unix-like systems running a bash-like shell. # This file must be "sourced" not merely executed. For example: ". edksetup.sh" # -# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -35,11 +35,28 @@ RestorePreviousConfiguration() { # # Restore previous configuration # - PREVIOUS_CONF_FILE=Conf/BuildEnv.sh + if [ -z "$CONF_PATH" ] + then + export CONF_PATH=$WORKSPACE/Conf + if [ ! -d $WORKSPACE/Conf ] && [ -n "$PACKAGES_PATH" ] + then + PACKAGES_PATH=${PACKAGES_PATH//:/ } + for DIR in $PACKAGES_PATH + do + if [ -d $DIR/Conf ] + then + export CONF_PATH=$DIR/Conf + break + fi + done + fi + fi + + PREVIOUS_CONF_FILE=$CONF_PATH/BuildEnv.sh if [ -e $PREVIOUS_CONF_FILE ] then - echo Loading previous configuration from \$WORKSPACE/$PREVIOUS_CONF_FILE - . $WORKSPACE/$PREVIOUS_CONF_FILE + echo Loading previous configuration from $PREVIOUS_CONF_FILE + . $PREVIOUS_CONF_FILE fi } @@ -70,9 +87,8 @@ StoreCurrentConfiguration() { # Write configuration to a shell script to allow for configuration to be # easily reloaded. # - OUTPUT_FILE=Conf/BuildEnv.sh - #echo Storing current configuration into \$WORKSPACE/$OUTPUT_FILE - OUTPUT_FILE=$WORKSPACE/$OUTPUT_FILE + OUTPUT_FILE=$CONF_PATH/BuildEnv.sh + #echo Storing current configuration into $OUTPUT_FILE echo "# Auto-generated by ${BASH_SOURCE[0]}" > $OUTPUT_FILE GenerateShellCodeToSetVariable WORKSPACE $OUTPUT_FILE GenerateShellCodeToSetVariable EDK_TOOLS_PATH $OUTPUT_FILE @@ -90,20 +106,20 @@ SetEdkToolsPath() { fi # - # Try $WORKSPACE/Conf/EdkTools + # Try $CONF_PATH/EdkTools # - if [ -e $WORKSPACE/Conf/EdkTools ] + if [ -e $CONF_PATH/EdkTools ] then - export EDK_TOOLS_PATH=$WORKSPACE/Conf/EdkTools + export EDK_TOOLS_PATH=$CONF_PATH/EdkTools return 0 fi # - # Try $WORKSPACE/Conf/BaseToolsSource + # Try $CONF_PATH/BaseToolsSource # - if [ -e $WORKSPACE/Conf/BaseToolsSource ] + if [ -e $CONF_PATH/BaseToolsSource ] then - export EDK_TOOLS_PATH=$WORKSPACE/Conf/BaseToolsSource + export EDK_TOOLS_PATH=$CONF_PATH/BaseToolsSource return 0 fi @@ -116,6 +132,22 @@ SetEdkToolsPath() { return 0 fi + # + # Try $PACKAGES_PATH + # + if [ -n "$PACKAGES_PATH"] + then + PACKAGES_PATH=${PACKAGES_PATH//:/ } + for DIR in $PACKAGES_PATH + do + if [ -d $DIR/BaseTools ] + then + export EDK_TOOLS_PATH=$DIR/BaseTools + return 0 + fi + done + fi + echo "Unable to determine EDK_TOOLS_PATH" echo echo "You may need to download the 'BaseTools' from buildtools.tianocore.org." @@ -179,17 +211,16 @@ AddEdkToolsToPath() { CopySingleTemplateFile() { SRC_FILENAME=Conf/$1.template - DST_FILENAME=Conf/$1.txt + DST_FILENAME=$CONF_PATH/$1.txt - if [ -e $WORKSPACE/$DST_FILENAME ] + if [ -e $DST_FILENAME ] then return fi echo "Copying \$EDK_TOOLS_PATH/$SRC_FILENAME" - echo " to \$WORKSPACE/$DST_FILENAME" + echo " to $DST_FILENAME" SRC_FILENAME=$EDK_TOOLS_PATH/$SRC_FILENAME - DST_FILENAME=$WORKSPACE/$DST_FILENAME cp $SRC_FILENAME $DST_FILENAME } @@ -230,6 +261,7 @@ ScriptMain() { echo WORKSPACE: $WORKSPACE echo EDK_TOOLS_PATH: $EDK_TOOLS_PATH + echo CONF_PATH: $CONF_PATH CopyTemplateFiles |