diff options
Diffstat (limited to 'OvmfPkg/ResetVector/Build.py')
-rw-r--r-- | OvmfPkg/ResetVector/Build.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/OvmfPkg/ResetVector/Build.py b/OvmfPkg/ResetVector/Build.py new file mode 100644 index 0000000000..e0a9496e37 --- /dev/null +++ b/OvmfPkg/ResetVector/Build.py @@ -0,0 +1,58 @@ +## @file +# Automate the process of building the various reset vector types +# +# Copyright (c) 2009 - 2013, 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. +# + +import glob +import os +import subprocess +import sys + +def RunCommand(commandLine): + #print ' '.join(commandLine) + return subprocess.call(commandLine) + +for filename in glob.glob(os.path.join('Bin', '*.raw')): + os.remove(filename) + +ThisDir = os.path.realpath(os.path.split(sys.argv[0])[0]) +WorkspaceDir = os.path.realpath(os.path.join(ThisDir, '..', '..')) +UefiCpuPkgVtf0Dir = os.path.join(WorkspaceDir, 'UefiCpuPkg', 'ResetVector', 'Vtf0') + +for arch in ('x64',): + for debugType in (None,): + output = os.path.join('Bin', 'ResetVector') + output += '.' + arch + if debugType is not None: + output += '.' + debugType + output += '.raw' + commandLine = ( + 'nasm', + '-D', 'ARCH_%s' % arch.upper(), + '-D', 'DEBUG_%s' % str(debugType).upper(), + '-I', UefiCpuPkgVtf0Dir + os.path.sep, + '-o', output, + 'ResetVectorCode.asm', + ) + ret = RunCommand(commandLine) + print '\tASM\t' + output + if ret != 0: sys.exit(ret) + + commandLine = ( + 'python', + 'Tools/FixupForRawSection.py', + output, + ) + print '\tFIXUP\t' + output + ret = RunCommand(commandLine) + if ret != 0: sys.exit(ret) + |