makefile

来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· 代码 · 共 191 行

TXT
191
字号
#/*++
#
#  Copyright (c) 2006, Intel Corporation                                                         
#  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.             
#  
#  Module Name:  
#    Makefile
#  
#  Abstract:
#   
#--*/

#
# Globals
#
BIN_DIR     = $(BUILD_DIR)\$(PROCESSOR)
TOOLCHAIN   = TOOLCHAIN_$(PROCESSOR)

TOOLBIN_DIR = $(BUILD_DIR)\Tools

#
# Include CommonTools.env enviroment
#

!INCLUDE $(BUILD_DIR)\PlatformTools.env

!IF "$(EFI_ASSEMBLER_NAME)" == ""
ASM32             = $(MASMPATH)\bin\ml
ASMLINK32         = $(MASMPATH)\binr\link
!ELSE
ASM32             = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\bin\ml
ASMLINK32         = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link
!ENDIF

#
# Include paths
#
INC = -I $(SOURCE_DIR)\. -I $(SOURCE_DIR)\.\$(PROCESSOR) $(INC)
INC = -I $(EDK_SOURCE)\Foundation\ \
      -I $(EDK_SOURCE)\Foundation\Include \
      -I $(EDK_SOURCE)\Foundation\Include\$(PROCESSOR) \
      -I $(EDK_SOURCE)\Foundation\Efi \
      -I $(EDK_SOURCE)\Foundation\Efi\Include \
      -I $(EDK_SOURCE)\Foundation\Framework \
      -I $(EDK_SOURCE)\Foundation\Framework\Include \
      -I $(EDK_SOURCE)\Foundation\Library\Dxe\Include \
      -I $(EDK_SOURCE)\Foundation\Library\Pei\Include \
      -I $(EDK_SOURCE)\Foundation\Include\Pei \
      $(INC)

LDRDEP = $(BUILD_DIR)\..\Loader\EfiLdr\Efildr.c \
         $(BUILD_DIR)\..\Loader\EfiLdr\EfiLdrHandoff.h \
         $(BUILD_DIR)\..\Loader\EfiLdr\EfiLoader.c \
         $(BUILD_DIR)\..\Loader\EfiLdr\Debug.c \
         $(BUILD_DIR)\..\Loader\EfiLdr\Debug.h \
         $(BUILD_DIR)\..\Loader\EfiLdr\PeLoader.c \
         $(BUILD_DIR)\..\Loader\EfiLdr\PeLoader.h \
         $(BUILD_DIR)\..\Loader\EfiLdr\Support.c \
         $(BUILD_DIR)\..\Loader\EfiLdr\Support.h

all : \
  $(BIN_DIR)\BootSect.com   \
  $(BIN_DIR)\Bs16.com       \
  $(BIN_DIR)\Bs32.com       \
  $(BIN_DIR)\Gpt.com        \
  $(BIN_DIR)\Mbr.com        \
  $(BIN_DIR)\Start64.com    \
  $(BIN_DIR)\St16_64.com    \
  $(BIN_DIR)\St32_64.com    \
  $(BIN_DIR)\Efi64.com2     \
  $(BIN_DIR)\Efildr.efi     \


loader :      \
  Fv\Efildr   \
  Fv\Efildr16 \
  Fv\Efildr20 \


#
# Generate loader object
#
$(BIN_DIR)\BootSect.obj: $(BUILD_DIR)\..\Loader\BootSector\BootSect.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\BootSect.obj $(BUILD_DIR)\..\Loader\BootSector\BootSect.asm 

$(BIN_DIR)\BootSect.com: $(BIN_DIR)\BootSect.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny BootSect.obj,BootSect.com,BootSect.map,,,

$(BIN_DIR)\Bs16.obj: $(BUILD_DIR)\..\Loader\BootSector\Bs16.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Bs16.obj $(BUILD_DIR)\..\Loader\BootSector\Bs16.asm 

$(BIN_DIR)\Bs16.com: $(BIN_DIR)\Bs16.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Bs16.obj,Bs16.com,Bs16.map,,,

$(BIN_DIR)\Bs32.obj: $(BUILD_DIR)\..\Loader\BootSector\Bs32.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Bs32.obj $(BUILD_DIR)\..\Loader\BootSector\Bs32.asm 

$(BIN_DIR)\Bs32.com: $(BIN_DIR)\Bs32.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Bs32.obj,Bs32.com,Bs32.map,,,

$(BIN_DIR)\Gpt.obj: $(BUILD_DIR)\..\Loader\BootSector\Gpt.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Gpt.obj $(BUILD_DIR)\..\Loader\BootSector\Gpt.asm 

$(BIN_DIR)\Gpt.com: $(BIN_DIR)\Gpt.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Gpt.obj,Gpt.com,Gpt.map,,,

$(BIN_DIR)\Mbr.obj: $(BUILD_DIR)\..\Loader\BootSector\Mbr.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Mbr.obj $(BUILD_DIR)\..\Loader\BootSector\Mbr.asm 

$(BIN_DIR)\Mbr.com: $(BIN_DIR)\Mbr.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Mbr.obj,Mbr.com,Mbr.map,,,

