2021-05-08 11:34:17 +02:00
@ echo on
2020-11-02 14:45:11 +01:00
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
2021-05-08 11:34:17 +02:00
@ echo curdir=%curdir%
@ echo TARGETDIR=%TARGETDIR%
@ echo TARGETFILENAME=%TARGETFILENAME%
@ echo TARGETBASENAME=%TARGETBASENAME%
@ echo GENFWPATH=%GENFWPATH%
2020-11-02 14:45:11 +01:00
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%