pvbemu/makefile

55 lines
1.8 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.PHONY: help
help:
@echo
@echo "Virtual Boy Emulator - April 20, 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
@emcc core/vb.c -I core \
-fsyntax-only -Wall -Wextra -Werror -Wpedantic -std=c90
@emcc 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*