From f0a22a4941645c8c4534eca56efb6f7b29d7c668 Mon Sep 17 00:00:00 2001 From: Sebastian Macke Date: Thu, 23 Jul 2020 11:44:56 +0200 Subject: [PATCH] Add wasm compilation capabilities --- .gitignore | 3 +++ Makefile | 10 +++++----- scripts/compile_fast.sh | 4 ++++ scripts/compile_wasm.sh | 12 ++++++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100755 scripts/compile_fast.sh create mode 100755 scripts/compile_wasm.sh diff --git a/.gitignore b/.gitignore index b4ef40f..5211b40 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ fshistory # filesystem *.fs + +# webassembly +*.wasm diff --git a/Makefile b/Makefile index 2ce2d11..a5b2f83 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ OBJS = main.o mz.o ram.o debugger.o cpu.o vga.o ports.o dos.o alloc.o keyb.o \ sdl.o screen.o rom.o fs.o bios.o fonts.o pic.o pit.o mouse.o \ clock.o fs4.o exit_strategy.o disk.o multiplex.o compare.o ems.o -all: fshistory fs1.fs fs2.fs fs3.fs fs4.fs +all: fshistory data/fs1.fs data/fs2.fs data/fs3.fs data/fs4.fs fshistory: ${OBJS} ${CC} -o fshistory ${OBJS} ${LDFLAGS} @@ -28,16 +28,16 @@ fshistory.wasm: ${OBJS} libc.o --export=MouseMotion \ -o fshistory.wasm ${OBJS} libc.o -fs1.fs: data/fs1.fs.bz2 +data/fs1.fs: data/fs1.fs.bz2 bzip2 -dk data/fs1.fs.bz2 -fs2.fs: data/fs2.fs.bz2 +data/fs2.fs: data/fs2.fs.bz2 bzip2 -dk data/fs2.fs.bz2 -fs3.fs: data/fs3.fs.bz2 +data/fs3.fs: data/fs3.fs.bz2 bzip2 -dk data/fs3.fs.bz2 -fs4.fs: data/fs4.fs.bz2 +data/fs4.fs: data/fs4.fs.bz2 bzip2 -dk data/fs4.fs.bz2 libc.o: src/wasm_libc_wrapper diff --git a/scripts/compile_fast.sh b/scripts/compile_fast.sh new file mode 100755 index 0000000..a390ae4 --- /dev/null +++ b/scripts/compile_fast.sh @@ -0,0 +1,4 @@ +gcc -Ofast -DFS4 -DUNSAFE_RAM -ofshistory src/*.c src/cpu/cpu.c src/devices/*.c src/disasm/*.c src/dos/*.c src/fs/*.c src/utils/*.c -lSDL2 + +#cat src/*.c src/cpu/*.h src/cpu/*.c src/devices/*.c src/disasm/*.c src/dos/*.c src/fs/*.c src/utils/*.c > single.c +#gcc -Ofast -DFS4 single.c -lSDL2 diff --git a/scripts/compile_wasm.sh b/scripts/compile_wasm.sh new file mode 100755 index 0000000..b623992 --- /dev/null +++ b/scripts/compile_wasm.sh @@ -0,0 +1,12 @@ +#stop on error +set -e + +#generate wasm file +make clean +rm -f fshistory.wasm +make fshistory.wasm CC=clang LDFLAGS="--target=wasm32" CFLAGS="-Os --target=wasm32 -DFS4 -Werror -DUNSAFE_RAM -Wimplicit-fallthrough" + +wasm-gc fshistory.wasm +wasm-strip fshistory.wasm + +wasm2wat fshistory.wasm | grep 'import\|export'