mirror of https://github.com/acidanthera/audk.git
CorebootPayloadPkg: Make shell selectable
Add all of the shell options from ShellBinPkg including building the shell from source. Enable link time optimization for GCC debug builds to keep the size under 0x3e0000. Test: Use -DSHELL_TYPE=BUILD_SHELL command line options to build the shell from source. Run the result on Galileo Gen2. Change-Id: I1e12adb57960ac5e75e682073540a9322aa03081 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com> Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
This commit is contained in:
parent
e2d105b302
commit
d3f5d59826
|
@ -153,17 +153,33 @@ INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
||||||
#
|
#
|
||||||
# Shell
|
# Shell
|
||||||
#
|
#
|
||||||
#!if $(ARCH) == IA32
|
!if $(SHELL_TYPE) == BUILD_SHELL
|
||||||
#INF RuleOverride = BINARY USE = IA32 ShellBinPkg/UefiShell/UefiShell.inf
|
INF ShellPkg/Application/Shell/Shell.inf
|
||||||
#!else
|
!endif
|
||||||
#INF RuleOverride = BINARY USE = X64 ShellBinPkg/UefiShell/UefiShell.inf
|
|
||||||
#!endif
|
!if $(SHELL_TYPE) == FULL_BIN
|
||||||
#
|
|
||||||
!if $(ARCH) == IA32
|
!if $(ARCH) == IA32
|
||||||
INF RuleOverride = BINARY USE = IA32 EdkShellBinPkg/FullShell/FullShell.inf
|
INF RuleOverride = BINARY USE = IA32 EdkShellBinPkg/FullShell/FullShell.inf
|
||||||
!else
|
!else
|
||||||
INF RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf
|
INF RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf
|
||||||
!endif
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
|
!if $(SHELL_TYPE) == MIN_BIN
|
||||||
|
!if $(ARCH) == IA32
|
||||||
|
INF RuleOverride = BINARY USE = IA32 ShellBinPkg/MinUefiShell/MinUefiShell.inf
|
||||||
|
!else
|
||||||
|
INF RuleOverride = BINARY USE = X64 ShellBinPkg/MinUefiShell/MinUefiShell.inf
|
||||||
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
|
!if $(SHELL_TYPE) == UEFI_BIN
|
||||||
|
!if $(ARCH) == IA32
|
||||||
|
INF RuleOverride = BINARY USE = IA32 ShellBinPkg/UefiShell/UefiShell.inf
|
||||||
|
!else
|
||||||
|
INF RuleOverride = BINARY USE = X64 ShellBinPkg/UefiShell/UefiShell.inf
|
||||||
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
||||||
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
||||||
|
|
|
@ -33,6 +33,11 @@
|
||||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||||
DEFINE SOURCE_DEBUG_ENABLE = FALSE
|
DEFINE SOURCE_DEBUG_ENABLE = FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Shell options: [BUILD_SHELL, FULL_BIN, MIN_BIN, NONE, UEFI]
|
||||||
|
#
|
||||||
|
DEFINE SHELL_TYPE = FULL_BIN
|
||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
@ -361,3 +366,71 @@
|
||||||
# Framebuffer Gop
|
# Framebuffer Gop
|
||||||
#
|
#
|
||||||
CorebootPayloadPkg/FbGop/FbGop.inf
|
CorebootPayloadPkg/FbGop/FbGop.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Build the shell
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
!if $(SHELL_TYPE) == BUILD_SHELL
|
||||||
|
|
||||||
|
[PcdsFixedAtBuild]
|
||||||
|
## This flag is used to control initialization of the shell library
|
||||||
|
# This should be FALSE for compiling the shell application itself only.
|
||||||
|
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Shell Lib
|
||||||
|
#
|
||||||
|
[LibraryClasses]
|
||||||
|
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
|
||||||
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
||||||
|
|
||||||
|
[Components.IA32]
|
||||||
|
ShellPkg/Application/Shell/Shell.inf {
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Basic commands
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Networking commands
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Performance command
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Support libraries
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
|
||||||
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
||||||
|
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
|
||||||
|
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
||||||
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
|
ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
|
||||||
|
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
|
||||||
|
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
||||||
|
SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
|
||||||
|
}
|
||||||
|
|
||||||
|
!endif
|
||||||
|
|
|
@ -33,7 +33,14 @@
|
||||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||||
DEFINE SOURCE_DEBUG_ENABLE = FALSE
|
DEFINE SOURCE_DEBUG_ENABLE = FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Shell options: [BUILD_SHELL, FULL_BIN, MIN_BIN, NONE, UEFI]
|
||||||
|
#
|
||||||
|
DEFINE SHELL_TYPE = FULL_BIN
|
||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
|
GCC:DEBUG_*_*_CC_FLAGS = -Og -flto
|
||||||
|
GCC:DEBUG_*_*_DLINK_FLAGS = -flto
|
||||||
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
|
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
|
||||||
|
@ -363,3 +370,71 @@
|
||||||
# Framebuffer Gop
|
# Framebuffer Gop
|
||||||
#
|
#
|
||||||
CorebootPayloadPkg/FbGop/FbGop.inf
|
CorebootPayloadPkg/FbGop/FbGop.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Build the shell
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
!if $(SHELL_TYPE) == BUILD_SHELL
|
||||||
|
|
||||||
|
[PcdsFixedAtBuild]
|
||||||
|
## This flag is used to control initialization of the shell library
|
||||||
|
# This should be FALSE for compiling the shell application itself only.
|
||||||
|
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Shell Lib
|
||||||
|
#
|
||||||
|
[LibraryClasses]
|
||||||
|
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
|
||||||
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
||||||
|
|
||||||
|
[Components.X64]
|
||||||
|
ShellPkg/Application/Shell/Shell.inf {
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Basic commands
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Networking commands
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
|
||||||
|
NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Performance command
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf
|
||||||
|
|
||||||
|
#------------------------------
|
||||||
|
# Support libraries
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
<LibraryClasses>
|
||||||
|
DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
|
||||||
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
||||||
|
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
|
||||||
|
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
||||||
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
|
ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
|
||||||
|
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
|
||||||
|
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
||||||
|
SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
|
||||||
|
}
|
||||||
|
|
||||||
|
!endif
|
||||||
|
|
Loading…
Reference in New Issue