From f66b6a86fbfc8f50fb6830902099e186229114a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maksymilian=20Wilczy=C5=84ski?= Date: Fri, 11 Jul 2025 20:56:11 +0200 Subject: [PATCH] ignore ovmf vars, improve build script --- .gitignore | 5 +++-- OVMF/OVMF_VARS_4M.fd | Bin 540672 -> 540672 bytes build.bat | 43 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a6d4376..c9475be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -*.obj +obj/ fatroot/ -*.efi +BootX64.efi +OVMF/OVMF_VARS_4M.fd diff --git a/OVMF/OVMF_VARS_4M.fd b/OVMF/OVMF_VARS_4M.fd index 8aebd5bf48674924d18af4f918e133be92df10e5..49012afeb6cd3bbe6fdbb03d9489d7d4ac2cddb0 100644 GIT binary patch delta 69 zcmV-L0J{HxfFXc@A+WC7lYW^(v+&!}3bP)yx&;CJv%#535R)_GJPb F1^{eG6GZ?3 diff --git a/build.bat b/build.bat index 059080e..9df531c 100644 --- a/build.bat +++ b/build.bat @@ -1,5 +1,42 @@ @echo off -cl /c /GS- /GR- /Oi /EHs-c- /nologo /Zc:threadSafeInit- /I include /Fo:main.obj main.cpp || pause && exit /b -echo linking.. -link /NODEFAULTLIB /ENTRY:efi_main /NOLOGO /SUBSYSTEM:EFI_APPLICATION /OUT:BootX64.efi main.obj efilib.lib || pause && exit /b +setlocal enabledelayedexpansion + +rem === Input files === +set cfiles= +set afiles= + +rem === Flags === +set cflags=/c /GS- /GR- /Oi /EHs-c- /nologo /Zc:threadSafeInit- /I include /Fo:obj\ +set lflags=/NODEFAULTLIB /ENTRY:efi_main /NOLOGO /SUBSYSTEM:EFI_APPLICATION /LIBPATH:obj /OUT:BootX64.efi efilib.lib + +rem === Ensure obj\ directory exists === +if not exist "obj\" ( + mkdir "obj" +) + +rem === Dynamically generate object list === +set objects= + +for %%f in (%cfiles%) do ( + set "base=%%~nf" + set "objects=!objects!!base!.obj " +) + +for %%f in (%afiles%) do ( + set "base=%%~nf" + set "objects=!objects!!base!.obj " +) + +rem === Assemble all .asm files === +for %%f in (%afiles%) do ( + ml64 /c /nologo /Foobj\%%~nf.obj %%f || pause && exit /b +) + +rem === Compile all .cpp files === +cl %cflags% %cfiles% || pause && exit /b + +rem === Link all objects === +link %lflags% !objects! || pause && exit /b + +rem === Copy output to EFI folder === copy /B /Y BootX64.efi fatroot\EFI\Boot\