mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-27 12:15:19 +01:00
77 lines
2.9 KiB
Batchfile
77 lines
2.9 KiB
Batchfile
@echo off
|
|
set curdir=%cd%
|
|
|
|
set TARGETDIR=.\x64\Debug
|
|
if NOT ["%~1"] == [""] (
|
|
set TARGETDIR=%~1
|
|
)
|
|
IF %TARGETDIR:~-1%==\ SET TARGETDIR=%TARGETDIR:~0,-1%
|
|
|
|
set TARGETFILENAME=CloverX64.lib
|
|
if NOT ["%~2"] == [""] (
|
|
set TARGETFILENAME=%~2
|
|
)
|
|
for %%i in (%TARGETFILENAME%) do @set TARGETBASENAME=%%~ni
|
|
|
|
set GENFWPATH=..\..\BaseTools\Bin\Win32\GenFw.exe
|
|
|
|
|
|
rem echo curdir=%curdir%
|
|
rem @echo TARGETDIR=%TARGETDIR%
|
|
rem @echo TARGETFILENAME=%TARGETFILENAME%
|
|
rem @echo TARGETBASENAME=%TARGETBASENAME%
|
|
rem @echo GENFWPATH=%GENFWPATH%
|
|
|
|
|
|
if NOT exist "Clover.vcxproj" (
|
|
echo This script must be run from VC++ Clover project dir, which nust be 2 levels down from main Clover folder.
|
|
cd %curdir%
|
|
exit /b 1
|
|
)
|
|
|
|
if NOT exist "%GENFWPATH%" (
|
|
echo The VC++ Clover project dir must 2 levels down from main Clover folder. GenFW must be found at %GENFWPATH%.
|
|
cd %curdir%
|
|
exit /b 1
|
|
)
|
|
|
|
|
|
if not exist "%TARGETDIR%" (
|
|
echo Target dir doesn't exist
|
|
cd %curdir%
|
|
exit /b 1
|
|
)
|
|
|
|
del %TARGETDIR%\static_library_files.lst
|
|
FOR /F "tokens=* skip=1" %%A IN ('type "..\..\Build\Clover\RELEASE_VS2017\X64\rEFIt_UEFI\refit\OUTPUT\static_library_files.lst"') DO @echo %%A >> %TARGETDIR%\static_library_files.lst
|
|
rem @echo "/JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--masterVC/VC/Clover/x64/Debug/StaticLib1.lib" >> %TARGETDIR%\static_library_files.lst
|
|
|
|
rem ..\..\BaseTools\get_vsvars.bat <- not needed when it's called from VS ide
|
|
|
|
rem /IGNORE:4210 = .CRT section exists; there may be unhandled static initializers or terminators
|
|
rem /IGNORE:4254
|
|
rem /WHOLEARCHIVE : makes __chkstk to come up
|
|
|
|
rem edkII link cmd
|
|
rem "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\link.exe" /OUT:c:\users\jief\cloverbootloader_synced\Build\Clover\DEBUG_VS2017\X64\rEFIt_UEFI\refit\DEBUG\CLOVERX64.dll
|
|
rem /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:_ModuleEntryPoint /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /WHOLEARCHIVE
|
|
rem @c:\users\jief\cloverbootloader_synced\Build\Clover\DEBUG_VS2017\X64\rEFIt_UEFI\refit\OUTPUT\static_library_files.lst
|
|
|
|
rem .cod seems to be generated in current dir. Didn't find options t change that. /Fa is for compiler, not linker.
|
|
cd %TARGETDIR%
|
|
link.exe /OUT:%TARGETBASENAME%.dll /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /IGNORE:4210 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:_ModuleEntryPoint /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /WHOLEARCHIVE %TARGETFILENAME% @static_library_files.lst
|
|
|
|
if %ERRORLEVEL% neq 0 (
|
|
cd %curdir%
|
|
exit /b %ERRORLEVEL%
|
|
)
|
|
cd %curdir%
|
|
|
|
|
|
%GENFWPATH% -e UEFI_APPLICATION -o %TARGETDIR%\%TARGETBASENAME%.efi %TARGETDIR%\%TARGETBASENAME%.dll
|
|
if %ERRORLEVEL% neq 0 exit /b %ERRORLEVEL%
|
|
|
|
echo EFI generated in %TARGETDIR%\%TARGETBASENAME%.efi
|
|
|
|
cd %curdir%
|