SecurityPkg: Add TPM PTP support in TPM2 device lib.
[mirror_edk2.git] / edksetup.sh
CommitLineData
b9e16a84 1#
094a6739 2# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
24542fb2 3# This program and the accompanying materials
b9e16a84 4# are licensed and made available under the terms and conditions of the BSD License
5# which accompanies this distribution. The full text of the license may be found at
6# http://opensource.org/licenses/bsd-license.php
7#
8# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
9# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
2b1473c1 10#
11# In *inux environment, the build tools's source is required and need to be compiled
12# firstly, please reference https://edk2.tianocore.org/unix-getting-started.html to
13# to get how to setup build tool.
14#
15# After build tool is downloaded and compiled, a soft symbol linker need to be created
16# at <workspace>/Conf. For example: ln -s /work/BaseTools /work/edk2/Conf/BaseToolsSource.
17#
b9e16a84 18# Setup the environment for unix-like systems running a bash-like shell.
6dbea978 19# This file must be "sourced" not merely executed. For example: ". edksetup.sh"
2b1473c1 20#
6dbea978 21# CYGWIN users: Your path and filename related environment variables should be
22# set up in the unix style. This script will make the necessary conversions to
23# windows style.
2b1473c1 24#
25# Please reference edk2 user manual for more detail descriptions at https://edk2.tianocore.org/files/documents/64/494/EDKII_UserManual.pdf
26#
b9e16a84 27
729220ea
PP
28function HelpMsg()
29{
30 echo Please note: This script must be \'sourced\' so the environment can be changed.
31 echo ". edksetup.sh"
32 echo "source edksetup.sh"
1bb6bfaa 33 return 1
729220ea
PP
34}
35
d5493449
PB
36function SetWorkspace()
37{
38 #
39 # If WORKSPACE is already set, then we can return right now
40 #
41 if [ -n "$WORKSPACE" ]
42 then
43 return 0
44 fi
45
46 if [ ! ${BASH_SOURCE[0]} -ef ./edksetup.sh ]
47 then
48 echo Run this script from the base of your tree. For example:
49 echo " cd /Path/To/Edk/Root"
50 echo " . edksetup.sh"
51 return 1
52 fi
53
54 #
55 # Check for BaseTools/BuildEnv before dirtying the user's environment.
56 #
57 if [ ! -f BaseTools/BuildEnv ] && [ -z "$EDK_TOOLS_PATH" ]
58 then
59 echo BaseTools not found in your tree, and EDK_TOOLS_PATH is not set.
60 echo Please point EDK_TOOLS_PATH at the directory that contains
61 echo the EDK2 BuildEnv script.
62 return 1
63 fi
64
65 #
66 # Set $WORKSPACE
67 #
68 export WORKSPACE=`pwd`
69
70 return 0
71}
72
729220ea
PP
73function SetupEnv()
74{
7bc14212
PB
75 if [ -n "$EDK_TOOLS_PATH" ]
76 then
77 . $EDK_TOOLS_PATH/BuildEnv $*
d5493449 78 elif [ -f "$WORKSPACE/BaseTools/BuildEnv" ]
729220ea 79 then
729220ea 80 . $WORKSPACE/BaseTools/BuildEnv $*
094a6739
LG
81 elif [ -n "$PACKAGES_PATH" ]
82 then
83 PATH_LIST=$PACKAGES_PATH
84 PATH_LIST=${PATH_LIST//:/ }
85 for DIR in $PATH_LIST
86 do
87 if [ -f "$DIR/BaseTools/BuildEnv" ]
88 then
89 export EDK_TOOLS_PATH=$DIR/BaseTools
90 . $DIR/BaseTools/BuildEnv $*
91 break
92 fi
93 done
7bc14212 94 else
d5493449 95 echo BaseTools not found in your tree, and EDK_TOOLS_PATH is not set.
094a6739
LG
96 echo Please check that WORKSPACE or PACKAGES_PATH is not set incorrectly
97 echo in your shell, or point EDK_TOOLS_PATH at the directory that contains
d5493449
PB
98 echo the EDK2 BuildEnv script.
99 return 1
729220ea
PP
100 fi
101}
102
103function SourceEnv()
104{
ef9086c3
JJ
105 if [ \
106 "$1" = "-?" -o \
107 "$1" = "-h" -o \
108 "$1" = "--help" \
109 ]
110 then
111 HelpMsg
ef9086c3 112 else
d5493449 113 SetWorkspace &&
ef9086c3
JJ
114 SetupEnv "$*"
115 fi
729220ea 116}
ef9086c3
JJ
117
118if [ $# -gt 1 ]
729220ea
PP
119then
120 HelpMsg
1bb6bfaa 121elif [ $# -eq 1 ] && [ "$1" != "BaseTools" ]
729220ea
PP
122then
123 HelpMsg
1bb6bfaa
LL
124fi
125
126RETVAL=$?
127if [ $RETVAL -ne 0 ]
128then
129 return $RETVAL
ef9086c3
JJ
130fi
131
729220ea 132SourceEnv "$*"
b9e16a84 133