X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FConf%2Fbuild_rule.template;h=2cd5debe8ee1b9e9feda06b6b6e859ada6b0f2dc;hp=1faf846e385c3849fc5ed7d2a75a44c86d10dd6c;hb=52de52ae1043c415d584486eb831d0cbcb44f9dd;hpb=3f94b8e89a145bdecde2adc473f16748a1611998 diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 1faf846e38..2cd5debe8e 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -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", @@ -38,6 +44,7 @@ FileTypeMapping = { ".asl" : "Acpi-Source-Language", ".Asl" : "Acpi-Source-Language", ".ASL" : "Acpi-Source-Language", + ".aslc" : "Acpi-Table-Source", ".obj" : "Object", ".o" : "Object", ".lib" : "Static-Library", @@ -46,21 +53,42 @@ FileTypeMapping = { ".so" : "Dynamic-Library", } -DefaultToolCode = ["CC", "ASM", "SLINK", "DLINK", "PCH", "PP", "ASL", "VFRC", "AUTOGEN"] +ObjectFileMapping = { + "C-Code" : ".obj", +# "C-Header" : ".gch", + "Masm-Code" : ".obj", + "Iasm-Code" : ".obj", # IPF assembly code + "Gasm-Code" : ".obj", # GNU assembly code + "Visual-Form-Representation" : ".obj", + "Preprocessed-Code" : ".obj", + "Object" : ".dll", + "Static-Library" : ".dll", + "Dynamic-Library" : ".efi", + "Dependency-Expression" : ".depex", + "Acpi-Source-Language" : ".aml", + "Acpi-Table-Source" : ".acpi", + "Masm16-Code" : ".com", + "MicorCode-Text" : ".bin", +} + +DefaultToolCode = ["CC", "ASM", "SLINK", "DLINK", "PCH", "PP", "ASL", "ASMLINK"] ToolCodeMapping = { - "C-Code" : "CC", - "C-Header" : "PCH", - "Masm-Code" : "ASM", - "Iasm-Code" : "ASM", # IPF assembly code - "Gasm-Code" : "ASM", # GNU assembly code - "Unicode-Text" : "AUTOGEN", - "Visual-Form-Representation" : "VFRC", - "Preprocessed-Code" : "CC", - "Acpi-Source-Language" : "ASL", - "Object" : "SLINK", - "Static-Library" : "DLINK", - "Dependency-Expression" : "PP", + "C-Code" : ["CC"], +# "C-Header" : ["PCH"], + "Masm-Code" : ["PP", "ASM"], + "Iasm-Code" : ["PP", "ASM"], # IPF 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"], + "Masm16-Code" : ["ASM", "ASMLINK"], + "MicorCode-Text" : ["CC"], } ToolChainFamilyMapping = { @@ -78,76 +106,176 @@ 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 +# ${_sep_} Directory separator +# ${_of_} Output flag +# ${_if_} Include flag # Makefile = { -"nmake" : { +# MSFT tool chain family +"MSFT" : { "C-Code" : '''\ -$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS) -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep} -${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(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"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} ''', "Masm-Code" : '''\ -$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS) -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep} -${END} "$(PP)" $(PP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i - Trim -CONVERT $(@D)${sep}${fbase}.i - "$(ASM)" $(ASM_FLAGS) /Fo$@ $(@D)${sep}${fbase}.iii +$(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 -s -c $(@D)${_sep_}${fbase}.i +\t"$(ASM)" /Fo$@ $(ASM_FLAGS) $(INC) $(@D)${_sep_}${fbase}.iii ''', "Iasm-Code" : '''\ -$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS) -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep} -${END} "$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i - "$(ASM)" $(ASM_FLAGS) -o$@ $(@D)${sep}${fbase}.i +$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS) +${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep} +${END}\t"$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i +\t"$(ASM)" -o $@ $(ASM_FLAGS) $(@D)${_sep_}${fbase}.i ''', "Visual-Form-Representation" : '''\ -$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(COMMON_DEPS) -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${fdep} -${END}\t"$(VFRPP)" $(VFRPP_FLAGS) $(INC) $(WORKSPACE)${sep}${fpath} > $(@D)${sep}${fbase}.i -\tTrim -VFR $(@D)${sep}${fbase}.i -\t"$(VFRC)" $(VFRC_FLAGS) -od $(DEBUG_DIR)${sep}${fdir} $(@D)${sep}${fbase}.iii -\t"$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(DEBUG_DIR)${sep}${fdir}${sep}${fbase}.c +$(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 -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 +''', + +"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} ''', }, -"gmake" : { +# +# INTEL tool chain family +# +"INTEL" : { +"C-Code" : '''\ +$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS) +${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep} +${END}\t"$(CC)" /Fo$@ $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} +''', + +"Masm-Code" : '''\ +$(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 -s -c $(@D)${_sep_}${fbase}.i +\t"$(ASM)" /Fo$@ $(ASM_FLAGS) $(INC) $(@D)${_sep_}${fbase}.iii +''', + +"Iasm-Code" : '''\ +$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS) +${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep} +${END}\t"$(APP)" $(APP_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} > $(@D)${_sep_}${fbase}.i +\t"$(ASM)" -o $@ $(ASM_FLAGS) $(@D)${_sep_}${fbase}.i +''', + +"Visual-Form-Representation" : '''\ +$(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 -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 +''', +}, + +# +# GCC tool chain family +# +"GCC" : { + "C-Code" : -'''$(OUTPUT_DIR)/%(fdir)s/%(fbase)s.obj : $(MODULE_DIR)/%(fdir)s/%(fname)s $(DEP_FILES) -\t"$(CC)" $(CC_FLAGS) $(INC) $(CC_OUTPUT)$@ $<''', - -"Masm-Code" : -'''$(OUTPUT_DIR)/%(fdir)s/%(fbase)s.obj : $(MODULE_DIR)/%(fdir)s/%(fname)s $(DEP_FILES) -\t"$(PP)" $(PP_FLAGS) $(INC) $? $(PP_OUTPUT)$(@D)/%(fbase)s.i -\tTrim -CONVERT $(@D)/%(fbase)s.i -\t"$(ASM)" $(ASM_FLAGS) $(ASM_OUTPUT)$@ $(@D)/%(fbase)s.iii''', - -"Gasm-Code" : -'''$(OUTPUT_DIR)/%(fdir)s/%(fbase)s.obj : $(MODULE_DIR)/%(fdir)s/%(fname)s $(DEP_FILES) -\t"$(ASM)" $(ASM_FLAGS) $(INC) $(ASM_OUTPUT)$@ $<''', +''' +$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS) +${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep} +${END}\t"$(CC)" -o $@ $(CC_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} +''', -"Iasm-Code" : -'''$(OUTPUT_DIR)/%(fdir)s/%(fbase)s.obj : $(MODULE_DIR)/%(fdir)s/%(fname)s $(DEP_FILES) -\t"$(APP)" $(APP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)/%(fbase)s.i -\t"$(ASM)" $(ASM_FLAGS) $(ASM_OUTPUT)$@ $(@D)/%(fbase)s.i''', +"Gasm-Code" : +''' +$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(COMMON_DEPS) +${BEGIN}$(OUTPUT_DIR)${_sep_}${fdir}${_sep_}${fbase}.obj : $(WORKSPACE)${_sep_}${fdep} +${END}\t"$(ASM)" -o $@ $(ASM_FLAGS) $(INC) $(WORKSPACE)${_sep_}${fpath} +''', "Visual-Form-Representation" : -'''$(OUTPUT_DIR)/%(fdir)s/%(fbase)s.obj : $(MODULE_DIR)/%(fdir)s/%(fname)s $(DEP_FILES) -\t"$(PP)" $(PP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)/%(fbase)s.i -\t"$(VFRC)" $(VFRC_FLAGS) $(INC) $(VFRC_OUTPUT)$(DEBUG_DIR)/%(fdir)s/%(fbase)s.c $(@D)/%(fbase)s.i -\t"$(CC)" $(CC_FLAGS) $(INC) $(CC_OUTPUT)$@ $(DEBUG_DIR)/%(fdir)s/%(fbase)s.c''', +''' +$(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 -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 +''', } }