#/*++
#   
#  Copyright (c) 2004 - 2007, 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.             
#  
#  Module Name:
#
#    LocalTools.env
#   
#  Abstract:
#   
#    This file is included by CommonTools.env, which is included by 
#    makefiles when building.
#   
#    It can be customized to identify the locations of the tools 
#    necessary to build the EFI source code for different systems. 
#   
#--*/

# 
# Customize to define the base path to MASM for IA32
#
!IFNDEF MASMPATH
MASMPATH   = c:\masm611
!ENDIF

# 
# Customize to define the base path to iASL
#
!IFNDEF ASLPATH
ASLPATH   = c:\Asl
!ENDIF

#
# Customize to define the base path to the tools for IPF
#
!IFNDEF EFI_IA64TOOLPATH
!IF "$(USE_NEWDDK)" == "YES"
EFI_IA64TOOLPATH  = C:\WINDDK\3790.1830\bin\win64\x86
!ELSE
EFI_IA64TOOLPATH  = C:\DDK3790
!ENDIF
!ENDIF

!IFNDEF EFI_IA64ASMPATH
!IF "$(USE_NEWDDK)" == "YES"
EFI_IA64ASMPATH   = C:\WINDDK\3790.1830\bin\win64\x86
!ELSE
EFI_IA64ASMPATH   = C:\DDK3790
!ENDIF
!ENDIF

# 
# Customize to define the base path to the EBC tools
#
!IFNDEF EBC_TOOLS_PATH
EBC_TOOLS_PATH  = c:\progra~1\intel\ebc
!ENDIF

#
# Customize to define the base path to WINDDK for X64
#
!IFNDEF WIN_DDK_PATH
WIN_DDK_X64_PATH = C:\WINDDK\3790.1830\bin\win64\x86\amd64
!ELSE
WIN_DDK_X64_PATH = $(WIN_DDK_PATH)\bin\win64\x86\amd64
!ENDIF

#
# Customize to define the base path to VC8 for X64
#
!IF "$(USE_VC8_X64)" == "YES"
!IFNDEF VCINSTALLDIR
VC8_X64_PATH = c:\Program Files\Microsoft Visual Studio 8\VC\bin\x86_amd64
!ELSE
VC8_X64_PATH = $(VCINSTALLDIR)\bin\x86_amd64
!ENDIF
!ENDIF

#
# Customize to define the base path to VC8 for IPF
#
!IF "$(USE_VC8_IPF)" == "YES"
!IFNDEF VCINSTALLDIR
VC8_IPF_PATH = c:\Program Files\Microsoft Visual Studio 8\VC\bin\x86_ia64
!ELSE
VC8_IPF_PATH = $(VCINSTALLDIR)\bin\x86_ia64
!ENDIF
!ENDIF
