ShellPkg/for: Fix potential null pointer deference
[mirror_edk2.git] / ShellPkg / ShellPkg.dsc
1 ##  @file\r
2 # Shell Package\r
3 #\r
4 # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
5 #\r
6 #    This program and the accompanying materials\r
7 #    are licensed and made available under the terms and conditions of the BSD License\r
8 #    which accompanies this distribution. The full text of the license may be found at\r
9 #    http://opensource.org/licenses/bsd-license.php\r
10 #\r
11 #    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 #    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 #\r
14 ##\r
15 \r
16 [Defines]\r
17   PLATFORM_NAME                  = Shell\r
18   PLATFORM_GUID                  = E1DC9BF8-7013-4c99-9437-795DAA45F3BD\r
19   PLATFORM_VERSION               = 1.02\r
20   DSC_SPECIFICATION              = 0x00010006\r
21   OUTPUT_DIRECTORY               = Build/Shell\r
22   SUPPORTED_ARCHITECTURES        = IA32|IPF|X64|EBC|ARM|AARCH64\r
23   BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT\r
24   SKUID_IDENTIFIER               = DEFAULT\r
25 \r
26 [LibraryClasses.common]\r
27   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf\r
28   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf\r
29   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
30   DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibOptionalDevicePathProtocol.inf\r
31 !if $(TARGET) == RELEASE\r
32   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
33 !else\r
34   DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf\r
35 !endif\r
36   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
37   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
38   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf\r
39   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf\r
40   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf\r
41   BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
42   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
43   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf\r
44   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf\r
45   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf\r
46   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf\r
47   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf\r
48   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf\r
49 \r
50   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
51   ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf\r
52   ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf\r
53   HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf\r
54 \r
55   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
56   BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf\r
57   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf\r
58 \r
59   UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf\r
60   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
61   TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf\r
62   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf\r
63   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
64   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf\r
65   ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf\r
66 \r
67 [LibraryClasses.ARM]\r
68   #\r
69   # It is not possible to prevent the ARM compiler for generic intrinsic functions.\r
70   # This library provides the instrinsic functions generate by a given compiler.\r
71   # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.\r
72   #\r
73   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
74 \r
75   # Add support for GCC stack protector\r
76   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf\r
77 \r
78 [LibraryClasses.AARCH64]\r
79   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
80 \r
81 [PcdsFixedAtBuild]\r
82   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF\r
83   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000\r
84 !ifdef $(NO_SHELL_PROFILES)\r
85   gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x00\r
86 !endif #$(NO_SHELL_PROFILES)\r
87 \r
88 [Components]\r
89   #\r
90   # Build all the libraries when building this package.\r
91   # This helps developers test changes and how they affect the package.\r
92   #\r
93   ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
94   ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf\r
95   ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf\r
96   ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf\r
97   ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf\r
98   ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf\r
99   ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf\r
100   ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf\r
101   ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf\r
102   ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf\r
103   ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf\r
104   ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf\r
105   ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf\r
106 \r
107   ShellPkg/Application/Shell/Shell.inf {\r
108     <PcdsFixedAtBuild>\r
109       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
110     <LibraryClasses>\r
111       NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf\r
112       NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf\r
113       NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf\r
114 !ifndef $(NO_SHELL_PROFILES)\r
115       NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf\r
116       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf\r
117       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf\r
118       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf\r
119       NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf\r
120 !endif #$(NO_SHELL_PROFILES)\r
121   }\r
122 \r
123   ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {\r
124     <PcdsFixedAtBuild>\r
125       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
126   }\r
127   ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf\r
128   ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {\r
129     <PcdsFixedAtBuild>\r
130       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
131     <LibraryClasses>\r
132       PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmmPerformanceLib.inf\r
133   }\r
134   ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf {\r
135     <LibraryClasses>\r
136       PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmmPerformanceLib.inf\r
137   }\r
138 \r
139 [BuildOptions]\r
140   *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES\r