22SETLOCAL
33set PATH = %windir% \system32;%PATH% & :: override msys if it's on the PATH
44set TOP = %~dp0
5- cl /nologo /c /O2 /Zi /Fdblst.pdb /W4 /MT /Zl %TOP% src\server.c || EXIT /B
5+ set CFLAGS = /nologo /c /O2 /Zi /Fdblst.pdb /W4
66cl 2 >& 1 | find " for ARM64" > nul :
77IF ERRORLEVEL 1 (
88 set arm64 = no
@@ -23,14 +23,16 @@ FOR %%O IN (%*) DO (
2323 set opt = %%O
2424 IF " !opt! " == " -shared" (
2525 IF [!shared! ] EQU [] set shared = /out:blst.dll
26+ ) ELSE IF " !opt! " == " -dll" (
27+ IF [!shared! ] EQU [] set shared = /out:blst.dll
2628 ) ELSE IF " !opt:~0 ,5 ! " == " /out:" (
2729 IF " !opt:~-4 ! " == " .dll" (set shared=!opt! ) ELSE (set static=!opt! )
2830 ) ELSE IF " !opt! " == " -arm64x" (
2931 set arm64x = %arm64%
3032 )
3133)
3234IF [%shared% ] NEQ [] (
33- cl /nologo /c /O2 /Oi- /MD %TOP% build\win64\dll .c || EXIT /B
35+ cl %CFLAGS% /MD /D__BLST_DLL_MAIN__ %TOP% src\server .c || EXIT /B
3436 set ld =
3537 FOR /F " usebackq delims=" %%F IN (`where link`) DO (
3638 IF " !ld! " == " " (
@@ -43,17 +45,17 @@ IF [%shared%] NEQ [] (
4345 /def:%TOP% build\win64\blst.def *.obj kernel32.lib && del *.obj
4446 ) ELSE (
4547 lib /nologo /out:blst_arm64.lib *.obj && del *.obj || EXIT /B
46- cl /nologo /arm64EC /c /O2 /Zi /Fdblst.pdb /W4 /MT /Zl %TOP% src\server.c || EXIT /B
4748 FOR %%F IN (%TOP% build\win64\*-armv8.asm) DO (
4849 armasm64 -nologo -machine arm64ec -nowarn %%F || EXIT /B
4950 )
50- cl /nologo / arm64EC /c /O2 /Oi- /MD %TOP% build\win64\dll .c || EXIT /B
51+ cl /arm64EC %CFLAGS% /MD /D__BLST_DLL_MAIN__ %TOP% src\server .c || EXIT /B
5152 !ld! /nologo /machine:arm64x /dll /noentry %shared% ^
5253 /def:%TOP% build\win64\blst.def *.obj ^
5354 /defArm64Native:%TOP% build\win64\blst.def blst_arm64.lib ^
5455 kernel32.lib && del *.obj blst_arm64.lib
5556 )
5657) ELSE (
58+ cl %CFLAGS% /MT /Zl %TOP% src\server.c || EXIT /B
5759 lib /nologo %static% *.obj && del *.obj
5860)
5961ENDLOCAL
0 commit comments