X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FConf%2Fbuild_rule.template;h=f1edf3a2f4adac9fd2672259b5fc9c84e1481550;hp=db459d988ba9097dbac3b3afa481c5d02911f1c7;hb=285a175441e661cc9d68c939ab0799ba6803ba51;hpb=8fc4fc3a0e3d10c2093bcdef89cc408980c44f22 diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index db459d988b..f1edf3a2f4 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -1,165 +1,596 @@ -# file extention : file type -FileTypeMapping = { - ".c" : "C-Code", - ".C" : "C-Code", - ".cpp" : "C-Code", - ".Cpp" : "C-Code", - ".CPP" : "C-Code", - ".h" : "C-Header", - ".H" : "C-Header", - ".asm" : "Masm-Code", - ".Asm" : "Masm-Code", - ".ASM" : "Masm-Code", - ".s" : "Iasm-Code", # IPF assembly code - ".S" : "Gasm-Code", # GNU assembly code - ".uni" : "Unicode-Text", - ".Uni" : "Unicode-Text", - ".UNI" : "Unicode-Text", - ".vfr" : "Visual-Form-Representation", - ".Vfr" : "Visual-Form-Representation", - ".VFR" : "Visual-Form-Representation", - ".dxs" : "Dependency-Expression", - ".Dxs" : "Dependency-Expression", - ".DXS" : "Dependency-Expression", - ".fv" : "FirmwareVolume", - ".Fv" : "FirmwareVolume", - ".FV" : "FirmwareVolume", - ".efi" : "Efi-Image", - ".Efi" : "Efi-Image", - ".EFI" : "Efi-Image", - ".SEC" : "Firmware-File-System", - ".PEI" : "Firmware-File-System", - ".DXE" : "Firmware-File-System", - ".APP" : "Firmware-File-System", - ".FYI" : "Firmware-File-System", - ".FFS" : "Firmware-File-System", - ".bmp" : "Bmp-Image", - ".i" : "Preprocessed-Code", - ".asl" : "Acpi-Source-Language", - ".Asl" : "Acpi-Source-Language", - ".ASL" : "Acpi-Source-Language", - ".obj" : "Object", - ".o" : "Object", - ".lib" : "Static-Library", - ".a" : "Static-Library", - ".dll" : "Dynamic-Library", - ".so" : "Dynamic-Library", -} - -DefaultToolCode = ["CC", "ASM", "SLINK", "DLINK", "PCH", "PP", "ASL", "VFRC", "AUTOGEN"] - -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", -} - -ToolChainFamilyMapping = { - "C-Code" : ["MSFT", "INTEL", "GCC"], - "C-Header" : ["MSFT", "INTEL", "GCC"], - "Masm-Code" : ["MSFT", "INTEL"], - "Iasm-Code" : ["MSFT", "INTEL"], # IPF assembly code - "Gasm-Code" : ["GCC"], # GNU assembly code - "Unicode-Text" : ["MSFT", "INTEL", "GCC"], - "Visual-Form-Representation" : ["MSFT", "INTEL", "GCC"], - "Dependency-Expression" : ["MSFT", "INTEL", "GCC"], - "FirmwareVolume" : ["MSFT", "INTEL", "GCC"], - "Efi-Image" : ["MSFT", "INTEL", "GCC"], - "Firmware-File-System" : ["MSFT", "INTEL", "GCC"], - "Bmp-Image" : ["MSFT", "INTEL", "GCC"], - "Preprocessed-Code" : ["MSFT", "INTEL"], - "Acpi-Source-Language" : ["MSFT", "INTEL"], -} - -## Build rules for makefile -# Placeholders for string substitution -# ${fdir} File relative directory within a module -# ${fname} File full name without path -# ${fbase} File name without extension and path -# ${fext} File extension -# ${dep} Dependency file -# ${sep} Directory separator -# -Makefile = { -"nmake" : { -"C-Code" : '''\ -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${dep} -${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(MODULE_DIR)${sep}${fdir}${sep}${fname} -''', - -"AutoGen-Code" : '''\ -${BEGIN}$(OUTPUT_DIR)${sep}${fbase}.obj : $(WORKSPACE)${sep}${dep} -${END} "$(CC)" $(CC_FLAGS) $(INC) /Fo$@ $(DEBUG_DIR)${sep}${fname} -''', - -"Masm-Code" : '''\ -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${dep} -${END} "$(PP)" $(PP_FLAGS) $(INC) $(MODULE_DIR)${sep}${fdir}${sep}${fname} > $(@D)${sep}${fbase}.i - Trim -CONVERT $(@D)${sep}${fbase}.i - "$(ASM)" $(ASM_FLAGS) /Fo$@ $(@D)${sep}${fbase}.iii -''', - -"Iasm-Code" : '''\ -${BEGIN}$(OUTPUT_DIR)${sep}${fdir}${sep}${fbase}.obj : $(WORKSPACE)${sep}${dep} -${END} "$(APP)" $(APP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)${sep}${fbase}.i - "$(ASM)" $(ASM_FLAGS) $(ASM_OUTPUT)$@ $(@D)${sep}${fbase}.i -''', - -"Visual-Form-Representation" : -'$(OUTPUT_DIR)\\%(fdir)s\\%(fbase)s.obj : $(MODULE_DIR)\\%(fdir)s\\%(fname)s $(DEP_FILES)\n'\ - '\t"$(PP)" $(PP_FLAGS) $(INC) $< $(PP_OUTPUT)$(@D)\\%(fbase)s.i\n'\ - '\t"$(VFRC)" $(VFRC_FLAGS) $(INC) $(VFRC_OUTPUT)$(DEBUG_DIR)\\%(fdir)s\\%(fbase)s.c $(@D)\\%(fbase)s.i\n'\ - '\t"$(CC)" $(CC_FLAGS) $(INC) $(CC_OUTPUT)$@ $(DEBUG_DIR)\\%(fdir)s\\%(fbase)s.c\n', -}, - -"gmake" : { -"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)$@ $<''', - -"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''', - -"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''', -} -} - -# This acts like the main() function for the script, unless it is 'import'ed into another -# script. -if __name__ == '__main__': - for ext in FileTypeMapping: - print ext,":",FileTypeMapping[ext] - - for type in Makefile["nmake"]: - print "[",type,"]\n",Makefile["nmake"][type] - print - - for type in Makefile["gmake"]: - print "[",type,"]\n",Makefile["gmake"][type] - print - +# +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
+# Portions copyright (c) 2008 - 2010, Apple Inc. 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. +# + +## Syntax +# +# "*" is used to indicate that the source files will be processed at the same time. +# "?" is used to indicate that the source files will be processed one by one. +# +# "[" [.][.][, [.][.]] "]" +# ]> +# (?|*). [(\n|,) (?|*).] +# +# ]> +# +# +# +# +# +# ]> +# +# [] +# +# is the MODULE_TYPE in EDK2 or COMPONENT_TYPE in EDK. +# Missing will cause an exception and break build. +# Missing will cause that related build target won't be generated but +# won't break build. +# + +## Placeholders for string substitution +# +# ${src} Source file(s) to be built (full path) +# ${s_path} Source file directory (absolute path) +# ${s_dir} Source file relative directory within a module +# (Note: ${s_dir} is always equals to "." if source file is given in absolute path.) +# ${s_name} Source file name without path +# ${s_base} Source file name without extension and path +# ${s_ext} Source file extension +# +# ${dst} Destination file(s) built from ${src} (full path) +# ${d_path} Destination file directory (absolute path) +# ${d_name} Destination file name without path +# ${d_base} Destination file name without extension and path +# ${d_ext} Destination file extension +# +# (+) Directory separator +# + +## Macro +# $(WORKSPACE) Workspace directory +# $(OUTPUT_DIR) Directory for intermediate files for building a module +# $(DEBUG_DIR) Directory for files used to debug a module +# $(BUILD_DIR) All files for building a platform will be put in this directory +# $(BIN_DIR) Common directory for executable files +# $(FV_DIR) Directory to store flash image files +# $(INC) Search path of current module +# $(INC_LIST) A file containing search pathes of current module +# $(LIBS) Static library files of current module +# $(_FLAGS) Tools flags of current module +# $(MODULE_NAME) Current module name +# $(MODULE_TYPE) Current module type +# $(MODULE_GUID) Current module guid +# $(ARCH) Architecture of current module +# $(TOOLCHAIN) Toolchain used to build current module +# $(TARGET) Target of current module (DEBUG/RELEASE) +# $() Path of tool +# $(EDK_TOOLS_PATH) Path of build tools +# $() File list of each file type +# (Note: The macro name is derived from file type name. For example, +# C-Code-File will have C_CODE_FILES macro.) +# $() Macro point to a file containing list of files of a file type +# ( +# Note: The macro and file name are derived from file type name. +# For example, C-Code-File will have C_CODE_FILES_LIST macro pointing +# to $(OUTPUT_DIR)/c_code_files.lst. The list file and macro name +# will be generated only when this macro is used in command line. +# This is intended to get over the long command line limitation. +# ) +# +# $(CP) copy command +# $(MV) move command +# $(RM) delete command +# $(MD) create dir command +# $(RD) remove dir command +# + +## Reserved File-Type +# +# Don't change following names of file types and their associated files, +# which are also used in tools' code +# +# C-Code-File +# C-Header-File +# Dynamic-Library-File +# Static-Library-File +# Visual-Form-Representation-File +# Unicode-Text-File +# + +## Build Rule Version Number +# build_rule_version=0.1 +# + +[C-Code-File] + + ?.c + ?.C + ?.cc + ?.CC + ?.cpp + ?.Cpp + ?.CPP + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} + + + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} + + + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} + +[C-Code-File.COMMON.IPF] + + ?.c + ?.C + ?.cc + ?.CC + ?.cpp + ?.Cpp + ?.CPP + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} + + + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} + "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} + +[C-Header-File] + + *.h, *.H + + + + + + +[Assembly-Code-File.COMMON.COMMON] + + ?.asm, ?.Asm, ?.ASM + + + ?.S, ?.s + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues + "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii + +[Nasm-Assembly-Code-File.COMMON.COMMON] + + ?.nasm, ?.Nasm, ?.NASM + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + "$(NASM)" -I${s_path}(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii + +[Assembly-Code-File.COMMON.IPF] + + ?.s + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues + "$(ASM)" $(ASM_FLAGS) -o ${dst} ${d_path}(+)${s_base}.iii + +[Visual-Form-Representation-File] + + ?.vfr + ?.Vfr + ?.VFR + + + $(MAKE_FILE) + + + $(DEBUG_DIR)(+)${s_dir}(+)${s_base}.c + + + "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_base}.i + "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_base}.i + +[Object-File] + + *.obj + *.o + + + $(OUTPUT_DIR)(+)$(MODULE_NAME).lib + + + "$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST) + + + "$(SLINK)" -cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST) + + + "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST) + + + # $(OBJECT_FILES_LIST) has wrong paths for cygwin + "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES) + + + "$(SLINK)" $(SLINK_FLAGS) ${dst} -filelist $(OBJECT_FILES_LIST) + +[Static-Library-File] + + *.lib + + + $(MAKE_FILE) + + + $(DEBUG_DIR)(+)$(MODULE_NAME).dll + + + "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) + + + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) + "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} + + + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS) + + + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) + + + #$(STATIC_LIBRARY_FILES_LIST) has wrong paths for cygwin + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS) + + + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) + + +[Static-Library-File.USER_DEFINED] + + *.lib + + + $(MAKE_FILE) + + + $(DEBUG_DIR)(+)$(MODULE_NAME) + + + "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) + + + "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) + + + "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS) + + + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) + + + #$(STATIC_LIBRARY_FILES_LIST) has the wrong paths for cygwin + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS) + + + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) + + +[Dynamic-Library-File] + + ?.dll + + + $(DEBUG_DIR)(+)$(MODULE_NAME).efi + + + "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS) + $(CP) ${dst} $(OUTPUT_DIR) + $(CP) ${dst} $(BIN_DIR) + -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) + -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) + + $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug + $(OBJCOPY) --strip-unneeded -R .eh_frame ${src} + + # + #The below 2 lines are only needed for UNIXGCC tool chain, which genereates PE image directly + # + -$(OBJCOPY) $(OBJCOPY_ADDDEBUGFLAG) ${src} + -$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR) + + "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS) + $(CP) ${dst} $(OUTPUT_DIR) + $(CP) ${dst} $(BIN_DIR) + -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) + + + # tool to convert Mach-O to PE/COFF + "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff + # create symbol file for GDB debug + -$(DSYMUTIL) ${src} + "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff $(GENFW_FLAGS) + $(CP) ${dst} $(OUTPUT_DIR) + $(CP) ${dst} $(BIN_DIR) + -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) + +[Dependency-Expression-File] + + ?.dxs, ?.Dxs, ?.DXS + + + $(OUTPUT_DIR)(+)$(MODULE_NAME).depex + + + $(MAKE_FILE) + + + "$(PP)" $(APP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i + Trim --source-code -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i + GenDepex -t $(MODULE_TYPE) -o ${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + +[Acpi-Source-Language-File] + + ?.asl, ?.Asl, ?.ASL + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml + + + $(MAKE_FILE) + + + Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} + "$(ASLPP)" $(ASLPP_FLAGS) $(INC) /I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii + + + Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} + "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii + +[C-Code-File.AcpiTable] + + ?.c + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi + + + $(MAKE_FILE) + + + "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) + + + "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) + +[Acpi-Table-Code-File] + + ?.aslc, ?.act + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi + + + $(MAKE_FILE) + + + "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) + + + "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) + + + "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi + "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi $(GENFW_FLAGS) + + +[Masm16-Code-File] + + ?.asm16, ?.Asm16, ?.ASM16, ?.s16, ?.S16 + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_base}.com + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + cd $(OUTPUT_DIR)(+)${s_dir} + "$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${d_path}(+)${s_base}.iii + "$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,, + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj --end-group + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii + "$(SLINK)" $(SLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj + otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} + + +[Nasm-to-Binary-Code-File] + + ?.nasmb, ?.NASMB + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_base}.bin + + + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i + "$(NASM)" -I${s_path}(+) -l ${d_path}(+)${s_base}.lst $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii + + +[Microcode-File.USER_DEFINED, Microcode-File.Microcode] + + ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc + + + $(OUTPUT_DIR)(+)${s_base}.mcb + + + "$(GENFW)" -o ${dst} -m ${src} $(GENFW_FLAGS) + +[Microcode-Binary-File] + + *.mcb + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)$(MODULE_NAME).bin + + + "$(GENFW)" -o ${dst} -j $(MICROCODE_BINARY_FILES) $(GENFW_FLAGS) + -$(CP) ${dst} $(BIN_DIR) + +[EFI-Image-File] + + ?.efi, ?.Efi, ?.EFI + + + + + +[Unicode-Text-File] + + *.uni, *.Uni, *.UNI + + + $(DEBUG_DIR)(+)AutoGen.c + $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h + $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk + + + +[Efi-Image.UEFI_OPTIONROM] + + ?.efi, ?.EFI, ?.Efi + + + $(BIN_DIR)(+)$(MODULE_NAME).rom + + + $(OPTROM) -i $(PCI_DEVICE_ID) -f $(PCI_VENDOR_ID) -l $(PCI_CLASS_CODE) -r $(PCI_REVISION) -o $dst $(OPTROM_FLAGS) $src + +[Unicode-Text-File.UEFI_HII] + + *.uni, *.Uni, *.UNI + + + $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk + $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h + + + +[Visual-Form-Representation-File.UEFI_HII] + + ?.vfr + ?.Vfr + ?.VFR + + + $(MAKE_FILE) + + + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.hpk + + + "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i + "$(VFR)" $(VFR_FLAGS) --create-ifr-package --string-db $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk --output-directory $(OUTPUT_DIR)(+)${s_dir} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i + +[Hii-Binary-Package.UEFI_HII] + + *.hpk + + + $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.lib + + + $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc + + + "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) + "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc + + + "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) + "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst} + + + GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) + +