pvbemu/makefile

49 lines
1.3 KiB
Makefile

.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*