| #/*++ | |
| # | |
| # Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR> | |
| # 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 | |
| EXE2BIN = $(EDK_TOOLS_OUTPUT)\Strip | |
| 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 | |
| GENTEIMAGE = $(EDK_TOOLS_OUTPUT)\GenTEImage | |
| GUIDCHK = $(EDK_TOOLS_OUTPUT)\GuidChk | |
| HIIPACK = $(EDK_TOOLS_OUTPUT)\HiiPack | |
| 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 /EHs-c- /GR- /Gy /GS- /D USE_VC8 /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| !ELSE | |
| C_STD_FLAGS = /nologo /W4 /WX /GX- /GR- /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| !ENDIF | |
| ASM_STD_FLAGS = /nologo /Fl$*.lst $(INC) | |
| !ELSE | |
| !IF "$(USE_VC8)" == "YES" | |
| C_STD_FLAGS = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /D USE_VC8 /c /Fo$@ $(INC) | |
| !ELSE | |
| C_STD_FLAGS = /nologo /W4 /WX /GX- /GR- /Gy /c /Fo$@ $(INC) | |
| !ENDIF | |
| ASM_STD_FLAGS = /nologo $(INC) | |
| !ENDIF | |
| 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 | |
| RC = rc | |
| !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 /EHs-c- /GR- /Gy /c /GS- /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| ASM_STD_FLAGS = /nologo /Fl$*.lst $(INC) | |
| !ELSE | |
| C_STD_FLAGS = /nologo /W4 /WX /EHs-c- /GR- /Gy /c /GS- /Fo$@ $(INC) | |
| ASM_STD_FLAGS = /nologo $(INC) | |
| !ENDIF | |
| 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 | |
| RC = rc | |
| !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 /EHs-c- /GR- /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| !ELSE | |
| !IF "$(USE_NEWDDK)" == "YES" | |
| C_STD_FLAGS = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| !ELSE | |
| C_STD_FLAGS = /nologo /W4 /WX /GX- /GR- /Gy /c /Fa$* /FAsc /Fo$@ /FR$(@R).SBR $(INC) | |
| !ENDIF | |
| !ENDIF | |
| !ELSE | |
| !IF "$(USE_VC8_IPF)" == "YES" | |
| C_STD_FLAGS = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fo$@ $(INC) | |
| !ELSE | |
| !IF "$(USE_NEWDDK)" == "YES" | |
| C_STD_FLAGS = /nologo /W4 /WX /EHs-c- /GR- /Gy /GS- /c /Fo$@ $(INC) | |
| !ELSE | |
| C_STD_FLAGS = /nologo /W4 /WX /GX- /GR- /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 | |
| RC = rc | |
| !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 | |
| ASM_STD_FLAGS = /nologo /Fl$*.lst $(INC) | |
| !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 | |
| ASM_STD_FLAGS = /nologo $(INC) | |
| !ENDIF | |
| 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 | |
| RC = rc | |
| !IF "$(EFI_SYMBOLIC_DEBUG)" == "YES" | |
| EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /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) | |
| C_FLAGS_ASL = $(C_FLAGS_ASL) $(VERSION_FLAGS) | |
| VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "$(VERSION_FLAGS)" | |
| !IF "$(TOOLCHAIN)" != "TOOLCHAIN_IPF" | |
| ASM_STD_FLAGS = $(ASM_STD_FLAGS) $(VERSION_FLAGS) | |
| !ENDIF | |
| !IF "$(TOOLCHAIN)" != "TOOLCHAIN_MSVC" | |
| BUILD_STRING_FLAGS = /D EFI_BUILD_VERSION="L\"$(EDK_BUILD_VERSION)\"" /D EFI_FIRMWARE_VENDOR="L\"TianoCore.org\"" | |
| !ELSE | |
| BUILD_STRING_FLAGS = /D UTILITY_BUILD="\"$(EDK_BUILD_VERSION)\"" /D UTILITY_VENDOR="\"TianoCore.org\"" | |
| !ENDIF | |
| C_STD_FLAGS = $(C_STD_FLAGS) $(BUILD_STRING_FLAGS) | |
| EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) $(BUILD_STRING_FLAGS) | |
| !IF "$(EFI_DEBUG)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_DEBUG | |
| !ENDIF | |
| !IF "$(EFI_DEBUG_CLEAR_MEMORY)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_DEBUG_CLEAR_MEMORY | |
| !ENDIF | |
| !IF "$(EFI_PEI_PERFORMANCE)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_PEI_PERFORMANCE /D EFI_DXE_PERFORMANCE | |
| !ENDIF | |
| !IF "$(EFI_ADDTIONAL_DRIVERS)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_ADDTIONAL_DRIVERS | |
| !ENDIF | |
| !IF "$(EFI_USE_CUSTOM_COMPRESS)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_USE_CUSTOM_COMPRESS | |
| !ENDIF | |
| !IF "$(EFI_UNLOCK_FWH)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_UNLOCK_FWH | |
| !ENDIF | |
| !IF "$(EFI_DXE_PERFORMANCE)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_DXE_PERFORMANCE | |
| !ENDIF | |
| !IF "$(EFI_S3_RESUME)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_S3_RESUME | |
| !ENDIF | |
| !IF "$(EFI_NO_CSM_SUPPORT)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_NO_CSM_SUPPORT | |
| !ENDIF | |
| !IF "$(EFI_SIZE_REDUCTION_APPLIED)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_SIZE_REDUCTION_APPLIED | |
| !ENDIF | |
| !IF "$(EFI_PEI_REPORT_STATUS_CODE)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D EFI_PEI_REPORT_STATUS_CODE_ON | |
| !ENDIF | |
| !IF "$(SIZE_REDUCTION_ISA_COMBINED)" == "YES" | |
| FEATURE_FLAGS = $(FEATURE_FLAGS) /D SIZE_REDUCTION_ISA_COMBINED | |
| !ENDIF | |
| C_STD_FLAGS = $(C_STD_FLAGS) $(FEATURE_FLAGS) | |
| EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) $(FEATURE_FLAGS) | |
| C_FLAGS_ASL = $(C_FLAGS_ASL) $(FEATURE_FLAGS) | |
| VFRCOMPILE_FLAGS = $(VFRCOMPILE_FLAGS) -ppflag "$(FEATURE_FLAGS)" | |
| !IF "$(TOOLCHAIN)" != "TOOLCHAIN_IPF" | |
| ASM_STD_FLAGS = $(ASM_STD_FLAGS) $(FEATURE_FLAGS) | |
| !ENDIF | |
| # | |
| # This is used for preprocessing dependency files | |
| # | |
| C_FLAGS_DPX = /nologo /EP $(INC) $(VERSION_FLAGS) $(FEATURE_FLAGS) | |
| ############################################################################### | |
| ############################################################################### | |
| # | |
| # 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_SOURCE)\Bin | |
| !ENDIF | |
| EFI_PLATFORM_BIN=$(EFI_BINARY)\$(PROJECT_NAME)$(BUILD_TARGET_DIRECTORY) |