1##  @file
2# Shell Package
3#
4# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
5# Copyright (c) 2018 - 2020, Arm Limited. All rights reserved.<BR>
6# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
7#
8#    SPDX-License-Identifier: BSD-2-Clause-Patent
9#
10##
11
12[Defines]
13  PLATFORM_NAME                  = Shell
14  PLATFORM_GUID                  = E1DC9BF8-7013-4c99-9437-795DAA45F3BD
15  PLATFORM_VERSION               = 1.02
16  DSC_SPECIFICATION              = 0x00010006
17  OUTPUT_DIRECTORY               = Build/Shell
18  SUPPORTED_ARCHITECTURES        = IA32|X64|EBC|ARM|AARCH64|RISCV64
19  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
20  SKUID_IDENTIFIER               = DEFAULT
21
22[LibraryClasses.common]
23  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
24  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
25  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
26  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibOptionalDevicePathProtocol.inf
27!if $(TARGET) == RELEASE
28  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
29!else
30  DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
31!endif
32  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
33  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
34  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
35  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
36  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
37  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
38  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
39  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
40  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
41  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
42  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
43  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
44  !include NetworkPkg/NetworkLibs.dsc.inc
45
46  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
47  ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
48  ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
49  HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
50
51  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
52  BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
53  AcpiViewCommandLib|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
54  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
55
56  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
57  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
58  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
59  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
60  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
61  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
62
63[LibraryClasses.ARM,LibraryClasses.AARCH64]
64  #
65  # It is not possible to prevent the ARM compiler for generic intrinsic functions.
66  # This library provides the instrinsic functions generate by a given compiler.
67  # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
68  #
69  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
70
71  # Add support for GCC stack protector
72  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
73
74[PcdsFixedAtBuild]
75  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
76  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000
77!ifdef $(NO_SHELL_PROFILES)
78  gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x00
79!endif #$(NO_SHELL_PROFILES)
80
81[Components]
82  #
83  # Build all the libraries when building this package.
84  # This helps developers test changes and how they affect the package.
85  #
86  ShellPkg/Library/UefiShellLib/UefiShellLib.inf
87  ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
88  ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
89  ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
90  ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
91  ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
92  ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
93  ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
94  ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
95  ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
96  ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
97  ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
98  ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
99  ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
100
101  ShellPkg/Application/Shell/Shell.inf {
102    <PcdsFixedAtBuild>
103      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
104    <LibraryClasses>
105      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
106      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
107      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
108!ifndef $(NO_SHELL_PROFILES)
109      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
110      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
111      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
112      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
113      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
114!endif #$(NO_SHELL_PROFILES)
115  }
116
117  #
118  # Build a second version of the shell with all commands integrated
119  #
120  ShellPkg/Application/Shell/Shell.inf {
121   <Defines>
122      FILE_GUID = EA4BB293-2D7F-4456-A681-1F22F42CD0BC
123    <PcdsFixedAtBuild>
124      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
125    <LibraryClasses>
126      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
127      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
128      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
129      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
130      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
131      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
132      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
133      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
134      NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
135  }
136
137  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
138    <PcdsFixedAtBuild>
139      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
140  }
141  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf
142  ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {
143    <PcdsFixedAtBuild>
144      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
145  }
146  ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf
147  ShellPkg/Application/AcpiViewApp/AcpiViewApp.inf
148
149[BuildOptions]
150  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
151