summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg/Unix/Host/Host.inf
blob: c479d2b7d02968eb453d8ee14fdbdd934f81db74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
## @file
# Entry Point of Emu Emulator
#
# Main executable file of Unix Emulator that loads PEI core after initialization finished.
# Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = Host
  FILE_GUID                      = 8863C0AD-7724-C84B-88E5-A33B116D1485
  MODULE_TYPE                    = USER_DEFINED
  VERSION_STRING                 = 1.0

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  Host.c
  EmuThunk.c
  X11GraphicsWindow.c
  Pthreads.c
  PosixFileSystem.c
  BlockIo.c
  LinuxPacketFilter.c
  BerkeleyPacketFilter.c
  MemoryAllocationLib.c

[Sources.X64]
  X64/Gasket.S        # convert between Emu x86_64 ABI and EFI X64 ABI
  X64/SwitchStack.S

[Sources.IA32]
  Ia32/Gasket.S       # enforce 16-byte stack alignment for Mac OS X
  Ia32/SwitchStack.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  NetworkPkg/NetworkPkg.dec
  EmulatorPkg/EmulatorPkg.dec

[LibraryClasses]
  DebugLib
  PcdLib
  PrintLib
  BaseMemoryLib
  BaseLib
  PeCoffLib
  ThunkPpiList
  ThunkProtocolList
  PpiListLib
  PeiServicesLib
  PeCoffGetEntryPointLib

[Ppis]
  gEfiPeiStatusCodePpiGuid                      # PPI ALWAYS_PRODUCED
  gEmuThunkPpiGuid

[Protocols]
  gEmuIoThunkProtocolGuid
  gEmuIoThunkProtocolGuid
  gEmuGraphicsWindowProtocolGuid
  gEmuThreadThunkProtocolGuid
  gEmuBlockIoProtocolGuid
  gEmuSnpProtocolGuid
  gEfiSimpleFileSystemProtocolGuid

[Guids]
  gEfiFileSystemVolumeLabelInfoIdGuid           # SOMETIMES_CONSUMED
  gEfiFileInfoGuid                              # SOMETIMES_CONSUMED
  gEfiFileSystemInfoGuid                        # SOMETIMES_CONSUMED

[Pcd]
  gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode
  gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume
  gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFdBaseAddress
  gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareFdSize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize
  gEmulatorPkgTokenSpaceGuid.PcdEmuApCount
  gEmulatorPkgTokenSpaceGuid.PcdEmuVirtualDisk
  gEmulatorPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"
  gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem
  gEmulatorPkgTokenSpaceGuid.PcdEmuSerialPort
  gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface
  gEmulatorPkgTokenSpaceGuid.PcdNetworkPacketFilterSize

  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoveryBase
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoverySize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageVariableBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogBase
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogSize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwWorkingBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
  gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
  gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage

[FeaturePcd]
  gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols


[BuildOptions]
   GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m32 -L/usr/X11R6/lib
   GCC:*_*_IA32_CC_FLAGS == -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
   GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
   GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h

   GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
   GCC:*_GCC5_X64_DLINK_FLAGS == -flto -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
   GCC:*_*_X64_CC_FLAGS == -m64 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
   GCC:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
   GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
   GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os
   GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
   GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h

   GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11

#
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
#
   XCODE:*_*_IA32_DLINK_PATH == gcc
   XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
   XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
   XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g

   XCODE:*_*_X64_DLINK_PATH == gcc
   XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie
   XCODE:*_*_X64_ASM_FLAGS == -g
   XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))"