1# 2# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR> 3# Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> 4# This program and the accompanying materials 5# are licensed and made available under the terms and conditions of the BSD License 6# which accompanies this distribution. The full text of the license may be found at 7# http://opensource.org/licenses/bsd-license.php 8 9# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11# 12 13## Syntax 14# 15# "*" is used to indicate that the source files will be processed at the same time. 16# "?" is used to indicate that the source files will be processed one by one. 17# 18# "[" <File-Type>[.<Build-Type>][.<Arch>][, <File-Type>[.<Build-Type>][.<Arch>]] "]" <EOL> 19# <InputFile[.<ToolChainFamily>]> <EOL> 20# (?|*).<File-Extension> [(\n|,) (?|*).<File-Extension>] 21# 22# <OutputFile[.<ToolChainFamily>]> <EOL> 23# <FileFullPath> 24# 25# <ExtraDependency> 26# <FileFullPath> 27# 28# <Command[.<ToolChainFamily>]> <EOL> 29# <Command1> 30# [<Command2>] 31# 32# <Build-Type> is the MODULE_TYPE in EDK2 or COMPONENT_TYPE in EDK. 33# Missing <InputFile> will cause an exception and break build. 34# Missing <Command> will cause that related build target won't be generated but 35# won't break build. 36# 37 38## Placeholders for string substitution 39# 40# ${src} Source file(s) to be built (full path) 41# ${s_path} Source file directory (absolute path) 42# ${s_dir} Source file relative directory within a module 43# (Note: ${s_dir} is always equals to "." if source file is given in absolute path.) 44# ${s_name} Source file name without path 45# ${s_base} Source file name without extension and path 46# ${s_ext} Source file extension 47# 48# ${dst} Destination file(s) built from ${src} (full path) 49# ${d_path} Destination file directory (absolute path) 50# ${d_name} Destination file name without path 51# ${d_base} Destination file name without extension and path 52# ${d_ext} Destination file extension 53# 54# (+) Directory separator 55# 56 57## Macro 58# $(WORKSPACE) Workspace directory 59# $(OUTPUT_DIR) Directory for intermediate files for building a module 60# $(DEBUG_DIR) Directory for files used to debug a module 61# $(BUILD_DIR) All files for building a platform will be put in this directory 62# $(BIN_DIR) Common directory for executable files 63# $(FV_DIR) Directory to store flash image files 64# $(INC) Search path of current module 65# $(INC_LIST) A file containing search pathes of current module 66# $(LIBS) Static library files of current module 67# $(<tool>_FLAGS) Tools flags of current module 68# $(MODULE_NAME) Current module name 69# $(MODULE_NAME_GUID) Current module name with module FILE_GUID if same $(MODULE_NAME) exists 70# in different modules, otherwise its value is same as $(MODULE_NAME) 71# $(MODULE_TYPE) Current module type 72# $(MODULE_GUID) Current module guid 73# $(ARCH) Architecture of current module 74# $(TOOLCHAIN) Toolchain used to build current module 75# $(TARGET) Target of current module (DEBUG/RELEASE) 76# $(<tool>) Path of tool 77# $(EDK_TOOLS_PATH) Path of build tools 78# $(<FILE_TYPES>) File list of each file type 79# (Note: The macro name is derived from file type name. For example, 80# C-Code-File will have C_CODE_FILES macro.) 81# $(<FILE_TYPES_LIST>) Macro point to a file containing list of files of a file type 82# ( 83# Note: The macro and file name are derived from file type name. 84# For example, C-Code-File will have C_CODE_FILES_LIST macro pointing 85# to $(OUTPUT_DIR)/c_code_files.lst. The list file and macro name 86# will be generated only when this macro is used in command line. 87# This is intended to get over the long command line limitation. 88# ) 89# 90# $(CP) copy command 91# $(MV) move command 92# $(RM) delete command 93# $(MD) create dir command 94# $(RD) remove dir command 95# 96 97## Reserved File-Type 98# 99# Don't change following names of file types and their associated files, 100# which are also used in tools' code 101# 102# C-Code-File 103# C-Header-File 104# Dynamic-Library-File 105# Static-Library-File 106# Visual-Form-Representation-File 107# Unicode-Text-File 108# 109 110## Build Rule Version Number 111# build_rule_version=0.1 112# 113 114[C-Code-File] 115 <InputFile> 116 ?.c 117 ?.C 118 ?.cc 119 ?.CC 120 ?.cpp 121 ?.Cpp 122 ?.CPP 123 124 <ExtraDependency> 125 $(MAKE_FILE) 126 127 <OutputFile> 128 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 129 130 <Command.MSFT, Command.INTEL> 131 "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} 132 133 <Command.GCC, Command.GCCLD, Command.RVCT> 134 # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues 135 "$(CC)" $(CC_FLAGS) -c -o ${dst} $(INC) ${src} 136 137 <Command.XCODE> 138 "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} 139 140[C-Code-File.COMMON.IPF] 141 <InputFile> 142 ?.c 143 ?.C 144 ?.cc 145 ?.CC 146 ?.cpp 147 ?.Cpp 148 ?.CPP 149 150 <ExtraDependency> 151 $(MAKE_FILE) 152 153 <OutputFile> 154 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 155 156 <Command.MSFT, Command.INTEL> 157 "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} 158 159 <Command.GCC, Command.GCCLD, Command.RVCT> 160 # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues 161 "$(CC)" $(CC_FLAGS) -c -o ${dst} $(INC) ${src} 162 "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} 163 164[C-Code-File.BASE.AARCH64,C-Code-File.SEC.AARCH64,C-Code-File.PEI_CORE.AARCH64,C-Code-File.PEIM.AARCH64,C-Code-File.BASE.ARM,C-Code-File.SEC.ARM,C-Code-File.PEI_CORE.ARM,C-Code-File.PEIM.ARM] 165 <InputFile> 166 ?.c 167 168 <ExtraDependency> 169 $(MAKE_FILE) 170 171 <OutputFile> 172 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 173 174 <Command.GCC, Command.GCCLD, Command.RVCT> 175 "$(CC)" $(CC_FLAGS) $(CC_XIPFLAGS) -c -o ${dst} $(INC) ${src} 176 177[C-Header-File] 178 <InputFile> 179 *.h, *.H 180 181 <OutputFile> 182 183 <Command> 184 185 186[Assembly-Code-File.COMMON.COMMON] 187 <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT> 188 ?.asm, ?.Asm, ?.ASM 189 190 <InputFile.GCC, InputFile.GCCLD> 191 ?.S, ?.s 192 193 <ExtraDependency> 194 $(MAKE_FILE) 195 196 <OutputFile> 197 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 198 199 <Command.MSFT, Command.INTEL> 200 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 201 Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 202 "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii 203 204 <Command.GCC, Command.GCCLD, Command.RVCT> 205 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 206 Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 207 # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues 208 "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii 209 210[Nasm-Assembly-Code-File.COMMON.COMMON] 211 <InputFile> 212 ?.nasm 213 214 <ExtraDependency> 215 $(MAKE_FILE) 216 217 <OutputFile> 218 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 219 220 <Command> 221 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 222 Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 223 "$(NASM)" -I${s_path}(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii 224 225[Assembly-Code-File.COMMON.IPF] 226 <InputFile> 227 ?.s 228 229 <ExtraDependency> 230 $(MAKE_FILE) 231 232 <OutputFile> 233 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 234 235 <Command.MSFT, Command.INTEL> 236 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 237 Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 238 # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues 239 "$(ASM)" $(ASM_FLAGS) -o ${dst} ${d_path}(+)${s_base}.iii 240 241[Device-Tree-Source-File] 242 <InputFile> 243 ?.dts 244 245 <ExtraDependency> 246 $(MAKE_FILE) 247 248 <OutputFile> 249 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dtb 250 251 <Command.GCC> 252 "$(PP)" $(DTCPP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 253 "$(DTC)" -I dts -O dtb -o ${dst} ${d_path}(+)${s_base}.i 254 255[Visual-Form-Representation-File] 256 <InputFile> 257 ?.vfr 258 ?.Vfr 259 ?.VFR 260 261 <ExtraDependency> 262 $(MAKE_FILE) 263 264 <OutputFile> 265 $(DEBUG_DIR)(+)${s_dir}(+)${s_base}.c 266 267 <Command> 268 "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_base}.i 269 "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_base}.i 270 271[Object-File] 272 <InputFile> 273 *.obj 274 *.o 275 276 <OutputFile> 277 $(OUTPUT_DIR)(+)$(MODULE_NAME).lib 278 279 <Command.MSFT, Command.INTEL> 280 "$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST) 281 282 <Command.GCC, Command.GCCLD> 283 "$(SLINK)" cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST) 284 285 <Command.RVCT> 286 "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST) 287 288 <Command.RVCTCYGWIN> 289 # $(OBJECT_FILES_LIST) has wrong paths for cygwin 290 "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES) 291 292 <Command.XCODE> 293 "$(SLINK)" $(SLINK_FLAGS) ${dst} -filelist $(OBJECT_FILES_LIST) 294 295[Static-Library-File] 296 <InputFile> 297 *.lib 298 299 <ExtraDependency> 300 $(MAKE_FILE) 301 302 <OutputFile> 303 $(DEBUG_DIR)(+)$(MODULE_NAME).dll 304 305 <Command.MSFT, Command.INTEL> 306 "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) 307 308 <Command.GCC> 309 "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(CC_FLAGS) $(DLINK2_FLAGS) 310 "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} 311 312 <Command.GCCLD> 313 "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) 314 "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} 315 316 <Command.RVCT> 317 "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) 318 319 <Command.RVCTCYGWIN> 320 #$(STATIC_LIBRARY_FILES_LIST) has wrong paths for cygwin 321 "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS) 322 323 <Command.XCODE> 324 "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) 325 326 327[Static-Library-File.SEC.AARCH64, Static-Library-File.PEI_CORE.AARCH64, Static-Library-File.PEIM.AARCH64,Static-Library-File.SEC.ARM, Static-Library-File.PEI_CORE.ARM, Static-Library-File.PEIM.ARM] 328 <InputFile> 329 *.lib 330 331 <ExtraDependency> 332 $(MAKE_FILE) 333 334 <OutputFile> 335 $(DEBUG_DIR)(+)$(MODULE_NAME).dll 336 337 <Command.GCC> 338 "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_XIPFLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(CC_FLAGS) $(CC_XIPFLAGS) $(DLINK2_FLAGS) 339 "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} 340 341 342[Static-Library-File.USER_DEFINED] 343 <InputFile> 344 *.lib 345 346 <ExtraDependency> 347 $(MAKE_FILE) 348 349 <OutputFile> 350 $(DEBUG_DIR)(+)$(MODULE_NAME) 351 352 <Command.MSFT, Command.INTEL> 353 "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) 354 355 <Command.GCC> 356 "$(DLINK)" $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS) 357 358 <Command.GCCLD> 359 "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) 360 361 <Command.RVCT> 362 "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) 363 364 <Command.RVCTCYGWIN> 365 #$(STATIC_LIBRARY_FILES_LIST) has the wrong paths for cygwin 366 "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) $(DLINK2_FLAGS) 367 368 <Command.XCODE> 369 "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) 370 371 372[Dynamic-Library-File] 373 <InputFile> 374 ?.dll 375 376 <OutputFile> 377 $(DEBUG_DIR)(+)$(MODULE_NAME).efi 378 379 <Command.MSFT, Command.INTEL, Command.RVCT> 380 "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS) 381 $(CP) ${dst} $(OUTPUT_DIR) 382 $(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi 383 -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) 384 -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) 385 <Command.GCC, Command.GCCLD> 386 $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug 387 $(OBJCOPY) --strip-unneeded -R .eh_frame ${src} 388 389 # 390 #The below 2 lines are only needed for UNIXGCC tool chain, which genereates PE image directly 391 # 392 -$(OBJCOPY) $(OBJCOPY_ADDDEBUGFLAG) ${src} 393 -$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR)(+)$(MODULE_NAME_GUID).debug 394 395 "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS) 396 $(CP) ${dst} $(OUTPUT_DIR) 397 $(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi 398 -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) 399 400 <Command.XCODE> 401 # tool to convert Mach-O to PE/COFF 402 "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff 403 # create symbol file for GDB debug 404 -$(DSYMUTIL) ${src} 405 "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} $(DEBUG_DIR)(+)$(MODULE_NAME).pecoff $(GENFW_FLAGS) 406 $(CP) ${dst} $(OUTPUT_DIR) 407 $(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi 408 -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) 409 410[Dependency-Expression-File] 411 <InputFile> 412 ?.dxs, ?.Dxs, ?.DXS 413 414 <OutputFile> 415 $(OUTPUT_DIR)(+)$(MODULE_NAME).depex 416 417 <ExtraDependency> 418 $(MAKE_FILE) 419 420 <Command> 421 "$(PP)" $(APP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i 422 Trim --source-code -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i 423 GenDepex -t $(MODULE_TYPE) -o ${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii 424 425[Acpi-Source-Language-File] 426 <InputFile> 427 ?.asl, ?.Asl, ?.ASL 428 429 <OutputFile> 430 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml 431 432 <ExtraDependency> 433 $(MAKE_FILE) 434 435 <Command.MSFT, Command.INTEL> 436 Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} 437 "$(ASLPP)" $(ASLPP_FLAGS) $(INC) /I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii 438 Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii 439 "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii 440 441 <Command.GCC, Command.GCCLD> 442 Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} 443 "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii 444 Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii 445 "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii 446 447[C-Code-File.AcpiTable] 448 <InputFile> 449 ?.c 450 451 <OutputFile> 452 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi 453 454 <ExtraDependency> 455 $(MAKE_FILE) 456 457 <Command.MSFT, Command.INTEL> 458 "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} 459 "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 460 "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) 461 462 <Command.GCC, Command.GCCLD> 463 "$(ASLCC)" -c -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} 464 "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 465 "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) 466 467[Acpi-Table-Code-File] 468 <InputFile> 469 ?.aslc, ?.act 470 471 <OutputFile> 472 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.acpi 473 474 <ExtraDependency> 475 $(MAKE_FILE) 476 477 <Command.MSFT, Command.INTEL> 478 "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} 479 "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 480 "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) 481 482 <Command.GCC, Command.GCCLD> 483 "$(ASLCC)" -c -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} 484 "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 485 "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) 486 487 <Command.XCODE> 488 "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} 489 "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 490 "$(MTOC)" -subsystem $(MODULE_TYPE) $(MTOC_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi 491 "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.efi $(GENFW_FLAGS) 492 493 494[Masm16-Code-File] 495 <InputFile> 496 ?.asm16, ?.Asm16, ?.ASM16, ?.s16, ?.S16 497 498 <ExtraDependency> 499 $(MAKE_FILE) 500 501 <OutputFile> 502 $(OUTPUT_DIR)(+)${s_base}.com 503 504 <Command.MSFT, Command.INTEL> 505 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 506 Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 507 cd $(OUTPUT_DIR)(+)${s_dir} 508 "$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${d_path}(+)${s_base}.iii 509 "$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,, 510 511 <Command.GCC, Command.GCCLD> 512 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 513 Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 514 "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii 515 "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj --end-group 516 517 <Command.XCODE> 518 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 519 Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 520 "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii 521 "$(SLINK)" $(SLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj 522 otool -t $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.slib | hex2bin.py ${dst} 523 524 525[Nasm-to-Binary-Code-File] 526 <InputFile> 527 ?.nasmb 528 529 <ExtraDependency> 530 $(MAKE_FILE) 531 532 <OutputFile> 533 $(OUTPUT_DIR)(+)${s_base}.bin 534 535 <Command> 536 "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i 537 Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i 538 "$(NASM)" -I${s_path}(+) -l ${d_path}(+)${s_base}.lst $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii 539 # copy the output file with .com postfix that be same to the output file of .asm16 540 $(CP) ${dst} $(OUTPUT_DIR)(+)${s_base}.com 541 542[Microcode-File.USER_DEFINED, Microcode-File.Microcode] 543 <InputFile> 544 ?.txt, ?.TXT, ?.Txt, ?.mut, ?.inc 545 546 <OutputFile> 547 $(OUTPUT_DIR)(+)${s_base}.mcb 548 549 <Command> 550 "$(GENFW)" -o ${dst} -m ${src} $(GENFW_FLAGS) 551 552[Microcode-Binary-File] 553 <InputFile> 554 *.mcb 555 556 <ExtraDependency> 557 $(MAKE_FILE) 558 559 <OutputFile> 560 $(OUTPUT_DIR)(+)$(MODULE_NAME).bin 561 562 <Command> 563 "$(GENFW)" -o ${dst} -j $(MICROCODE_BINARY_FILES) $(GENFW_FLAGS) 564 -$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).bin 565 566[EFI-Image-File] 567 <InputFile> 568 ?.efi, ?.Efi, ?.EFI 569 570 <OutputFile> 571 572 <Command> 573 574[Unicode-Text-File] 575 <InputFile> 576 *.uni, *.Uni, *.UNI 577 578 <OutputFile> 579 $(DEBUG_DIR)(+)AutoGen.c 580 $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h 581 $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk 582 583 <Command> 584 585[Image-Definition-File] 586 <InputFile> 587 *.idf, *.Idf, *.IDF 588 589 <OutputFile> 590 $(DEBUG_DIR)(+)AutoGen.c 591 $(DEBUG_DIR)(+)$(MODULE_NAME)ImgDefs.h 592 $(OUTPUT_DIR)(+)$(MODULE_NAME)Idf.hpk 593 594 <Command> 595 596[Efi-Image.UEFI_OPTIONROM] 597 <InputFile> 598 ?.efi, ?.EFI, ?.Efi 599 600 <OutputFile> 601 $(BIN_DIR)(+)$(MODULE_NAME_GUID).rom 602 603 <Command> 604 $(OPTROM) -i $(PCI_DEVICE_ID) -f $(PCI_VENDOR_ID) -l $(PCI_CLASS_CODE) -r $(PCI_REVISION) -o $dst $(OPTROM_FLAGS) $src 605 606[Unicode-Text-File.UEFI_HII] 607 <InputFile> 608 *.uni, *.Uni, *.UNI 609 610 <OutputFile> 611 $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk 612 $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h 613 614 <Command> 615 616[Image-Definition-File.UEFI_HII] 617 <InputFile> 618 *.idf, *.Idf, *.IDF 619 620 <OutputFile> 621 $(DEBUG_DIR)(+)$(MODULE_NAME)ImgDefs.h 622 $(OUTPUT_DIR)(+)$(MODULE_NAME)Idf.hpk 623 624 <Command> 625 626[Visual-Form-Representation-File.UEFI_HII] 627 <InputFile> 628 ?.vfr 629 ?.Vfr 630 ?.VFR 631 632 <ExtraDependency> 633 $(MAKE_FILE) 634 635 <OutputFile> 636 $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.hpk 637 638 <Command> 639 "$(VFRPP)" $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i 640 "$(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 641 642[Hii-Binary-Package.UEFI_HII] 643 <InputFile> 644 *.hpk 645 646 <OutputFile.MSFT, OutputFile.INTEL, OutputFile.GCC> 647 $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.lib 648 649 <OutputFile.XCODE, OutputFile.RVCT> 650 $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc 651 652 <Command.MSFT, Command.INTEL> 653 "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) 654 "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc 655 656 <Command.GCC, Command.GCCLD> 657 "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) 658 "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst} 659 660 <Command.XCODE, Command.RVCT> 661 GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) 662 663 664