]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools/Conf: Add VS2017/ARM support
authorPete Batard <pete@akeo.ie>
Fri, 12 Jan 2018 13:33:31 +0000 (21:33 +0800)
committerLiming Gao <liming.gao@intel.com>
Wed, 7 Feb 2018 01:49:23 +0000 (09:49 +0800)
We duplicate the Assembly-Code-File section from build_rule.template
because --convert-hex cannot be used with the MSFT ARM assembler.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Pete Batard <pete@akeo.ie>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template

index a5e471eb3c1026a1797f64fe4539863e17d4a194..77ed282e0311cd94b30e758869efd46d3e08712c 100755 (executable)
 \r
     <Command>\r
 \r
-\r
 [Assembly-Code-File.COMMON.COMMON]\r
     <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>\r
         ?.asm, ?.Asm, ?.ASM\r
         # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues\r
         "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii\r
 \r
+[Assembly-Code-File.COMMON.ARM]\r
+    # Remove --convert-hex for ARM as it breaks MSFT assemblers\r
+    <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>\r
+        ?.asm, ?.Asm, ?.ASM\r
+\r
+    <InputFile.GCC, InputFile.GCCLD>\r
+        ?.S, ?.s\r
+\r
+    <ExtraDependency>\r
+        $(MAKE_FILE)\r
+\r
+    <OutputFile>\r
+        $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
+\r
+    <Command.INTEL>\r
+        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i\r
+        Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
+        "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii\r
+\r
+    <Command.MSFT>\r
+        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i\r
+        Trim --source-code --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
+        "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii\r
+\r
+    <Command.GCC, Command.GCCLD, Command.RVCT>\r
+        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i\r
+        Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
+        # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues\r
+        "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii\r
+\r
 [Nasm-Assembly-Code-File.COMMON.COMMON]\r
     <InputFile>\r
         ?.nasm\r
index 99ad271471d96bd65fa3a21faac9560a793ac4e9..427ad60b0e26ddb5612f4db1b49170c05c60d889 100755 (executable)
@@ -79,6 +79,7 @@ DEFINE VS2017_HOST        = x86
 DEFINE VS2017_BIN_HOST    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\DEF(VS2017_HOST)\r
 DEFINE VS2017_BIN_IA32    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x86\r
 DEFINE VS2017_BIN_X64     = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64\r
+DEFINE VS2017_BIN_ARM     = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm\r
 \r
 DEFINE WINSDK_BIN       = ENV(WINSDK_PREFIX)\r
 DEFINE WINSDKx86_BIN    = ENV(WINSDKx86_PREFIX)\r
@@ -335,6 +336,9 @@ DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler (iasl.exe) from\r
 #                               https://acpica.org/downloads\r
+#                        Note:\r
+#                             Building of XIP firmware images for ARM is not currently supported (only applications).\r
+#                             /FILEALIGN:4096 and other changes are needed for ARM firmware builds.\r
 #   DDK3790     -win32-  Requires:\r
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
 #                        Optional:\r
@@ -4169,6 +4173,33 @@ NOOPT_VS2017_X64_NASM_FLAGS     = -O0 -f win64 -g
 RELEASE_VS2017_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\r
 NOOPT_VS2017_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\r
 \r
+#################\r
+# ARM definitions\r
+#################\r
+*_VS2017_ARM_CC_PATH              = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_VFRPP_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_SLINK_PATH           = DEF(VS2017_BIN_ARM)\lib.exe\r
+*_VS2017_ARM_DLINK_PATH           = DEF(VS2017_BIN_ARM)\link.exe\r
+*_VS2017_ARM_APP_PATH             = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_PP_PATH              = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASM_PATH             = DEF(VS2017_BIN_ARM)\armasm.exe\r
+*_VS2017_ARM_ASLCC_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASLPP_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASLDLINK_PATH        = DEF(VS2017_BIN_ARM)\link.exe\r
+\r
+      *_VS2017_ARM_MAKE_FLAGS     = /nologo\r
+  DEBUG_VS2017_ARM_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi-\r
+RELEASE_VS2017_ARM_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi-\r
+NOOPT_VS2017_ARM_CC_FLAGS         = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-\r
+\r
+  DEBUG_VS2017_ARM_ASM_FLAGS      = /nologo /g\r
+RELEASE_VS2017_ARM_ASM_FLAGS      = /nologo\r
+NOOPT_VS2017_ARM_ASM_FLAGS        = /nologo\r
+\r
+  DEBUG_VS2017_ARM_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2017_ARM_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data\r
+NOOPT_VS2017_ARM_DLINK_FLAGS      = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
 ##################\r
 # EBC definitions\r
 ##################\r