@echo off setlocal enabledelayedexpansion if not exist build mkdir build where cl >nul 2>nul if !errorlevel! equ 0 ( pushd build cl /nologo /std:c11 /O2 /W4 /I..\include ..\src\main.c ..\src\encrypt.c ..\src\decrypt.c ..\src\cipher.c /Fe:gerbera.exe bcrypt.lib set "res=!errorlevel!" popd if !res! equ 0 ( goto success ) else ( exit /b !res! ) ) where gcc >nul 2>nul if !errorlevel! equ 0 ( gcc -Iinclude -std=c11 -O2 -Wall -Wextra -Wpedantic src\main.c src\encrypt.c src\decrypt.c src\cipher.c -o build\gerbera.exe -lbcrypt if !errorlevel! equ 0 ( goto success ) else ( exit /b !errorlevel! ) ) where clang >nul 2>nul if !errorlevel! equ 0 ( clang -Iinclude -std=c11 -O2 -Wall -Wextra -Wpedantic src\main.c src\encrypt.c src\decrypt.c src\cipher.c -o build\gerbera.exe -lbcrypt if !errorlevel! equ 0 ( goto success ) else ( exit /b !errorlevel! ) ) echo C compiler not found. Install Visual Studio Build Tools, GCC, or Clang. exit /b 1 :success echo Build complete: build\gerbera.exe exit /b 0