Newer
Older
vvd / build.cmd
@dd86k dd86k on 9 Nov 2019 1 KB INIT
@ECHO OFF
::
:: ** CL CLI reminder **
:: optimize size: /Os
:: optimize speed: /Ot
:: compile dynamic: /MD
:: compile static: /MT
::
:: Don't forget setargv_*.obj
::
::TODO: Function for every file being compiled

SET CC=%1
SET CTIME="\"%DATE% %TIME%\""

IF /I "%CC%"=="clang-cl" GOTO :CLANGCL
IF /I "%CC%"=="clean" GOTO :CLEAN
IF /I "%CC%"=="help" GOTO :SHOW_HELP
IF /I "%CC%"=="" (
	SET CC=clang-cl
	GOTO :CLANGCL
)

ECHO ERROR: Action not found (%CC%)
GOTO :EOF

:SHOW_HELP
ECHO USAGE
ECHO   build ACTION [OPTIONS]
ECHO.
ECHO ACTION
ECHO   ^<COMPILER^>  Choose a compiler (clang, clang-cl)
ECHO   CLEAN       Delete binaries
GOTO :EOF

::
:: CLEAN
::

:CLEAN
DEL /S /Q bin\* vvd vvd.exe
GOTO :EOF

::
:: clang-cl
::

:CLANGCL
SET CFLAGS=%CC% -c %2 %3 %4 %5 /Zp -DTIMESTAMP=%CTIME% -D_CRT_SECURE_NO_WARNINGS -ferror-limit=2
ECHO [%CC%] main.o
%CFLAGS% src\main.c -o bin\main.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] guid.o
%CFLAGS% src\guid.c -o bin\guid.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] utils.o
%CFLAGS% src\utils.c -o bin\utils.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] vdisk.o
%CFLAGS% src\vdisk.c -o bin\vdisk.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] vvd.o
%CFLAGS% src\vvd.c -o bin\vvd.o
IF ERRORLEVEL 1 GOTO :EOF
:: os
ECHO [%CC%] fs.o
%CFLAGS% src\os\fs.c -o bin\fs.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] err.o
%CFLAGS% src\os\err.c -o bin\err.o
IF ERRORLEVEL 1 GOTO :EOF
:: fs
ECHO [%CC%] mbr.o
%CFLAGS% src\fs\mbr.c -o bin\mbr.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] gpt.o
%CFLAGS% src\fs\gpt.c -o bin\gpt.o
IF ERRORLEVEL 1 GOTO :EOF
:: vdisk
ECHO [%CC%] vdi.o
%CFLAGS% src\vdisk\vdi.c -o bin\vdi.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] vmdk.o
%CFLAGS% src\vdisk\vmdk.c -o bin\vmdk.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] vhd.o
%CFLAGS% src\vdisk\vhd.c -o bin\vhd.o
IF ERRORLEVEL 1 GOTO :EOF
ECHO [%CC%] vhdx.o
%CFLAGS% src\vdisk\vhdx.c -o bin\vhdx.o
IF ERRORLEVEL 1 GOTO :EOF
:: LINK
ECHO [%CC%] Linking vvd
%CC% %2 %3 %4 %5 bin\*.o -o vvd.exe
GOTO :EOF