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