## @file # Automate the process of building the various reset vector types # # Copyright (c) 2009 - 2013, 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. # 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)