diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index a2127b4841..d6b0af43d7 100644
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -65,6 +65,14 @@ DEFINE VS2013x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Vc
 DEFINE VS2013x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;DEF(VS2013x86_BIN)
 DEFINE VS2013x86_BINX64 = DEF(VS2013x86_BIN)\x86_amd64
 
+DEFINE VS2015_BIN      = C:\Program Files\Microsoft Visual Studio 14.0\Vc\bin
+DEFINE VS2015_DLL      = C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE;DEF(VS2015_BIN)
+DEFINE VS2015_BINX64   = DEF(VS2015_BIN)\x86_amd64
+
+DEFINE VS2015x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin
+DEFINE VS2015x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE;DEF(VS2015x86_BIN)
+DEFINE VS2015x86_BINX64 = DEF(VS2015x86_BIN)\x86_amd64
+
 DEFINE WINSDK_VERSION   = v6.0A
 DEFINE WINSDK_BIN       = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
 DEFINE WINSDKx86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
@@ -81,6 +89,10 @@ DEFINE WINSDK71x86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\
 DEFINE WINSDK8_BIN       = c:\Program Files\Windows Kits\8.0\bin\x86\
 DEFINE WINSDK8x86_BIN    = c:\Program Files (x86)\Windows Kits\8.0\bin\x64
 
+# Microsoft Visual Studio 2015 Professional Edition
+DEFINE WINSDK81_BIN       = c:\Program Files\Windows Kits\8.1\bin\x86\
+DEFINE WINSDK81x86_BIN    = c:\Program Files (x86)\Windows Kits\8.1\bin\x64
+
 # These defines are needed for certain Microsoft Visual Studio tools that
 # are used by other toolchains.  An example is that ICC on Windows normally
 # uses Microsoft's nmake.exe.
@@ -293,6 +305,15 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler (iasl.exe) from
 #                               https://acpica.org/downloads
+#   VS2015      -win32-  Requires:
+#                             Microsoft Visual Studio 2015 Professional Edition
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+#                        Optional:
+#                             Required to build EBC drivers:
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler (iasl.exe) from
+#                               https://acpica.org/downloads
 #   DDK3790     -win32-  Requires:
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
 #                        Optional:
@@ -452,6 +473,15 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:
 #                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
 #                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
+#   VS2015xASL  -win32-  Requires:
+#                             Microsoft Visual Studio 2015 Professional Edition
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+#                        Optional:
+#                             Required to build EBC drivers:
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
+#                             Required to build platforms or ACPI tables:
+#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
+#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
 #   DDK3790xASL -win32-  Requires:
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
 #                        Optional:
@@ -530,6 +560,13 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:
 #                               Intel(r) ACPI Compiler (iasl.exe) from
 #                               https://acpica.org/downloads
+#   VS2015x86   -win64-  Requires:
+#                             Microsoft Visual Studio 2015 (x86) Professional Edition
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+#                        Optional:
+#                             Required to build platforms or ACPI tables:
+#                               Intel(r) ACPI Compiler (iasl.exe) from
+#                               https://acpica.org/downloads
 #   ICCx86      -win64-  Requires:
 #                             Intel C Compiler V9.1(x86)
 #                        Dependencies:
@@ -591,6 +628,13 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:
 #                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
 #                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
+#  VS2015x86xASL -win64- Requires:
+#                             Microsoft Visual Studio 2015 (x86) Professional
+#                             Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830 
+#                        Optional:
+#                             Required to build platforms or ACPI tables:
+#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
+#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
 #   ICCx86xASL  -win64-  Requires:
 #                             Intel C Compiler V9.1 (x86)
 #                        Dependencies:
@@ -2601,7 +2645,7 @@ NOOPT_VS2010x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 #   VS2012  - Microsoft Visual Studio 2012 Professional Edition with Intel ASL
 #   ASL     - Intel ACPI Source Language Compiler
 ####################################################################################
-#   VS2012           - Microsoft Visual Studio 2012 Premium Edition
+#   VS2012           - Microsoft Visual Studio 2012 Professional Edition
 *_VS2012_*_*_FAMILY               = MSFT
 
 *_VS2012_*_MAKE_PATH              = DEF(VS2012_BIN)\nmake.exe
