457 lines
23 KiB
Makefile
457 lines
23 KiB
Makefile
## @file
|
|
# Common Makefile for project build
|
|
#
|
|
#******************************************************************************
|
|
#* Copyright (c) 2013 - 2021, Insyde Software Corp. All Rights Reserved.
|
|
#*
|
|
#* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
#* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
#* any part of this publication in any form, by any means, without the prior
|
|
#* written permission of Insyde Software Corporation.
|
|
#*
|
|
#******************************************************************************
|
|
|
|
#
|
|
# Build options for build targets
|
|
#
|
|
DDT_BUILD = -D INSYDE_DEBUGGER=YES
|
|
EFI_DEBUG = -D EFI_DEBUG=YES
|
|
DDT_DEBUG = -D INSYDE_DEBUGGER=YES -D EFI_DEBUG=YES
|
|
EFI_DEBUG_DDT = -D INSYDE_DEBUGGER=YES -D EFI_DEBUG=YES
|
|
PERF_BUILD = -D SYMBOLIC_DEBUG=YES -D INSYDE_DEBUGGER=NO -D EFI_DEBUG=NO -D FIRMWARE_PERFORMANCE=YES
|
|
EFI_DEBUG_USB = -D EFI_DEBUG=YES -D USB_DEBUG_SUPPORT=YES
|
|
SECURE_FLASH = -D SECURE_FLASH_SUPPORT=YES
|
|
FAST_CRISIS = -D USE_FAST_CRISIS_RECOVERY=YES
|
|
PEI_CRISIS = -D USE_FAST_CRISIS_RECOVERY=NO
|
|
EMULATOR_NOSCU_BUILD = "-D EMULATOR_NOSCU"
|
|
SCA_BUILD = -D SOURCE_CODE_ANALYSIS_BUILD=YES
|
|
|
|
!ifndef BUILD_MODE
|
|
#
|
|
# Available build modes
|
|
# -q: Quiet mode - disable all messages except fatal errors, module based messages
|
|
# -s: Silent mode - file based messages
|
|
# -v: Turn on verbose output with informational messages printed
|
|
#
|
|
BUILD_MODE = -q $(PROJECT_BUILD_MODE) --Dynamic-to-DynamicEx --fdm-revision 3
|
|
|
|
#@Prompt DdtDebug:description about what the DdtDebug is.
|
|
!ifdef DdtDebug
|
|
BUILD_MODE = $(BUILD_MODE) $(DDT_BUILD)
|
|
!endif
|
|
|
|
#@Prompt EfiDebug: description about what the EfiDebug is.
|
|
!ifdef EfiDebug
|
|
BUILD_MODE = $(BUILD_MODE) $(EFI_DEBUG)
|
|
!endif
|
|
|
|
#@Prompt FastCrisis:description about what the FastCrisis is.
|
|
!ifdef FastCrisis
|
|
BUILD_MODE = $(BUILD_MODE) $(SECURE_FLASH) $(FAST_CRISIS)
|
|
!endif
|
|
|
|
#@Prompt PeiCrisis:description about what the PeiCrisis is.
|
|
!ifdef PeiCrisis
|
|
BUILD_MODE = $(BUILD_MODE) $(SECURE_FLASH) $(PEI_CRISIS)
|
|
!endif
|
|
|
|
#@Prompt ScaBuild:Using cl /analyze for source code analysis
|
|
!ifdef ScaBuild
|
|
BUILD_MODE = $(BUILD_MODE) $(SCA_BUILD)
|
|
!endif
|
|
|
|
!endif
|
|
|
|
!ifndef BUILD_REPORT
|
|
BUILD_REPORT = -Y PCD -Y DEPEX -Y LIBRARY -y $(WORKSPACE)/Build/$(PROJECT_PKG)/BuildReport.txt
|
|
!endif
|
|
|
|
!ifndef RVS_STANDARD_BUILD
|
|
RVS_STANDARD_BUILD =
|
|
!endif
|
|
RVS_STANDARD_BUILD = -D USE_FAST_CRISIS_RECOVERY=YES --pcd gInsydeTokenSpaceGuid.PcdH2OFormBrowserLocalMetroDESupported=TRUE --pcd gInsydeTokenSpaceGuid.PcdH2OFormBrowserLocalTextDESupported=FALSE $(RVS_STANDARD_BUILD)
|
|
|
|
!ifndef BTFD_BUILD
|
|
BTFD_BUILD =
|
|
!endif
|
|
BTFD_BUILD = $(RVS_STANDARD_BUILD) --pcd PcdH2OSecurityEventDisplaySupported=TRUE --pcd PcdH2OPeiCpSecurityEventDetectSupported=TRUE --pcd PcdH2OBaseCpSecurityEventReportSupported=TRUE --pcd PcdH2OSecurityEventPageFaultSupported=TRUE --pcd PcdH2OSecurityEventGeneralProtectionFaultSupported=TRUE --pcd PcdH2OSecurityEventStackFrameChecksSupported=TRUE --pcd PcdH2OSecurityEventHeapChecksSupported=TRUE --pcd PcdH2OSecurityEventIntegerOverflowChecksSupported=TRUE $(BTFD_BUILD)
|
|
|
|
## @BuildTarget "IA32 X64", RELEASE, Release build for x86 64-bit CPU Arch.
|
|
uefi64:
|
|
@set H2O_BUILD_TYPE=$@
|
|
$(MAKE) release BUILD_TARGET=$@ BUILD_MODE="$(BUILD_MODE)"
|
|
|
|
## @BuildTarget "IA32", RELEASE, Release build for x86 32-bit CPU Arch.
|
|
uefi32:
|
|
@set H2O_BUILD_TYPE=$@
|
|
$(MAKE) release BUILD_TARGET=$@ BUILD_MODE="$(BUILD_MODE)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build for Insyde Debugger
|
|
uefi64ddt:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_BUILD)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Debug build for Insyde Debugger
|
|
uefi32ddt:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_BUILD)"
|
|
|
|
## @BuildTarget "IA32 X64", RELEASE, build UnitTest drivers for x86 64-bit CPU Arch
|
|
uefi64ut:
|
|
@set H2O_BUILD_TYPE=$@
|
|
$(MAKE) release BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="--pcd gInsydeTokenSpaceGuid.PcdH2OUnitTestBuild=TRUE"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build with UnitTest drivers for Insyde Debugger
|
|
uefi64ddtut:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_BUILD) --pcd gInsydeTokenSpaceGuid.PcdH2OUnitTestBuild=TRUE"
|
|
|
|
## @BuildTarget "Common", DEBUG, Debug build with EFI debug messages via serial port
|
|
efidebug:
|
|
set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build with EFI debug messages via serial port
|
|
debug64:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Debug build with EFI debug messages via serial port
|
|
debug32:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG)"
|
|
|
|
## @BuildTarget "Common", DEBUG, Debug build with EFI debug messages via USB port
|
|
efidebugusb:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_USB)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build with EFI debug messages via USB port
|
|
debug64usb:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_USB)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Debug build with EFI debug messages via USB port
|
|
debug32usb:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_USB)"
|
|
|
|
## @BuildTarget "Common", DEBUG, Debug build with EFI debug messages via serial port and Insyde Debugger application
|
|
efidebugddt:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_DDT)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build with EFI debug messages via serial port and Insyde Debugger application
|
|
debug64ddt:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_DDT)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Debug build with EFI debug messages via serial port and Insyde Debugger application
|
|
debug32ddt:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(EFI_DEBUG_DDT)"
|
|
|
|
## @BuildTarget "Common", DEBUG, Debug build with EFI debug messages via DDT cable and Insyde Debugger application
|
|
ddtdebug:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_DEBUG)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Debug build with EFI debug messages via DDT cable and Insyde Debugger application
|
|
ddtdebug64:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_DEBUG)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Debug build with EFI debug messages via DDT cable and Insyde Debugger application
|
|
ddtdebug32:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(DDT_DEBUG)"
|
|
|
|
## @BuildTarget "IA32 X64", DEBUG, Performance-log enabled build for x86 64-bit CPU Arch.
|
|
uefi64perf:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(PERF_BUILD)"
|
|
|
|
## @BuildTarget "IA32", DEBUG, Performance-log enabled build for x86 32-bit CPU Arch.
|
|
uefi32perf:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) debug BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(PERF_BUILD)"
|
|
|
|
## @BuildTarget "IA32 X64", RELEASE, SCA enabled build for x86 64-bit CPU Arch.
|
|
uefi64sca:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) release BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(SCA_BUILD)"
|
|
|
|
## @BuildTarget "IA32", RELEASE, SCA enabled build for x86 32-bit CPU Arch.
|
|
uefi32sca:
|
|
@set H2O_BUILD_TYPE=$@
|
|
@$(MAKE) release BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(SCA_BUILD)"
|
|
|
|
|
|
## @BuildTarget "Common", RELEASE, Release package build for InsydeModulePkg package with SOURCE_CODE_ANALYSIS_BUILD
|
|
kernelsca:
|
|
@$(MAKE) /nologo kernel BUILD_TARGET_OPTIONS="$(SCA_BUILD)" ScaBuild=
|
|
|
|
## @BuildTarget "IA32 X64", RELEASE, Release build for ABT RVS(Remove Validation System) test.
|
|
uefi64rvsstandard:
|
|
@$(MAKE) release BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(RVS_STANDARD_BUILD)"
|
|
|
|
## @BuildTarget "IA32 X64", RELEASE, Release build for ABT BTFD(Boot Threat Firmware Detection) test.
|
|
uefi64btfd:
|
|
@$(MAKE) release BUILD_TARGET=$@ BUILD_TARGET_OPTIONS="$(BTFD_BUILD)"
|
|
|
|
## @BuildTarget "Common", RELEASE, Release package build for InsydeModulePkg package
|
|
kernel: cleancache
|
|
set PROJECT_PKG=InsydeModulePkg
|
|
nmake /nologo genfont
|
|
nmake /nologo genlayout
|
|
set PROJECT_PKG=
|
|
@build -p InsydeModulePkg\InsydeModulePkg.dsc -N -s -b RELEASE $(BUILD_TARGET_OPTIONS) $(BUILD_PCD_VALUE) --Dynamic-to-DynamicEx
|
|
!IFDEF ScaBuild
|
|
@$(MAKE) /nologo genkernelscareport
|
|
!ENDIF
|
|
|
|
utapp: cleancache
|
|
build -p UefiCpuPkg\Override\Test\UefiCpuPkgHostTest.dsc -a IA32 -b NOOPT
|
|
build -p MdeModulePkg\Override\Test\MdeModulePkgHostTest.dsc -a IA32 -b NOOPT
|
|
build -p FmpDevicePkg\Override\Test\FmpDeviceHostPkgTest.dsc -a IA32 -b NOOPT
|
|
build -p MdePkg\Override\Test\MdePkgHostTest.dsc -a IA32 -b NOOPT
|
|
build -p UnitTestFrameworkPkg\Override\Test\UnitTestFrameworkPkgHostTest.dsc -a IA32 -b NOOPT
|
|
set TempLIB=$(LIB)
|
|
set LIB=$(VC_PATH)\VC\Lib\amd64$(LIB)
|
|
build -p UefiCpuPkg\Override\Test\UefiCpuPkgHostTest.dsc -a X64 -b NOOPT
|
|
build -p MdeModulePkg\Override\Test\MdeModulePkgHostTest.dsc -a X64 -b NOOPT
|
|
build -p FmpDevicePkg\Override\Test\FmpDeviceHostPkgTest.dsc -a X64 -b NOOPT
|
|
build -p MdePkg\Override\Test\MdePkgHostTest.dsc -a X64 -b NOOPT
|
|
build -p UnitTestFrameworkPkg\Override\Test\UnitTestFrameworkPkgHostTest.dsc -a X64 -b NOOPT
|
|
set LIB=TempLIB
|
|
|
|
genkernelscareport:
|
|
if not exist $(WORKSPACE)\Insyde\InsydeModulePkg\KernelSourceCodeAnalysis.csv echo.> $(WORKSPACE)\Insyde\InsydeModulePkg\KernelSourceCodeAnalysis.csv
|
|
echo. > $(WORKSPACE)\Build\InsydeModulePkg\RELEASE_$(TOOL_CHAIN)\ScaBuildLog.txt
|
|
for /f %%i in ('dir /s /b $(WORKSPACE)\Build\InsydeModulePkg\RELEASE_$(TOOL_CHAIN)\*.analysis.txt') do @type %%i >> $(WORKSPACE)\Build\InsydeModulePkg\RELEASE_$(TOOL_CHAIN)\ScaBuildLog.txt
|
|
SourceCodeAnalyzer --logfile $(WORKSPACE)\Build\InsydeModulePkg\RELEASE_$(TOOL_CHAIN)\ScaBuildLog.txt --inputfile $(WORKSPACE)\Insyde\InsydeModulePkg\KernelSourceCodeAnalysis.csv --outputfile $(WORKSPACE)\Insyde\InsydeModulePkg\KernelSourceCodeAnalysis.csv
|
|
|
|
|
|
nt32noscu:
|
|
@$(MAKE) /nologo nt32 BUILD_TARGET=$@ BUILD_TARGET_OPTIONS=$(EMULATOR_NOSCU_BUILD)
|
|
|
|
nt64noscu:
|
|
@$(MAKE) /nologo nt64 BUILD_TARGET=$@ BUILD_TARGET_OPTIONS=$(EMULATOR_NOSCU_BUILD)
|
|
|
|
## @BuildTarget "IA32", DEBUG, Build NT32 emulation package
|
|
## Before buliding DSC file, temporarily set PROJECT_PKG as NtEmulator32 for output folder of genfont and genlayout
|
|
nt32: cleancache gen_debug_target clean_debug_var clean_debug_vfr gen_build_pcd_value
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) /nologo $@ BUILD_TARGET=$@ %i
|
|
!ELSE
|
|
!IF "$(BUILD_PCD_VALUE)" == ""
|
|
@for /f "tokens=*" %%a in ($(WORKSPACE)\Build\BuildPcdValue.txt) do $(MAKE) $@ BUILD_PCD_VALUE="%%a"
|
|
!ELSE
|
|
nmake /nologo genfont genlayout
|
|
if exist ProjectPreBuild.bat call ProjectPreBuild.bat nt32
|
|
@build -N -q -p Build/$(PROJECT_PKG)/Project.dsc -s -a IA32 -b DEBUG $(BUILD_TARGET_OPTIONS) $(BUILD_PCD_VALUE) --Dynamic-to-DynamicEx -D PROJECT_REL_PATH=$(PROJECT_REL_PATH)
|
|
if exist ProjectPostBuild.bat call ProjectPostBuild.bat nt32
|
|
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev1\EFI\Microsoft\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev1\EFI\Microsoft\Boot
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev2\EFI\redhat mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev2\EFI\redhat
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev3\EFI\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev3\EFI\Boot
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev4\EFI\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev4\EFI\Boot
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\IA32\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev1\EFI\Microsoft\Boot\bootmgfw.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\IA32\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev2\EFI\redhat\grub.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\IA32\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev3\EFI\Boot\bootx64.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\IA32\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\EFI\Dev4\EFI\Boot\bootx64.efi
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
## @BuildTarget "X64", DEBUG, Build NT64 emulation package
|
|
## Before buliding DSC file, temporarily set PROJECT_PKG as NtEmulator64 for output folder of genfont and genlayout
|
|
nt64: cleancache gen_debug_target clean_debug_var gen_build_pcd_value
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) /nologo $@ BUILD_TARGET=$@ %i
|
|
!ELSE
|
|
!IF "$(BUILD_PCD_VALUE)" == ""
|
|
@for /f "tokens=*" %%a in ($(WORKSPACE)\Build\BuildPcdValue.txt) do $(MAKE) $@ BUILD_PCD_VALUE="%%a"
|
|
!ELSE
|
|
nmake /nologo genfont genlayout
|
|
if exist ProjectPreBuild.bat call ProjectPreBuild.bat nt64
|
|
@build -N -q -p Build/$(PROJECT_PKG)/Project.dsc -s -a X64 -b DEBUG $(BUILD_TARGET_OPTIONS) $(BUILD_PCD_VALUE) --Dynamic-to-DynamicEx -D PROJECT_REL_PATH=$(PROJECT_REL_PATH)
|
|
if exist ProjectPostBuild.bat call ProjectPostBuild.bat nt64
|
|
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev1\EFI\Microsoft\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev1\EFI\Microsoft\Boot
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev2\EFI\redhat mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev2\EFI\redhat
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev3\EFI\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev3\EFI\Boot
|
|
@if not exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev4\EFI\Boot mkdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev4\EFI\Boot
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\X64\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev1\EFI\Microsoft\Boot\bootmgfw.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\X64\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev2\EFI\redhat\grub.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\X64\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev3\EFI\Boot\bootx64.efi
|
|
@copy /y $(WORKSPACE)\EDK2\ShellBinPkg\UefiShell\X64\Shell.efi $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\EFI\Dev4\EFI\Boot\bootx64.efi
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
## @BuildTarget "IA32", DEBUG, Run NT32 emulation
|
|
run: cleancache
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@GetProjectEnv PROJECT_PKG > NUL
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) $@ %i
|
|
!ELSE
|
|
cd %WORKSPACE%\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32 & %WORKSPACE%\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\IA32\SecMain.exe
|
|
!ENDIF
|
|
|
|
|
|
## @BuildTarget "X64", DEBUG, Run NT64 emulation
|
|
run64: cleancache
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@GetProjectEnv PROJECT_PKG > NUL
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) $@ %i
|
|
!ELSE
|
|
cd %WORKSPACE%\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64 & %WORKSPACE%\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\X64\SecMain.exe
|
|
!ENDIF
|
|
|
|
cleancache:
|
|
@if exist $(WORKSPACE)\Conf\.cache rmdir $(WORKSPACE)\Conf\.cache /s /q
|
|
|
|
clean: cleancache
|
|
@if exist $(WORKSPACE)\Build rmdir $(WORKSPACE)\Build /s /q
|
|
|
|
release: cleancache gen_release_target genfont genlayout clean_release_var clean_release_vfr gen_build_pcd_value
|
|
!IF exist ($(WORKSPACE)\Build\$(PROJECT_PKG)\RELEASE_$(TOOL_CHAIN)\Makefile)
|
|
@set H2O_CLEAN_BUILD=FALSE
|
|
!ELSE
|
|
@set H2O_CLEAN_BUILD=TRUE
|
|
!ENDIF
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) $@ %i
|
|
!ELSE
|
|
!IF "$(BUILD_PCD_VALUE)" == ""
|
|
@for /f "tokens=*" %%a in ($(WORKSPACE)\Build\BuildPcdValue.txt) do $(MAKE) $@ BUILD_PCD_VALUE="%%a"
|
|
!ELSE
|
|
@ReportBuildInfo -START
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PreBuildStartTime
|
|
if exist ProjectPreBuild.bat call ProjectPreBuild.bat $(BUILD_TARGET)
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PreBuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat BuildStartTime
|
|
@call <<$(WORKSPACE)\Build\$(PROJECT_PKG)\BuildHandleError.bat
|
|
build -N $(BUILD_MODE) $(BUILD_TARGET_OPTIONS) $(BUILD_PCD_VALUE) $(BUILD_REPORT) $(PROJECT_BUILD_OPTIONS) -D CHIPSET_REL_PATH=$(CHIPSET_REL_PATH) -D PROJECT_REL_PATH=$(PROJECT_REL_PATH)
|
|
@if errorlevel 1 goto error
|
|
@goto done
|
|
:error
|
|
@ReportBuildInfo -FAILED
|
|
@exit /b 1
|
|
:done
|
|
<<NOKEEP
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat BuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PostBuildStartTime
|
|
if exist ProjectPostBuild.bat call ProjectPostBuild.bat $(BUILD_TARGET)
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PostBuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat
|
|
@ReportBuildInfo -SUCCESS
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
debug: cleancache gen_debug_target genfont genlayout clean_debug_var clean_debug_vfr gen_build_pcd_value
|
|
!IF exist ($(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\Makefile)
|
|
@set H2O_CLEAN_BUILD=FALSE
|
|
!ELSE
|
|
@set H2O_CLEAN_BUILD=TRUE
|
|
!ENDIF
|
|
!IF "$(PROJECT_PKG)" == ""
|
|
@for /f %%i in ('GetProjectEnv PROJECT_PKG') do $(MAKE) $@ %i
|
|
!ELSE
|
|
!IF "$(BUILD_PCD_VALUE)" == ""
|
|
@for /f "tokens=*" %%a in ($(WORKSPACE)\Build\BuildPcdValue.txt) do $(MAKE) $@ BUILD_PCD_VALUE="%%a"
|
|
!ELSE
|
|
@ReportBuildInfo -START
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PreBuildStartTime
|
|
if exist ProjectPreBuild.bat call ProjectPreBuild.bat $(BUILD_TARGET)
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PreBuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat BuildStartTime
|
|
@call <<$(WORKSPACE)\Build\$(PROJECT_PKG)\BuildHandleError.bat
|
|
build -N $(BUILD_MODE) $(BUILD_TARGET_OPTIONS) $(BUILD_PCD_VALUE) $(BUILD_REPORT) $(PROJECT_BUILD_OPTIONS) -D CHIPSET_REL_PATH=$(CHIPSET_REL_PATH) -D PROJECT_REL_PATH=$(PROJECT_REL_PATH)
|
|
@if errorlevel 1 goto error
|
|
@goto done
|
|
:error
|
|
@ReportBuildInfo -FAILED
|
|
@exit /b 1
|
|
:done
|
|
<<NOKEEP
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat BuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PostBuildStartTime
|
|
if exist ProjectPostBuild.bat call ProjectPostBuild.bat $(BUILD_TARGET)
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat PostBuildEndTime
|
|
@call $(WORKSPACE)\BaseTools\Bin\Win32\BuildTimeReport.bat
|
|
@ReportBuildInfo -SUCCESS
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
genfont:
|
|
!IF "$(PROJECT_PKG)" != ""
|
|
@create_temporary_font_hpk.bat
|
|
!ENDIF
|
|
|
|
genlayout:
|
|
!IF "$(PROJECT_PKG)" != ""
|
|
@create_temporary_layout_hpk.bat
|
|
!ENDIF
|
|
|
|
gen_build_pcd_value:
|
|
!IF "$(BUILD_PCD_VALUE)" == ""
|
|
#
|
|
# Set PCD values if string tokens are defined in Project.uni.
|
|
#
|
|
# For STR_CCB_VERSION , transfer "CCB12.34.56" to 0x12345600 (PcdH2OCcbVersion).
|
|
# For STR_ESRT_VERSION , transfer "12345678" to 0x12345678 (PcdH2OEsrtSystemFirmwareVersion).
|
|
# For STR_ESRT_LOWEST_SUPPORTED_VERSION, transfer "12345678" to 0x12345678 (PcdH2OEsrtSystemFirmwareLowestSupportedVersion).
|
|
# For STR_ESRT_FIRMWARE_GUID , transfer "12345678-90ab-cdef-1122-334455667788" to {0x78,0x56,0x34,0x12,0xab,0x90,0xef,0xcd,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88} (PcdH2OEsrtSystemFirmwareGuid).
|
|
#
|
|
@if not exist $(WORKSPACE)\Build mkdir $(WORKSPACE)\Build
|
|
@if exist $(WORKSPACE)\Build\BuildPcdValue.txt del $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
-@for /f "tokens=1-3 delims=.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" %%a in ('GetProjectEnv PROJECT_UNI_STR_VALUE STR_CCB_VERSION') do \
|
|
@set /p="--pcd gInsydeTokenSpaceGuid.PcdH2OCcbVersion=0x%%a%%b%%c00 " <nul >> $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
-@for /f %%a in ('GetProjectEnv PROJECT_UNI_STR_VALUE STR_ESRT_VERSION') do \
|
|
@set /p="--pcd gInsydeTokenSpaceGuid.PcdH2OEsrtSystemFirmwareVersion=0x%%a " <nul >> $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
-@for /f %%a in ('GetProjectEnv PROJECT_UNI_STR_VALUE STR_ESRT_LOWEST_SUPPORTED_VERSION') do \
|
|
@set /p="--pcd gInsydeTokenSpaceGuid.PcdH2OEsrtSystemFirmwareLowestSupportedVersion=0x%%a " <nul >> $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
-@for /f %%a in ('GetProjectEnv PROJECT_UNI_STR_VALUE STR_ESRT_FIRMWARE_GUID') do \
|
|
@call <<String2Guid.bat %%a
|
|
@set g=%1
|
|
@set /p="--pcd gInsydeTokenSpaceGuid.PcdH2OEsrtSystemFirmwareGuid=H{0x%g:~6,2%,0x%g:~4,2%,0x%g:~2,2%,0x%g:~0,2%,0x%g:~11,2%,0x%g:~9,2%,0x%g:~16,2%,0x%g:~14,2%,0x%g:~19,2%,0x%g:~21,2%,0x%g:~24,2%,0x%g:~26,2%,0x%g:~28,2%,0x%g:~30,2%,0x%g:~32,2%,0x%g:~34,2%} " <nul >> $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
@set /p="--pcd gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid=H{0x%g:~6,2%,0x%g:~4,2%,0x%g:~2,2%,0x%g:~0,2%,0x%g:~11,2%,0x%g:~9,2%,0x%g:~16,2%,0x%g:~14,2%,0x%g:~19,2%,0x%g:~21,2%,0x%g:~24,2%,0x%g:~26,2%,0x%g:~28,2%,0x%g:~30,2%,0x%g:~32,2%,0x%g:~34,2%} " <nul >> $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
<<
|
|
|
|
@if not exist $(WORKSPACE)\Build\BuildPcdValue.txt @echo --pcd gInsydeTokenSpaceGuid.PcdH2OCcbVersion=0 > $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
!ELSE
|
|
@if exist $(WORKSPACE)\Build\BuildPcdValue.txt del $(WORKSPACE)\Build\BuildPcdValue.txt
|
|
!ENDIF
|
|
|
|
clean_release_var:
|
|
@if exist $(WORKSPACE)\Build\$(PROJECT_PKG)\RELEASE_$(TOOL_CHAIN)\FV\VarFile rmdir $(WORKSPACE)\Build\$(PROJECT_PKG)\RELEASE_$(TOOL_CHAIN)\FV\VarFile /s /q
|
|
|
|
clean_debug_var:
|
|
@if exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\FV\VarFile rmdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\FV\VarFile /s /q
|
|
|
|
clean_release_vfr:
|
|
@if exist $(WORKSPACE)\Build\$(PROJECT_PKG)\RELEASE_$(TOOL_CHAIN)\FV\VfrFile rmdir $(WORKSPACE)\Build\$(PROJECT_PKG)\RELEASE_$(TOOL_CHAIN)\FV\VfrFile /s /q
|
|
|
|
clean_debug_vfr:
|
|
@if exist $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\FV\VfrFile rmdir $(WORKSPACE)\Build\$(PROJECT_PKG)\DEBUG_$(TOOL_CHAIN)\FV\VfrFile /s /q
|
|
|
|
|
|
gen_release_target:
|
|
@echo ACTIVE_PLATFORM = Build/$(PROJECT_PKG)/Project.dsc > $(WORKSPACE)\Conf\target.txt
|
|
@echo TARGET_ARCH = $(ARCH) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TARGET = RELEASE >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TOOL_CHAIN_CONF = Conf/tools_def.txt >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TOOL_CHAIN_TAG = $(TOOL_CHAIN) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo MAX_CONCURRENT_THREAD_NUMBER = $(NUMBER_OF_PROCESSORS) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo BUILD_RULE_CONF = Conf/build_rule.txt >> $(WORKSPACE)\Conf\target.txt
|
|
|
|
gen_debug_target:
|
|
@echo ACTIVE_PLATFORM = Build/$(PROJECT_PKG)/Project.dsc > $(WORKSPACE)\Conf\target.txt
|
|
@echo TARGET_ARCH = $(ARCH) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TARGET = DEBUG >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TOOL_CHAIN_CONF = Conf/tools_def.txt >> $(WORKSPACE)\Conf\target.txt
|
|
@echo TOOL_CHAIN_TAG = $(TOOL_CHAIN) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo MAX_CONCURRENT_THREAD_NUMBER = $(NUMBER_OF_PROCESSORS) >> $(WORKSPACE)\Conf\target.txt
|
|
@echo BUILD_RULE_CONF = Conf/build_rule.txt >> $(WORKSPACE)\Conf\target.txt
|
|
|