1@REM ## @file
2@REM #
3@REM #  Currently, Build system does not provide post build mechanism for module
4@REM #  and platform building, so just use a bat file to do post build commands.
5@REM #  Originally, following post building command is for EfiLoader module.
6@REM #
7@REM #  Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
8@REM #
9@REM #  This program and the accompanying materials
10@REM #  are licensed and made available under the terms and conditions of the BSD License
11@REM #  which accompanies this distribution. The full text of the license may be found at
12@REM #  http://opensource.org/licenses/bsd-license.php
13@REM #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14@REM #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15@REM #
16@REM #
17@REM ##
18
19@set BASETOOLS_DIR=%WORKSPACE_TOOLS_PATH%\Bin\Win32
20@set BOOTSECTOR_BIN_DIR=%WORKSPACE%\DuetPkg\BootSector\bin
21@set PROCESSOR=""
22@call %WORKSPACE%\DuetPkg\GetVariables.bat
23
24@if NOT "%1"=="" @set TARGET_ARCH=%1
25@if "%TARGET_ARCH%"=="IA32" set PROCESSOR=IA32
26@if "%TARGET_ARCH%"=="X64" set PROCESSOR=X64
27@if %PROCESSOR%=="" goto WrongArch
28
29@set BUILD_DIR=%WORKSPACE%\Build\DuetPkg%PROCESSOR%\%TARGET%_%TOOL_CHAIN_TAG%
30
31
32@echo Compressing DUETEFIMainFv.FV ...
33@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv
34
35@echo Compressing DxeMain.efi ...
36@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\%PROCESSOR%\DxeCore.efi
37
38@echo Compressing DxeIpl.efi ...
39@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\%PROCESSOR%\DxeIpl.efi
40
41@echo Generate Loader Image ...
42@if "%PROCESSOR%"=="IA32" goto GENERATE_IMAGE_IA32
43@if "%PROCESSOR%"=="X64" goto GENERATE_IMAGE_X64
44
45:GENERATE_IMAGE_IA32
46@%BASETOOLS_DIR%\EfiLdrImage.exe -o %BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\%PROCESSOR%\EfiLoader.efi %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\FV\DUETEFIMAINFV.z
47@copy /b %BOOTSECTOR_BIN_DIR%\Start.com+%BOOTSECTOR_BIN_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr
48@copy /b %BOOTSECTOR_BIN_DIR%\Start16.com+%BOOTSECTOR_BIN_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr16
49@copy /b %BOOTSECTOR_BIN_DIR%\Start32.com+%BOOTSECTOR_BIN_DIR%\Efi32.com2+%BUILD_DIR%\FV\Efildr32 %BUILD_DIR%\FV\Efildr20
50@goto end
51
52:GENERATE_IMAGE_X64
53@%BASETOOLS_DIR%\EfiLdrImage.exe -o %BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\%PROCESSOR%\EfiLoader.efi %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\FV\DUETEFIMAINFV.z
54@copy /b %BOOTSECTOR_BIN_DIR%\Start64.com+%BOOTSECTOR_BIN_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\EfildrPure
55@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\EfildrPure -o %BUILD_DIR%\FV\Efildr
56@copy /b %BOOTSECTOR_BIN_DIR%\St16_64.com+%BOOTSECTOR_BIN_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\Efildr16Pure
57@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\Efildr16Pure -o %BUILD_DIR%\FV\Efildr16
58@copy /b %BOOTSECTOR_BIN_DIR%\St32_64.com+%BOOTSECTOR_BIN_DIR%\Efi64.com2+%BUILD_DIR%\FV\Efildr64 %BUILD_DIR%\FV\Efildr20Pure
59@%BASETOOLS_DIR%\GenPage.exe %BUILD_DIR%\FV\Efildr20Pure -o %BUILD_DIR%\FV\Efildr20
60@goto end
61
62
63:WrongArch
64@echo Error! Wrong architecture.
65@goto Help
66
67:Help
68@echo Usage: "PostBuild [IA32|X64]"
69:end