]> git.proxmox.com Git - mirror_edk2.git/blame - DuetPkg/BootSector/Makefile
Porting Duet module from EDKI to EDKII
[mirror_edk2.git] / DuetPkg / BootSector / Makefile
CommitLineData
c69dd9df 1\r
2#\r
3# Platform Macro Definition\r
4#\r
5PLATFORM_NAME = DuetPkg\r
6PLATFORM_GUID = 199E24E0-0989-42aa-87F2-611A8C397E72\r
7PLATFORM_VERSION = 0.3\r
8PLATFORM_RELATIVE_DIR = DuetPkg\r
9PLATFORM_DIR = $(WORKSPACE)\DuetPkg\r
10PLATFORM_OUTPUT_DIR = Build\DuetPkg\r
11\r
12#\r
13# Module Macro Definition\r
14#\r
15MODULE_NAME = BootSector\r
16MODULE_GUID = 2410F0DF-D915-4137-BD04-AAB6BA4C50E0\r
17MODULE_VERSION = 1.0\r
18MODULE_TYPE = USER_DEFINED\r
19MODULE_FILE_BASE_NAME = BootSector\r
20BASE_NAME = $(MODULE_NAME)\r
21MODULE_RELATIVE_DIR = DuetPkg\BootSector\r
22MODULE_DIR = $(WORKSPACE)\DuetPkg\BootSector\r
23\r
24#\r
25# Build Configuration Macro Definition\r
26#\r
27ARCH = IA32\r
28TOOLCHAIN_TAG = MYTOOLS\r
29TARGET = DEBUG\r
30BASETOOLS_DIR=m:\tree\working\BaseTools\Bin\Win32\r
31\r
32#\r
33# Build Directory Macro Definition\r
34#\r
35# PLATFORM_BUILD_DIR = m:\tree\working\Build\DuetPkg\DEBUG_MYTOOLS\r
36BUILD_DIR = $(WORKSPACE)\Build\DuetPkg\DEBUG_MYTOOLS\r
37BIN_DIR = $(BUILD_DIR)\IA32\r
38LIB_DIR = $(BIN_DIR)\r
39MODULE_BUILD_DIR = $(BUILD_DIR)\IA32\DuetPkg\BootSector\BootSector\r
40OUTPUT_DIR = $(MODULE_BUILD_DIR)\OUTPUT\r
41DEBUG_DIR = $(MODULE_BUILD_DIR)\DEBUG\r
42DEST_DIR_OUTPUT = $(OUTPUT_DIR)\r
43DEST_DIR_DEBUG = $(DEBUG_DIR)\r
44\r
45#\r
46# Default Tools Flags Macro Definition (from tools_def.txt by default)\r
47#\r
48DEFAULT_PP_FLAGS = /nologo /E /TC /FIAutoGen.h\r
49DEFAULT_SLINK_FLAGS = /nologo /LTCG\r
50DEFAULT_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs8192 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
51DEFAULT_APP_FLAGS = /nologo /E /TC\r
52DEFAULT_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FIAutoGen.h\r
53DEFAULT_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
54DEFAULT_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
55DEFAULT_TIANO_FLAGS = \r
56DEFAULT_MAKE_FLAGS = /nologo\r
57DEFAULT_ASMLINK_FLAGS = /nologo /tiny\r
58DEFAULT_ASL_FLAGS = \r
59\r
60\r
61#\r
62# Platform Tools Flags Macro Definition (from platform description file)\r
63#\r
64PLATFORM_PP_FLAGS = \r
65PLATFORM_SLINK_FLAGS = \r
66PLATFORM_CC_FLAGS = \r
67PLATFORM_APP_FLAGS = \r
68PLATFORM_VFRPP_FLAGS = \r
69PLATFORM_DLINK_FLAGS = \r
70PLATFORM_ASM_FLAGS = \r
71PLATFORM_TIANO_FLAGS = \r
72PLATFORM_MAKE_FLAGS = \r
73PLATFORM_ASMLINK_FLAGS = \r
74PLATFORM_ASL_FLAGS = \r
75\r
76\r
77#\r
78# Module Tools Flags Macro Definition (from platform/module description file)\r
79#\r
80MODULE_PP_FLAGS = \r
81MODULE_SLINK_FLAGS = \r
82MODULE_CC_FLAGS = \r
83MODULE_APP_FLAGS = \r
84MODULE_VFRPP_FLAGS = \r
85MODULE_DLINK_FLAGS = \r
86MODULE_ASM_FLAGS = \r
87MODULE_TIANO_FLAGS = \r
88MODULE_MAKE_FLAGS = \r
89MODULE_ASMLINK_FLAGS = \r
90MODULE_ASL_FLAGS = \r
91\r
92\r
93#\r
94# Tools Flag Macro\r
95#\r
96PP_FLAGS = $(DEFAULT_PP_FLAGS) $(PLATFORM_PP_FLAGS) $(MODULE_PP_FLAGS)\r
97SLINK_FLAGS = $(DEFAULT_SLINK_FLAGS) $(PLATFORM_SLINK_FLAGS) $(MODULE_SLINK_FLAGS)\r
98CC_FLAGS = $(DEFAULT_CC_FLAGS) $(PLATFORM_CC_FLAGS) $(MODULE_CC_FLAGS)\r
99APP_FLAGS = $(DEFAULT_APP_FLAGS) $(PLATFORM_APP_FLAGS) $(MODULE_APP_FLAGS)\r
100VFRPP_FLAGS = $(DEFAULT_VFRPP_FLAGS) $(PLATFORM_VFRPP_FLAGS) $(MODULE_VFRPP_FLAGS)\r
101DLINK_FLAGS = $(DEFAULT_DLINK_FLAGS) $(PLATFORM_DLINK_FLAGS) $(MODULE_DLINK_FLAGS)\r
102ASM_FLAGS = $(DEFAULT_ASM_FLAGS) $(PLATFORM_ASM_FLAGS) $(MODULE_ASM_FLAGS)\r
103TIANO_FLAGS = $(DEFAULT_TIANO_FLAGS) $(PLATFORM_TIANO_FLAGS) $(MODULE_TIANO_FLAGS)\r
104MAKE_FLAGS = $(DEFAULT_MAKE_FLAGS) $(PLATFORM_MAKE_FLAGS) $(MODULE_MAKE_FLAGS)\r
105ASMLINK_FLAGS = $(DEFAULT_ASMLINK_FLAGS) $(PLATFORM_ASMLINK_FLAGS) $(MODULE_ASMLINK_FLAGS)\r
106ASL_FLAGS = $(DEFAULT_ASL_FLAGS) $(PLATFORM_ASL_FLAGS) $(MODULE_ASL_FLAGS)\r
107\r
108\r
109#\r
110# Tools Path Macro\r
111#\r
112PP = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\cl.exe\r
113SLINK = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\lib.exe\r
114CC = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\cl.exe\r
115APP = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\cl.exe\r
116VFRPP = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\cl.exe\r
117DLINK = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\link.exe\r
118ASM = C:\WINDDK\3790.1830\bin\x86\ml.exe\r
119TIANO = TianoCompress.exe\r
120MAKE = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\nmake.exe\r
121#ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link.exe\r
122ASMLINK = C:\WINDDK\3790.1830\bin\bin16\link16.exe\r
123ASL = C:\ASL\iasl.exe\r
124\r
125\r
126MAKE_FILE = $(MODULE_BUILD_DIR)\Makefile\r
127\r
128#\r
129# Shell Command Macro\r
130#\r
131RD = rmdir /s /q\r
132RM = del /f /q\r
133MD = mkdir\r
134CP = copy /y\r
135MV = move /y\r
136\r
137\r
138#\r
139# Build Macro\r
140#\r
141ASSEMBLY_CODE_FILE_LIST = $(MODULE_DIR)\bootsect.asm \\r
142 $(MODULE_DIR)\bs16.asm \\r
143 $(MODULE_DIR)\bs32.asm \\r
144 $(MODULE_DIR)\efi32.asm \\r
145 $(MODULE_DIR)\Gpt.asm \\r
146 $(MODULE_DIR)\Mbr.asm \\r
147 $(MODULE_DIR)\start.asm \\r
148 $(MODULE_DIR)\start16.asm \\r
149 $(MODULE_DIR)\start32.asm \r
150\r
151TARGET_FILES = $(OUTPUT_DIR)\bootsect.com \\r
152 $(OUTPUT_DIR)\bs16.com \\r
153 $(OUTPUT_DIR)\bs32.com \\r
154 $(OUTPUT_DIR)\Gpt.com \\r
155 $(OUTPUT_DIR)\Mbr.com \\r
156 $(OUTPUT_DIR)\Start.com \\r
157 $(OUTPUT_DIR)\Start16.com \\r
158 $(OUTPUT_DIR)\Start32.com \\r
159 $(OUTPUT_DIR)\efi32.com2\r
160\r
161INC = \r
162 \r
163\r
164#OBJECTS = \r
165\r
166LIBS = \r
167\r
168COMMON_DEPS = \r
169\r
170all: init $(TARGET_FILES) loader\r
171 \r
172init:\r
173 if not exist $(OUTPUT_DIR) mkdir $(OUTPUT_DIR)\r
174 if not exist $(DEBUG_DIR) mkdir $(DEBUG_DIR)\r
175\r
176#============= \r
177$(OUTPUT_DIR)\bootsect.obj:$(MODULE_DIR)\bootsect.asm\r
178 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\bootsect.obj" /FR"$(OUTPUT_DIR)\bootsect.txt" "$(MODULE_DIR)\bootsect.asm"\r
179 \r
180$(OUTPUT_DIR)\bootsect.com:$(OUTPUT_DIR)\bootsect.obj\r
181 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\bootsect.obj,$(OUTPUT_DIR)\bootsect.com,$(OUTPUT_DIR)\bootsect.map,,,\r
182\r
183#============= \r
184\r
185$(OUTPUT_DIR)\bs16.obj:$(MODULE_DIR)\bs16.asm\r
186 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\bs16.obj" "$(MODULE_DIR)\bs16.asm"\r
187 \r
188$(OUTPUT_DIR)\bs16.com:$(OUTPUT_DIR)\bs16.obj\r
189 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\bs16.obj,$(OUTPUT_DIR)\bs16.com,$(OUTPUT_DIR)\bs16.map,,,\r
190\r
191#============= \r
192\r
193$(OUTPUT_DIR)\bs32.obj:$(MODULE_DIR)\bs32.asm\r
194 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\bs32.obj" "$(MODULE_DIR)\bs32.asm"\r
195 \r
196$(OUTPUT_DIR)\bs32.com:$(OUTPUT_DIR)\bs32.obj\r
197 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\bs32.obj,$(OUTPUT_DIR)\bs32.com,$(OUTPUT_DIR)\bs32.map,,,\r
198\r
199#============= \r
200\r
201$(OUTPUT_DIR)\Gpt.obj:$(MODULE_DIR)\Gpt.asm\r
202 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\Gpt.obj" "$(MODULE_DIR)\Gpt.asm"\r
203 \r
204$(OUTPUT_DIR)\Gpt.com:$(OUTPUT_DIR)\Gpt.obj\r
205 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\Gpt.obj,$(OUTPUT_DIR)\Gpt.com,$(OUTPUT_DIR)\Gpt.map,,,\r
206\r
207#============= \r
208\r
209$(OUTPUT_DIR)\Mbr.obj:$(MODULE_DIR)\Mbr.asm\r
210 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\Mbr.obj" "$(MODULE_DIR)\Mbr.asm"\r
211 \r
212$(OUTPUT_DIR)\Mbr.com:$(OUTPUT_DIR)\Mbr.obj\r
213 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\Mbr.obj,$(OUTPUT_DIR)\Mbr.com,$(OUTPUT_DIR)\Mbr.map,,,\r
214\r
215#============\r
216\r
217$(OUTPUT_DIR)\Start.obj:$(MODULE_DIR)\Start.asm\r
218 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\Start.obj" "$(MODULE_DIR)\Start.asm"\r
219 \r
220$(OUTPUT_DIR)\Start.com:$(OUTPUT_DIR)\Start.obj\r
221 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\Start.obj,$(OUTPUT_DIR)\Start.com,$(OUTPUT_DIR)\Start.map,,,\r
222 \r
223#============= \r
224\r
225$(OUTPUT_DIR)\Start16.obj:$(MODULE_DIR)\Start16.asm\r
226 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\Start16.obj" "$(MODULE_DIR)\Start16.asm"\r
227 \r
228$(OUTPUT_DIR)\Start16.com:$(OUTPUT_DIR)\Start16.obj\r
229 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\Start16.obj,$(OUTPUT_DIR)\Start16.com,$(OUTPUT_DIR)\Start16.map,,,\r
230\r
231#=============\r
232\r
233$(OUTPUT_DIR)\Start32.obj:$(MODULE_DIR)\Start32.asm\r
234 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\Start32.obj" "$(MODULE_DIR)\Start32.asm"\r
235 \r
236$(OUTPUT_DIR)\Start32.com:$(OUTPUT_DIR)\Start32.obj\r
237 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\Start32.obj,$(OUTPUT_DIR)\Start32.com,$(OUTPUT_DIR)\Start32.map,,,\r
238\r
239#=============\r
240\r
241$(OUTPUT_DIR)\efi32.obj:$(MODULE_DIR)\efi32.asm\r
242 $(ASM) /c /omf /Fo"$(OUTPUT_DIR)\efi32.obj" "$(MODULE_DIR)\efi32.asm"\r
243 \r
244$(OUTPUT_DIR)\efi32.com:$(OUTPUT_DIR)\efi32.obj\r
245 "$(ASMLINK)" /tiny $(OUTPUT_DIR)\efi32.obj,$(OUTPUT_DIR)\efi32.com,$(OUTPUT_DIR)\efi32.map,,,\r
246\r
247#=============\r
248\r
249$(OUTPUT_DIR)\efi32.com2:$(OUTPUT_DIR)\efi32.com\r
250 $(BASETOOLS_DIR)\Split.exe -f $(OUTPUT_DIR)\efi32.com -t $(OUTPUT_DIR)\efi32.com2 -s 135168\r
251#\r
252# clean all generated files\r
253#\r
254\r
255loader:$(BUILD_DIR)\FV\Efildr\r
256\r
257$(BUILD_DIR)\FV\DUETEFIMAINFV.z:$(BUILD_DIR)\FV\DUETEFIMAINFV.Fv\r
258 $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DUETEFIMAINFV.z $(BUILD_DIR)\FV\DUETEFIMAINFV.Fv\r
259 \r
260$(BUILD_DIR)\FV\DxeMain.z:$(BUILD_DIR)\IA32\DxeMain.efi \r
261 $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DxeMain.z $(BUILD_DIR)\IA32\DxeMain.efi\r
262 \r
263$(BUILD_DIR)\FV\DxeIpl.z:$(BUILD_DIR)\IA32\DxeIpl.efi \r
264 $(BASETOOLS_DIR)\TianoCompress -e -o $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\IA32\DxeIpl.efi\r
265 \r
266$(BUILD_DIR)\FV\Efildr32:$(BUILD_DIR)\IA32\EfiLoader.efi $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\FV\DUETEFIMAINFV.z\r
267 $(BASETOOLS_DIR)\EfiLdrImage.exe -o $(BUILD_DIR)\FV\Efildr32 $(BUILD_DIR)\IA32\EfiLoader.efi $(BUILD_DIR)\FV\DxeIpl.z $(BUILD_DIR)\FV\DUETEFIMAINFV.z\r
268 \r
269$(BUILD_DIR)\FV\Efildr:$(OUTPUT_DIR)\Start.com $(OUTPUT_DIR)\Efi32.com2 $(BUILD_DIR)\FV\Efildr32\r
270 copy /b $(OUTPUT_DIR)\BootSect.com+$(OUTPUT_DIR)\Efi32.com2+$(BUILD_DIR)\FV\Efildr32 $(BUILD_DIR)\FV\Efildr\r
271 \r
272clean:\r
273 if exist $(DEBUG_DIR) rmdir /s /q $(DEBUG_DIR)\r
274 if exist $(OUTPUT_DIR) rmdir /s /q $(OUTPUT_DIR)\r
275\r
276\r