Files

43 lines
1.0 KiB
Batchfile

@echo off
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\