]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: Add build32.sh and build64.sh scripts
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 31 Dec 2010 07:55:11 +0000 (07:55 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 31 Dec 2010 07:55:11 +0000 (07:55 +0000)
These scripts are similar to those found under DuetPkg & UnixPkg.

The scripts simplify building and running OVMF under systems that
have the bash shell available.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11215 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/README
OvmfPkg/build32.sh [new file with mode: 0755]
OvmfPkg/build64.sh [new file with mode: 0755]

index 4220d34c50937594b5cad9c37dff8b443fbecd77..92ae76253d1a38d7ad951a77869c4e0acef196ef 100644 (file)
@@ -91,3 +91,16 @@ http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_build_OVM
     -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10 -net dump,file=a.pcap\r
   * Enable 2 e1000 NICs with a DHCP server and restrict packet forwarding\r
     -net nic,model=e1000,addr=3 -net nic,model=e1000,addr=4 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+\r
+=== Build Scripts ===\r
+\r
+On environments with the bash shell you can use OvmfPkg/build32.sh and\r
+OvmfPkg/build64.sh to simplify building and running OVMF.\r
+\r
+So, for example, to build + run OVMF X64:\r
+$ OvmfPkg/build64.sh\r
+$ OvmfPkg/build64.sh qemu\r
+\r
+And to run a 64-bit UEFI bootable ISO image:\r
+$ OvmfPkg/build64.sh qemu -cdrom /path/to/disk-image.iso\r
+\r
diff --git a/OvmfPkg/build32.sh b/OvmfPkg/build32.sh
new file mode 100755 (executable)
index 0000000..3b0516b
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+# Copyright (c) 2010, 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
+# 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.
+#
+
+set -e
+shopt -s nocasematch
+
+
+#
+# Setup workspace if it is not set
+#
+if [ -z "$WORKSPACE" ]
+then
+  echo Initializing workspace
+  if [ ! -e `pwd`/edksetup.sh ]
+  then
+    cd ..
+  fi
+# This version is for the tools in the BaseTools project.
+# this assumes svn pulls have the same root dir
+#  export EDK_TOOLS_PATH=`pwd`/../BaseTools
+# This version is for the tools source in edk2
+  export EDK_TOOLS_PATH=`pwd`/BaseTools
+  echo $EDK_TOOLS_PATH
+  source edksetup.sh BaseTools
+else
+  echo Building from: $WORKSPACE
+fi
+
+PROCESSOR=IA32
+Processor=Ia32
+
+#
+# Pick a default tool type for a given OS
+#
+TARGET_TOOLS=MYTOOLS
+case `uname` in
+  CYGWIN*) echo Cygwin not fully supported yet. ;;
+  Darwin*)
+      Major=$(uname -r | cut -f 1 -d '.')
+      if [[ $Major == 9 ]]
+      then
+        echo OvmfPkg requires Snow Leopard or later OS
+        exit 1
+      else
+        TARGET_TOOLS=XCODE32
+      fi
+      ;;
+  Linux*)
+    TARGET_TOOLS=GCC44
+    ;;
+
+esac
+
+BUILD_ROOT=$WORKSPACE/Build/Ovmf$Processor/DEBUG_"$TARGET_TOOLS"
+FV_DIR=$BUILD_ROOT/FV
+BUILD_ROOT_ARCH=$BUILD_ROOT/$PROCESSOR
+QEMU_FIRMWARE_DIR=$BUILD_ROOT/QEMU
+
+if  [[ ! -f `which build` || ! -f `which GenFv` ]];
+then
+  # build the tools if they don't yet exist. Bin scheme
+  echo Building tools as they are not in the path
+  make -C $WORKSPACE/BaseTools
+elif [[ ( -f `which build` ||  -f `which GenFv` )  && ! -d  $EDK_TOOLS_PATH/Source/C/bin ]];
+then
+  # build the tools if they don't yet exist. BinWrapper scheme
+  echo Building tools no $EDK_TOOLS_PATH/Source/C/bin directory
+  make -C $WORKSPACE/BaseTools
+else
+  echo using prebuilt tools
+fi
+
+
+for arg in "$@"
+do
+  if [[ $arg == qemu ]]; then
+    shift
+    if [[ ! -d $QEMU_FIRMWARE_DIR ]]; then
+      mkdir $QEMU_FIRMWARE_DIR
+      ln -s $FV_DIR/OVMF.fd $QEMU_FIRMWARE_DIR/bios.bin
+      ln -s $FV_DIR/CirrusLogic5446.rom $QEMU_FIRMWARE_DIR/vgabios-cirrus.bin
+    fi
+    QEMU_COMMAND="qemu -L $QEMU_FIRMWARE_DIR -hda fat:$BUILD_ROOT_ARCH $*"
+    echo Running: $QEMU_COMMAND
+    $QEMU_COMMAND
+    exit
+  fi
+
+  if [[ $arg == cleanall ]]; then
+    make -C $WORKSPACE/BaseTools clean
+    build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 clean
+    exit $?
+  fi
+
+  if [[ $arg == clean ]]; then
+    build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 clean
+    exit $?
+  fi
+done
+
+
+#
+# Build the edk2 OvmfPkg
+#
+echo Running edk2 build for OvmfPkg$Processor
+build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 $*
+exit $?
+
diff --git a/OvmfPkg/build64.sh b/OvmfPkg/build64.sh
new file mode 100755 (executable)
index 0000000..8ff63c2
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+# Copyright (c) 2010, 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
+# 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.
+#
+
+set -e
+shopt -s nocasematch
+
+
+#
+# Setup workspace if it is not set
+#
+if [ -z "$WORKSPACE" ]
+then
+  echo Initializing workspace
+  if [ ! -e `pwd`/edksetup.sh ]
+  then
+    cd ..
+  fi
+# This version is for the tools in the BaseTools project.
+# this assumes svn pulls have the same root dir
+#  export EDK_TOOLS_PATH=`pwd`/../BaseTools
+# This version is for the tools source in edk2
+  export EDK_TOOLS_PATH=`pwd`/BaseTools
+  echo $EDK_TOOLS_PATH
+  source edksetup.sh BaseTools
+else
+  echo Building from: $WORKSPACE
+fi
+
+PROCESSOR=X64
+Processor=X64
+
+#
+# Pick a default tool type for a given OS
+#
+TARGET_TOOLS=MYTOOLS
+case `uname` in
+  CYGWIN*) echo Cygwin not fully supported yet. ;;
+  Darwin*)
+      Major=$(uname -r | cut -f 1 -d '.')
+      if [[ $Major == 9 ]]
+      then
+        echo OvmfPkg requires Snow Leopard or later OS
+        exit 1
+      else
+        TARGET_TOOLS=XCODE32
+      fi
+      ;;
+  Linux*)
+    TARGET_TOOLS=GCC44
+    ;;
+
+esac
+
+BUILD_ROOT=$WORKSPACE/Build/Ovmf$Processor/DEBUG_"$TARGET_TOOLS"
+FV_DIR=$BUILD_ROOT/FV
+BUILD_ROOT_ARCH=$BUILD_ROOT/$PROCESSOR
+QEMU_FIRMWARE_DIR=$BUILD_ROOT/QEMU
+
+if  [[ ! -f `which build` || ! -f `which GenFv` ]];
+then
+  # build the tools if they don't yet exist. Bin scheme
+  echo Building tools as they are not in the path
+  make -C $WORKSPACE/BaseTools
+elif [[ ( -f `which build` ||  -f `which GenFv` )  && ! -d  $EDK_TOOLS_PATH/Source/C/bin ]];
+then
+  # build the tools if they don't yet exist. BinWrapper scheme
+  echo Building tools no $EDK_TOOLS_PATH/Source/C/bin directory
+  make -C $WORKSPACE/BaseTools
+else
+  echo using prebuilt tools
+fi
+
+
+for arg in "$@"
+do
+  if [[ $arg == qemu ]]; then
+    shift
+    if [[ ! -d $QEMU_FIRMWARE_DIR ]]; then
+      mkdir $QEMU_FIRMWARE_DIR
+      ln -s $FV_DIR/OVMF.fd $QEMU_FIRMWARE_DIR/bios.bin
+      ln -s $FV_DIR/CirrusLogic5446.rom $QEMU_FIRMWARE_DIR/vgabios-cirrus.bin
+    fi
+    QEMU_COMMAND="qemu-system-x86_64 -L $QEMU_FIRMWARE_DIR -hda fat:$BUILD_ROOT_ARCH $*"
+    echo Running: $QEMU_COMMAND
+    $QEMU_COMMAND
+    exit
+  fi
+
+  if [[ $arg == cleanall ]]; then
+    make -C $WORKSPACE/BaseTools clean
+    build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 clean
+    exit $?
+  fi
+
+  if [[ $arg == clean ]]; then
+    build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 clean
+    exit $?
+  fi
+done
+
+
+#
+# Build the edk2 OvmfPkg
+#
+echo Running edk2 build for OvmfPkg$Processor
+build -p $WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc -a $PROCESSOR -t $TARGET_TOOLS -n 3 $*
+exit $?
+