#!/bin/bash 2>nul || goto :windows

if [ "$1" = "" ]; then
	sh MAKE.bat demo_collide.c
	exit
fi

## clone emscripten sdk
git clone https://github.com/emscripten-core/emsdk emsdk
pushd emsdk
	./emsdk install  3.1.55 ## latest
	./emsdk activate 3.1.55 ## latest
	source ./emsdk_env.sh
popd

## cook art
if [ "$(uname)" = "Darwin" ]; then
    chmod +x ../../tools/cook.osx
    ../../tools/cook.osx   --cook-jobs=1 --cook-ini=../../tools/cook.ini
    cp .art[00].zip index.zip
else
    chmod +x ../../tools/cook.linux
    ../../tools/cook.linux --cook-jobs=1 --cook-ini=../../tools/cook.ini
    cp .art[00].zip index.zip
fi
cp template.js index.coi.js

## host webserver, compile and launch
## python -m http.server --bind 127.0.0.1 8000 1> /dev/null 2> /dev/null &
emcc $@ -g ../../engine/v4k.c -I../../engine -o index.html -s FULL_ES3 -s USE_PTHREADS -s USE_GLFW=3 -s SINGLE_FILE=1 -s PRECISE_F32=1 -s TOTAL_MEMORY=256mb -s ENVIRONMENT=worker,web --shell-file template.html -Wfatal-errors --preload-file index.zip -s ALLOW_MEMORY_GROWTH=1 -s STACK_SIZE=128kb -lidbfs.js && emrun index.html # xdg-open http://localhost:8000

exit

:windows

if "%1"=="" MAKE.bat demo_collide.c
if "%1"=="tidy" del index.* & del *.zip & del temp_* & exit /b && rem rd /q /s emsdk

rem clone emscripten sdk
if not exist "emsdk" (
	git clone https://github.com/emscripten-core/emsdk emsdk
	pushd emsdk
		call emsdk install  3.1.55 && rem latest
		call emsdk activate 3.1.55 && rem latest
	popd
)
if "%EMSDK%"=="" call emsdk\emsdk_env.bat --system

rem cook art
..\..\tools\cook.exe --cook-jobs=1 --cook-ini=..\..\tools\cook_web.ini
copy /y .art[00].zip index.zip
copy /y template.js index.coi.js

goto skip
rem host webserver:8000 if not open
netstat /ano | find /i "listening" | find ":8000" >nul 2>nul && (
	rem start python -m http.server --bind 127.0.0.1 8000
) || (
	start python -m http.server --bind 127.0.0.1 8000
)
:skip

rem compile and launch
set WARNINGS=-Wno-pointer-sign -Wno-deprecated-non-prototype
emcc %* -g ..\..\engine\v4k.c -I..\..\engine -o index.html %WARNINGS% -pthread -s FULL_ES3 -s USE_PTHREADS -s USE_GLFW=3 -s SINGLE_FILE=1 -s PRECISE_F32=1 -s TOTAL_MEMORY=256mb -s ENVIRONMENT=worker,web --shell-file template.html -Wfatal-errors --preload-file index.zip -s ALLOW_MEMORY_GROWTH=1 -lidbfs.js && start emrun index.html && rem start "" http://localhost:8000