CorebootPayloadPkg: Use extra braces to prevent gcc compile fail
[mirror_edk2.git] / edksetup.sh
1 #
2 # Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
3 # This program and the accompanying materials
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.
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 #
18 # Setup the environment for unix-like systems running a bash-like shell.
19 # This file must be "sourced" not merely executed. For example: ". edksetup.sh"
20 #
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.
24 #
25 # Please reference edk2 user manual for more detail descriptions at https://edk2.tianocore.org/files/documents/64/494/EDKII_UserManual.pdf
26 #
27
28 function 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"
33 return 1
34 }
35
36 function 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
73 function SetupEnv()
74 {
75 if [ -n "$EDK_TOOLS_PATH" ]
76 then
77 . $EDK_TOOLS_PATH/BuildEnv $*
78 elif [ -f "$WORKSPACE/BaseTools/BuildEnv" ]
79 then
80 . $WORKSPACE/BaseTools/BuildEnv $*
81 else
82 echo BaseTools not found in your tree, and EDK_TOOLS_PATH is not set.
83 echo Please check that WORKSPACE is not set incorrectly in your
84 echo shell, or point EDK_TOOLS_PATH at the directory that contains
85 echo the EDK2 BuildEnv script.
86 return 1
87 fi
88 }
89
90 function SourceEnv()
91 {
92 if [ \
93 "$1" = "-?" -o \
94 "$1" = "-h" -o \
95 "$1" = "--help" \
96 ]
97 then
98 HelpMsg
99 else
100 SetWorkspace &&
101 SetupEnv "$*"
102 fi
103 }
104
105 if [ $# -gt 1 ]
106 then
107 HelpMsg
108 elif [ $# -eq 1 ] && [ "$1" != "BaseTools" ]
109 then
110 HelpMsg
111 fi
112
113 RETVAL=$?
114 if [ $RETVAL -ne 0 ]
115 then
116 return $RETVAL
117 fi
118
119 SourceEnv "$*"
120