51 lines
1.4 KiB
Makefile
51 lines
1.4 KiB
Makefile
.PHONY: help
|
|
help:
|
|
@echo
|
|
@echo "Virtual Boy Emulator - April 14, 2022"
|
|
@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 app/core/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 app/core/core.wasm wasm/wasm.c core/vb.c -Icore \
|
|
-D VB_LITTLEENDIAN --no-entry -O2 -flto -s WASM=1 \
|
|
-D "VB_EXPORT=__attribute__((used))" \
|
|
-s EXPORTED_RUNTIME_METHODS=[] -s ALLOW_MEMORY_GROWTH \
|
|
-s MAXIMUM_MEMORY=4GB -fno-strict-aliasing
|
|
@rm -f app/core/*.wasm.tmp*
|