.PHONY: help help: @echo @echo "Virtual Boy Emulator - September 18, 2021" @echo @echo "Target build environment is any Debian with the following packages:" @echo " emscripten" @echo " gcc" @echo " openjdk-17-jdk" @echo @echo "Available make targets:" @echo " build Perform all build commands" @echo " bundle Package the repository for HTML distribution" @echo " clean Remove output files" @echo " core Check the C core source for compiler warnings" @echo " wasm Build the WebAssembly core module" @echo .PHONY: build build: @echo " Check C core library for style issues" @make -s core @echo " Build WebAssembly core module" @make -s wasm @echo " Bundle directory tree into HTML file" @make -s bundle .PHONY: bundle bundle: @java app/Bundle.java vbemu .PHONY: clean clean: @rm -f vbemu_*.html core.wasm .PHONY: core core: @gcc core/vb.c -I core \ -fsyntax-only -Wall -Wextra -Werror -Wpedantic -std=c90 @gcc core/vb.c -I core -D VB_LITTLEENDIAN \ -fsyntax-only -Wall -Wextra -Werror -Wpedantic -std=c90 .PHONY: wasm wasm: @emcc -o core.wasm wasm/wasm.c core/vb.c -Icore -D VB_LITTLEENDIAN \ --no-entry -O2 -flto -s WASM=1 -s EXPORTED_RUNTIME_METHODS=[] \ -s ALLOW_MEMORY_GROWTH -s MAXIMUM_MEMORY=4GB -fno-strict-aliasing @rm -f *.wasm.tmp*