Changed the rules to allow for partial installation and removal of fars.
[mirror_edk2.git] / edksetup.sh
index 6db6e43..7a3fe33 100644 (file)
-#\r
-# Copyright (c) 2006, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-# \r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-# Setup the environment for unix-like systems running a bash-like shell.\r
-# This file must be "sourced" not executed. For example: ". edksetup.sh"\r
-\r
-if [ "$WORKSPACE" == "" ]\r
-then\r
-  echo "Please set WORKSPACE before sourcing this script."\r
-else\r
-if [ "$JAVA_HOME" == "" ]\r
-then\r
-  echo "Please set JAVA_HOME before sourcing this script."\r
-else\r
-\r
-# These should be ok as they are.\r
-export ANT_HOME=$WORKSPACE/Tools/bin/apache-ant\r
-export XMLBEANS_HOME=$WORKSPACE/Tools/bin/xmlbeans\r
-export CLASSPATH=$WORKSPACE/Tools/Jars/SurfaceArea.jar:$WORKSPACE/Tools/Jars/frameworktasks.jar:$WORKSPACE/Tools/Jars/saxon8.jar:$WORKSPACE/Tools/Jars/cpptasks.jar:$WORKSPACE/Tools/Jars/GenBuild.jar:$XMLBEANS_HOME/lib/resolver.jar:$XMLBEANS_HOME/lib/xbean.jar:$XMLBEANS_HOME/lib/xmlpublic.jar:$XMLBEANS_HOME/lib/jsr173_1.0_api.jar:$XMLBEANS_HOME/lib/saxon8.jar:$XMLBEANS_HOME/lib/xbean_xpath.jar\r
-export Framework_Tools_Path=$WORKSPACE/Tools/bin\r
-export PATH=$Framework_Tools_Path:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH\r
-\r
-# Handle any particulars down here.\r
-case "`uname`" in\r
-  CYGWIN*) \r
-    # Convert paths to windows format.\r
-    export WORKSPACE=`cygpath -w $WORKSPACE`\r
-    export CLASSPATH=`cygpath -w -p $CLASSPATH`\r
-    ;;\r
-esac\r
-\r
-# Now we need to build the tools.\r
-echo "If you have not done so, please build the tools by issuing 'ant -f \$WORKSPACE/Tools/build.xml'."\r
-fi\r
-fi\r
+#
+# Copyright (c) 2006, Intel Corporation
+# All rights reserved. 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
+# http://opensource.org/licenses/bsd-license.php
+# 
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+# Setup the environment for unix-like systems running a bash-like shell.
+# This file must be "sourced" notcuted. For example: ". edksetup.sh"
+
+export WORKSPACE=$(pwd)
+
+# In unix-like system, gcc is the compiler for building tools
+export TOOL_CHAIN=gcc
+
+if [ "$JAVA_HOME" == "" ]
+then
+  echo "Please set JAVA_HOME before sourcing this script."
+else
+if [ "$ANT_HOME" == "" ]
+then
+  echo "Please set ANT_HOME before sourcing this script."
+else 
+if [ "$XMLBEANS_HOME" == "" ]
+then
+  echo "Please set XMLBEANS_HOME before sourcing this script."
+else
+  
+case "`uname`" in
+  CYGWIN*) 
+    # Convert paths to unix format.
+    # This is to remove possible wrong path when converting CLASSPATH back to windows format
+    export WORKSPACE=`cygpath -u $WORKSPACE`
+    export ANT_HOME=`cygpath -u $ANT_HOME`
+    export XMLBEANS_HOME=`cygpath -u $XMLBEANS_HOME`
+    export FRAMEWORK_TOOLS_PATH=`cygpath -u $FRAMEWORK_TOOLS_PATH`
+    ;;
+esac
+
+# These should be ok as they are.
+export CLASSPATH=$WORKSPACE/Tools/Jars/SurfaceArea.jar:$WORKSPACE/Tools/Jars/frameworktasks.jar:$WORKSPACE/Tools/Jars/cpptasks.jar:$WORKSPACE/Tools/Jars/PcdTools.jar:$WORKSPACE/Tools/Jars/GenBuild.jar:$XMLBEANS_HOME/lib/resolver.jar:$XMLBEANS_HOME/lib/xbean.jar:$XMLBEANS_HOME/lib/xmlpublic.jar:$XMLBEANS_HOME/lib/jsr173_1.0_api.jar:$XMLBEANS_HOME/lib/saxon8.jar:$XMLBEANS_HOME/lib/xbean_xpath.jar
+export CLASSPATH=$CLASSPATH:$WORKSPACE/Tools/Jars/Common.jar
+export CLASSPATH=$CLASSPATH:$WORKSPACE/Tools/Jars/PcdTools.jar
+export CLASSPATH=$CLASSPATH:$WORKSPACE/Tools/Bin/FrameworkWizard.jar
+export FRAMEWORK_TOOLS_PATH=$WORKSPACE/Tools/bin
+export PATH=$FRAMEWORK_TOOLS_PATH:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
+# In some unix-like system, following export is to export system's environment to user's environment
+export ANT_HOME=$ANT_HOME
+export JAVA_HOME=$JAVA_HOME
+export XMLBEANS_HOME=$XMLBEANS_HOME
+
+# Handle any particulars down here.
+case "`uname`" in
+  CYGWIN*) 
+    # Convert paths to windows format.
+    export WORKSPACE=`cygpath -w $WORKSPACE`
+    export ANT_HOME=`cygpath -w -p $ANT_HOME`
+    export XMLBEANS_HOME=`cygpath -w -p $XMLBEANS_HOME`
+    export CLASSPATH=`cygpath -w -p $CLASSPATH`
+    export FRAMEWORK_TOOLS_PATH=`cygpath -w -p $FRAMEWORK_TOOLS_PATH`
+    ;;
+esac
+
+if [ \
+  "$1" = Rebuild -o \
+  "$1" = ForceRebuild -o \
+  ! -e "$WORKSPACE/Tools/Jars/Common.jar" -o \
+  ! -e "$WORKSPACE/Tools/Jars/PcdTools.jar" -o \
+  ! -e "$WORKSPACE/Tools/Jars/GenBuild.jar" -o \
+  ! -e "$WORKSPACE/Tools/Jars/SurfaceArea.jar" -o \
+  ! -e "$WORKSPACE/Tools/Jars/cpptasks.jar" -o \
+  ! -e "$WORKSPACE/Tools/Jars/frameworktasks.jar" -o \
+  ! -e "$WORKSPACE/Tools/bin/FrameworkWizard.jar" -o \
+  ! -e "$WORKSPACE/Tools/bin/CompressDll.dll" -o \
+  ! -e "$WORKSPACE/Tools/bin/CreateMtFile" -o \
+  ! -e "$WORKSPACE/Tools/bin/EfiCompress" -o \
+  ! -e "$WORKSPACE/Tools/bin/EfiRom" -o \
+  ! -e "$WORKSPACE/Tools/bin/FlashMap" -o \
+  ! -e "$WORKSPACE/Tools/bin/FwImage" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenAcpiTable" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenCRC32Section" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenCapsuleHdr" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenDepex" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenFfsFile" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenFvImage" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenSection" -o \
+  ! -e "$WORKSPACE/Tools/bin/GenTEImage" -o \
+  ! -e "$WORKSPACE/Tools/bin/MakeDeps" -o \
+  ! -e "$WORKSPACE/Tools/bin/ModifyInf" -o \
+  ! -e "$WORKSPACE/Tools/bin/PeiRebase_Ia32" -o \
+  ! -e "$WORKSPACE/Tools/bin/PeiRebase_Ipf" -o \
+  ! -e "$WORKSPACE/Tools/bin/PeiRebase_X64" -o \
+  ! -e "$WORKSPACE/Tools/bin/SecApResetVectorFixup" -o \
+  ! -e "$WORKSPACE/Tools/bin/SecFixup" -o \
+  ! -e "$WORKSPACE/Tools/bin/SetStamp" -o \
+  ! -e "$WORKSPACE/Tools/bin/SplitFile" -o \
+  ! -e "$WORKSPACE/Tools/bin/StrGather" -o \
+  ! -e "$WORKSPACE/Tools/bin/Strip" -o \
+  ! -e "$WORKSPACE/Tools/bin/VfrCompile" -o \
+  ! -e "$WORKSPACE/Tools/bin/ZeroDebugData" -o \
+  ! -e "$WORKSPACE/Tools/bin/antlr" -o \
+  ! -e "$WORKSPACE/Tools/bin/dlg" ]
+then
+  case "$1" in 
+    ForceRebuild)
+      ant -noclasspath -f $WORKSPACE/Tools/build.xml cleanall all
+      ;;
+    *)
+      ant -noclasspath -f $WORKSPACE/Tools/build.xml all
+      ;;
+  esac
+fi
+fi
+fi
+fi