$(BIN_DIR)\Start64.obj: $(BUILD_DIR)\..\Loader\BootSector\Start64.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Start64.obj $(BUILD_DIR)\..\Loader\BootSector\Start64.asm 

$(BIN_DIR)\Start64.com: $(BIN_DIR)\Start64.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Start64.obj,Start64.com,Start64.map,,,

$(BIN_DIR)\St16_64.obj: $(BUILD_DIR)\..\Loader\BootSector\St16_64.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\St16_64.obj $(BUILD_DIR)\..\Loader\BootSector\St16_64.asm 

$(BIN_DIR)\St16_64.com: $(BIN_DIR)\St16_64.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny St16_64.obj,St16_64.com,St16_64.map,,,

$(BIN_DIR)\St32_64.obj: $(BUILD_DIR)\..\Loader\BootSector\St32_64.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\St32_64.obj $(BUILD_DIR)\..\Loader\BootSector\St32_64.asm 

$(BIN_DIR)\St32_64.com: $(BIN_DIR)\St32_64.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny St32_64.obj,St32_64.com,St32_64.map,,,

$(BIN_DIR)\Efi64.obj: $(BUILD_DIR)\..\Loader\BootSector\Efi64.asm
  $(ASM32) /c /omf /Fo$(BIN_DIR)\Efi64.obj $(BUILD_DIR)\..\Loader\BootSector\Efi64.asm 

$(BIN_DIR)\Efi64.com: $(BIN_DIR)\Efi64.obj
  cd $(BIN_DIR)
  $(ASMLINK32) /tiny Efi64.obj,Efi64.com,Efi64.map,,,

$(BIN_DIR)\Efi64.com2: $(BIN_DIR)\Efi64.com
  $(TOOLBIN_DIR)\Splitfile $(BIN_DIR)\Efi64.com 135168

$(BIN_DIR)\Efildr.obj: $(LDRDEP)
  $(CC) $(C_FLAGS) $(BUILD_DIR)\..\Loader\EfiLdr\Efildr.c

$(BIN_DIR)\Efildr.dll: $(BIN_DIR)\Efildr.obj
  $(LINK) /nologo /MACHINE:AMD64 /SUBSYSTEM:CONSOLE /NODEFAULTLIB /INCREMENTAL:NO /MAP /FIXED /BASE:0x00010000 /OPT:REF /ALIGN:32 /MERGE:.data=.text /MERGE:.rdata=.text /DRIVER /ENTRY:EfiLoader $(BIN_DIR)\Efildr.obj $(BIN_DIR)\CompilerStub.lib $(BIN_DIR)\EfiCommonLib.lib $(BIN_DIR)\PeiLib.lib /OUT:$(BIN_DIR)\Efildr.dll

$(BIN_DIR)\Efildr.efi: $(BIN_DIR)\Efildr.dll
  $(TOOLBIN_DIR)\FwImage app $(BIN_DIR)\Efildr.dll $(BIN_DIR)\Efildr.efi

#
# Generate loader binary
#
Fv\EfiMain.z : Fv\EfiMain.fv
  $(TOOLBIN_DIR)\Eficompress -tTiano Fv\EfiMain.fv Fv\EfiMain.z
 
Fv\DxeMain.z : $(BIN_DIR)\DxeMain.efi
  $(TOOLBIN_DIR)\Eficompress -tTiano $(BIN_DIR)\DxeMain.efi Fv\DxeMain.z
 
Fv\DxeIpl.z : $(BIN_DIR)\DxeIpl.efi
  $(TOOLBIN_DIR)\Eficompress -tTiano $(BIN_DIR)\DxeIpl.efi Fv\DxeIpl.z

Fv\Efildr64: $(BIN_DIR)\Efildr.efi Fv\DxeIpl.z Fv\DxeMain.z Fv\EfiMain.z
  $(TOOLBIN_DIR)\Efildrimage Fv\Efildr64 $(BIN_DIR)\Efildr.efi Fv\DxeIpl.z Fv\DxeMain.z Fv\EfiMain.z

Fv\Efildr: $(BIN_DIR)\Start64.com $(BIN_DIR)\Efi64.com2 Fv\Efildr64
  copy /b $(BIN_DIR)\Start64.com+$(BIN_DIR)\Efi64.com2+Fv\Efildr64 Fv\EfildrPure
  $(TOOLBIN_DIR)\GenPage Fv\EfildrPure Fv\Efildr

Fv\Efildr16: $(BIN_DIR)\St16_64.com $(BIN_DIR)\Efi64.com2 Fv\Efildr64
  copy /b $(BIN_DIR)\St16_64.com+$(BIN_DIR)\Efi64.com2+Fv\Efildr64 Fv\Efildr16Pure
  $(TOOLBIN_DIR)\GenPage Fv\Efildr16Pure Fv\Efildr16

Fv\Efildr20: $(BIN_DIR)\St32_64.com $(BIN_DIR)\Efi64.com2 Fv\Efildr64
  copy /b $(BIN_DIR)\St32_64.com+$(BIN_DIR)\Efi64.com2+Fv\Efildr64 Fv\Efildr20Pure
  $(TOOLBIN_DIR)\GenPage Fv\Efildr20Pure Fv\Efildr20

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?