]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BeagleBoardPkg/build.sh
enhancement to tool to generate the comments along with offsets in the .h file.
[mirror_edk2.git] / BeagleBoardPkg / build.sh
index 6f0d771a2073d12410b45bdcf624b7567c14caef..ad8e69fc2478393027b24cb0b4a02f9ee526be8d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
-# Copyright (c) 2008 - 2009, Apple, Inc.  All rights reserved.
-# All rights reserved. This program and the accompanying materials
+# Copyright (c) 2008 - 2009, Apple Inc. 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
 # http://opensource.org/licenses/bsd-license.php
@@ -37,31 +37,36 @@ function process_debug_scripts {
 #
 # Setup workspace if it is not set
 #
-if [ -z "$WORKSPACE" ]
+if [ -z "${WORKSPACE:-}" ]
 then
   echo Initializing workspace
   cd ..
 # Uses an external BaseTools project 
-  export EDK_TOOLS_PATH=`pwd`/../BaseTools
+#  export EDK_TOOLS_PATH=`pwd`/../BaseTools
 # Uses the BaseTools in edk2
-#  export EDK_TOOLS_PATH=`pwd`/BaseTools
+  export EDK_TOOLS_PATH=`pwd`/BaseTools
   source edksetup.sh BaseTools
 else
   echo Building from: $WORKSPACE
 fi
 
 #
-# Pick a default tool type for a given OS
+# Pick a default tool type for a given OS if no toolchain already defined
 #
-case `uname` in
-  CYGWIN*) 
+if [ -z "${TARGET_TOOLS:-}" ]
+then
+  case `uname` in
+    CYGWIN*) 
       TARGET_TOOLS=RVCT31CYGWIN 
       ;;
-  Linux*)  
-      # Not tested
-      TARGET_TOOLS=ELFGCC 
+    Linux*)  
+      if [[ ! -z `locate arm-linux-gnueabi-gcc` ]]; then
+        TARGET_TOOLS=ARMLINUXGCC
+      else 
+        TARGET_TOOLS=ARMGCC 
+      fi
       ;;
-  Darwin*) 
+    Darwin*) 
       Major=$(uname -r | cut -f 1 -d '.')
       if [[ $Major == 9 ]]
       then
@@ -71,9 +76,19 @@ case `uname` in
         TARGET_TOOLS=XCODE32
       fi  
       ;;
-esac
+  esac
+fi
+
+TARGET=DEBUG
+for arg in "$@"
+do
+  if [[ $arg == RELEASE ]]; 
+  then
+    TARGET=RELEASE
+  fi
+done
 
-BUILD_ROOT=$WORKSPACE/Build/BeagleBoard/DEBUG_"$TARGET_TOOLS"
+BUILD_ROOT=$WORKSPACE/Build/BeagleBoard/"$TARGET"_"$TARGET_TOOLS"
 GENERATE_IMAGE=$WORKSPACE/BeagleBoardPkg/Tools/generate_image
 FLASH_BOOT=$BUILD_ROOT/FV/BeagleBoard_EFI_flashboot.fd
 
@@ -89,7 +104,12 @@ fi
 #
 # Build the edk2 BeagleBoard code
 #
-build -p $WORKSPACE/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS $1 $2 $3 $4 $5 $6 $7 $8
+if [[ $TARGET == RELEASE ]]; then
+  build -p $WORKSPACE/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET -D DEBUG_TARGET=RELEASE ${2:-} ${3:-} ${4:-} ${5:-} ${6:-} ${7:-} ${8:-}
+else
+  build -p ${WORKSPACE:-}/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET ${1:-} ${2:-} ${3:-} ${4:-} ${5:-} ${6:-} ${7:-} ${8:-}
+fi
+
 
 for arg in "$@"
 do
@@ -118,12 +138,12 @@ rm -f $FLASH_BOOT
 
 #
 # Ram starts at 0x80000000
-# OMAP 3530 TRM defines 0x80008208 as the entry point
+# OMAP 3530 TRM defines 0x80008000 as the entry point
 # The reset vector is caught by the mask ROM in the OMAP 3530 so that is why this entry 
 # point looks so strange. 
 # OMAP 3430 TRM section 26.4.8 has Image header information. (missing in OMAP 3530 TRM)
 #
-$GENERATE_IMAGE -D $WORKSPACE/BeagleBoardPkg/ConfigurationHeader.dat -E 0x80008208 -I $BUILD_ROOT/FV/BEAGLEBOARD_EFI.fd -O $FLASH_BOOT
+$GENERATE_IMAGE -D $WORKSPACE/BeagleBoardPkg/ConfigurationHeader.dat -E 0x80008000 -I $BUILD_ROOT/FV/BEAGLEBOARD_EFI.fd -O $FLASH_BOOT
 
 echo Creating debugger scripts
 process_debug_scripts $WORKSPACE/BeagleBoardPkg/Debugger_scripts