46 lines
1.3 KiB
Makefile
46 lines
1.3 KiB
Makefile
all : subst index.html
|
|
|
|
#For tools (Works in Ubuntu 20.04 (Including WSL), Mint)
|
|
# sudo apt-get install clang-10 lld-10 binaryen
|
|
# sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 20
|
|
# sudo update-alternatives --install /usr/bin/wasm-ld wasm-ld /usr/bin/wasm-ld-10 20
|
|
|
|
#node-uglify lld clang-10 lld-10 binaryen
|
|
|
|
#Path to rawdraw
|
|
CFLAGS:=-I..
|
|
|
|
CLANG?=clang
|
|
WASMOPT?=wasm-opt
|
|
TERSER?=terser
|
|
TERSERFLAGS?= --ecma 2017 -d RAWDRAW_USE_LOOP_FUNCTION=false -d RAWDRAW_NEED_BLITTER=true
|
|
|
|
CFLAGS+=-DWASM -nostdlib --target=wasm32 \
|
|
-flto -Oz \
|
|
-Wl,--lto-O3 \
|
|
-Wl,--no-entry \
|
|
-Wl,--allow-undefined \
|
|
-Wl,--import-memory
|
|
|
|
WOFLAGS:=--asyncify --pass-arg=asyncify-imports@bynsyncify.* --pass-arg=asyncify-ignore-indirect
|
|
|
|
opt.js : template.js main.wasm
|
|
cat main.wasm | base64 | sed -e "$$ ! {/./s/$$/ \\\\/}" > blob_b64;
|
|
./subst template.js -s -f BLOB blob_b64 -o mid.js
|
|
#Comment the below line out if you don't want to uglify the javascript.
|
|
$(TERSER) $(TERSERFLAGS) mid.js -o opt.js
|
|
rm mid.js blob_b64
|
|
|
|
index.html : template.ht opt.js
|
|
./subst template.ht -s -f JAVASCRIPT_DATA opt.js -o $@
|
|
|
|
subst : subst.c
|
|
cc -o $@ $^
|
|
|
|
main.wasm: rawdraw.c
|
|
$(CLANG) $(CFLAGS) $^ -o $@
|
|
$(WASMOPT) $(WOFLAGS) -Oz main.wasm -o main.wasm
|
|
#wasm-objdump -d main.wasm > main.disassembly.txt
|
|
|
|
clean:
|
|
rm -rf main.wasm opt.js index.html blob_b64
|