summaryrefslogtreecommitdiffstats
path: root/build.bat
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2026-07-12 00:47:54 +0200
committerladevieq <ladevie.quentin@gmail.com>2026-07-12 00:47:54 +0200
commit7b6964eb1bcf30a0ae7ed3391adce30565b262b4 (patch)
tree3bbf89d582a1466a2319ccaaf6d4cbb734bdd66b /build.bat
parentce51256c91e566d339c6a670af11bab519f98349 (diff)
Load functions by hand
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat27
1 files changed, 16 insertions, 11 deletions
diff --git a/build.bat b/build.bat
index cc27d15..91e961e 100644
--- a/build.bat
+++ b/build.bat
@@ -26,31 +26,36 @@ if EXIST %VS2022_PRO% (
:compilation
REM set C_FLAGS=/DHASHMAP /nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:c17 /c /Tc
-set C_FLAGS=/nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:clatest /c /Tc
+REM set C_FLAGS=/nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:clatest /c /Tc
+set C_FLAGS=-fno-builtin -nostdlib -mno-stack-arg-probe --target=x86_64-pc-windows-msvc -Wall -Werror -pedantic -I include -std=c23 -Wno-msvc-not-found -Wno-microsoft-anon-tag -Wno-gnu-binary-literal -g -O0 -c
REM set L_FLAGS=/WX /SUBSYSTEM:CONSOLE /NODEFAULTLIB /stack:0x100000,100000
-set L_FLAGS=/WX /SUBSYSTEM:CONSOLE /NODEFAULTLIB
+set L_FLAGS=/WX /SUBSYSTEM:CONSOLE /NODEFAULTLIB /DEBUG
-if "%release%"=="0" (
- set C_FLAGS=/Od %C_FLAGS%
- set L_FLAGS=/DEBUG %L_FLAGS%
-)
+REM if "%release%"=="0" (
+REM set C_FLAGS=/Od %C_FLAGS%
+REM set L_FLAGS=/DEBUG %L_FLAGS%
+REM )
-set src=main utils events module parser pdb hashmap stack_walk disasm
+set src=main utils events module parser pdb hashmap stack_walk disasm loader
:: DBG
:: Compile
(for %%s in (%src%) do (
call set OBJS=%%OBJS%% %BUILD_DIR%\%%s.obj
- cl /Fd:%BUILD_DIR%\%%s.pdb %C_FLAGS% src\%%s.c
+ clang -o %BUILD_DIR%\%%s.obj %C_FLAGS% src\%%s.c
))
+:: cl /Fd:%BUILD_DIR%\%%s.pdb %C_FLAGS% src\%%s.c
:: Link
-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %OBJS% kernel32.lib
+REM link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %OBJS% kernel32.lib
+lld-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %OBJS%
:: Test program
set SRC_FILE=test
:: Compile
-cl /Fd:%BUILD_DIR%\%SRC_FILE%.pdb %C_FLAGS% src/%SRC_FILE%.c
+REM cl /Fd:%BUILD_DIR%\%SRC_FILE%.pdb %C_FLAGS% src/%SRC_FILE%.c
+:: clang -o %BUILD_DIR%\%SRC_FILE%.obj %C_FLAGS% src/%SRC_FILE%.c
:: Link
-link %L_FLAGS% %BUILD_DIR%\%SRC_FILE%.obj /OUT:%BUILD_DIR%\%SRC_FILE%.exe kernel32.lib
+REM link %L_FLAGS% %BUILD_DIR%\%SRC_FILE%.obj /OUT:%BUILD_DIR%\%SRC_FILE%.exe kernel32.lib
+:: lld-link %L_FLAGS% %BUILD_DIR%\%SRC_FILE%.obj %BUILD_DIR%\loader.obj /OUT:%BUILD_DIR%\%SRC_FILE%.exe