#/*++ # # Copyright (c) 2004 - 2007, 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: # # CommonTools.env # # Abstract: # # This file should not need to be customized. Customizations should # be done in LocalTools.env if at all possible. # # This file can be included by other makefiles. # # It defines variables used by the different toolchains. It first includes # the user-customized LocalTools.env, and then uses those defines to # define other variables. # # It basically has sections for different toolchains which define variables # used to build. # #--*/ # # Everything depends on EDK_SOURCE. Make sure it's defined # !IFNDEF EDK_SOURCE !ERROR EDK_SOURCE environmental variable not set !ENDIF # # Tools depend on BUILD_DIR. Make sure it's defined # !IFNDEF BUILD_DIR !ERROR BUILD_DIR environmental variable not set. Should be set in PlatformTools.env !ENDIF # # This include file gets customized by the developer. Get the customizations. # !INCLUDE $(EDK_SOURCE)\Sample\LocalTools.env ################################################################################ # # Define paths for EFI build tools # ################################################################################ !IFNDEF EDK_TOOLS_PATH EDK_TOOLS_BIN = $(EDK_SOURCE)\Tools\Bin !ELSE EDK_TOOLS_BIN = $(EDK_TOOLS_PATH)\Bin !ENDIF EDK_TOOLS_DIR = $(EDK_SOURCE)\Sample\Tools EDK_TOOLS_SOURCE = $(EDK_TOOLS_DIR)\Source EDK_TOOLS_COMMON = $(EDK_TOOLS_DIR)\Source\Common EDK_TOOLS_OUTPUT = $(BUILD_DIR)\Tools PCCTS_DIR = $(EDK_SOURCE)\Other\Maintained\Tools\Pccts # # This include file gets some version info. # !INCLUDE $(EDK_SOURCE)\Sample\Version.env # # Macros to define the build tools # ANTLR = $(PCCTS_DIR)\bin\antlr DLG = $(PCCTS_DIR)\bin\dlg FWIMAGE = $(EDK_TOOLS_OUTPUT)\FwImage GENDEPEX = $(EDK_TOOLS_OUTPUT)\GenDepex GENFDIMAGE = $(EDK_TOOLS_OUTPUT)\GenFdImage GENFFSFILE = $(EDK_TOOLS_OUTPUT)\GenFfsFile GENFVIMAGE = $(EDK_TOOLS_OUTPUT)\GenFvImage GENSECTION = $(EDK_TOOLS_OUTPUT)\GenSection GUIDCHK = $(EDK_TOOLS_OUTPUT)\GuidChk MAKEDEPS = $(EDK_TOOLS_OUTPUT)\MakeDeps PROCESSDSC = $(EDK_TOOLS_OUTPUT)\ProcessDsc STRGATHER = $(EDK_TOOLS_OUTPUT)\StrGather SETSTAMP = $(EDK_TOOLS_OUTPUT)\SetStamp VFRCOMPILE = $(EDK_TOOLS_OUTPUT)\VfrCompile GENAPRIORI = $(EDK_TOOLS_OUTPUT)\GenAprioriFile MODIFYINF = $(EDK_TOOLS_OUTPUT)\ModifyInf MAKE = nmake -nologo # # Everything else requires that TOOLCHAIN be defined. This should be defined # by the calling makefile. # !IFNDEF TOOLCHAIN !ERROR TOOLCHAIN not defined for $(EDK_SOURCE)\Sample\CommonTools.env !ENDIF ############################################################################### # # Specify the path and macros for ASL tools # ############################################################################### !IF "$(EFI_ASL_LOCAL)" == "YES" ASL = $(ASLPATH)\Iasl !ELSE ASL = $(EDK_TOOLS_BIN)\Iasl !ENDIF ASL_FLAGS = C_FLAGS_ASL = /nologo /EP /C ############################################################################### # # Specify the path and macros for IA32 tools # ############################################################################### !IF "$(TOOLCHAIN)" == "TOOLCHAIN_IA32" # # Globally relevant flags. Options not appropriate for all builds may be # appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or # in the platform specific macros (xxx_PROJ_FLAGS) # C_STD_INCLUDE = /X !IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES" !IF "$(USE_VC8)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ENDIF !ELSE !IF "$(USE_VC8)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /D USE_VC8 /c /Fo$@ $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC) !ENDIF !ENDIF ASM_STD_FLAGS = /nologo $(INC) LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108 $(BUILD_DIR)\IA32\CompilerStub.lib LIB_STD_FLAGS = /nologo # # Build type specific flags. Globally relevant flags belong in the standard # macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the # PlatformTools.env file in macros named xxx_PROJ_FLAGS. # C_ARCH_FLAGS = /D EFI32 ASM_ARCH_FLAGS = /W3 /WX /c /coff /Fo$@ /DEFI32 LINK_ARCH_FLAGS = /MACHINE:I386 LIB_ARCH_FLAGS = ASM16_FLAGS = /nologo /c /omf /Fo$@ ASMLINK16_FLAGS = # # Build tools # CC = cl LINK = link LIB = lib # # When using VS ml to compile 16bit code, please add /omf compiler option # ASM = ml !IF "$(EFI_ASSEMBLER_NAME)" == "" ASM16 = $(MASMPATH)\bin\ml ASMLINK16 = $(MASMPATH)\binr\link ASMLINK = $(MASMPATH)\binr\link !ELSE ASM16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\bin\ml ASMLINK16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link ASMLINK = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link !ENDIF BSCMAKE = bscmake !IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) /Zi /DDEBUG C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG !ENDIF # END OF TOOLCHAIN_IA32 ############################################################################### ############################################################################### # # Specify the path and macros for the X64 (also called x86-64, EM64T, AMD64) tools # ############################################################################### !ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_X64" # # Globally relevant flags. Options not appropriate for all builds may be # appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or # in the platform specific macros (xxx_PROJ_FLAGS) # C_STD_INCLUDE = /X !IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /Gy /c /GS- /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /Gy /c /GS- /Fo$@ $(INC) !ENDIF ASM_STD_FLAGS = /nologo $(INC) LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108 $(BUILD_DIR)\X64\CompilerStub.lib LIB_STD_FLAGS = /nologo # # Build type specific flags. Globally relevant flags belong in the standard # macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the # PlatformTools.env file in macros named xxx_PROJ_FLAGS. # C_ARCH_FLAGS = /D EFIX64 ASM_ARCH_FLAGS = /W3 /WX /c /Fo$@ /DEFIX64 LINK_ARCH_FLAGS = /Machine:AMD64 LIB_ARCH_FLAGS = ASM16_FLAGS = /nologo /c /omf /Fo$@ ASMLINK16_FLAGS = # # Build tools # !IF "$(EFI_COMPILER_X64_NAME)" == "" !IF "$(USE_VC8_X64)" == "YES" # # Use VC8 as X64 compiler # CC = "$(VC8_X64_PATH)\cl" LINK = "$(VC8_X64_PATH)\link" LIB = "$(VC8_X64_PATH)\lib" ASM = "$(VC8_X64_PATH)\ml64" !ELSE # # Use DDK as X64 compiler # CC = $(WIN_DDK_X64_PATH)\cl LINK = $(WIN_DDK_X64_PATH)\link LIB = $(WIN_DDK_X64_PATH)\lib ASM = $(WIN_DDK_X64_PATH)\ml64 !ENDIF !ELSE CC = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\cl LINK = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\link LIB = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\lib ASM = $(EDK_TOOLS_BIN)\X64\$(EFI_COMPILER_X64_NAME)\ml64 !ENDIF !IF "$(EFI_ASSEMBLER_NAME)" == "" ASM16 = $(MASMPATH)\bin\ml ASMLINK16 = $(MASMPATH)\binr\link ASMLINK = $(MASMPATH)\binr\link !ELSE ASM16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\bin\ml ASMLINK16 = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link ASMLINK = $(EDK_TOOLS_BIN)\Ia32\$(EFI_ASSEMBLER_NAME)\binr\link !ENDIF BSCMAKE = bscmake !IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) /Zi /DDEBUG C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG !ENDIF # END OF TOOLCHAIN_X64 ############################################################################### ############################################################################### # # Specify the path and macros for the IPF tools # ############################################################################### !ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_IPF" # # Globally relevant flags. Options not appropriate for all builds may be # appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or # in the platform specific macros (xxx_PROJ_FLAGS) # C_STD_INCLUDE = /X !IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES" !IF "$(USE_VC8_IPF)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ELSE !IF "$(USE_NEWDDK)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ENDIF !ENDIF !ELSE !IF "$(USE_VC8_IPF)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fo$@ $(INC) !ELSE !IF "$(USE_NEWDDK)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /GS- /c /Fo$@ $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC) !ENDIF !ENDIF !ENDIF ASM_STD_FLAGS = $(INC) LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF /BASE:0 /IGNORE:4001,4078,4086,4096,4108 LIB_STD_FLAGS = /nologo # # Build type specific flags. Globally relevant flags belong in the standard # macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the # PlatformTools.env file in macros named xxx_PROJ_FLAGS. # C_ARCH_FLAGS = /D EFI64 ASM_ARCH_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -o $@ LINK_ARCH_FLAGS = /MACHINE:IA64 LIB_ARCH_FLAGS = # # This is used for preprocessing IPF Assembly files # C_FLAGS_PRO = /nologo /EP /C $(C_STD_FLAGS) $(C_ARCH_FLAGS) $(C_PROJ_FLAGS) $(C_STD_INCLUDE) !IF "$(EFI_DEBUG)" == "YES" ASM_ARCH_FLAGS = $(ASM_ARCH_FLAGS) -d debug !ENDIF # # Build tools # !IF "$(EFI_COMPILER_NAME)" == "" !IF "$(USE_VC8_IPF)" == "YES" CC = "$(VC8_IPF_PATH)\cl" LINK = "$(VC8_IPF_PATH)\link" LIB = "$(VC8_IPF_PATH)\lib" !ELSE CC = $(EFI_IA64TOOLPATH)\cl LINK = $(EFI_IA64TOOLPATH)\link LIB = $(EFI_IA64TOOLPATH)\lib !ENDIF !ELSE CC = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\cl LINK = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\link LIB = $(EDK_TOOLS_BIN)\Ipf\$(EFI_COMPILER_NAME)\lib !ENDIF !IF "$(EFI_ASSEMBLER_NAME)" == "" !IF "$(USE_VC8_IPF)" == "YES" ASM = "$(VC8_IPF_PATH)\ias" ASMLINK = "$(VC8_IPF_PATH)\link" !ELSE ASM = $(EFI_IA64ASMPATH)\ias ASMLINK = $(EFI_IA64ASMPATH)\link !ENDIF !ELSE ASM = $(EDK_TOOLS_BIN)\Ipf\$(EFI_ASSEMBLER_NAME)\ias ASMLINK = $(EDK_TOOLS_BIN)\Ipf\$(EFI_ASSEMBLER_NAME)\link !ENDIF BSCMAKE = bscmake !IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(DEST_DIR)\$(BASE_NAME)Obj LINK_STD_FLAGS = $(LINK_STD_FLAGS) /DEBUG !ENDIF # END TOOLCHAIN_IPF ############################################################################### ############################################################################### # # Define toolchain for building the EFI tools on an IA32 system. # ############################################################################### !ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_MSVC" # # Globally relevant flags. Options not appropriate for all builds may be # appropriate in the processor architecture specific macros (xxx_ARCH_FLAGS) or # in the platform specific macros (xxx_PROJ_FLAGS) # !IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES" !IF "$(USE_VC8)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /D _CRT_SECURE_NO_DEPRECATE /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) !ENDIF !ELSE !IF "$(USE_VC8)" == "YES" C_STD_FLAGS = /nologo /W4 /WX /EHsc /Gy /D _CRT_SECURE_NO_DEPRECATE /D USE_VC8 /c /Fo$@ $(INC) !ELSE C_STD_FLAGS = /nologo /W4 /WX /GX /Gy /c /Fo$@ $(INC) !ENDIF !ENDIF ASM_STD_FLAGS = /nologo $(INC) LINK_STD_FLAGS = /nologo /SUBSYSTEM:CONSOLE /NODEFAULTLIB /MAP /OPT:REF LIB_STD_FLAGS = /nologo MSVS_LINK_LIBPATHS = # # Build type specific flags. Globally relevant flags belong in the standard # macros, xxx_STD_FLAGS defined above. Platform specific macros belong in the # PlatformTools.env file in macros named xxx_PROJ_FLAGS. # # # Add a define to skip inclusion of Microsoft include file rpcasync.h, which # results in a compile warning at W4. # C_ARCH_FLAGS = /Od /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D __RPCASYNC_H__ ASM_ARCH_FLAGS = LINK_ARCH_FLAGS = /MACHINE:i386 LIB_ARCH_FLAGS = # # Always turn on debug for the build tools so that we can debug problems # quickly. # NOTE: Ideally all the tools makefiles should be updated to use LINK_FLAGS_EXE # instead of L_FLAGS for linking. When this happens we can get rid of # the L_FLAGS definition here. # #!IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /Zi /Gm /Fd$(EDK_TOOLS_OUTPUT)\$(TARGET_NAME)Obj LINK_ARCH_FLAGS = $(LINK_ARCH_FLAGS) /DEBUG L_FLAGS = $(L_FLAGS) /DEBUG #!ENDIF # # Clear any project flags when building tools # C_PROJ_FLAGS = ASM_PROJ_FLAGS = LINK_PROJ_FLAGS = LIB_PROJ_FLAGS = EBC_C_PROJ_FLAGS = EBC_LINK_PROJ_FLAGS = EBC_LIB_PROJ_FLAGS = # # Build tools # CC = cl LINK = link BSCMAKE = bscmake ASM = ml ASMLINK = link # # Use a different macro name for tools build to avoid conflict with environment # variable LIB # LIB_EXE = lib INC = -I $(EDK_SOURCE)\Foundation \ -I $(EDK_SOURCE)\Foundation\Efi \ -I $(EDK_SOURCE)\Foundation\Framework \ -I $(EDK_SOURCE)\Sample\Platform\Nt32 \ -I $(EDK_SOURCE)\Foundation\Core\Dxe \ -I $(EDK_SOURCE)\Foundation\Include \ -I $(EDK_SOURCE)\Foundation\Efi\Include \ -I $(EDK_SOURCE)\Foundation\Framework\Include \ -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard \ -I $(EDK_SOURCE)\Foundation\Include\Ia32 \ -I $(EDK_SOURCE)\Foundation\Include\Pei \ -I $(EDK_SOURCE)\Foundation\Library\Pei\Include \ -I $(EDK_SOURCE)\Sample\Include \ -I "$(EDK_TOOLS_COMMON)" # END TOOLCHAIN_MSVC ############################################################################### ############################################################################### # # Specify the path and macros for the EBC tools # ############################################################################### !ELSEIF "$(TOOLCHAIN)" == "TOOLCHAIN_EBC" !IF "$(EFI_GENERATE_INTERMEDIATE_FILE)" == "YES" EBC_C_STD_FLAGS = /nologo /W3 /WX /c /Fa$* /FAsc /Fo$@ $(INC) /X !ELSE EBC_C_STD_FLAGS = /nologo /W3 /WX /c /Fo$@ $(INC) /X !ENDIF # # All EBC entry point functions must be called EfiMain. Redefine it. # !IF "$(IMAGE_ENTRY_POINT)" == "" IMAGE_ENTRY_POINT = EfiMain !ENDIF EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D $(IMAGE_ENTRY_POINT)=EfiMain EBC_LINK_STD_FLAGS = /nologo /MACHINE:EBC /BASE:0 /OPT:REF /NODEFAULTLIB EBC_LIB_STD_FLAGS = /nologo /MACHINE:EBC # # EBC tools path should be defined in LocalTools.env. # EBC_CC = $(EBC_TOOLS_PATH)\Bin\Iec EBC_LINK = $(EBC_TOOLS_PATH)\Bin\Link EBC_LIB = $(EBC_TOOLS_PATH)\Bin\Link /lib !IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /Zd /Zi EBC_LINK_STD_FLAGS = $(EBC_LINK_STD_FLAGS) /DEBUG !ENDIF # END TOOLCHAIN_EBC ############################################################################### # # Let the caller define a NULL toolchain if they don't care. This way you can # pick up at least some defines. # ############################################################################### !ELSEIF "$(TOOLCHAIN)" == "" ############################################################################### # # You get this if the calling makefile did not define TOOLCHAIN_xxx before # including this file. # ############################################################################### !ELSE !ERROR Unknown toolchain $(TOOLCHAIN) defined for $(EDK_SOURCE)\Sample\CommonTools.env use !ENDIF ############################################################################### # # These are standard settings for all tool chains # ############################################################################### # # These are standard build options # VERSION_FLAGS = /D EFI_SPECIFICATION_VERSION=$(EFI_SPECIFICATION_VERSION) \ /D PI_SPECIFICATION_VERSION=$(PI_SPECIFICATION_VERSION) \ /D TIANO_RELEASE_VERSION=$(TIANO_RELEASE_VERSION) C_STD_FLAGS = $(C_STD_FLAGS) $(VERSION_FLAGS) EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) $(VERSION_FLAGS) VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "$(VERSION_FLAGS)" !IF "$(EFI_DEBUG)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D EFI_DEBUG VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "/D EFI_DEBUG" !ENDIF !IF "$(EFI_DEBUG_CLEAR_MEMORY)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG_CLEAR_MEMORY !ENDIF !IF "$(EFI_PEI_PERFORMANCE)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_PEI_PERFORMANCE /D EFI_DXE_PERFORMANCE !ENDIF !IF "$(EFI_ADDTIONAL_DRIVERS)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_ADDTIONAL_DRIVERS !ENDIF !IF "$(EFI_USE_CUSTOM_COMPRESS)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_USE_CUSTOM_COMPRESS !ENDIF !IF "$(EFI_UNLOCK_FWH)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_UNLOCK_FWH !ENDIF !IF "$(EFI_DXE_PERFORMANCE)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DXE_PERFORMANCE !ENDIF !IF "$(EFI_DEBUG_SERIAL_PRINT)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_DEBUG_SERIAL_PRINT !ENDIF !IF "$(EFI_S3_RESUME)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_S3_RESUME !ENDIF !IF "$(EFI_PEI_REPORT_STATUS_CODE)" == "YES" C_STD_FLAGS = $(C_STD_FLAGS) /D EFI_PEI_REPORT_STATUS_CODE_ON !ENDIF ############################################################################### ############################################################################### # # Collect final build flags for components. These flags are used to build # any standard component and some non-standard components. # ############################################################################### C_FLAGS = $(C_STD_FLAGS) $(C_ARCH_FLAGS) $(C_PROJ_FLAGS) $(C_STD_INCLUDE) ASM_FLAGS = $(ASM_STD_FLAGS) $(ASM_ARCH_FLAGS) $(ASM_PROJ_FLAGS) LINK_FLAGS_DLL = $(LINK_STD_FLAGS) $(LINK_ARCH_FLAGS) $(LINK_PROJ_FLAGS) /DLL LINK_FLAGS_EXE = $(LINK_STD_FLAGS) $(LINK_ARCH_FLAGS) $(LINK_PROJ_FLAGS) LIB_FLAGS = $(LIB_STD_FLAGS) $(LIB_ARCH_FLAGS) $(LIB_PROJ_FLAGS) EBC_C_FLAGS = $(EBC_C_STD_FLAGS) $(EBC_C_ARCH_FLAGS) $(EBC_C_PROJ_FLAGS) EBC_LINK_FLAGS = $(EBC_LINK_STD_FLAGS) $(EBC_LINK_ARCH_FLAGS) $(EBC_LINK_PROJ_FLAGS) EBC_LIB_FLAGS = $(EBC_LIB_STD_FLAGS) $(EBC_LIB_ARCH_FLAGS) $(EBC_LIB_PROJ_FLAGS) ############################################################################### # # define X64 denpendant driver files # ############################################################################### !IF "$(EFI_BUILD_TARGET_X64)" == "YES" BUILD_TARGET_PROCESSOR = X64 DXE_IPL = DxeIplX64 !ELSE BUILD_TARGET_PROCESSOR = IA32 DXE_IPL = DxeIpl !ENDIF ############################################################################### # # define EFI specification denpendant driver files # ############################################################################### !IF "$(UEFI_MODE)" == "YES" UEFI_PREFIX = Uefi ATAPI_PASS_THRU_INF = Sample\Bus\Pci\AtapiExtPassThru\Dxe\AtapiExtPassThru.inf !IF "$(CAPSULE_INF)" == "" CAPSULE_INF = Sample\Universal\Capsule\RuntimeDxe\Capsule.inf !ENDIF DEVPATH_INF = Sample\Universal\DevicePath\Dxe\DevicePath.inf !ELSE UEFI_PREFIX = CAPSULE_INF = DEVPATH_INF = ATAPI_PASS_THRU_INF = Sample\Bus\Pci\AtapiPassThru\Dxe\AtapiPassThru.inf !ENDIF ############################################################################### # # define PIWG specification denpendant driver files # ############################################################################### !IF "$(PI_MODE)" == "YES" PI_PREFIX = Pi !ELSE PI_PREFIX = !ENDIF ############################################################################### # # define customized compress makefile # ############################################################################### CUSTOMIZEDCOMPRESS_MAKEFILE = $(EDK_TOOLS_SOURCE)\CustomizedCompress\Makefile COMPRESS_METHOD = Dummy ############################################################################### # # define EFI_BINARY default path # ############################################################################### !IFNDEF EFI_BINARY EFI_BINARY=$(EDK_TOOLS_OUTPUT)\Bin !ENDIF EFI_PLATFORM_BIN=$(EFI_BINARY)\$(PROJECT_NAME)$(BUILD_TARGET_DIRECTORY)