@@ -2719,7 +2763,7 @@ NOOPT_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 #   VS2012  - Microsoft Visual Studio 2012 Professional Edition with Microsoft ASL
 #   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
 ####################################################################################
-#   VS2012xASL           - Microsoft Visual Studio 2012 Premium Edition
+#   VS2012xASL           - Microsoft Visual Studio 2012 Professional Edition
 *_VS2012xASL_*_*_FAMILY        = MSFT
 
 *_VS2012xASL_*_MAKE_PATH       = DEF(VS2012_BIN)\nmake.exe
@@ -3067,7 +3111,7 @@ NOOPT_VS2012x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 #   VS2013  - Microsoft Visual Studio 2013 Professional Edition with Intel ASL
 #   ASL     - Intel ACPI Source Language Compiler
 ####################################################################################
-#   VS2013           - Microsoft Visual Studio 2013 Premium Edition
+#   VS2013           - Microsoft Visual Studio 2013 Professional Edition
 *_VS2013_*_*_FAMILY               = MSFT
 
 *_VS2013_*_MAKE_PATH              = DEF(VS2013_BIN)\nmake.exe
@@ -3185,7 +3229,7 @@ NOOPT_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 #   VS2013  - Microsoft Visual Studio 2013 Professional Edition with Microsoft ASL
 #   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
 ####################################################################################
-#   VS2013xASL           - Microsoft Visual Studio 2013 Premium Edition
+#   VS2013xASL           - Microsoft Visual Studio 2013 Professional Edition
 *_VS2013xASL_*_*_FAMILY        = MSFT
 
 *_VS2013xASL_*_MAKE_PATH       = DEF(VS2013_BIN)\nmake.exe
