]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Conf/build_rule.template
Update MicroCode build rules
[mirror_edk2.git] / BaseTools / Conf / build_rule.template
index 2cabd4fd39cfc07908cb012dd4ab4f77e2738a8e..2cd5debe8ee1b9e9feda06b6b6e859ada6b0f2dc 100644 (file)
@@ -7,9 +7,13 @@ FileTypeMapping = {
     ".CPP"  :   "C-Code",
     ".h"    :   "C-Header",
     ".H"    :   "C-Header",
+    ".inc"  :   "Masm-Header",
     ".asm"  :   "Masm-Code",
     ".Asm"  :   "Masm-Code",
     ".ASM"  :   "Masm-Code",
+    ".asm16"  :   "Masm16-Code",  #RealAsm16 Link Code
+    ".Asm16"  :   "Masm16-Code",
+    ".ASM16"  :   "Masm16-Code",
     ".s"    :   "Iasm-Code",    # IPF assembly code
     ".S"    :   "Gasm-Code",    # GNU assembly code
     ".uni"  :   "Unicode-Text",
@@ -21,6 +25,8 @@ FileTypeMapping = {
     ".dxs"  :   "Dependency-Expression",
     ".Dxs"  :   "Dependency-Expression",
     ".DXS"  :   "Dependency-Expression",
+    ".TXT"  :   "MicorCode-Text",
+    ".txt"  :   "MicorCode-Text",
     ".fv"   :   "FirmwareVolume",
     ".Fv"   :   "FirmwareVolume",
     ".FV"   :   "FirmwareVolume",
@@ -57,28 +63,32 @@ ObjectFileMapping = {
     "Preprocessed-Code"             :   ".obj",
     "Object"                        :   ".dll",
     "Static-Library"                :   ".dll",
-               "Dynamic-Library"               :   ".efi",
+    "Dynamic-Library"               :   ".efi",
     "Dependency-Expression"         :   ".depex",
-               "Acpi-Source-Language"          :   ".aml",
-               "Acpi-Table-Source"             :   ".acpi",
+    "Acpi-Source-Language"          :   ".aml",
+    "Acpi-Table-Source"             :   ".acpi",
+    "Masm16-Code"                   :   ".com",
+    "MicorCode-Text"                :   ".bin",
 }
 
-DefaultToolCode = ["CC", "ASM", "SLINK", "DLINK", "PCH", "PP", "ASL"]
+DefaultToolCode = ["CC", "ASM", "SLINK", "DLINK", "PCH", "PP", "ASL", "ASMLINK"]
 
 ToolCodeMapping = {
     "C-Code"                        :   ["CC"],
 #    "C-Header"                      :   ["PCH"],
     "Masm-Code"                     :   ["PP", "ASM"],
     "Iasm-Code"                     :   ["PP", "ASM"],      # IPF assembly code
-    "Gasm-Code"                     :   ["ASM"],               # GNU assembly code
+    "Gasm-Code"                     :   ["ASM"],            # GNU assembly code
     "Visual-Form-Representation"    :   ["PP", "CC"],
     "Preprocessed-Code"             :   ["CC"],
     "Acpi-Source-Language"          :   ["ASL"],
     "Object"                        :   ["SLINK"],
     "Static-Library"                :   ["DLINK"],
     "Dependency-Expression"         :   ["PP"],
-               "Acpi-Source-Language"          :   ["PP", "ASL"],
-               "Acpi-Table-Source"             :   ["CC", "DLINK"],
+    "Acpi-Source-Language"          :   ["PP", "ASL"],
+    "Acpi-Table-Source"             :   ["CC", "DLINK"],
+    "Masm16-Code"                   :   ["ASM", "ASMLINK"],
+    "MicorCode-Text"                :   ["CC"],
 }
 
 ToolChainFamilyMapping = {
@@ -96,14 +106,17 @@ ToolChainFamilyMapping = {
     "Bmp-Image"                     :   ["MSFT", "INTEL", "GCC"],
     "Preprocessed-Code"             :   ["MSFT", "INTEL"],
     "Acpi-Source-Language"          :   ["MSFT", "INTEL"],
+    "Acpi-Table-Source"             :   ["MSFT", "INTEL"],
+    "Masm16-Code"                   :   ["MSFT"],
+    "MicorCode-Text"                :   ["MSFT", "INTEL"], 
 }
 
 ## Build rules for makefile
 # Placeholders for string substitution
 #   ${fpath}  File path relative to $(WORKSPACE)
-#   ${fdir}    File relative directory within a module
-#   ${fname}   File full name without path
-#   ${fbase}   File name without extension and path
+#   ${fdir}    File relative directory within a module
+#   ${fname}  File full name without path
+#   ${fbase}  File name without extension and path
 #   ${fext}   File extension
 #   ${fdep}   File dependencies
 #   ${_sep_}    Directory separator
@@ -112,7 +125,7 @@ ToolChainFamilyMapping = {
 #
 Makefile = {
 # MSFT tool chain family
-"MSFT" : {
+"MSFT"  : {
 "C-Code"    : '''\
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
@@ -123,7 +136,7 @@ ${END}\t"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath}
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(PP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
-\tTrim -CONVERT $(@D)${_sep_}${fbase}.i
+\tTrim -s -c $(@D)${_sep_}${fbase}.i
 \t"$(ASM)" /Fo$@ $(ASM_FLAGS) $(INC) $(@D)${_sep_}${fbase}.iii
 ''',
 
@@ -138,7 +151,7 @@ ${END}\t"$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
-\tTrim -VFR $(@D)${_sep_}${fbase}.i
+\tTrim -v $(@D)${_sep_}${fbase}.i
 \t-mkdir $(DEBUG_DIR)${_sep_}${fdir} > NUL 2>&1
 \tVfrCompile -od $(DEBUG_DIR)${_sep_}${fdir} $(@D)${_sep_}${fbase}.iii
 \t"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(DEBUG_DIR)${_sep_}${fdir}${_sep_}${fbase}.c
@@ -149,7 +162,8 @@ ${END}\t"$(PP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
-\t"$(ASL)" /nologo /Fo$@ $(@D)${_sep_}${fbase}.i
+\t"$(ASL)" -p $@ $(@D)${_sep_}${fbase}.i
+\t-copy $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml $(OUTPUT_DIR)${_sep_}${fbase}.aml /Y
 ''',
 
 "Acpi-Table-Source" :
@@ -157,15 +171,31 @@ ${END}\t"$(PP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(CC)" /Fo$(@D)${_sep_}${fbase}.obj $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath}
-\t"$(DLINK)" /out:$(@D)${_sep_}${fbase}.dll $(DLINK_FLAGS) $(DLINK_SPATH) $(LIBS)
+\t"$(DLINK)" $(@D)${_sep_}${fbase}.obj /out:$(@D)${_sep_}${fbase}.dll $(DLINK_FLAGS) $(DLINK_SPATH) $(LIBS)
 \tGenFw -o $@ -c $(@D)${_sep_}${fbase}.dll
+\t-copy $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi $(OUTPUT_DIR)${_sep_}${fbase}.acpi /Y
+''',
+
+"Masm16-Code" : '''\
+$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.com : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.com : $(WORKSPACE)${_sep_}${fdep}
+${END}\tpushd .
+\tcd $(OUTPUT_DIR)${_sep_}${fdir}
+\t"$(ASM)" /nologo /omf $(WORKSPACE)${_sep_}${fpath} /Bl"$(ASMLINK)" $(ASMLINK_FLAGS)
+\t-copy ${fbase}.com $(OUTPUT_DIR)${_sep_}${fbase}.com /Y & popd
+''',
+
+"MicorCode-Text" : '''\
+$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.bin : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.bin : $(WORKSPACE)${_sep_}${fdep}
+${END}\tGenFw -o $@ -m $(WORKSPACE)${_sep_}${fpath}
 ''',
 },
 
 #
 # INTEL tool chain family
 #
-"INTEL"        : {
+"INTEL"  : {
 "C-Code"    : '''\
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
@@ -176,7 +206,7 @@ ${END}\t"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath}
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(PP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
-\tTrim -CONVERT $(@D)${_sep_}${fbase}.i
+\tTrim -s -c $(@D)${_sep_}${fbase}.i
 \t"$(ASM)" /Fo$@ $(ASM_FLAGS) $(INC) $(@D)${_sep_}${fbase}.iii
 ''',
 
@@ -191,11 +221,30 @@ ${END}\t"$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
-\tTrim -VFR $(@D)${_sep_}${fbase}.i
+\tTrim -v $(@D)${_sep_}${fbase}.i
 \t-mkdir $(DEBUG_DIR)${_sep_}${fdir} > NUL 2>&1
 \tVfrCompile -od $(DEBUG_DIR)${_sep_}${fdir} $(@D)${_sep_}${fbase}.iii
 \t"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(DEBUG_DIR)${_sep_}${fdir}${_sep_}${fbase}.c
 ''',
+
+"Acpi-Source-Language" :
+'''
+$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml : $(WORKSPACE)${_sep_}${fdep}
+${END}\t"$(PP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i
+\t"$(ASL)" -p $@ $(@D)${_sep_}${fbase}.i
+\t-copy $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.aml $(OUTPUT_DIR)${_sep_}${fbase}.aml /Y
+''',
+
+"Acpi-Table-Source" :
+'''
+$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi : $(COMMON_DEPS)
+${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi : $(WORKSPACE)${_sep_}${fdep}
+${END}\t"$(CC)" /Fo$(@D)${_sep_}${fbase}.obj $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath}
+\t"$(DLINK)" $(@D)${_sep_}${fbase}.obj /out:$(@D)${_sep_}${fbase}.dll $(DLINK_FLAGS) $(DLINK_SPATH) $(LIBS)
+\tGenFw -o $@ -c $(@D)${_sep_}${fbase}.dll
+\t-copy $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.acpi $(OUTPUT_DIR)${_sep_}${fbase}.acpi /Y
+''',
 },
 
 #
@@ -222,7 +271,7 @@ ${END}\t"$(ASM)" -o $@ $(ASM_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath}
 $(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS)
 ${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep}
 ${END}\t"$(PP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} -o $(@D)${_sep_}${fbase}.i
-\tTrim -VFR $(@D)${_sep_}${fbase}.i
+\tTrim -v $(@D)${_sep_}${fbase}.i
 \t-mkdir $(DEBUG_DIR)${_sep_}${fdir} > NUL 2>&1
 \tVfrCompile -od $(DEBUG_DIR)${_sep_}${fdir} $(@D)${_sep_}${fbase}.iii
 \t"$(CC)" -o $@ $(CC_FLAGS) $(INC) $(DEBUG_DIR)${_sep_}${fdir}${_sep_}${fbase}.c