@@ -3527,6 +3571,473 @@ NOOPT_VS2013x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2013x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
 
 
+####################################################################################
+#
+# Microsoft Visual Studio 2015
+#
+#   VS2015  - Microsoft Visual Studio 2015 Professional Edition with Intel ASL
+#   ASL     - Intel ACPI Source Language Compiler
+####################################################################################
+#   VS2015           - Microsoft Visual Studio 2015 Professional Edition
+*_VS2015_*_*_FAMILY               = MSFT
+
+*_VS2015_*_MAKE_PATH              = DEF(VS2015_BIN)\nmake.exe
+*_VS2015_*_MAKE_FLAGS             = /nologo
+*_VS2015_*_RC_PATH                = DEF(WINSDK81_BIN)\rc.exe
+
+*_VS2015_*_SLINK_FLAGS            = /NOLOGO /LTCG
+*_VS2015_*_APP_FLAGS              = /nologo /E /TC
+*_VS2015_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
+*_VS2015_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2015_*_ASM16_PATH             = DEF(VS2015_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2015_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2015_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2015_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2015_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
+*_VS2015_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
+*_VS2015_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2015_IA32_*_DLL               = DEF(VS2015_DLL)
+
+*_VS2015_IA32_MAKE_PATH           = DEF(VS2015_BIN)\nmake.exe
+*_VS2015_IA32_CC_PATH             = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_VFRPP_PATH          = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_SLINK_PATH          = DEF(VS2015_BIN)\lib.exe
+*_VS2015_IA32_DLINK_PATH          = DEF(VS2015_BIN)\link.exe
+*_VS2015_IA32_APP_PATH            = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_PP_PATH             = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_ASM_PATH            = DEF(VS2015_BIN)\ml.exe
+*_VS2015_IA32_ASLCC_PATH          = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_ASLPP_PATH          = DEF(VS2015_BIN)\cl.exe
+*_VS2015_IA32_ASLDLINK_PATH       = DEF(VS2015_BIN)\link.exe
+
+      *_VS2015_IA32_MAKE_FLAGS    = /nologo
+  DEBUG_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+  DEBUG_VS2015_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2015_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2015_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+  DEBUG_VS2015_IA32_NASM_FLAGS    = -Ox -f win32 -g
+RELEASE_VS2015_IA32_NASM_FLAGS    = -Ox -f win32
+NOOPT_VS2015_IA32_NASM_FLAGS      = -O0 -f win32 -g
+
+  DEBUG_VS2015_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2015_X64_*_DLL         = DEF(VS2015_DLL)
+
+*_VS2015_X64_CC_PATH       = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_PP_PATH       = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_APP_PATH      = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_VFRPP_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_ASM_PATH      = DEF(VS2015_BINX64)\ml64.exe
+*_VS2015_X64_SLINK_PATH    = DEF(VS2015_BINX64)\lib.exe
+*_VS2015_X64_DLINK_PATH    = DEF(VS2015_BINX64)\link.exe
+*_VS2015_X64_ASLCC_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_ASLPP_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015_X64_ASLDLINK_PATH = DEF(VS2015_BINX64)\link.exe
+
+  DEBUG_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+  DEBUG_VS2015_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2015_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2015_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+  DEBUG_VS2015_X64_NASM_FLAGS   = -Ox -f win64 -g
+RELEASE_VS2015_X64_NASM_FLAGS   = -Ox -f win64
+NOOPT_VS2015_X64_NASM_FLAGS     = -O0 -f win64 -g
+
+  DEBUG_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2015_EBC_*_FAMILY            = INTEL
+*_VS2015_EBC_*_DLL               = DEF(VS2015_DLL)
+
+*_VS2015_EBC_MAKE_PATH           = DEF(VS2015_BIN)\nmake.exe
+*_VS2015_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
+*_VS2015_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
+*_VS2015_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
+*_VS2015_EBC_SLINK_PATH          = DEF(VS2015_BIN)\link.exe
+*_VS2015_EBC_DLINK_PATH          = DEF(VS2015_BIN)\link.exe
+
+*_VS2015_EBC_MAKE_FLAGS          = /nologo
+*_VS2015_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
+*_VS2015_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2015_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2015_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
+*_VS2015_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+
+####################################################################################
+#
+# Microsoft Visual Studio 2015
+#
+#   VS2015  - Microsoft Visual Studio 2015 Professional Edition with Microsoft ASL
+#   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+#   VS2015xASL           - Microsoft Visual Studio 2015 Professional Edition
+*_VS2015xASL_*_*_FAMILY        = MSFT
+
+*_VS2015xASL_*_MAKE_PATH       = DEF(VS2015_BIN)\nmake.exe
+*_VS2015xASL_*_MAKE_FLAG       = /nologo
+*_VS2015xASL_*_RC_PATH         = DEF(WINSDK81_BIN)\rc.exe
+
+*_VS2015xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
+*_VS2015xASL_*_APP_FLAGS       = /nologo /E /TC
+*_VS2015xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
+*_VS2015xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2015xASL_*_ASM16_PATH      = DEF(VS2015_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2015xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
+*_VS2015xASL_*_ASL_FLAGS       =
+*_VS2015xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
+*_VS2015xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
+*_VS2015xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
+*_VS2015xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2015xASL_IA32_*_DLL        = DEF(VS2015_DLL)
+
+*_VS2015xASL_IA32_MAKE_PATH    = DEF(VS2015_BIN)\nmake.exe
+*_VS2015xASL_IA32_CC_PATH      = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_VFRPP_PATH   = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_SLINK_PATH   = DEF(VS2015_BIN)\lib.exe
+*_VS2015xASL_IA32_DLINK_PATH   = DEF(VS2015_BIN)\link.exe
+*_VS2015xASL_IA32_APP_PATH     = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_PP_PATH      = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_ASM_PATH     = DEF(VS2015_BIN)\ml.exe
+*_VS2015xASL_IA32_ASLCC_PATH    = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_ASLPP_PATH    = DEF(VS2015_BIN)\cl.exe
+*_VS2015xASL_IA32_ASLDLINK_PATH = DEF(VS2015_BIN)\link.exe
+
+      *_VS2015xASL_IA32_MAKE_FLAGS  = /nologo
+  DEBUG_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+  DEBUG_VS2015xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2015xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2015xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+  DEBUG_VS2015xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
+RELEASE_VS2015xASL_IA32_NASM_FLAGS  = -Ox -f win32
+NOOPT_VS2015xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
+
+  DEBUG_VS2015xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2015xASL_X64_*_DLL         = DEF(VS2015_DLL)
+
+*_VS2015xASL_X64_CC_PATH       = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_PP_PATH       = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_APP_PATH      = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_VFRPP_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_ASM_PATH      = DEF(VS2015_BINX64)\ml64.exe
+*_VS2015xASL_X64_SLINK_PATH    = DEF(VS2015_BINX64)\lib.exe
+*_VS2015xASL_X64_DLINK_PATH    = DEF(VS2015_BINX64)\link.exe
+*_VS2015xASL_X64_ASLCC_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_ASLPP_PATH    = DEF(VS2015_BINX64)\cl.exe
+*_VS2015xASL_X64_ASLDLINK_PATH = DEF(VS2015_BINX64)\link.exe
+
+  DEBUG_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+  DEBUG_VS2015xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2015xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2015xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+  DEBUG_VS2015xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
+RELEASE_VS2015xASL_X64_NASM_FLAGS   = -Ox -f win64
+NOOPT_VS2015xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
+
+  DEBUG_VS2015xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2015xASL_EBC_*_FAMILY            = INTEL
+*_VS2015xASL_EBC_*_DLL               = DEF(VS2015_DLL)
+
+*_VS2015xASL_EBC_MAKE_PATH           = DEF(VS2015_BIN)\nmake.exe
+*_VS2015xASL_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
+*_VS2015xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
+*_VS2015xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
+*_VS2015xASL_EBC_SLINK_PATH          = DEF(VS2015_BIN)\link.exe
+*_VS2015xASL_EBC_DLINK_PATH          = DEF(VS2015_BIN)\link.exe
+
+*_VS2015xASL_EBC_MAKE_FLAGS          = /nologo
+*_VS2015xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
+*_VS2015xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2015xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2015xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
+*_VS2015xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+
+####################################################################################
+#   VS2015x86       - Microsoft Visual Studio 2015 (x86) professional with Intel ASL
+#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
+####################################################################################
+#   VS2015x86           - Microsoft Visual Studio 2015 (x86) professional Edition with Intel ASL
+*_VS2015x86_*_*_FAMILY        = MSFT
+
+*_VS2015x86_*_MAKE_PATH       = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86_*_MAKE_FLAG       = /nologo
+*_VS2015x86_*_RC_PATH         = DEF(WINSDK81x86_BIN)\rc.exe
+
+*_VS2015x86_*_MAKE_FLAGS      = /nologo
+*_VS2015x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
+*_VS2015x86_*_APP_FLAGS       = /nologo /E /TC
+*_VS2015x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
+*_VS2015x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2015x86_*_ASM16_PATH      = DEF(VS2015x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2015x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
+*_VS2015x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2015x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2015x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
+*_VS2015x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
+*_VS2015x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2015x86_IA32_*_DLL        = DEF(VS2015x86_DLL)
+
+*_VS2015x86_IA32_MAKE_PATH    = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86_IA32_CC_PATH      = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_VFRPP_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_ASLCC_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_ASLPP_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_SLINK_PATH   = DEF(VS2015x86_BIN)\lib.exe
+*_VS2015x86_IA32_DLINK_PATH   = DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86_IA32_ASLDLINK_PATH= DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86_IA32_APP_PATH     = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_PP_PATH      = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86_IA32_ASM_PATH     = DEF(VS2015x86_BIN)\ml.exe
+
+      *_VS2015x86_IA32_MAKE_FLAGS  = /nologo
+  DEBUG_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+  DEBUG_VS2015x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2015x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2015x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+  DEBUG_VS2015x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
+RELEASE_VS2015x86_IA32_NASM_FLAGS  = -Ox -f win32
+NOOPT_VS2015x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
+
+  DEBUG_VS2015x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2015x86_X64_*_DLL         = DEF(VS2015x86_DLL)
+
+*_VS2015x86_X64_CC_PATH       = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_PP_PATH       = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_APP_PATH      = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_VFRPP_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_ASLCC_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_ASLPP_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86_X64_ASM_PATH      = DEF(VS2015x86_BINX64)\ml64.exe
+*_VS2015x86_X64_SLINK_PATH    = DEF(VS2015x86_BINX64)\lib.exe
+*_VS2015x86_X64_DLINK_PATH    = DEF(VS2015x86_BINX64)\link.exe
+*_VS2015x86_X64_ASLDLINK_PATH = DEF(VS2015x86_BINX64)\link.exe
+
+  DEBUG_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+  DEBUG_VS2015x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2015x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2015x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+  DEBUG_VS2015x86_X64_NASM_FLAGS   = -Ox -f win64 -g
+RELEASE_VS2015x86_X64_NASM_FLAGS   = -Ox -f win64
+NOOPT_VS2015x86_X64_NASM_FLAGS     = -O0 -f win64 -g
+
+  DEBUG_VS2015x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2015x86_EBC_*_FAMILY            = INTEL
+*_VS2015x86_EBC_*_DLL               = DEF(VS2015x86_DLL)
+
+*_VS2015x86_EBC_MAKE_PATH           = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86_EBC_SLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86_EBC_DLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
+
+*_VS2015x86_EBC_MAKE_FLAGS          = /nologo
+*_VS2015x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
+*_VS2015x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2015x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2015x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
+*_VS2015x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+
+####################################################################################
+#   VS2015x86xASL     - Microsoft Visual Studio 2015 (x86) professional with Microsoft ASL
+#   ASL  - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+*_VS2015x86xASL_*_*_FAMILY        = MSFT
+
+*_VS2015x86xASL_*_MAKE_PATH       = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86xASL_*_MAKE_FLAG       = /nologo
+*_VS2015x86xASL_*_RC_PATH         = DEF(WINSDK81x86_BIN)\rc.exe
+
+*_VS2015x86xASL_*_MAKE_FLAGS      = /nologo
+*_VS2015x86xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
+*_VS2015x86xASL_*_APP_FLAGS       = /nologo /E /TC
+*_VS2015x86xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
+*_VS2015x86xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2015x86xASL_*_ASM16_PATH      = DEF(VS2015x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2015x86xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
+*_VS2015x86xASL_*_ASL_FLAGS       = DEF(MS_ASL_FLAGS)
+*_VS2015x86xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
+*_VS2015x86xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
+*_VS2015x86xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
+*_VS2015x86xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2015x86xASL_IA32_*_DLL        = DEF(VS2015x86_DLL)
+
+*_VS2015x86xASL_IA32_MAKE_PATH    = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86xASL_IA32_CC_PATH      = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_VFRPP_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_ASLCC_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_ASLPP_PATH   = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_SLINK_PATH   = DEF(VS2015x86_BIN)\lib.exe
+*_VS2015x86xASL_IA32_DLINK_PATH   = DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86xASL_IA32_ASLDLINK_PATH= DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86xASL_IA32_APP_PATH     = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_PP_PATH      = DEF(VS2015x86_BIN)\cl.exe
+*_VS2015x86xASL_IA32_ASM_PATH     = DEF(VS2015x86_BIN)\ml.exe
+
+      *_VS2015x86xASL_IA32_MAKE_FLAGS  = /nologo
+  DEBUG_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015x86xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+  DEBUG_VS2015x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2015x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2015x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+  DEBUG_VS2015x86xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
+RELEASE_VS2015x86xASL_IA32_NASM_FLAGS  = -Ox -f win32
+NOOPT_VS2015x86xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
+
+  DEBUG_VS2015x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2015x86xASL_X64_*_DLL         = DEF(VS2015x86_DLL)
+
+*_VS2015x86xASL_X64_CC_PATH       = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_PP_PATH       = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_APP_PATH      = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_VFRPP_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_ASLCC_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_ASLPP_PATH    = DEF(VS2015x86_BINX64)\cl.exe
+*_VS2015x86xASL_X64_ASM_PATH      = DEF(VS2015x86_BINX64)\ml64.exe
+*_VS2015x86xASL_X64_SLINK_PATH    = DEF(VS2015x86_BINX64)\lib.exe
+*_VS2015x86xASL_X64_DLINK_PATH    = DEF(VS2015x86_BINX64)\link.exe
+*_VS2015x86xASL_X64_ASLDLINK_PATH = DEF(VS2015x86_BINX64)\link.exe
+
+  DEBUG_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2015x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+  DEBUG_VS2015x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2015x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2015x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+  DEBUG_VS2015x86xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
+RELEASE_VS2015x86xASL_X64_NASM_FLAGS   = -Ox -f win64
+NOOPT_VS2015x86xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
+
+  DEBUG_VS2015x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2015x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
+NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2015x86xASL_EBC_*_FAMILY            = INTEL
+*_VS2015x86xASL_EBC_*_DLL               = DEF(VS2015x86_DLL)
+
+*_VS2015x86xASL_EBC_MAKE_PATH           = DEF(VS2015x86_BIN)\nmake.exe
+*_VS2015x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
+*_VS2015x86xASL_EBC_SLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
+*_VS2015x86xASL_EBC_DLINK_PATH          = DEF(VS2015x86_BIN)\link.exe
+
+*_VS2015x86xASL_EBC_MAKE_FLAGS          = /nologo
+*_VS2015x86xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
+*_VS2015x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2015x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2015x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
+*_VS2015x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+
 ####################################################################################
 #
 # Microsoft Device Driver Kit 3790.1830 (IA-32, X64, Itanium, with Link Time Code Generation)
diff --git a/edksetup.bat b/edksetup.bat
index b63c29916b..b69bd26857 100755
--- a/edksetup.bat
+++ b/edksetup.bat
@@ -1,7 +1,7 @@
 @REM @file
 @REM   Windows batch file to setup a WORKSPACE environment
 @REM
-@REM Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
 @REM This program and the accompanying materials
 @REM are licensed and made available under the terms and conditions of the BSD License
 @REM which accompanies this distribution.  The full text of the license may be found at
@@ -63,27 +63,31 @@ if /I not "%1"=="--nt32" goto no_nt32
 @REM and headers to interface with Windows.
 
 if not defined VCINSTALLDIR (
-  if defined VS120COMNTOOLS (
-    call "%VS120COMNTOOLS%\vsvars32.bat"
+  if defined VS140COMNTOOLS (
+    call "%VS140COMNTOOLS%\vsvars32.bat"
   ) else (
-    if defined VS110COMNTOOLS (
-      call "%VS110COMNTOOLS%\vsvars32.bat"
-    ) else (
-      if defined VS100COMNTOOLS (
-        call "%VS100COMNTOOLS%\vsvars32.bat"
+    if defined VS120COMNTOOLS (
+      call "%VS120COMNTOOLS%\vsvars32.bat"
+    ) else (	
+      if defined VS110COMNTOOLS (
+        call "%VS110COMNTOOLS%\vsvars32.bat"
       ) else (
-        if defined VS90COMNTOOLS (
-          call "%VS90COMNTOOLS%\vsvars32.bat"
+        if defined VS100COMNTOOLS (
+          call "%VS100COMNTOOLS%\vsvars32.bat"
         ) else (
-          if defined VS80COMNTOOLS (
-            call "%VS80COMNTOOLS%\vsvars32.bat"
+          if defined VS90COMNTOOLS (
+            call "%VS90COMNTOOLS%\vsvars32.bat"
           ) else (
-            if defined VS71COMNTOOLS (
-              call "%VS71COMNTOOLS%\vsvars32.bat"
+            if defined VS80COMNTOOLS (
+              call "%VS80COMNTOOLS%\vsvars32.bat"
             ) else (
-              echo.
-              echo !!! WARNING !!! Cannot find Visual Studio !!!
-              echo.
+              if defined VS71COMNTOOLS (
+                call "%VS71COMNTOOLS%\vsvars32.bat"
+              ) else (
+                echo.
+                echo !!! WARNING !!! Cannot find Visual Studio !!!
+                echo.
+              )
             )
           )
         )